githubnext / githubnext/gh-aw-cao
[aw-maintenance:compiler-security] gh-aw compiler strict-mode findings: 144 actionlint errors across 31 lock files
- Dominant language
- JavaScript
- Stars
- 3
- Forks
- 1
- Avg merge
- 49m
- Merged PRs (30d)
- 837
Description
Compiling `githubnext/gh-aw-cao` with the gh-aw compiler's strict validation succeeded (all 38 workflow sources produced 38 lock files with no syntax errors), but the actionlint pass failed strict mode with **144 errors across 31 generated lock files**. All findings are actionlint expression/shellcheck errors — no vulnerable container images, license issues, or other scanner findings were reported. Findings fall into 6 categories: undefined `aw` context property (31), undefined `max_repos`/`rollout_percent` inputs (23 each), undefined `correlation_id`/`central_repo`/`control_plane_run_url` inputs (8 each), undefined `github-mcp-app-token` output (11), and SC2129 shellcheck style findings (32). Highest severity: actionlint hard failures (blocking, no severity level assigned by tool) that break strict-mode compilation.
**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**: `38`
- **Generated lock files checked**: `38`
- **Result**: `findings`
| Tool | Workflow(s) | Severity | Finding | Remediation |
|---|---|---|---|---|
| actionlint | 31 lock files (e.g. `ambient-context*.lock.yml`, `uk-ai-advisory*.lock.yml`, `eu-cra-compliance*.lock.yml`, `self-care*.lock.yml`, `optimization*.lock.yml`, `software-development-practices*.lock.yml`, `aw-maintenance*.lock.yml`, `dependabot*.lock.yml`) | unknown (blocking in strict mode) | `property "aw" is not defined` in job-output context expression (31 occurrences) | Fix the `.md` source expression referencing `aw.*` job outputs to match the actual generated job context; regenerate with `gh aw compile` |
| actionlint | 23 lock files | unknown (blocking) | `property "max_repos"` / `property "rollout_percent"` not defined in `aw_context`/dispatch input object (23 occurrences each) | Add these fields to the dispatch input schema in the `.md` source (likely `shared/control.md` or the orchestrator dispatch step) so generated expressions type-check |
| actionlint | 8 lock files | unknown (blocking) | `property "correlation_id"` / `"central_repo"` / `"control_plane_run_url"` not defined in `aw_context` object (8 occurrences each) | Align the worker dispatch envelope fields declared in source with those referenced in generated env/expression blocks |
| actionlint | 11 occurrences (`set-runtime-paths`/`gh_aw_release_cache` job outputs) | unknown (blocking) | `property "github-mcp-app-token"` not defined in job outputs object | Declare the `github-mcp-app-token` output on the producing job/step in the `.md` source |
| shellcheck (via actionlint) | 31 lock files | style (SC2129) | "Consider using `{ cmd1; cmd2; } >> file` instead of individual redirects" | Refactor generated shell script blocks in `.md` sources to batch redirects; regenerate |
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: 38
Compiled locks: 38
```
Sample actionlint errors (full report contains 144 lines, truncated here):
```
.github/workflows/ambient-context-agents-md-curator.lock.yml:531:29: error: [expression] property "github-mcp-app-token" is not defined in object type {set-runtime-paths: {...}; setup: {...}}
.github/workflows/ambient-context-agents-md-curator.lock.yml:1191:29: error: [expression] property "aw" is not defined in object type {action: string; ...}
.github/workflows/ambient-context-agents-md-curator.lock.yml:1821:9: error: [shellcheck] shellcheck reported issue in this script: SC2129:style:7:1: Consider using { cmd1; cmd2; } >> file instead of individual redirects
.github/workflows/ambient-context-agents-md-curator.lock.yml:1853:47: error: [expression] property "max_repos" is not defined in object type {aw_context: ...}
.github/workflows/ambient-context-agents-md-curator.lock.yml:1855:46: error: [expression] property "rollout_percent" is not defined in object type {aw_context: ...}
✗ actionlint failed
strict mode: actionlint found 144 errors in workflows - workflows must have no actionlint errors in strict mode
```
No CVE/grype/syft/poutine/zizmor/runner-guard/license findings appeared in the report.
Control plane context
- Correlation ID: `33837966257-47`
- Central repository: `githubnext/gh-aw-cao`
- Control plane run URL: https://github.com/githubnext/gh-aw-cao/actions/runs/33837966257
> Generated by [:shield: AW Maintenance / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/33837966257) · copilot · auto · 34.2 AIC · ⌖ 9.93 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 18, 2026, 4:52 AM UTC
Contributor guide
Research direction
Start with .github/workflows/*.md, especially shared/control.md and the orchestrator dispatch step; inspect the source expressions and shell blocks behind the generated lock-file findings. Run gh aw compile with strict validation and compare generated lock files, then confirm actionlint, shellcheck, and the listed security scans pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, javascript, 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