githubnext / githubnext/gh-aw-cao

[aw-doctor:compiler-security] gh-aw compile: 152 actionlint errors across 33 lock files

Closed
#3,154 0 comments 0 reactions 0 assignees View on GitHub
actionlint aw-doctor aw-doctor:compiler-security compiler
Dominant language
JavaScript
Stars
3
Forks
1
Avg merge
49m
Merged PRs (30d)
837

Description

**githubnext/gh-aw-cao**: `gh aw compile --strict` failed (exit 1) with **152 actionlint errors** across 33 of 43 generated lock files. All findings are actionlint/shellcheck issues in generated `.lock.yml` output driven by the `.md` sources; no container, license, or dedicated security-scanner findings were produced because the compile aborted at the actionlint gate before those tools ran. Highest-value fix: the 73 "undefined property" errors referencing dispatch envelope fields (`central_repo`, `control_plane_run_url`, `correlation_id`, `max_repos`, `rollout_percent`) on `github.event.inputs` — these indicate the reusable dispatch/orchestrator template references `workflow_dispatch` inputs that generated workflows don't declare, breaking strict validation repo-wide.

**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 lock files (e.g. `aw-doctor`, `aw-failures-investigator`, `software-development-practices*`, `uk-ai-advisory*`) | unknown (actionlint error) | `property "central_repo"/"control_plane_run_url"/"correlation_id"/"max_repos"/"rollout_percent" is not defined` on `github.event.inputs` — dispatch envelope fields referenced but not declared as `workflow_dispatch.inputs` (73 occurrences) | Declare all referenced dispatch-envelope fields as `workflow_dispatch` inputs in the shared control/orchestrator template, or stop referencing undeclared `github.event.inputs.*` fields directly |
| actionlint | ~11 lock files (e.g. `aw-doctor`, `aw-failures-investigator`, `uk-ai-advisory*`) | unknown (actionlint error) | `property "github-mcp-app-token" is not defined` — step output referenced before/without the step existing in that job context (22 occurrences) | Ensure the `github-mcp-app-token` step id is defined in every job that references `steps.github-mcp-app-token.outputs.token`, or guard the reference |
| actionlint | ~11 lock files | unknown (actionlint error) | `property "aw" is not defined` on `github.aw.import-inputs.role` inside `if:` conditions (33 occurrences) | The custom `github.aw` context extension isn't recognized by actionlint in strict mode; declare/guard this expression per gh-aw's supported context-extension pattern so strict validation passes |
| actionlint (shellcheck) | ~11 lock files | style | `SC2129`: prefer `{ cmd1; cmd2; } >> file` over repeated individual redirects (34 occurrences) | Combine redirects in the affected `run:` block generator template |

Scan stopped at the actionlint strict-mode gate (152 errors, threshold: 0). Container image, license, zizmor, poutine, runner-guard, grant, grype, and syft checks did not execute because compilation did not reach that stage.

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

```
Target: githubnext/gh-aw-cao
Exit code: 1
Workflow sources: 43
Compiled locks: 43

✗ actionlint failed
strict mode: actionlint found 152 errors in workflows - workflows must have no actionlint errors in strict mode
```

Sample errors (full detail in build logs; no token-like or credential-like values observed):

```
.github/workflows/aw-doctor.lock.yml:478:29: error: [expression] property "github-mcp-app-token" is not defined ...
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 ...
if: ${{ always() && github.aw.import-inputs.role == 'orchestrator' }}

.github/workflows/aw-doctor.lock.yml:1505:9: error: [shellcheck] SC2129:style ...

.github/workflows/aw-doctor.lock.yml:1648:39: error: [expression] property "central_repo" is not defined ...
CAO_CENTRAL_REPOSITORY: ${{ github.event.inputs.central_repo || '' }}
```

`git-status.txt` and `diff-stat.txt` were empty (no local repo mutation occurred during the dry-run compile).

Control plane context

- Correlation ID: `34009800459-34`
- Central repository: `githubnext/gh-aw-cao`
- Control plane run URL: `https://github.com/githubnext/gh-aw-cao/actions/runs/34009800459`

> Generated by [:shield: AW Doctor / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/34009981697) · copilot · auto · 31.6 AIC · ⌖ 11.4 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, 3:55 AM UTC

Contributor guide

Open the contributing guide

Research direction

Start with the .github/workflows/*.md sources and the shared control/orchestrator template; do not edit generated .lock.yml files. Use the gh aw MCP server's fix and compile tools, then rerun strict compilation and the listed security checks. Done means the generated workflows pass actionlint, shellcheck, and the full compiler/security scan without changing existing behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, shell
Domain
ci-cd, security, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.