githubnext / githubnext/gh-aw-cao
[aw-doctor:compiler-security] githubnext/gh-aw-cao: strict compilation failed — 152 actionlint findings across 32 generated workflows
- Dominant language
- JavaScript
- Stars
- 3
- Forks
- 1
- Avg merge
- 49m
- Merged PRs (30d)
- 837
Description
`githubnext/gh-aw-cao` failed gh-aw strict compilation (exit code 1): actionlint reported 152 errors across 32 of 43 generated `.lock.yml` files — 118 `[expression]` type errors (undefined context properties, mostly `aw`, `rollout_percent`, `max_repos`, `github-mcp-app-token`, `correlation_id`, `central_repo`, `control_plane_run_url`) and 34 `[shellcheck]` SC2129 style findings. No container image, license, or security-scanner tools ran because actionlint failed before the pipeline reached them. Highest-severity/most numerous finding: 33 occurrences of an undefined `github.aw.*` expression property, indicating a widespread template/steering bug in the shared control workflow generator rather than isolated per-workflow mistakes.
**Action:** Assign this issue to Copilot using **Agent prompt** below; review its pull request and merge only after the full compiler and security scan passes.
Failure details
- **Target repository**: `githubnext/gh-aw-cao`
- **Compiler exit code**: `1`
- **Workflow sources checked**: `43`
- **Generated lock files checked**: `43`
- **Result**: `findings`
| Tool | Workflow(s) | Severity | Finding | Remediation |
|---|---|---|---|---|
| actionlint | 33 workflows | error | `property "aw" is not defined` on `github.aw.*` expressions | Use a defined context (e.g. `github.event.inputs.*` or a documented custom property) instead of undeclared `github.aw` |
| actionlint | 24 workflows | error | `property "rollout_percent" is not defined` in dispatch input object | Add `rollout_percent` to the dispatch input schema/type or remove the reference |
| actionlint | 24 workflows | error | `property "max_repos" is not defined` in dispatch input object | Add `max_repos` to the dispatch input schema/type or remove the reference |
| actionlint | 9-11 workflows | error | `property "github-mcp-app-token" is not defined` on steps output object | Ensure the `github-mcp-app-token` step id exists and is declared before referencing its outputs |
| actionlint | 7-8 workflows | error | `property "correlation_id"` / `"central_repo"` / `"control_plane_run_url"` not defined in dispatch envelope object | Add these fields to the dispatch input type/schema used by orchestrator workflows |
| actionlint | 1 workflow | error | `property "safe-outputs-app-token" is not defined` on steps output object | Ensure the referenced step id exists prior to use |
| actionlint (shellcheck) | 34 workflows | style (SC2129) | Individual `>>` redirects instead of grouped `{ ... } >> file` | Group sequential redirects per shellcheck SC2129 guidance |
Agent prompt
1. Assign this issue to Copilot.
2. Configure its MCP client to launch `gh aw mcp-server` over stdio from the target repository, then give it the prompt below. Require the server's `fix` and `compile` tools; never allow direct edits to generated `.lock.yml` files.
3. Review the resulting pull request and require the same full compiler and security scan to pass before merge. If a finding needs human action, require the agent to stop and explain it.
**Agent prompt**
Fix the reported gh-aw compiler and security findings in this repository. Change only `.github/workflows/*.md` sources and directly related files; never edit generated `.lock.yml` files. Use the gh-aw MCP server's `fix` and `compile` tools, rerunning compilation with strict validation, model checks, actionlint, shellcheck, yamllint, zizmor, poutine, runner-guard, grant, grype, and syft until clean. Review generated lock-file diffs, preserve existing behavior, and stop with a concise explanation if a finding cannot be fixed safely.
Raw evidence
```
i Using actionlint 1.7.12
i Running actionlint (with shellcheck/pyflakes) on 43 files
.github/workflows/aw-doctor.lock.yml:478:29: error: [expression] property "github-mcp-app-token" is not defined in object type {set-runtime-paths: {...}; setup: {...}}
github-token: ${{ steps.github-mcp-app-token.outputs.token || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
.github/workflows/uk-ai-advisory.lock.yml:1083:29: error: [expression] property "aw" is not defined in object type {action: string; ...}
if: ${{ always() && github.aw.import-inputs.role == 'orchestrator' }}
.github/workflows/uk-ai-advisory.lock.yml:1401:9: error: [shellcheck] SC2129:style: Consider using { cmd1; cmd2; } >> file instead of individual redirects
.github/workflows/uk-ai-advisory.lock.yml:1544:39: error: [expression] property "central_repo" is not defined in object type {aw_context: string; max_repos: string; rollout_percent: string; safe_output_mode: string; safe_output_repo: string; target_repo: string}
CAO_CENTRAL_REPOSITORY: ${{ github.event.inputs.central_repo || '' }}
...(152 total actionlint errors; see summary above for full category breakdown)...
✗ actionlint failed
strict mode: actionlint found 152 errors in workflows - workflows must have no actionlint errors in strict mode
```
Full summary: 43 workflow sources, 43 compiled locks, exit code 1. No token-like or credential values were present in the captured output.
Control plane context
- Correlation ID: `33993989614-292`
- Central repository: `githubnext/gh-aw-cao`
- Control plane run URL: `https://github.com/githubnext/gh-aw-cao/actions/runs/33993989614`
> Generated by [:shield: AW Doctor / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/33993989614) · copilot · auto · 31.8 AIC · ⌖ 8.79 AIC · ⊞ 14.2K · [◷](https://github.com/search?q=repo%3Agithubnext%2Fgh-aw-cao+is%3Aissue+%22gh-aw-workflow-call-id%3A+githubnext%2Fgh-aw-cao%2Faw-maintenance-compiler-security%22&type=issues)
> - [x] expires on Sep 19, 2026, 9:51 PM UTC
Contributor guide
Research direction
Start with the .github/workflows/*.md sources and use the gh-aw MCP server's fix and compile tools; do not edit generated .lock.yml files. Trace the reported actionlint and shellcheck findings across the workflow sources, then confirm the full strict compiler and security scan passes and review the generated lock-file diffs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, shell
- Domain
- ci-cd, devops, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100