githubnext / githubnext/gh-aw-cao

[aw-doctor:compiler-security] Strict-mode actionlint: 152 errors across 33 compiled workflows

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

Description

Compiling all 43 gh-aw workflows in `githubnext/gh-aw-cao` (sha `df863d7`) with strict-mode actionlint failed with exit code 1. Actionlint found 152 errors across 33 compiled `.lock.yml` files, all `[expression]` type errors from undefined context properties (`aw`, `max_repos`, `rollout_percent`, `github-mcp-app-token`, `correlation_id`, `control_plane_run_url`, `central_repo`, `safe-outputs-app-token`) plus 34 `[shellcheck] SC2129` style findings. No container, license, or dependency-vulnerability scanner findings were reported. Highest-impact issue: the `github.aw.*` and dispatch-input properties referenced in these shared/imported workflow templates are not declared in the `workflow_dispatch.inputs` schema of the generated workflows, so actionlint's type checker rejects them — this is a real strict-mode compile blocker, not a false positive.

**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 (see raw evidence) | error | `property "aw" is not defined` on `github.aw.import-inputs.*` expressions (33 occurrences) | Declare/expose these fields in the generated `workflow_dispatch` inputs schema or the shared control import, or restructure the expression to reference a declared context |
| actionlint | 26 lock files | error | `property "rollout_percent" is not defined` in `workflow_dispatch.inputs`-derived object type | Add `rollout_percent` to the `inputs:` schema referenced by these expressions |
| actionlint | 26 lock files | error | `property "max_repos" is not defined` | Add `max_repos` to the `inputs:` schema |
| actionlint | 11 lock files | error | `property "github-mcp-app-token" is not defined` on steps-context object | Ensure the `github-mcp-app-token` step id exists in the same job before referencing `steps.github-mcp-app-token.outputs.token` |
| actionlint | 7 lock files | error | `property "correlation_id" is not defined` | Add `correlation_id` to `inputs:` schema |
| actionlint | 7 lock files | error | `property "control_plane_run_url" is not defined` | Add `control_plane_run_url` to `inputs:` schema |
| actionlint | 7 lock files | error | `property "central_repo" is not defined` | Add `central_repo` to `inputs:` schema |
| actionlint | 1 lock file | error | `property "safe-outputs-app-token" is not defined` | Ensure step id exists before reference |
| shellcheck | 34 lock files | style (SC2129) | "Consider using `{ cmd1; cmd2; } >> file` instead of individual redirects" | Group redirects in the generated script templates that emit these blocks |

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
```

Error category counts (from actionlint):
```
33 [expression] property "aw" is not defined
26 [expression] property "rollout_percent" is not defined
26 [expression] property "max_repos" is not defined
11 [expression] property "github-mcp-app-token" is not defined
7 [expression] property "correlation_id" is not defined
7 [expression] property "control_plane_run_url" is not defined
7 [expression] property "central_repo" is not defined
1 [expression] property "safe-outputs-app-token" is not defined
```

Shellcheck style findings: 34 occurrences of `SC2129` across lock files (grouping redirect suggestion).

Total actionlint errors: 152. Final line: `✗ actionlint failed — strict mode: actionlint found 152 errors in workflows - workflows must have no actionlint errors in strict mode`.

Affected lock files (33): aw-doctor, aw-failures-investigator, aw-maintenance-compiler-security, aw-maintenance-upgrade, dependabot-release-train-updater, dependabot, eu-cra-compliance (+5 sub-workflows), optimization (+4 sub-workflows), self-care (+9 sub-workflows), software-development-practices (+2 sub-workflows), uk-ai-advisory (+1 sub-workflow).

No zizmor, poutine, runner-guard, grant, grype, or syft findings were present in the report output.

Control plane context

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

> Generated by [:shield: AW Doctor / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/34014826554) · copilot · auto · 32 AIC · ⌖ 7.51 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, 5:53 AM UTC

Contributor guide

Open the contributing guide

Research direction

Start with the .github/workflows/*.md sources and the reported generated .lock.yml findings; do not edit generated locks. Use the gh aw MCP server's fix and compile tools, then rerun strict validation and the listed security scans. Done means all 43 workflows compile cleanly with no actionlint or shellcheck findings and the generated lock-file diffs preserve existing behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions
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
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.