feat(agents): add Challenger / Devil's Advocate agent template + fact-checking skill#603
Conversation
…g review pattern.\nVerified against 200+ issues in production squads.\nCloses bradygaster#598
…s Advocate / Challenger template.\nProvides auto-spawn integration pattern for coordinators.\nCloses bradygaster#598
- 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: - #610 → PAO (broken link, 5 min fix, unblocks #611) - #590 → EECOM (getPersonalSquadRoot bug, P0) - #592, #611 → Flight review - #588 → Procedures (model list update) PR deduplication: 10 PRs consolidate to 7 - Merge: #607, #603, #606 - Close as duplicates: #605, #604, #602 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
🔍 Squad Team ReviewReviewed by: Procedures (Prompt Architect) — Pass 3 of consensus ceremony Review SummaryThis PR adds fact-checking capabilities, enabling skills to verify claims and validate information quality. Process NotePer our team's documented proposal-first policy (.squad/decisions.md): "Meaningful changes require a proposal in docs/proposals/ before execution." This is a feature-class change that needs a proposal document before merge. What's Needed
Thank you for the contribution! The implementation looks solid — we just need the process alignment. 🙏 ⏸️ Action: HOLD — awaiting proposal + retarget to dev |
#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: - #610 → PAO (broken link, 5 min fix, unblocks #611) - #590 → EECOM (getPersonalSquadRoot bug, P0) - #592, #611 → Flight review - #588 → Procedures (model list update) PR deduplication: 10 PRs consolidate to 7 - Merge: #607, #603, #606 - Close as duplicates: #605, #604, #602 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(prompts): update model catalog to current platform offerings (#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 (#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 (#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>
* 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: - #610 → PAO (broken link, 5 min fix, unblocks #611) - #590 → EECOM (getPersonalSquadRoot bug, P0) - #592, #611 → Flight review - #588 → Procedures (model list update) PR deduplication: 10 PRs consolidate to 7 - Merge: #607, #603, #606 - Close as duplicates: #605, #604, #602 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): log work session — triage, fixes, research Round 1 outcomes: - PAO: #610 docs link already resolved - EECOM: #590 personal squad path fix (getPersonalSquadRoot) - Procedures: #588 model catalog updated to current platform - Flight: #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 #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 (#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() (#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 #626 learnings Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…#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: - #610 → PAO (broken link, 5 min fix, unblocks #611) - #590 → EECOM (getPersonalSquadRoot bug, P0) - #592, #611 → Flight review - #588 → Procedures (model list update) PR deduplication: 10 PRs consolidate to 7 - Merge: #607, #603, #606 - Close as duplicates: #605, #604, #602 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): log work session — triage, fixes, research Round 1 outcomes: - PAO: #610 docs link already resolved - EECOM: #590 personal squad path fix (getPersonalSquadRoot) - Procedures: #588 model catalog updated to current platform - Flight: #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 #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 (#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 (#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 (#624, #620, #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>
* 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: - #610 → PAO (broken link, 5 min fix, unblocks #611) - #590 → EECOM (getPersonalSquadRoot bug, P0) - #592, #611 → Flight review - #588 → Procedures (model list update) PR deduplication: 10 PRs consolidate to 7 - Merge: #607, #603, #606 - Close as duplicates: #605, #604, #602 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore(squad): log work session — triage, fixes, research Round 1 outcomes: - PAO: #610 docs link already resolved - EECOM: #590 personal squad path fix (getPersonalSquadRoot) - Procedures: #588 model catalog updated to current platform - Flight: #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 #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 (#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 (#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 #613 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: update Procedures history with #613 fix implementation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bradygaster
left a comment
There was a problem hiding this comment.
FIDO Quality Review — PR #603: Challenger / Devil's Advocate agent
Verdict: ✅ MERGE (with notes)
Findings
✅ Charter structure: challenger.md follows the charter template well — has Identity, What I Own, How I Work, Boundaries, Iterative Retrieval, Ceremony Integration, Model, and Voice sections. Good alignment with .squad/templates/charter.md.
✅ Fact-checking skill: .squad/skills/fact-checking/SKILL.md has proper frontmatter (name, description, license, metadata block with confidence). Review methodology and output format are clear and practical.
✅ Additive: Creates new files only, no modifications to existing code.
.squad/skills/fact-checking/SKILL.md— places skill in the project's own.squad/directory (team state). This is correct for a team-level skill, not a distributable template skill..squad/templates/agents/challenger.md— creates a new directory. This is fine as a team-level agent template.- Note: if this is intended as a distributable template (for all Squad users), it should go in
packages/squad-cli/templates/instead.
Missing changeset: No .changeset/ file, but since this adds to .squad/ (team state, not published packages), a changeset may not be required.
Target branch: Targets main — acceptable for team state changes.
Good contribution. The Challenger agent concept fills a real gap in the team's quality review workflow.
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 #605, #604, #602 - Procedures rebased & merged PR #619 (model catalog) - FIDO reviewed 9 community PRs: approved 3, change-requested 6 Round 3 (Community Merges): - Coordinator merged 3 approved community PRs (#625, #603, #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>
…r#608) * feat: version bump to 0.8.6-preview, auto-link detection, docs updates - Bump all packages from 0.8.5.1 to 0.8.6-preview - Add checkAutoLink() to cli-entry.ts for local dev detection - Update CONTRIBUTING.md with local dev versioning and npm link docs - Update Kobayashi charter with release versioning sequence - Add scrollback and auto-link decisions to inbox - File 13 REPL UX issues (bradygaster#595-bradygaster#607) from screenshot review Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * test: add REPL UX E2E tests — verify what users actually see Spawn the real CLI binary via child_process and assert against actual terminal output. 22 tests across 6 categories: - First Run (no team): welcome banner once, init prompt visible, no coordinator label, no ExperimentalWarning, no Resumed session - Clean Output: no warnings on --help, --version, first-run; stderr clean on --version - Banner Renders Once: version banner and welcome each appear exactly once, no duplicate taglines - Message Labels: Squad branding (not coordinator) in help, welcome, and error messages - Markdown Rendering: no raw **bold** asterisks leak to terminal - Work Gating: status/doctor work in empty dirs without crashing All tests use child_process.spawn with ANSI stripping, NO_COLOR=1, TERM=dumb, temp directories for isolation, and text-pattern assertions (no sleep-based timing). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: REPL UX fixes — init guard, scrollback, banner, labels, markdown, tests P0 fixes: - bradygaster#596: squad init now scaffolds all required files (team.md, routing.md, decisions.md, agents/, ceremonies.md) - bradygaster#597: Coordinator refuses work when no team.md exists, redirects to init - bradygaster#595: Completed messages render via Ink Static for full scrollback history - bradygaster#601: Ghost text eliminated by Static/dynamic message split P1 fixes: - bradygaster#598: Banner renders once (sync init instead of lazy useEffect) - bradygaster#599: Coordinator label changed from 'coordinator:' to 'Squad:' - bradygaster#600: Inline markdown rendering (**bold**, *italic*, code) - bradygaster#602: SQLite ExperimentalWarning suppressed at CLI entry - bradygaster#603: Shell gates work requests when no team exists - bradygaster#604: Session resume skipped on first run (no team.md) Tests: - 30 new unit tests in test/repl-ux-fixes.test.ts covering all fixes - 22 new E2E tests in test/repl-ux-e2e.test.ts emulating terminal output - Updated existing tests for new coordinator prompt text Closes bradygaster#595, bradygaster#596, bradygaster#597, bradygaster#598, bradygaster#599, bradygaster#600, bradygaster#601, bradygaster#602, bradygaster#603, bradygaster#604 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
) * 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 #605, #604, #602 - Procedures rebased & merged PR #619 (model catalog) - FIDO reviewed 9 community PRs: approved 3, change-requested 6 Round 3 (Community Merges): - Coordinator merged 3 approved community PRs (#625, #603, #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 (#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 (#597) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…-checking skill (bradygaster#603) * feat(skills): add fact-checking skill\n\nAdds challenger/fact-checking review pattern.\nVerified against 200+ issues in production squads.\nCloses bradygaster#598 * feat(agents): add challenger agent charter template\n\nGeneric Devil's Advocate / Challenger template.\nProvides auto-spawn integration pattern for coordinators.\nCloses bradygaster#598
…-checking skill (bradygaster#603) * feat(skills): add fact-checking skill\n\nAdds challenger/fact-checking review pattern.\nVerified against 200+ issues in production squads.\nCloses bradygaster#598 * feat(agents): add challenger agent charter template\n\nGeneric Devil's Advocate / Challenger template.\nProvides auto-spawn integration pattern for coordinators.\nCloses bradygaster#598
…#876) * Add enforcement wiring step to hiring process + workflow wiring guide (#592) Fixes #591 - Added step 7 (Wire enforcement) to Adding Team Members in squad.agent.md - Added workflow-wiring-guide.md with configuration surface area, wiring instructions, common mistakes, and verification checklist - Added appendix walkthroughs for code reviewer (gate pattern) and documenter (follow-up trigger pattern) Co-authored-by: Jonathan Ben Ami <jbenami@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * feat(agents): add Challenger / Devil's Advocate agent template + fact-checking skill (#603) * feat(skills): add fact-checking skill\n\nAdds challenger/fact-checking review pattern.\nVerified against 200+ issues in production squads.\nCloses #598 * feat(agents): add challenger agent charter template\n\nGeneric Devil's Advocate / Challenger template.\nProvides auto-spawn integration pattern for coordinators.\nCloses #598 * feat: add APM integration for skill publishing and installation Closes #824 ## Changes ### New command: squad skill - squad skill publish [<name>] — exports skill(s) to APM format, generating/updating apm.yml - squad skill install <source> — installs a skill from APM registry - Supports owner/repo, owner/repo/skill-name, and direct URLs - Uses GitHub CLI to fetch from repos that have apm.yml or .squad/skills/ - Writes .apm-source.json metadata to track skill origin - squad skill list — lists installed skills with source provenance ### Updated: squad init - Now generates �pm.yml at project root alongside .squad/ - Follows skipExisting semantics (safe to re-run) - apm.yml includes skills, instructions, and prompts sections ### Updated: squad help - Added skill command to help text with usage examples ## APM format apm.yml is the Agent Package Manager manifest — package.json for AI agent context. See: https://github.com/microsoft/apm The manifest declares skills, instructions, and prompts in a portable format that �pm install can deploy to .github/, .claude/, .cursor/ etc. * chore: add changeset for APM integration * docs: update CHANGELOG.md with APM integration entry * fix(skill): use .copilot/skills/ as primary path per #430 The skills unification in #430 migrated skills from .squad/skills/ to .copilot/skills/. This updates the APM skill command to: - Check .copilot/skills/ first, fall back to .squad/skills/ (backward compat) - Use resolveSkillsDir() helper matching LocalSkillSource pattern - Update all user-facing messages and apm.yml template paths - Fix installSkillsFromSquadDir candidate order Addresses review feedback from @Meir017. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: align CHANGELOG.md with dev branch Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: add missing fs import in init.ts Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: joniba <joniba@users.noreply.github.com> Co-authored-by: Jonathan Ben Ami <jbenami@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot <Copilot@users.noreply.github.com> Co-authored-by: Copilot <copilot@github.com>
…-checking skill (bradygaster#603) * feat(skills): add fact-checking skill\n\nAdds challenger/fact-checking review pattern.\nVerified against 200+ issues in production squads.\nCloses bradygaster#598 * feat(agents): add challenger agent charter template\n\nGeneric Devil's Advocate / Challenger template.\nProvides auto-spawn integration pattern for coordinators.\nCloses bradygaster#598
…#876) * Add enforcement wiring step to hiring process + workflow wiring guide (#592) Fixes #591 - Added step 7 (Wire enforcement) to Adding Team Members in squad.agent.md - Added workflow-wiring-guide.md with configuration surface area, wiring instructions, common mistakes, and verification checklist - Added appendix walkthroughs for code reviewer (gate pattern) and documenter (follow-up trigger pattern) Co-authored-by: Jonathan Ben Ami <jbenami@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * feat(agents): add Challenger / Devil's Advocate agent template + fact-checking skill (#603) * feat(skills): add fact-checking skill\n\nAdds challenger/fact-checking review pattern.\nVerified against 200+ issues in production squads.\nCloses #598 * feat(agents): add challenger agent charter template\n\nGeneric Devil's Advocate / Challenger template.\nProvides auto-spawn integration pattern for coordinators.\nCloses #598 * feat: add APM integration for skill publishing and installation Closes #824 ## Changes ### New command: squad skill - squad skill publish [<name>] — exports skill(s) to APM format, generating/updating apm.yml - squad skill install <source> — installs a skill from APM registry - Supports owner/repo, owner/repo/skill-name, and direct URLs - Uses GitHub CLI to fetch from repos that have apm.yml or .squad/skills/ - Writes .apm-source.json metadata to track skill origin - squad skill list — lists installed skills with source provenance ### Updated: squad init - Now generates �pm.yml at project root alongside .squad/ - Follows skipExisting semantics (safe to re-run) - apm.yml includes skills, instructions, and prompts sections ### Updated: squad help - Added skill command to help text with usage examples ## APM format apm.yml is the Agent Package Manager manifest — package.json for AI agent context. See: https://github.com/microsoft/apm The manifest declares skills, instructions, and prompts in a portable format that �pm install can deploy to .github/, .claude/, .cursor/ etc. * chore: add changeset for APM integration * docs: update CHANGELOG.md with APM integration entry * fix(skill): use .copilot/skills/ as primary path per #430 The skills unification in #430 migrated skills from .squad/skills/ to .copilot/skills/. This updates the APM skill command to: - Check .copilot/skills/ first, fall back to .squad/skills/ (backward compat) - Use resolveSkillsDir() helper matching LocalSkillSource pattern - Update all user-facing messages and apm.yml template paths - Fix installSkillsFromSquadDir candidate order Addresses review feedback from @Meir017. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: align CHANGELOG.md with dev branch Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: add missing fs import in init.ts Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: joniba <joniba@users.noreply.github.com> Co-authored-by: Jonathan Ben Ami <jbenami@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot <Copilot@users.noreply.github.com> Co-authored-by: Copilot <copilot@github.com>
Summary
Addresses #598 — Devil's Advocate / Challenger agent pattern.
Adds two deliverables:
1.
.squad/templates/agents/challenger.mdGeneric challenger agent charter template. Teams drop this in as their "Q", "Advocate", "Auditor", or any role name that fits. The template includes:
2.
.squad/skills/fact-checking/SKILL.mdFact-checking skill that backs the challenger agent:
Prior Art
Field-tested as the "Q" agent across 200+ issues. Concrete catches:
False positive rate ~15% (challenged things that were correct). Still worthwhile — low cost, high signal.
Checklist
Closes #598