githubnext / githubnext/gh-aw-cao

[aw-doctor:compiler-security] Compiler strict-mode failure: undefined safe-outputs-app-token step reference

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

Description

Compiler exit code 1: actionlint found 2 strict-mode errors in `githubnext/gh-aw-cao` referencing an undefined step output `safe-outputs-app-token` in `self-care-dashboard-performance.md` and `self-care-pages-health.md`. Highest-severity supported finding: strict-mode compile failure (blocks deployment); no vulnerable-image, license, or downstream security-scanner findings were produced because actionlint failed before later scanners ran.

**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**: `45`
- **Generated lock files checked**: `45`
- **Result**: `findings`

| Tool | Workflow/Image | Severity | Finding | Remediation |
|------|-----------------|----------|---------|--------------|
| actionlint | self-care-dashboard-performance.md (lock.yml:2283) | unknown (strict-mode error) | `steps.safe-outputs-app-token.outputs.token` referenced but `safe-outputs-app-token` step not defined in that job's context | Fix the workflow source to reference the correct step id producing the app token (or add/rename the step) so the generated lock file's GIT_TOKEN expression resolves against an existing step output; recompile with `gh aw compile` |
| actionlint | self-care-pages-health.md (lock.yml:2189) | unknown (strict-mode error) | Same undefined `safe-outputs-app-token` property referenced in GIT_TOKEN fallback expression | Same as above |

Additionally, the compiler run left 3 modified lock files uncommitted in the working tree (`self-care-data-acquisition-audit.lock.yml`, `self-care-pages-health.lock.yml`, `self-care.lock.yml`), indicating sources and committed locks are out of sync; these were not reviewed as security findings but should be reconciled by recompiling and committing.

No pyflakes/shellcheck, yamllint, zizmor, poutine, runner-guard, grant, grype, or syft findings were reported in the evidence (scan did not proceed past actionlint strict-mode gate for the affected workflows).

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: 45
Compiled locks: 45
```

```
.github/workflows/self-care-dashboard-performance.lock.yml:2283:26: error: [expression] property "safe-outputs-app-token" is not defined in object type {download-agent-output: {conclusion: string; outcome: string; outputs: {string => string}}; setup: {conclusion: string; outcome: string; outputs: {string => string}}; setup-agent-output-env: {conclusion: string; outcome: string; outputs: {string => string}}}
2283 | GIT_TOKEN: ${{ steps.safe-outputs-app-token.outputs.token || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}

.github/workflows/self-care-pages-health.lock.yml:2189:26: error: [expression] property "safe-outputs-app-token" is not defined in object type {download-agent-output: {conclusion: string; outcome: string; outputs: {string => string}}; setup: {conclusion: string; outcome: string; outputs: {string => string}}; setup-agent-output-env: {conclusion: string; outcome: string; outputs: {string => string}}}
2189 | GIT_TOKEN: ${{ steps.safe-outputs-app-token.outputs.token || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}

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

Uncommitted lock-file diffs:
```
.github/workflows/self-care-data-acquisition-audit.lock.yml | 2 +-
.github/workflows/self-care-pages-health.lock.yml | 128 +++++++++++++++------
.github/workflows/self-care.lock.yml | 2 +-
3 files changed, 96 insertions(+), 36 deletions(-)
```

Control plane context

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

> Generated by [:shield: AW Doctor / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/34164385206) · copilot · auto · 26.1 AIC · ⌖ 8.36 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 21, 2026, 9:52 PM UTC

Contributor guide

Open the contributing guide

Research direction

Inspect .github/workflows/self-care-dashboard-performance.md and self-care-pages-health.md around the referenced GIT_TOKEN expressions, then compare them with the defined step IDs. Run gh aw compile with strict validation and review the affected generated lock files, including the three listed uncommitted locks. Done means the source and locks are reconciled and the full compiler and security scan passes.

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
64/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.