Repository navigation
fix(ci): wire gh aw compile as a real CI gate (#1732) - #1775
Conversation
…-skippable The compile test at test/gh-aw-quality.test.ts:978 guards with it.skipIf(!ghAwAvailable). Because squad-ci.yml never installed the gh-aw extension, ghAwAvailable was always false in CI — the test always skipped, which is indistinguishable from having no gate. Fix: add 'gh extension install github/gh-aw' to the test job immediately before the Build step. Placement rationale: the compile assertion runs as part of npm test, so the extension must be present when that command runs. squad-workflow-lint.yml only runs actionlint/ shellcheck and never invokes npm test, making it the wrong home. Non-skippability verified locally: - Passing: intact workflows compile --strict → exit 0 - Break: removed squad-implement-worker.md → compile exited 1 with 'dispatch-workflow validation failed: workflow not found' This gate fails if: gh aw compile --strict exits non-zero (missing dispatch target, invalid frontmatter, any gh-aw strict validation error). Issue #1732 splits three ways; this PR ships only the compile gate: - SHIP: this gate - CLOSE/done: prompt-budget gate — already at test:637-669 - CLOSE/skip: string-assertion replacement — too vague to action Closes #1732 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
🟡 Impact Analysis — PR #1775Risk tier: 🟡 MEDIUM 📊 Summary
🎯 Risk Factors
📦 Modules Affectedci-workflows (1 file)
squad-state (1 file)
This report is generated automatically for every PR. See #733 for details. |
🏗️ Architectural Review
Automated architectural review — informational only. |
🛫 PR Readiness Check
PR Scope: 🔧 Infrastructure
|
| Status | Check | Details |
|---|---|---|
| ✅ | Single commit | 1 commit — clean history |
| ✅ | Not in draft | Ready for review |
| ✅ | Branch up to date | Up to date with dev |
| ❌ | Copilot review | No Copilot review yet — it may still be processing |
| ✅ | Changeset present | No source files changed — changeset not required |
| ✅ | Scope clean | |
| ✅ | No merge conflicts | No merge conflicts |
| ✅ | Copilot threads resolved | No Copilot review threads |
| ✅ | CI passing | All checks passing |
Files Changed (2 files, +16 −0)
| File | +/− |
|---|---|
.github/workflows/squad-ci.yml |
+8 −0 |
.squad/agents/fido/history.md |
+8 −0 |
Total: +16 −0
This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.
|
There was a problem hiding this comment.
Pull request overview
This PR makes the gh aw compile --strict quality gate non-skippable in CI by ensuring the gh-aw GitHub CLI extension is installed before npm test runs, so the existing Vitest compile test actually executes in CI.
Changes:
- Install
github/gh-awin thetestjob ofsquad-ci.ymlsogh aw --versionsucceeds and the compile-gate test no longer auto-skips. - Record the shipped compile-gate fix details in FIDO’s agent history.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/squad-ci.yml |
Adds a gh extension install github/gh-aw step in the test job to make the compile gate a real CI failure condition. |
.squad/agents/fido/history.md |
Documents the defect and the rationale/verification for the CI gate fix. |
Review details
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 2/2 changed files
- Comments generated: 0
- Review effort level: Lite
Summary
Fixes the silent-skip defect in the
gh aw compilegate. Before this PR, the compile test attest/gh-aw-quality.test.ts:978usedit.skipIf(!ghAwAvailable), and the CItestjob never installed thegh-awextension — soghAwAvailablewas alwaysfalseand the test always skipped. A gate that always skips is indistinguishable from no gate.The fix
Added
gh extension install github/gh-awto thetestjob in.github/workflows/squad-ci.yml, immediately before the Build step.Why
squad-ci.yml(test job), notsquad-workflow-lint.yml:The compile assertion is a Vitest test that runs as part of
npm test.squad-workflow-lint.ymlruns actionlint/shellcheck and never invokesnpm test. Installing the extension there would leave the test still skipping.Gate rule (Rule 5)
Non-skippability proof
Verified locally with
gh aw v0.86.2:Extension installed → test runs (not skipped):
gh aw --versionexits 0, soghAwAvailable = trueandit.skipIf(false)executes the test body.Break test → gate fails: Created a temp workspace mirroring the test setup (git init + copy
workflows/to.github/workflows/), then removedsquad-implement-worker.md. Result:The test would have failed. Reverted — intact compile exits 0.
Issue split — three-way
Issue #1732 covers three concerns; this PR ships only one:
test/gh-aw-quality.test.ts:637-669— CLOSE, already doneCloses #1732