githubnext / githubnext/gh-aw-cao

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

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

Description

Compiling all 43 GitHub Agentic Workflows in `githubnext/gh-aw-cao` with the gh-aw compiler's strict-mode validation suite (exit code 1) surfaced **152 actionlint errors** across 33 generated `.lock.yml` files — no other scanner ran/found issues (no container, license, poutine/zizmor/grype/syft findings observed in the report). All errors reduce to 3 root causes: (1) 33 uses of `github.aw.import-inputs.role` where `github.aw` is not a recognized expression-checker property (highest count, 33 occurrences), (2) 60 uses of undefined `workflow_dispatch` input properties (`max_repos`, `rollout_percent`, `correlation_id`, `central_repo`, `control_plane_run_url`) across control-plane envelope steps that reference `github.event.inputs.` without those inputs declared, and (3) 11 references to an undefined `github-mcp-app-token` step output plus 34 SC2129 shellcheck style findings (`Consider using { cmd1; cmd2; } >> file`) and 1 `safe-outputs-app-token` reference. Severity: all are compiler/strict-mode findings (unknown tool-assigned severity; blocking under strict mode), not exploitable vulnerabilities. **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/Image | Severity | Finding | Remediation |
|------|-----------------|----------|---------|-------------|
| actionlint (expression) | 33 lock files (e.g. `uk-ai-advisory.lock.yml`, `aw-doctor.lock.yml`, `self-care*.lock.yml`) | unknown | `github.aw.import-inputs.role` referenced in `if:` conditions but `github.aw` is not a defined expression-checker property (33 occurrences) | Use a supported context (e.g. an env var or step output populated earlier in the job) instead of `github.aw.*` in `if:` expressions; regenerate via shared control source and recompile |
| actionlint (expression) | Same 33 lock files, control-plane envelope steps | unknown | `github.event.inputs.max_repos` / `.rollout_percent` / `.correlation_id` / `.central_repo` / `.control_plane_run_url` referenced but not declared as `workflow_dispatch.inputs` on the relevant trigger object (60 occurrences) | Declare the corresponding inputs in the workflow's `workflow_dispatch` block, or read via `env.\|` fallback populated from a prior step, then recompile |
| actionlint (expression) | e.g. `aw-doctor.lock.yml`, `optimization*.lock.yml` | unknown | `steps.github-mcp-app-token.outputs.token` referenced but no step with id `github-mcp-app-token` exists in that job (11 occurrences); 1 similar case for `safe-outputs-app-token` | Add the missing app-token step (or the correct step id) before the reference, or remove the dangling fallback; recompile |
| shellcheck (SC2129) | 34 occurrences across most listed lock files | style | Multiple individual `>>` redirects to the same file; recommend consolidating with `{ cmd1; cmd2; } >> file` | Update the corresponding `.md` workflow source's run script per-file to use a single redirected block; recompile |

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 failures (representative, full detail spans 152 findings across 33 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/workflows/aw-doctor.lock.yml:1187:29: error: [expression] property "aw" is not defined in object type {action: string; ...}
.github/workflows/uk-ai-advisory.lock.yml:1401:9: error: [shellcheck] shellcheck reported issue in this script: SC2129:style:7:1: Consider using { cmd1; cmd2; } >> file instead of individual redirects
.github/workflows/software-development-practices.lock.yml:1578:35: error: [expression] property "correlation_id" 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}
```
Final compiler line: `✗ actionlint failed — strict mode: actionlint found 152 errors in workflows - workflows must have no actionlint errors in strict mode`

Control plane context

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

> Generated by [:shield: AW Doctor / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/34043402087) · copilot · auto · 39.1 AIC · ⌖ 12.1 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:53 PM UTC

Contributor guide

Open the contributing guide

Research direction

Start with the 43 `.github/workflows/*.md` sources and the reported generated `.lock.yml` findings; do not edit the lock files directly. Use the gh-aw MCP server's `fix` and `compile` tools, then review the generated diffs and rerun strict compiler and security scans. Done means all listed checks pass with no actionlint or shellcheck findings while existing behavior is preserved.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.