githubnext / githubnext/gh-aw-cao
[aw-doctor:compiler-security] gh-aw compile fails strict actionlint check with 152 errors across 33 lock files
- Dominant language
- JavaScript
- Stars
- 3
- Forks
- 1
- Avg merge
- 49m
- Merged PRs (30d)
- 837
Description
Compiling all 43 workflow sources in `githubnext/gh-aw-cao` with `gh aw compile` (strict mode, actionlint enabled) failed with exit code 1: actionlint reported 152 errors across 33 generated lock files, blocking the compile before downstream security scanners (zizmor, poutine, runner-guard, grant, grype, syft) could run. All findings are actionlint/shellcheck expression errors, not runtime vulnerabilities; highest-severity is `error` (actionlint's only severity level — no scanner assigned CVE/vuln severities since the pipeline never reached that stage).
**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 | 24 workflows (dependabot, eu-cra-compliance*, optimization*, self-care*, software-development-practices*, uk-ai-advisory*, aw-maintenance-upgrade, aw-failures-investigator) | error | `property "max_repos"`/`"rollout_percent"`/`"correlation_id"`/`"control_plane_run_url"`/`"central_repo"` not defined on `github.event.inputs` object — `workflow_dispatch` input schema in the `.md` source is missing these inputs while the lock-file steps reference `github.event.inputs.` | Add the missing `workflow_dispatch.inputs` entries (`max_repos`, `rollout_percent`, `correlation_id`, `control_plane_run_url`, `central_repo`, `batch_label`, `target_repo`, `safe_output_mode`, `safe_output_repo`) to each affected workflow's frontmatter, matching the shared control-envelope contract, then recompile |
| actionlint | 33 workflows (all) | error | `github.aw.import-inputs.role` — `aw` is not a recognized `github` context property | Fix the expression source (likely in `shared/control.md` or similar shared import) to reference the correct context path for import-inputs role instead of the nonexistent `github.aw` |
| actionlint | 9 workflows using github-mcp-app-token | error | `steps.github-mcp-app-token.outputs.token` referenced but no step with id `github-mcp-app-token` exists in that job — likely a step id mismatch or the token-minting step was removed/renamed | Verify/restore the step id producing the GitHub App token in the relevant job, or fix the reference to the correct step id |
| actionlint/shellcheck | 33 workflows | error (SC2129, style) | Multiple individual `>> file` redirects in a generated shell script; actionlint's shellcheck integration flags this as an error in strict mode | Consolidate the shell script's redirect pattern to `{ cmd1; cmd2; } >> file` in the shared script source that generates this step |
| aw doctor | aw-doctor-target.yml include | warning (info) | `.github/workflows/aw.json` in `target/aw.yml` includes list is ignored — not a valid include type | Not actionable here (informational); if intentional, remove from includes list to avoid noise |
Because actionlint failed compilation, `zizmor`, `poutine`, `runner-guard`, `grant`, `grype`, and `syft` never executed on this target — no container, vulnerability, license, or supply-chain findings are available for this run.
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
Compiler summary:
```
Target: githubnext/gh-aw-cao
Exit code: 1
Workflow sources: 43
Compiled locks: 43
```
Sample actionlint errors (full report contains 152 total, truncated here):
```
.github/workflows/aw-doctor.lock.yml:478:29: error: [expression] property "github-mcp-app-token" is not defined in object type {...}
github-token: ${{ steps.github-mcp-app-token.outputs.token || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
.github/workflows/aw-doctor.lock.yml:1187:29: error: [expression] property "aw" is not defined in object type {...}
if: ${{ always() && github.aw.import-inputs.role == 'orchestrator' }}
.github/workflows/aw-doctor.lock.yml:1505:9: error: [shellcheck] SC2129:style:7:1: Consider using { cmd1; cmd2; } >> file instead of individual redirects
.github/workflows/software-development-practices.lock.yml:1596: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 || '' }}
✗ actionlint failed
strict mode: actionlint found 152 errors in workflows - workflows must have no actionlint errors in strict mode
```
No token-like or credential-like values were present in the reviewed output.
Control plane context
- Correlation ID: `34022856785-348`
- Central repository: `githubnext/gh-aw-cao`
- Control plane run URL: https://github.com/githubnext/gh-aw-cao/actions/runs/34022856785
> Generated by [:shield: AW Doctor / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/34022856785) · copilot · auto · 43.7 AIC · ⌖ 7.3 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 20, 2026, 8:53 AM UTC
Contributor guide
Research direction
Start with the reported strict `gh aw compile` output and inspect the affected `.github/workflows/*.md` sources, especially `shared/control.md` or similar shared imports. Correct the source-level workflow inputs, context references, token step references, and shell redirect pattern without editing generated `.lock.yml` files. Done means strict compilation and the listed security scans pass cleanly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, shell
- Domain
- ci-cd, devops, security, tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100