You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Static analysis of 246 agentic workflows with four tools. Findings are essentially stable vs. 2026-06-12; the only movement is lock-file churn (runner-guard RGS-004 +12 as q/dev-hawk/ai-moderator each gained ~4 generated steps). No new affected files, no new rule+file combinations, no new exposure. All High runner-guard findings map to already-closed static-analysis issues, so 0 new issues were created.
New Issues Created: 0 (all High findings map to closed issues)
Findings by Tool
Tool
Total
High
Medium
Low
Info
zizmor (security)
538
1
2
31
504
poutine (supply chain)
24
—
—
—
24*
actionlint (linting)
1,053
—
—
—
—
runner-guard (taint)
328
317
11
—
—
*poutine: 12 error, 1 warning, 11 note.
Clustered Findings
Zizmor
Issue Type
Severity
Count
Affected
template-injection
Informational
503
~245 lock files (Execute GitHub Copilot CLI step)
obfuscation
Low
28
lock files using ${{ '' }} for GH_AW_WIKI_NOTE
template-injection
Low
3
a few lock files
excessive-permissions
Medium
1
dependabot-repair.lock.yml:392
artipacked
Medium
1
daily-geo-optimizer.lock.yml:1569
superfluous-actions
Informational
1
1 lock file
github-env
High
1
dev-hawk.lock.yml:1769
The single High zizmor finding (github-env) already carries a # zizmor: ignore[github-env] annotation (GITHUB_SERVER_URL is set by Actions, not user input) — reviewed/accepted, persisting ~22 days.
Poutine
Issue Type
Severity
Count
Affected
untrusted_checkout_exec
error
12
dependabot-worker, smoke-workflow-call(-with-inputs) — all # poutine:ignore
Issues created: none. Every High rule+file combo maps to an already-closed[static-analysis] issue (verified via GitHub search), so per dedup policy they are skipped:
1. RGS-004 (High, 301 across q/dev-hawk/ai-moderator) — issue_comment/workflow_run-triggered workflows with secrets/write access. Runner-guard flags every privileged step because it cannot see the framework-level roles/activation gate that actually restricts execution; prior issues were reviewed and closed for this reason.
2. zizmor github-env (High, dev-hawk.lock.yml:1769) — annotated # zizmor: ignore[github-env]; accepted, not a live risk.
Issue: zizmor flags template-injection (Informational) on the generated Execute GitHub Copilot CLI step in ~245 lock files. Affected: ~245 generated .lock.yml.
Prompt to Copilot Agent:
You are reducing zizmor `template-injection` (Informational) noise emitted by the
gh-aw COMPILER, NOT hand-editing generated .lock.yml files.
Rule: template-injection — (docs.zizmor.sh/redacted)
Problem: zizmor flags the generated "Execute GitHub Copilot CLI" step in ~245 lock
files. Informational and framework-controlled, but the volume (506) drowns out signal.
Fix (in the templates under pkg/, not the .lock.yml output):
1. Find the template emitting the "Execute GitHub Copilot CLI" step.
2. Where github.* context feeds a run: block, route it via an env: mapping and
reference $ENV_VAR in the script body instead of inlining ${{ ... }}.
3. For provably-constant expansions, add a scoped
`# zizmor: ignore[template-injection]` with a one-line justification.
4. Recompile and confirm the template-injection count drops.
Pattern: replace run: echo "${{ github.event.issue.title }}"
with env: { ISSUE_TITLE: ${{ github.event.issue.title }} } + run: echo "$ISSUE_TITLE"
Apply at the compiler level so the fix propagates to all ~245 lock files on recompile.
New issue types: none. Resolved: none. The +12 runner-guard is entirely RGS-004 step-count growth in the same 3 known files (q/dev-hawk/ai-moderator each +4) from lock-file regeneration — not new exposure. RG severity split: High 317 / Medium 11.
Recommendations
Immediate: No new action — all High findings are reviewed/closed or annotated.
Short-term: Reduce zizmor template-injection volume at the compiler/template level (see fix prompt) to restore signal-to-noise.
Long-term: Add a runner-guard baseline so framework-gated RGS-004 workflows (q/dev-hawk/ai-moderator) stop re-flagging every privileged step.
Prevention: Whitelist the copilot-requests scope in actionlint config (known gap in 1.7.12) to clear 117 permission errors.
Next Steps
Reduce zizmor template-injection noise in compiler templates
Add a runner-guard baseline for the 3 framework-gated RGS-004 workflows
Suppress the copilot-requests permission-scope false positive in actionlint config
Continue monitoring the annotated dev-hawkgithub-env High finding
Analysis Summary
Static analysis of 246 agentic workflows with four tools. Findings are essentially stable vs. 2026-06-12; the only movement is lock-file churn (runner-guard RGS-004 +12 as q/dev-hawk/ai-moderator each gained ~4 generated steps). No new affected files, no new rule+file combinations, no new exposure. All High runner-guard findings map to already-closed static-analysis issues, so 0 new issues were created.
Findings by Tool
*poutine: 12
error, 1warning, 11note.Clustered Findings
Zizmor
Execute GitHub Copilot CLIstep)${{ '' }}forGH_AW_WIKI_NOTEdependabot-repair.lock.yml:392daily-geo-optimizer.lock.yml:1569dev-hawk.lock.yml:1769Poutine
dependabot-worker,smoke-workflow-call(-with-inputs)— all# poutine:ignoresmoke-copilot-arm.lock.yml(ubuntu-24.04-arm)Actionlint
run:blocksunexpected key "queue" for concurrencycopilot-requests(gap in actionlint 1.7.12)Runner-Guard
q(122),dev-hawk(91),ai-moderator(88)runBlockIssues created: none. Every High rule+file combo maps to an already-closed
[static-analysis]issue (verified via GitHub search), so per dedup policy they are skipped:Top Priority
1. RGS-004 (High, 301 across q/dev-hawk/ai-moderator) —
issue_comment/workflow_run-triggered workflows with secrets/write access. Runner-guard flags every privileged step because it cannot see the framework-levelroles/activation gate that actually restricts execution; prior issues were reviewed and closed for this reason.2. zizmor
github-env(High, dev-hawk.lock.yml:1769) — annotated# zizmor: ignore[github-env]; accepted, not a live risk.Fix Suggestion —
template-injection(zizmor, 506 findings, highest volume)Issue: zizmor flags
template-injection(Informational) on the generatedExecute GitHub Copilot CLIstep in ~245 lock files. Affected: ~245 generated.lock.yml.Prompt to Copilot Agent:
All Findings — Detail by File
Runner-guard (High): q.lock.yml RGS-004×122 · dev-hawk.lock.yml RGS-004×91 (+zizmor github-env High, annotated) · ai-moderator.lock.yml RGS-004×88 (+RGS-005) · daily-model-inventory RGS-012×4 · visual-regression-checker RGS-012×2 · daily-byok-ollama-test RGS-012×2 + RGS-018×1 · docs-noob-tester RGS-012×1 · daily-multi-device-docs-tester RGS-012×1 · smoke-codex/smoke-claude/daily-sentrux-report/daily-cli-performance/copilot-setup-steps RGS-018×1 each.
Runner-guard (Medium): RGS-005 → ai-moderator, q, agentic_commands.yml · RGS-019 → error-message-lint.yml, windows-cli-integration.yml · RGS-007 → aoai-endpoint-smoke-test.yml (
azure/login@v2).Poutine: untrusted_checkout_exec ×12 (all
# poutine:ignore) → dependabot-worker, smoke-workflow-call(-with-inputs); unverified-creator ×8; unverified_script_exec ×3; pr_runs_on_self_hosted ×1 → smoke-copilot-arm.Historical Trends
New issue types: none. Resolved: none. The +12 runner-guard is entirely RGS-004 step-count growth in the same 3 known files (q/dev-hawk/ai-moderator each +4) from lock-file regeneration — not new exposure. RG severity split: High 317 / Medium 11.
Recommendations
template-injectionvolume at the compiler/template level (see fix prompt) to restore signal-to-noise.copilot-requestsscope in actionlint config (known gap in 1.7.12) to clear 117 permission errors.Next Steps
template-injectionnoise in compiler templatescopilot-requestspermission-scope false positive in actionlint configdev-hawkgithub-envHigh findingReferences: