githubnext / githubnext/gh-aw-cao
[aw-maintenance:compiler-security] gh-aw compiler strict-mode findings: 144 actionlint errors block security scan pipeline
- Dominant language
- JavaScript
- Stars
- 3
- Forks
- 1
- Avg merge
- 48m
- Merged PRs (30d)
- 853
Description
Compiling `githubnext/gh-aw-cao` in strict mode fails: actionlint reported 144 errors across 31 generated lock files, blocking the compiler before zizmor/poutine/grype/syft/runner-guard/grant could run. All 144 errors reduce to 7 distinct root causes (mostly undefined `github.aw.*` / `github.event.inputs.*` properties in expression contexts) plus 1 recurring shellcheck style rule (SC2129). Highest-severity supported finding: actionlint hard failures blocking strict-mode compilation (severity: error, per actionlint). Recommended next action: run the local fixing loop below to correct the workflow `.md` sources generating these expressions, then recompile.
- **Target repository**: `githubnext/gh-aw-cao`
- **Compiler exit code**: `1`
- **Workflow sources checked**: `38`
- **Generated lock files checked**: `38`
- **Result**: `findings`
### Findings
| Tool | Workflow(s) | Severity | Finding | Remediation |
|------|-------------|----------|---------|-------------|
| actionlint | 31 lock files (e.g. `ambient-context-agents-md-curator.lock.yml`, `uk-ai-advisory.lock.yml`, `eu-cra-compliance*.lock.yml`, `self-care*.lock.yml`, `optimization*.lock.yml`, `software-development-practices*.lock.yml`) | error | `property "aw" is not defined` — expressions reference `github.aw.import-inputs.role` in `if:` conditions, but `github.aw` is not a recognized context property (31 occurrences) | Replace `github.aw.import-inputs.*` references with a supported context (e.g. `env.*` or `steps.*.outputs.*`) or declare the custom property via a supported extension mechanism in the workflow source |
| actionlint | Same set as above | error | `property "rollout_percent" is not defined` and `property "max_repos" is not defined` on `github.event.inputs.*` (23 occurrences each) — these inputs are not declared in the `workflow_dispatch`/`workflow_call` input schema of the compiled lock file | Declare `rollout_percent` and `max_repos` as inputs in the workflow's `on.workflow_dispatch.inputs` (or equivalent) in the `.md` source so the generated lock file's typed context includes them |
| actionlint | Orchestrator-family workflows (8 files, e.g. `uk-ai-advisory.lock.yml`) | error | `property "correlation_id"`, `"control_plane_run_url"`, `"central_repo"` not defined on `github.event.inputs.*` (8 occurrences each) | Add `correlation_id`, `control_plane_run_url`, and `central_repo` to the dispatch input schema in the workflow source, consistent with the standard control-plane envelope |
| actionlint | `ambient-context-agents-md-curator.lock.yml` and others (11 occurrences) | error | `property "github-mcp-app-token" is not defined` on a prior step's outputs object — the referenced step id/output is missing from the step that produces the GitHub App token | Verify the step id and output name emitting the token in the shared control source and correct the reference |
| shellcheck (via actionlint) | 31 lock files (32 occurrences) | style (SC2129) | Multiple individual `>>` redirects to the same file where `{ cmd1; cmd2; } >> file` would be preferred | Update the shared shell script template that emits these redirects to group them, or add a targeted `# shellcheck disable=SC2129` if intentional |
| zizmor / poutine / runner-guard / grant / grype / syft | not applicable | not applicable | These scanners did not run — the compiler pipeline stopped after actionlint's strict-mode failure (exit code 1) before invoking downstream security/container scanners | Fix the actionlint findings above and recompile; downstream scanners will run once actionlint passes |
### Local fixing loop
1. Install or update the gh-aw extension, then configure the coding agent's MCP client to launch `gh aw mcp-server` over stdio from the target repository.
2. Give the agent the prompt below and require it to use the `fix` and `compile` MCP tools rather than editing generated `.lock.yml` files.
3. Require the agent to repeat the same full compiler validation and security scan until it passes, or stop and explain any finding that needs human action.
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 compiler summary
```
Target: githubnext/gh-aw-cao
Exit code: 1
Workflow sources: 38
Compiled locks: 38
```
Per-root-cause occurrence counts
```
31 property "aw" is not defined
23 property "rollout_percent" is not defined
23 property "max_repos" is not defined
11 property "github-mcp-app-token" is not defined
8 property "correlation_id" is not defined
8 property "control_plane_run_url" is not defined
8 property "central_repo" is not defined
32 SC2129 (shellcheck style)
```
Total actionlint errors: 144 across 31 of 38 compiled lock files. `git-status.txt` and `diff-stat.txt` are both empty, confirming no local modifications occurred during the deterministic compile step.
### Control Plane
- Correlation ID: 33808856057-28
- Central repository: githubnext/gh-aw-cao
- Control plane run URL: https://github.com/githubnext/gh-aw-cao/actions/runs/33808856057
> Generated by [:shield: AW Maintenance / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/33809378495) · copilot · auto · 22.7 AIC · ⌖ 8.17 AIC · ⊞ 13.9K · [◷](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 17, 2026, 9:48 PM UTC
Contributor guide
Research direction
Inspect the .github/workflows/*.md sources that generate the listed lock files, starting with the strict gh-aw compile findings rather than editing generated .lock.yml files. Use the repository's gh-aw MCP fix and compile loop, then review the generated diffs and rerun actionlint, shellcheck, and the downstream security scanners. Done means strict compilation and the complete security scan pipeline pass without the reported findings.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, shell
- Domain
- build-system, ci-cd, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100