From 77f4c017f6089e6faef740d70e9c88d86eae57d1 Mon Sep 17 00:00:00 2001 From: brady gaster Date: Thu, 20 Aug 2026 12:47:06 -0700 Subject: [PATCH] fix(ci): install gh-aw extension in test job to make compile gate non-skippable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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> --- .github/workflows/squad-ci.yml | 8 ++++++++ .squad/agents/fido/history.md | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/.github/workflows/squad-ci.yml b/.github/workflows/squad-ci.yml index 4d37a2236..4de46daf9 100644 --- a/.github/workflows/squad-ci.yml +++ b/.github/workflows/squad-ci.yml @@ -166,6 +166,14 @@ jobs: fi env: GH_TOKEN: ${{ github.token }} + - name: Install gh-aw extension + # Required so `gh aw --version` succeeds and the compile-gate test in + # test/gh-aw-quality.test.ts is NOT skipped. Without this step the test + # uses `it.skipIf(!ghAwAvailable)` and always skips — which is + # indistinguishable from having no gate at all. See #1732. + run: gh extension install github/gh-aw + env: + GH_TOKEN: ${{ github.token }} - name: Build run: npm run build - name: Run tests diff --git a/.squad/agents/fido/history.md b/.squad/agents/fido/history.md index 6d19fd781..c67b95703 100644 --- a/.squad/agents/fido/history.md +++ b/.squad/agents/fido/history.md @@ -3,6 +3,14 @@ Summarized by Scribe on 2026-08-19T13:11:34.130-07:00 because this history exceeded 15KB. Full pre-summary history archived at `.squad/agents/fido/history-archive-2026-08-19T13-11-34.130-07-00.md`. +## 2026-08-20 — #1732 compile gate shipped + +- **Defect confirmed:** `gh aw compile` was never a real CI gate. `test/gh-aw-quality.test.ts:978` uses `it.skipIf(!ghAwAvailable)` and `squad-ci.yml` never installed `gh-aw`, so the test always skipped in CI. +- **Fix:** Added `gh extension install github/gh-aw` step to the `test` job in `.github/workflows/squad-ci.yml`, immediately before Build. Reason: the test lives in `npm test` — wiring it into `squad-workflow-lint.yml` (which never runs `npm test`) would accomplish nothing. +- **Non-skippability verified locally:** (1) passing case: `gh aw compile --strict` on intact workflows exits 0; (2) break test: removed `squad-implement-worker.md` from temp workspace → compile exited 1 with "dispatch-workflow validation failed: workflow 'squad-implement-worker' not found" → gate fails as expected. +- **Issue split noted:** Prompt-budget gate already shipped (test:637-669). String-assertion replacement too vague — both closed without implementing. +- **Rule 5:** This gate fails if `gh aw compile --strict` exits non-zero — e.g., missing dispatch target, invalid frontmatter, or any `gh-aw` strict validation error. + ## Condensed signals - Quality gate authority for all PRs. Test assertion arrays (EXPECTED_GUIDES, EXPECTED_FEATURES, EXPECTED_SCENARIOS, etc.) MUST stay in sync with files on disk. When reviewing PRs with CI failures, always check if dev branch has the same failures — don't block PRs for pre-existing issues. 3,931 tests passing, 149 test files, ~89s runtime.