feat(ci): add test count guard to prevent AI agents from deleting tests#41
Closed
feat(ci): add test count guard to prevent AI agents from deleting tests#41
Conversation
…ygaster#590) (bradygaster#620) * chore(.squad): session wrap-up — inbox merge, logs, history updates Merged 12 decision inbox entries into decisions.md. Logged mega-session covering release recovery, docs fix, 10 PR merges, discussion triage, and release hardening. Updated agent histories with session learnings. Deleted inbox files after merge: - booster-ci-audit.md, booster-ci-cleanup.md - copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md - copilot-directive-no-npx.md - eecom-version-cmd.md - pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md - pao-v090-blog.md - surgeon-v090-changelog.md, surgeon-v091-retrospective.md Updated files: - .squad/decisions.md (12 decision entries merged) - .squad/identity/now.md (current state updated) - .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new) - .squad/agents/flight/history.md (issue filing patterns, governance directives) - .squad/agents/eecom/history.md (CLI version subcommand pattern) - .squad/agents/booster/history.md (CI audit and preflight patterns) - .squad/agents/surgeon/history.md (release governance rules, retrospective) - .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: add v0.9.0 and v0.9.1 releases to What's New - v0.9.1 (Current Release): Bug fixes and hardening - Shell agent name extraction with multi-pattern fallback - Init scaffolding for typed casting files - Personal squad global mode support - Release CI/docs hardening - Doctor command improvements - v0.9.0 (Major Feature): 6 major features + stability fixes - Personal Squad Governance Layer (isolated developer workspaces) - Worktree Spawning & Distributed Work (parallel agent orchestration) - Machine Capability Discovery (auto-detect tools/models/hardware) - Cooperative Rate Limiting (predictive circuit breaker + economy mode) - Telemetry & Infrastructure (auto-wire, KEDA, session recovery) - Docs, Stability & Distribution (Astro enhancements, npm-only) - v0.8.2: Renamed from 'Current Release' to historic entry Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): triage session — 14 issues triaged, 10 PRs reviewed - Flight triaged 14 untriaged GitHub issues, created prioritized work plan - FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs - Merged 2 decisions from inbox to decisions.md - Updated Flight and FIDO agent history with team updates - Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md - Session log: 2026-03-25T15-23-triage-session.md Work session priority established: - bradygaster#610 → PAO (broken link, 5 min fix, unblocks bradygaster#611) - bradygaster#590 → EECOM (getPersonalSquadRoot bug, P0) - bradygaster#592, bradygaster#611 → Flight review - bradygaster#588 → Procedures (model list update) PR deduplication: 10 PRs consolidate to 7 - Merge: bradygaster#607, bradygaster#603, bradygaster#606 - Close as duplicates: bradygaster#605, bradygaster#604, bradygaster#602 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(prompts): update model catalog to current platform offerings (bradygaster#588) Update all model references in squad.agent.md to match the current Copilot platform catalog: - Remove stale models: claude-opus-4.6-fast, gpt-5 (standalone) - Add new models: claude-sonnet-4.6, claude-opus-4.6-1m, gpt-5.4, gpt-5.3-codex, gpt-5.4-mini - Bump code-writing defaults from claude-sonnet-4.5 to claude-sonnet-4.6 - Bump code specialist from gpt-5.2-codex to gpt-5.3-codex - Update fallback chains with new models in sensible positions - Propagate via sync-templates to all 4 derived copies Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: update procedures history and decision for model catalog refresh Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix(sdk): getPersonalSquadRoot resolves to personal-squad dir (bradygaster#590) getPersonalSquadRoot() was hardcoded to append '.squad' to the global squad directory, causing it to resolve to a nonexistent path. All users running squad consult entered Init Mode and lost their personal agents. Changed the subdirectory from '.squad' to 'personal-squad' to match the actual layout used by resolvePersonalSquadDir() and ensurePersonalSquadDir(). Added two tests verifying the correct resolution path. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix(cli): fix remaining personal-squad path in shell init (bradygaster#590) The shell's runShell() first-run check was looking for '.squad' inside the global squad directory instead of 'personal-squad', mirroring the bug EECOM already fixed in consult.ts. Also updated the matching test assertions in cli-global.test.ts. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…bradygaster#627) * chore(.squad): session wrap-up — inbox merge, logs, history updates Merged 12 decision inbox entries into decisions.md. Logged mega-session covering release recovery, docs fix, 10 PR merges, discussion triage, and release hardening. Updated agent histories with session learnings. Deleted inbox files after merge: - booster-ci-audit.md, booster-ci-cleanup.md - copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md - copilot-directive-no-npx.md - eecom-version-cmd.md - pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md - pao-v090-blog.md - surgeon-v090-changelog.md, surgeon-v091-retrospective.md Updated files: - .squad/decisions.md (12 decision entries merged) - .squad/identity/now.md (current state updated) - .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new) - .squad/agents/flight/history.md (issue filing patterns, governance directives) - .squad/agents/eecom/history.md (CLI version subcommand pattern) - .squad/agents/booster/history.md (CI audit and preflight patterns) - .squad/agents/surgeon/history.md (release governance rules, retrospective) - .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: add v0.9.0 and v0.9.1 releases to What's New - v0.9.1 (Current Release): Bug fixes and hardening - Shell agent name extraction with multi-pattern fallback - Init scaffolding for typed casting files - Personal squad global mode support - Release CI/docs hardening - Doctor command improvements - v0.9.0 (Major Feature): 6 major features + stability fixes - Personal Squad Governance Layer (isolated developer workspaces) - Worktree Spawning & Distributed Work (parallel agent orchestration) - Machine Capability Discovery (auto-detect tools/models/hardware) - Cooperative Rate Limiting (predictive circuit breaker + economy mode) - Telemetry & Infrastructure (auto-wire, KEDA, session recovery) - Docs, Stability & Distribution (Astro enhancements, npm-only) - v0.8.2: Renamed from 'Current Release' to historic entry Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): triage session — 14 issues triaged, 10 PRs reviewed - Flight triaged 14 untriaged GitHub issues, created prioritized work plan - FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs - Merged 2 decisions from inbox to decisions.md - Updated Flight and FIDO agent history with team updates - Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md - Session log: 2026-03-25T15-23-triage-session.md Work session priority established: - bradygaster#610 → PAO (broken link, 5 min fix, unblocks bradygaster#611) - bradygaster#590 → EECOM (getPersonalSquadRoot bug, P0) - bradygaster#592, bradygaster#611 → Flight review - bradygaster#588 → Procedures (model list update) PR deduplication: 10 PRs consolidate to 7 - Merge: bradygaster#607, bradygaster#603, bradygaster#606 - Close as duplicates: bradygaster#605, bradygaster#604, bradygaster#602 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): log work session — triage, fixes, research Round 1 outcomes: - PAO: bradygaster#610 docs link already resolved - EECOM: bradygaster#590 personal squad path fix (getPersonalSquadRoot) - Procedures: bradygaster#588 model catalog updated to current platform - Flight: bradygaster#612 community issue filed on routing regression - CAPCOM: CLI platform research — identified 8 releases (1.0.4→1.0.11) with 3 high-impact changes - GNC: Squad codebase research — routing regression caused by v0.9.0 prompt saturation + missing name param Round 2: Code review & quality gate - FIDO: Found same bug in shell/index.ts, enforced revision - CONTROL: Full sweep of bradygaster#590 fix, awaiting FIDO re-review Merged decisions: 1. Personal squad path canonicalization (personal-squad/) 2. Model catalog refresh (claude-sonnet-4.6, gpt-5.3-codex defaults) 3. CLI platform analysis (monorepo discovery, idle hiding, hook injection) 4. Squad regression analysis (prompt saturation, workstream replacement, missing name param) Logs created: - 6 orchestration logs (one per agent) - 1 session synthesis log with research synthesis - 4 agent history updates (team update annotations) All inbox decision files merged and deleted. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Merge: VS Code routing enforcement fix proposal (bradygaster#613) - Merged procedures-vscode-routing-fix.md from inbox to decisions.md - Cleared decision inbox after merge - Logged session finalization work Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: add count-based fallback to archiveDecisions() (bradygaster#626) archiveDecisions() silently returned null when all entries were <30 days old, allowing decisions.md to grow unboundedly. Active projects hit 145KB+ (35K tokens burned per agent spawn). Added count-based fallback: when all entries are recent but total size exceeds 20KB, archive the oldest recent entries to stay under threshold. Undated entries are preserved (not archived) per Procedures' guidance. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: update EECOM history with bradygaster#626 learnings Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…gaster#613) (bradygaster#624) * chore(.squad): session wrap-up — inbox merge, logs, history updates Merged 12 decision inbox entries into decisions.md. Logged mega-session covering release recovery, docs fix, 10 PR merges, discussion triage, and release hardening. Updated agent histories with session learnings. Deleted inbox files after merge: - booster-ci-audit.md, booster-ci-cleanup.md - copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md - copilot-directive-no-npx.md - eecom-version-cmd.md - pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md - pao-v090-blog.md - surgeon-v090-changelog.md, surgeon-v091-retrospective.md Updated files: - .squad/decisions.md (12 decision entries merged) - .squad/identity/now.md (current state updated) - .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new) - .squad/agents/flight/history.md (issue filing patterns, governance directives) - .squad/agents/eecom/history.md (CLI version subcommand pattern) - .squad/agents/booster/history.md (CI audit and preflight patterns) - .squad/agents/surgeon/history.md (release governance rules, retrospective) - .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: add v0.9.0 and v0.9.1 releases to What's New - v0.9.1 (Current Release): Bug fixes and hardening - Shell agent name extraction with multi-pattern fallback - Init scaffolding for typed casting files - Personal squad global mode support - Release CI/docs hardening - Doctor command improvements - v0.9.0 (Major Feature): 6 major features + stability fixes - Personal Squad Governance Layer (isolated developer workspaces) - Worktree Spawning & Distributed Work (parallel agent orchestration) - Machine Capability Discovery (auto-detect tools/models/hardware) - Cooperative Rate Limiting (predictive circuit breaker + economy mode) - Telemetry & Infrastructure (auto-wire, KEDA, session recovery) - Docs, Stability & Distribution (Astro enhancements, npm-only) - v0.8.2: Renamed from 'Current Release' to historic entry Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): triage session — 14 issues triaged, 10 PRs reviewed - Flight triaged 14 untriaged GitHub issues, created prioritized work plan - FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs - Merged 2 decisions from inbox to decisions.md - Updated Flight and FIDO agent history with team updates - Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md - Session log: 2026-03-25T15-23-triage-session.md Work session priority established: - bradygaster#610 → PAO (broken link, 5 min fix, unblocks bradygaster#611) - bradygaster#590 → EECOM (getPersonalSquadRoot bug, P0) - bradygaster#592, bradygaster#611 → Flight review - bradygaster#588 → Procedures (model list update) PR deduplication: 10 PRs consolidate to 7 - Merge: bradygaster#607, bradygaster#603, bradygaster#606 - Close as duplicates: bradygaster#605, bradygaster#604, bradygaster#602 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): log work session — triage, fixes, research Round 1 outcomes: - PAO: bradygaster#610 docs link already resolved - EECOM: bradygaster#590 personal squad path fix (getPersonalSquadRoot) - Procedures: bradygaster#588 model catalog updated to current platform - Flight: bradygaster#612 community issue filed on routing regression - CAPCOM: CLI platform research — identified 8 releases (1.0.4→1.0.11) with 3 high-impact changes - GNC: Squad codebase research — routing regression caused by v0.9.0 prompt saturation + missing name param Round 2: Code review & quality gate - FIDO: Found same bug in shell/index.ts, enforced revision - CONTROL: Full sweep of bradygaster#590 fix, awaiting FIDO re-review Merged decisions: 1. Personal squad path canonicalization (personal-squad/) 2. Model catalog refresh (claude-sonnet-4.6, gpt-5.3-codex defaults) 3. CLI platform analysis (monorepo discovery, idle hiding, hook injection) 4. Squad regression analysis (prompt saturation, workstream replacement, missing name param) Logs created: - 6 orchestration logs (one per agent) - 1 session synthesis log with research synthesis - 4 agent history updates (team update annotations) All inbox decision files merged and deleted. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Merge: VS Code routing enforcement fix proposal (bradygaster#613) - Merged procedures-vscode-routing-fix.md from inbox to decisions.md - Cleared decision inbox after merge - Logged session finalization work Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: rename template copies to prevent CLI instruction merging (bradygaster#613) Copilot CLI 1.0.11 discovers all *.agent.md files from cwd to git root and merges them into the coordinator prompt. Squad had 3 template copies that were being discovered and merged, causing 4x instruction duplication. Renamed template copies to .agent.md.template so only the active copy at .github/agents/squad.agent.md is discovered by the CLI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * scribe: Record spawn manifest session — template rename completion Orchestration logs: - CONTROL: Template rename (3 copies squad.agent.md → .agent.md.template) - FIDO: QA approval of template rename work - Coordinator: 3 PRs opened (bradygaster#624, bradygaster#620, bradygaster#619) Session log: Spawn manifest execution summary - Template duplication risk eliminated - Zero stale references found - Build + test: zero new failures - All work ready for merge coordination Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ygaster#611) - TypeDoc config (packages/squad-sdk/typedoc.json) targeting src/index.ts - Generation script (scripts/generate-api-docs.mjs) — produces API pages - Build integration: npm run docs:api generates markdown - Playwright tests (docs/tests/api-reference.spec.mjs) — 8 tests covering landing, classes, functions, interfaces, nav, search - Nav crosslinks: sidebar labels (SDK Guide + API Reference) - Research docs: PRD and research analysis - API reference screenshots (6 detail pages) - PR screenshots capture skill + script Review fixes applied: - Crosslink banner added to sdk.md (PAO) - Nav URL simplified to reference/api (PAO) - CI/CD build order clarified in nav plan (PAO) - Hardcoded export count replaced with > 100 assertion (Flight) - Local typedoc binary instead of npx (Flight) - TypeDoc pinned to ~0.28.18 (Flight) - Error handling added to generation + screenshot scripts (FIDO) Generated docs are NOT committed — they are built at CI/deploy time. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… (bradygaster#617) * chore(.squad): session wrap-up — inbox merge, logs, history updates Merged 12 decision inbox entries into decisions.md. Logged mega-session covering release recovery, docs fix, 10 PR merges, discussion triage, and release hardening. Updated agent histories with session learnings. Deleted inbox files after merge: - booster-ci-audit.md, booster-ci-cleanup.md - copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md - copilot-directive-no-npx.md - eecom-version-cmd.md - pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md - pao-v090-blog.md - surgeon-v090-changelog.md, surgeon-v091-retrospective.md Updated files: - .squad/decisions.md (12 decision entries merged) - .squad/identity/now.md (current state updated) - .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new) - .squad/agents/flight/history.md (issue filing patterns, governance directives) - .squad/agents/eecom/history.md (CLI version subcommand pattern) - .squad/agents/booster/history.md (CI audit and preflight patterns) - .squad/agents/surgeon/history.md (release governance rules, retrospective) - .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: add v0.9.0 and v0.9.1 releases to What's New - v0.9.1 (Current Release): Bug fixes and hardening - Shell agent name extraction with multi-pattern fallback - Init scaffolding for typed casting files - Personal squad global mode support - Release CI/docs hardening - Doctor command improvements - v0.9.0 (Major Feature): 6 major features + stability fixes - Personal Squad Governance Layer (isolated developer workspaces) - Worktree Spawning & Distributed Work (parallel agent orchestration) - Machine Capability Discovery (auto-detect tools/models/hardware) - Cooperative Rate Limiting (predictive circuit breaker + economy mode) - Telemetry & Infrastructure (auto-wire, KEDA, session recovery) - Docs, Stability & Distribution (Astro enhancements, npm-only) - v0.8.2: Renamed from 'Current Release' to historic entry Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): triage session — 14 issues triaged, 10 PRs reviewed - Flight triaged 14 untriaged GitHub issues, created prioritized work plan - FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs - Merged 2 decisions from inbox to decisions.md - Updated Flight and FIDO agent history with team updates - Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md - Session log: 2026-03-25T15-23-triage-session.md Work session priority established: - bradygaster#610 → PAO (broken link, 5 min fix, unblocks bradygaster#611) - bradygaster#590 → EECOM (getPersonalSquadRoot bug, P0) - bradygaster#592, bradygaster#611 → Flight review - bradygaster#588 → Procedures (model list update) PR deduplication: 10 PRs consolidate to 7 - Merge: bradygaster#607, bradygaster#603, bradygaster#606 - Close as duplicates: bradygaster#605, bradygaster#604, bradygaster#602 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): log work session — triage, fixes, research Round 1 outcomes: - PAO: bradygaster#610 docs link already resolved - EECOM: bradygaster#590 personal squad path fix (getPersonalSquadRoot) - Procedures: bradygaster#588 model catalog updated to current platform - Flight: bradygaster#612 community issue filed on routing regression - CAPCOM: CLI platform research — identified 8 releases (1.0.4→1.0.11) with 3 high-impact changes - GNC: Squad codebase research — routing regression caused by v0.9.0 prompt saturation + missing name param Round 2: Code review & quality gate - FIDO: Found same bug in shell/index.ts, enforced revision - CONTROL: Full sweep of bradygaster#590 fix, awaiting FIDO re-review Merged decisions: 1. Personal squad path canonicalization (personal-squad/) 2. Model catalog refresh (claude-sonnet-4.6, gpt-5.3-codex defaults) 3. CLI platform analysis (monorepo discovery, idle hiding, hook injection) 4. Squad regression analysis (prompt saturation, workstream replacement, missing name param) Logs created: - 6 orchestration logs (one per agent) - 1 session synthesis log with research synthesis - 4 agent history updates (team update annotations) All inbox decision files merged and deleted. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Merge: VS Code routing enforcement fix proposal (bradygaster#613) - Merged procedures-vscode-routing-fix.md from inbox to decisions.md - Cleared decision inbox after merge - Logged session finalization work Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: platform-neutral routing enforcement for VS Code (bradygaster#613) - Rewrite CRITICAL RULE to be platform-neutral (task + runSubagent) - Update all enforcement references to mention both dispatch mechanisms - Add routing reinforcement reminder at prompt boundary - Addresses VS Code Autopilot routing bypass reported in bradygaster#613 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: update Procedures history with bradygaster#613 fix implementation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…radygaster#588) (bradygaster#619) Update all model references in squad.agent.md to match the current Copilot platform catalog: - Remove stale models: claude-opus-4.6-fast, gpt-5 (standalone) - Add new models: claude-sonnet-4.6, claude-opus-4.6-1m, gpt-5.4, gpt-5.3-codex, gpt-5.4-mini - Bump code-writing defaults from claude-sonnet-4.5 to claude-sonnet-4.6 - Bump code specialist from gpt-5.2-codex to gpt-5.3-codex - Update fallback chains with new models in sensible positions - Propagate via sync-templates to all 4 derived copies Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ng to prevent alert fatigue (bradygaster#625) * feat(skills): add notification-routing skill -- multi-channel pub-sub routing for agent notifications * chore: remove incorrectly placed skill file * feat(skills): add notification-routing skill -- multi-channel pub-sub routing for agent notifications * feat(skills): add notification-routing skill to squad-sdk templates * chore: add changeset for notification-routing skill * chore: fix changeset package names for notification-routing skill --------- Co-authored-by: Brady Gaster <41929050+bradygaster@users.noreply.github.com>
…r#608) Updated the security policy to include reporting guidelines and disclosure expectations.
Round 1 (Audit & Baseline): - Flight audited PR/issue state after CLI crash - FIDO verified baseline: 5,038 tests passing, dev green - Scribe merged stale decision inbox Round 2 (Execution): - Flight closed duplicate PRs bradygaster#605, bradygaster#604, bradygaster#602 - Procedures rebased & merged PR bradygaster#619 (model catalog) - FIDO reviewed 9 community PRs: approved 3, change-requested 6 Round 3 (Community Merges): - Coordinator merged 3 approved community PRs (bradygaster#625, bradygaster#603, bradygaster#608) Outcomes: - 10 PRs merged total (6 merge-plan, 3 community, 1 legacy) - 3 PRs closed as duplicates - 6 PRs awaiting author changes - Dev green: 5,038 tests passing - All 6 original merge-plan PRs complete - Decision inbox merged & deleted Artifacts: - Orchestration logs for Flight, Procedures, FIDO - Session log: 2026-03-26T06:41:00Z-crash-recovery.md - Team history updated (Flight, FIDO, Procedures) - Decisions merged to decisions.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…init-scaffold-*
consult.test.ts creates .test-setup-{hash}/ dirs in cwd and
init-scaffolding.test.ts creates .test-init-scaffold-{hash}/ dirs.
If tests crash before afterEach cleanup, these get left behind.
One .test-setup-* dir was accidentally committed and tracked.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ifact, consolidate .gitignore Removed: - publish-0.8.21.ps1, publish-0.8.22.ps1 (version-pinned one-off release helpers) - PUBLISH-README.md (companion to publish scripts) - squad-export.json (generated export snapshot, not needed in repo) .gitignore: Consolidated 3 specific .test-* patterns into single .test-* glob to cover all 15+ test artifact naming patterns that create temp dirs in cwd. Also pruned 3 dead git worktrees (squad-337, squad-348, squad-356). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
lychee v0.23.0 renamed --exclude-mail to --include-mail (inverted). Mail links are excluded by default now, so the flag is unnecessary. This caused the link checker to crash with an argument error, creating false positive issue bradygaster#554. Closes bradygaster#554 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ter#618) (bradygaster#628) * chore(squad): crash recovery complete — 10 PRs merged, 3 dupes closed Round 1 (Audit & Baseline): - Flight audited PR/issue state after CLI crash - FIDO verified baseline: 5,038 tests passing, dev green - Scribe merged stale decision inbox Round 2 (Execution): - Flight closed duplicate PRs bradygaster#605, bradygaster#604, bradygaster#602 - Procedures rebased & merged PR bradygaster#619 (model catalog) - FIDO reviewed 9 community PRs: approved 3, change-requested 6 Round 3 (Community Merges): - Coordinator merged 3 approved community PRs (bradygaster#625, bradygaster#603, bradygaster#608) Outcomes: - 10 PRs merged total (6 merge-plan, 3 community, 1 legacy) - 3 PRs closed as duplicates - 6 PRs awaiting author changes - Dev green: 5,038 tests passing - All 6 original merge-plan PRs complete - Decision inbox merged & deleted Artifacts: - Orchestration logs for Flight, Procedures, FIDO - Session log: 2026-03-26T06:41:00Z-crash-recovery.md - Team history updated (Flight, FIDO, Procedures) - Decisions merged to decisions.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore: remove leaked test fixture, gitignore .test-setup-* and .test-init-scaffold-* consult.test.ts creates .test-setup-{hash}/ dirs in cwd and init-scaffolding.test.ts creates .test-init-scaffold-{hash}/ dirs. If tests crash before afterEach cleanup, these get left behind. One .test-setup-* dir was accidentally committed and tracked. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore: repo root cleanup — remove one-off publish scripts, export artifact, consolidate .gitignore Removed: - publish-0.8.21.ps1, publish-0.8.22.ps1 (version-pinned one-off release helpers) - PUBLISH-README.md (companion to publish scripts) - squad-export.json (generated export snapshot, not needed in repo) .gitignore: Consolidated 3 specific .test-* patterns into single .test-* glob to cover all 15+ test artifact naming patterns that create temp dirs in cwd. Also pruned 3 dead git worktrees (squad-337, squad-348, squad-356). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * feat(cli): add squad config model command for model pinning (bradygaster#618) Add a new 'squad config' CLI command with 'model' subcommand that lets users manage model configuration: - squad config model — show current model config - squad config model <name> — set default model for all agents - squad config model <name> --agent <a> — pin model to specific agent - squad config model --clear — clear default model override - squad config model --clear --agent <a> — clear agent override Validates model names against MODEL_CATALOG and agent names against the .squad/agents/ directory. Uses existing SDK functions for all config read/write operations. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: add @latest to npm install commands in cli.js and package README (bradygaster#597) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Crash recovery: merged 10 PRs, closed 3 duplicates - Repo hygiene: removed test artifacts, consolidated .gitignore, cleaned garbage files, pruned 21 local + 31 remote branches - Issue triage: 12+ issues routed and closed - PR management: merged bradygaster#628 (model config), reviewed bradygaster#629, routed Tamir PRs to dev branch pending proposals Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…sion.md Closes bradygaster#610 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4 tasks
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…irst-session.md" This reverts commit 1ab2f5c.
…irst-session.md" This reverts commit 1ab2f5c.
…#631) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…gaster#631) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…rds, git safety rules Incident bradygaster#631 complete closure: - Surgeon reverted problematic commit 1ab2f5c on dev (restored 361 files) - Booster added CI deletion guards & canary checks to squad-ci.yml - RETRO documented Git Safety mandatory rules in copilot-instructions.md - PRs created and ready for merge (squad/631-ci-deletion-guard, squad/631-copilot-git-safety) - Issue bradygaster#631 closed with incident summary Team memory updated: - Orchestration log: 2026-03-26T17-28-631-closure.md - Session log: 2026-03-26T17-28-631-closure.md Incident response: Full parallel execution by Surgeon, Booster, RETRO agents. Resolution: EMU auth restrictions resolved, manual coordination by Coordinator. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CI: Add source tree canary and large deletion guard
…s.md Add git safety rules to copilot-instructions.md
9d947f6 to
238b139
Compare
Adds a CI step that compares the current test count against a baseline stored in .github/test-baseline.json. PRs that reduce the test count below baseline are rejected. Also updates copilot-instructions.md with explicit 'never delete tests' directive for @copilot and other AI agents. Closes #39 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
238b139 to
8d8c4f6
Compare
Owner
Author
|
Retargeted to bradygaster/squad — upstream PR open. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feat(ci): Add test count guard to prevent AI agents from deleting tests
Closes #39
Problem
AI coding agents sometimes delete or weaken tests to make failing code pass — the "green bar at any cost" anti-pattern. This is the same class of destructive shortcut that caused #631 on bradygaster/squad (361 files deleted by @copilot).
Solution
Three defense layers:
1. Test Count Guard (CI)
.github/scripts/test-count-guard.mjs— compares actual test count against baseline:Added as a CI step in
squad-ci.ymlafter "Run tests".2. Test Baseline
.github/test-baseline.json— stores expected minimum test count (4,662 tests). Can only be updated with explicit human approval.3. Copilot Instructions Directive
Added "Test Integrity" section to
.github/copilot-instructions.md:.skipor change assertions to weaker formsTests
8 tests in
test/ci/test-count-guard.test.tscovering:Files Changed (5)
.github/scripts/test-count-guard.mjs.github/test-baseline.json.github/workflows/squad-ci.yml.github/copilot-instructions.mdtest/ci/test-count-guard.test.ts