SquadSquad

Host Feature Matrix

πŸ”— Related: Squad 2.0 Architecture Β· Using Squad Across Clients Β· Client Compatibility

Squad features fall into five dependency classes. Features that depend only on the squad CLI (class a) behave identically everywhere because the host is not involved. Everything else depends on what the host’s coordinator file contains, whether the squad_state MCP bridge is reachable, and what the host runtime can do. The machine-readable source is test-fixtures/spec/suite-v0.2/host-feature-matrix.json (protocol squad-protocol-v2.0-rc1).

Dependency classes

ClassDepends on
asquad CLI only (host-agnostic; the host is not involved)
bcoordinator-prompt behavior (the section must be present in the host’s coordinator file or reachable on demand)
csquad_state / memory.* MCP tools (state-mcp bridge reachable from the host)
dhost runtime capability (subagent spawn, background tasks, shell, file ops, sql, per-spawn model, MCP inheritance by subagents)
eplatform CLI or MCP availability in the host (gh / glab / az / ADO MCP / GitHub MCP)

Legend

Every cell has two independent values. Capability says what the host can do; validation says how that claim was established. Neither implies the other: a supported cell may be only static-only, and an unsupported cell can be validated-test (a test proves the gap).

CapabilityMeaning
βœ… supportedThe host can do this through the stated mechanism, with no known limitation.
⚠️ degradedThe host does this partially: it works, but with the stated limitation (for example a synchronous fallback, an on-demand path, or a host runtime gap).
❌ unsupportedThe host cannot do this today β€” including every case where the coordinator section the feature relies on is absent from the host’s projected digest. Stays unsupported until the section ships.
β€” n/aNot applicable to this host (a Copilot-only surface or something that runs outside the host).
ValidationMeaning
πŸ§ͺ validated-testAn automated test in this repository asserts the cell (see evidence; CLI/SDK tests are host-independent). For unsupported digest-gap cells this is the per-host it.fails that proves the section is absent.
πŸ–₯️ validated-liveA recorded headless run of the real host CLI against a real model passed on the reference machine (Claude Code and OpenCode only, 2026-10-22); the test-level evidence also applies.
πŸ“„ static-onlyOnly the projected/canonical text or the source was inspected; no automated or live evidence for this cell.
❔ untestedNothing beyond static reading, and no live attempt was made for this host.
β›” blockedA live run was attempted for this host and could not complete for an external reason (blockedReason); confidence is the same as untested.
Evidence entryMeaning
validated-test:<file>::<name>Automated test (name * = the whole file). The title must appear literally in the file.
validated-manual:lab:<scenario>@<date>A recorded live run (see the live run log) for this host and scenario.
static-onlyMarker: the cell was (also) read statically.

Each matrix cell shows capability validation (for example βœ… πŸ§ͺ = supported, covered by an automated test; ❌ πŸ§ͺ = unsupported, proven by an expected-failure test; βœ… πŸ“„ = supported, statically inspected only; βœ… β›” = supported on paper, the live attempt for this host was blocked).

Hosts

HostCLICoordinator fileMCP configSubagentsBackgroundPer-spawn modelSubagents inherit MCP
GitHub Copilot (CLI / app / VS Code) (copilot)copilot.github/agents/squad.agent.md (canonical).mcp.jsonyesyesyesyes
Claude Code (claude)claude.claude/agents/squad.md (digest) + CLAUDE.md block.mcp.jsonyesyesnoyes
Kiro CLI (kiro)kiro-cli.kiro/agents/squad.json + .kiro/steering/squad.md (manual).kiro/settings/mcp.jsonyesnonoyes
OpenCode (opencode)opencode.opencode/agents/squad.md (primary)opencode.json (mcp.squad_state)yesyesnoyes
Cursor (cursor)cursor-agent (installed; the live smoke run was blocked by a usage limit (see live run log), so cells without a dedicated test are untested).cursor/rules/squad.mdc (alwaysApply: false) + .cursor/agents/squad.md.cursor/mcp.jsonyesnonoyes
OpenAI Codex (codex)codex (not on the reference machine β†’ static-only).codex/agents/squad.toml (developer_instructions) + AGENTS.md pointer.codex/config.toml (mcp_servers.squad_state)yesnonoyes
Google Antigravity (antigravity)agy.agents/agents/squad.md + GEMINI.md blockagent frontmatter mcpServers (or agy mcp add)yesnonono

Summary

Capability counts and validation counts are independent breakdowns of the same cells (each row sums to the feature count twice).

Hostβœ… supported⚠️ degraded❌ unsupportedβ€” n/aπŸ–₯️ validated-liveπŸ§ͺ validated-testπŸ“„ static-only❔ untestedβ›” blockedof which expected-failure gaps
copilot450600492006
claude4116318303006
kiro402630473016
opencode4116318303006
cursor402630473016
codex402630473106
antigravity393630473016

Expected failures (it.fails)

These digest gaps are pinned as expected failures, one test per host and gap: the [<host>] test turns red the moment a stack adds the section for that host. Until then the cell is unsupported for that host (validated by the failing test), never degraded or supported.

FeatureTest (title; each generated test appends the host as [<host>])HostsMeaning
monorepo-team-roottest/clients.test.ts::digest gap (expected until the stack adds it): team-root resolution (teamRoot / stateLocation / TEAM_ROOT) (it.fails, per host)copilot claude kiro opencode cursor codex antigravityThe projected digest lacks this canonical section on the listed hosts; one it.fails per host (title suffixed [<host>]) turns red the moment a stack adds it. Every listed cell is unsupported for that host until then.
dual-root-remote-modetest/clients.test.ts::digest gap (expected until the stack adds it): team-root resolution (teamRoot / stateLocation / TEAM_ROOT) (it.fails, per host)copilot claude kiro opencode cursor codex antigravityThe projected digest lacks this canonical section on the listed hosts; one it.fails per host (title suffixed [<host>]) turns red the moment a stack adds it. Every listed cell is unsupported for that host until then.
azure-devopstest/clients.test.ts::digest gap (expected until the stack adds it): Azure DevOps issue tracking (az boards / ADO) (it.fails, per host)copilot claude kiro opencode cursor codex antigravityThe projected digest lacks this canonical section on the listed hosts; one it.fails per host (title suffixed [<host>]) turns red the moment a stack adds it. Every listed cell is unsupported for that host until then.
gitlab-issuestest/clients.test.ts::digest gap (expected until the stack adds it): GitLab issue tracking (glab) (it.fails, per host)copilot claude kiro opencode cursor codex antigravityThe projected digest lacks this canonical section on the listed hosts; one it.fails per host (title suffixed [<host>]) turns red the moment a stack adds it. Every listed cell is unsupported for that host until then.
model-selectiontest/clients.test.ts::digest gap (expected until the stack adds it): per-agent model / reasoning / context-tier selection (it.fails, per host)copilot claude kiro opencode cursor codex antigravityThe projected digest lacks this canonical section on the listed hosts; one it.fails per host (title suffixed [<host>]) turns red the moment a stack adds it. Every listed cell is unsupported for that host until then.
marketplace-pluginstest/clients.test.ts::digest gap (expected until the stack adds it): plugin marketplace browse on cast (it.fails, per host)copilot claude kiro opencode cursor codex antigravityThe projected digest lacks this canonical section on the listed hosts; one it.fails per host (title suffixed [<host>]) turns red the moment a stack adds it. Every listed cell is unsupported for that host until then.

Known limitations of this evidence

  • Capability and validation are separate axes: a supported cell may be only static-only, and an unsupported digest-gap cell is validated-test because an it.fails proves the gap. Read both columns.
  • Expected failures are pinned per host and per gap (one it.fails per <gap> [<host>] pair); a section landing for one host turns exactly that host’s test red. Those cells are unsupported, never degraded.
  • Live evidence exists for Claude Code and OpenCode only (reference machine, 2026-10-22). Kiro, Codex, Antigravity and Cursor have no passing live run: their cells are validated-test only through host-independent tests, otherwise static-only, untested or blocked.
  • The opt-in headless coordinator tests (SQUAD_REAL_MODEL_TESTS=1) verify the MCP bridge through a tee’d squad state-mcp transcript (a successful tools/call of squad_state_read with key: "team.md"), not by matching stdout. No other cell claims bridge-level verification.

Matrix

Core

FeatureDepscopilotclaudekiroopencodecursorcodexantigravity
Init Mode & casting (squad init, squad cast --name, casting registry)a, bβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Work routing by ownership (routing.md, one accountable owner, named requests)bβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Response modes (Direct / Lightweight / Standard / Full) + β€œfeels heard” acknowledgementbβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Model / reasoning-effort / context-tier selection per spawnb, d❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ
Parallel fan-out of independent specialistsb, dβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Background agents (Scribe/Rai run non-blocking)dβœ… πŸ§ͺβœ… πŸ–₯️⚠️ πŸ§ͺβœ… πŸ–₯️⚠️ πŸ§ͺ⚠️ πŸ§ͺ⚠️ πŸ§ͺ
Skills (5 roots, precedence, untrusted-data rule)bβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Standalone install (no npm; squad.exe state-mcp launch spec)a (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
VS Code (runSubagent, settings default agent)dβœ… πŸ§ͺβ€” πŸ“„β€” πŸ“„β€” πŸ“„β€” πŸ“„β€” πŸ“„β€” πŸ“„
SDK-first mode (squad.config.ts, squad build, squad migrate)a (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Maintenance CLIs (squad doctor, squad health, squad nap, squad upgrade)a (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Process hygiene (never kill by image name; PID-only)bβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ

Memory

FeatureDepscopilotclaudekiroopencodecursorcodexantigravity
Scribe, decisions drop-box, agent history, orchestration logb, cβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Directive capture (β€œalways…/never…” β†’ squad_decide)b, cβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Memory governance (memory.* tools, classes, promote/audit)cβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
State backends (local / orphan / two-layer) + handshakea, c, bβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ

Quality

FeatureDepscopilotclaudekiroopencodecursorcodexantigravity
Reviewer rejection protocol & strict author lockoutbβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Rai β€” Responsible-AI reviewer (🟒/🟑/πŸ”΄)b, dβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Fact Checker β€” verification & devil’s advocatebβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ

Advanced

FeatureDepscopilotclaudekiroopencodecursorcodexantigravity
Ceremonies (before/after/manual, cooldowns)b, cβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Human team members (never spawned; routed as requests)bβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
PRD mode (decompose β†’ approve β†’ dependency-aware dispatch)bβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Git worktrees & worktree mode (issue worktrees, WORKTREE_PATH)a, b, dβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Export / import (squad export, squad import, team portability)a (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Marketplace & plugins (squad plugin marketplace …, skill install on cast)a, b❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ
MCP integration (user MCP servers discovered; MCP β†’ CLI fallback)b, dβœ… πŸ“„βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Squad RC / squad start (remote control bridge, tunnels)a, dβœ… πŸ§ͺβ€” πŸ“„β€” πŸ“„β€” πŸ“„β€” πŸ“„β€” πŸ“„β€” πŸ“„

GitHub

FeatureDepscopilotclaudekiroopencodecursorcodexantigravity
@copilot coding agent member (squad copilot, GitHub assignment)a, b, eβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Ralph β€” interactive work monitor (β€œRalph, go”)b, eβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Ralph CLI (squad triage / watch / loop β€”execute)a, e (host-independent)βœ… πŸ§ͺ⚠️ πŸ§ͺ⚠️ πŸ§ͺ⚠️ πŸ§ͺ⚠️ πŸ§ͺ⚠️ πŸ§ͺ⚠️ πŸ§ͺ
GitHub Issues mode (connect, list, route, branch β†’ PR β†’ merge)b, eβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Labels & triage (squad / squad:<member> taxonomy)a, b, eβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Project boards (squad triage --board)a, e (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
GitHub Agentic Workflows (gh-aw) integrationeβœ… πŸ§ͺβ€” πŸ“„β€” πŸ“„β€” πŸ“„β€” πŸ“„β€” πŸ“„β€” πŸ“„

Platforms

FeatureDepscopilotclaudekiroopencodecursorcodexantigravity
GitLab Issues mode (experimental, glab)b, e❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ
Azure DevOps platform (work items, PRs, az boards, ADO MCP)a, b, e❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ

Multi-squad

FeatureDepscopilotclaudekiroopencodecursorcodexantigravity
Upstream inheritance (squad upstream add|sync, inherited skills/decisions/wisdom/routing)a, bβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Multiple squads / cross-squad (squad registry|discover|delegate, cross-squad skills)a, b, eβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
SubSquads / workstreams (squad subsquads, multi-Codespace)a (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Monorepo / team-root resolution (--team-root, SQUAD_TEAM_ROOT, launch from a subfolder)a, b, c, d❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ
Dual-root remote mode (squad init --mode remote, link, externalize / internalize)a, b, c❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ❌ πŸ§ͺ

Infrastructure

FeatureDepscopilotclaudekiroopencodecursorcodexantigravity
Storage provider abstraction (FS / SQLite / external state)a, c (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Notifications (watch --notify-level, Teams/email monitors)a (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Enterprise platforms (ADO + Planner work items, Teams/ADO discussions)a, e (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Distributed mesh, capability routing, rate limiting, KEDA autoscalinga (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Aspire dashboard / OTel observability (squad aspire)a (host-independent)βœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ

Squad 2.0

FeatureDepscopilotclaudekiroopencodecursorcodexantigravity
Squad 2.0 --client projection (coordinator file + MCP config per host, rollback)a, dβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
squad_state MCP bridge reachable from the host (stdio, host-prefixed tool names)c, dβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ–₯οΈβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Capability negotiation (client ∩ backend ∩ policy)cβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Experimental conversation backend (squad_backend_*, durable-http, approvals, resume)cβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺβœ… πŸ§ͺ
Specialists (subagents) can reach squad_state tools themselvesdβœ… πŸ“„βœ… πŸ–₯οΈβœ… β›”βœ… πŸ–₯οΈβœ… β›”βœ… β”βš οΈ β›”

Per-feature detail

init-mode-casting

Init Mode & casting (squad init, squad cast --name, casting registry)

Depends on: a, b Β· docs: features/team-setup Β· concepts/your-team Β· canonical sections: Init Mode, Casting & Persistent Naming

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testCLI scaffolds .squad/; coordinator Init Mode (digest Β§0) uses squad_state_read team.md, auto-confirms headless, casts via squad cast --name, never hand-edits .squad/casting/.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registry
validated-test:test/cli/init.test.ts::*
static-only
claudeβœ… supportedπŸ–₯️ validated-liveCLI scaffolds .squad/; coordinator Init Mode (digest Β§0) uses squad_state_read team.md, auto-confirms headless, casts via squad cast --name, never hand-edits .squad/casting/. Live: cast 4 members via squad cast --name (registry pair valid); ignored the requested descriptive universe and used Apollo 13 names.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registry
validated-test:test/cli/init.test.ts::*
validated-manual:lab:init-mode@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testCLI scaffolds .squad/; coordinator Init Mode (digest Β§0) uses squad_state_read team.md, auto-confirms headless, casts via squad cast --name, never hand-edits .squad/casting/. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registry
validated-test:test/cli/init.test.ts::*
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveCLI scaffolds .squad/; coordinator Init Mode (digest Β§0) uses squad_state_read team.md, auto-confirms headless, casts via squad cast --name, never hand-edits .squad/casting/. Live: cast 4 members via squad cast --name with descriptive names; registry pair valid.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registry
validated-test:test/cli/init.test.ts::*
validated-manual:lab:init-mode@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testCLI scaffolds .squad/; coordinator Init Mode (digest Β§0) uses squad_state_read team.md, auto-confirms headless, casts via squad cast --name, never hand-edits .squad/casting/. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registry
validated-test:test/cli/init.test.ts::*
static-only
codexβœ… supportedπŸ§ͺ validated-testCLI scaffolds .squad/; coordinator Init Mode (digest Β§0) uses squad_state_read team.md, auto-confirms headless, casts via squad cast --name, never hand-edits .squad/casting/. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registry
validated-test:test/cli/init.test.ts::*
static-only
antigravityβœ… supportedπŸ§ͺ validated-testCLI scaffolds .squad/; coordinator Init Mode (digest Β§0) uses squad_state_read team.md, auto-confirms headless, casts via squad cast --name, never hand-edits .squad/casting/. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registry
validated-test:test/cli/init.test.ts::*
static-only

routing-ownership

Work routing by ownership (routing.md, one accountable owner, named requests)

Depends on: b Β· docs: features/routing Β· canonical sections: Routing, Scope Control

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§2–3: route by routing.md, exactly one owner, explicit deliverables/exclusions.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§2–3: route by routing.md, exactly one owner, explicit deliverables/exclusions.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:smoke-roster@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§2–3: route by routing.md, exactly one owner, explicit deliverables/exclusions. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§2–3: route by routing.md, exactly one owner, explicit deliverables/exclusions.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:smoke-roster@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§2–3: route by routing.md, exactly one owner, explicit deliverables/exclusions. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§2–3: route by routing.md, exactly one owner, explicit deliverables/exclusions. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§2–3: route by routing.md, exactly one owner, explicit deliverables/exclusions. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

response-modes

Response modes (Direct / Lightweight / Standard / Full) + β€œfeels heard” acknowledgement

Depends on: b Β· docs: features/response-modes Β· canonical sections: Response Mode Selection, Acknowledge Immediately β€” "Feels Heard"

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§10 carries all four modes and the acknowledge-then-spawn rule.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§10 carries all four modes and the acknowledge-then-spawn rule.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:smoke-roster@2026-10-22
validated-manual:lab:ralph-no-repo@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§10 carries all four modes and the acknowledge-then-spawn rule. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§10 carries all four modes and the acknowledge-then-spawn rule.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:smoke-roster@2026-10-22
validated-manual:lab:ralph-no-repo@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§10 carries all four modes and the acknowledge-then-spawn rule. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§10 carries all four modes and the acknowledge-then-spawn rule. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§10 carries all four modes and the acknowledge-then-spawn rule. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

model-selection

Model / reasoning-effort / context-tier selection per spawn

Depends on: b, d Β· docs: features/model-selection Β· scenarios/switching-models Β· canonical sections: Per-Agent Model Selection, Per-Agent Reasoning Effort, Per-Agent Context Tier

HostCapabilityValidationMechanismEvidence
copilot❌ unsupportedπŸ§ͺ validated-test (expected failure)Canonical Β§Model Selection + task tool model/reasoning_effort/context_tier params; .squad/config.json overrides. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): The CLI/SDK side works, but the projected digest carries no section for it, so the coordinator is not told about it on this host. Unsupported on this host until the section ships.validated-test:test/model-selector-policy.test.ts::*
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
claude❌ unsupportedπŸ§ͺ validated-test (expected failure)Task has no per-call model; only subagent-definition model: frontmatter. Digest lacks the model-selection section. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
kiro❌ unsupportedπŸ§ͺ validated-test (expected failure)Digest has no model-selection section (only model-selection-reference.md on demand); host dispatch primitive has no per-spawn model parameter, so the session model is inherited. Record as a host limitation, not a bug: squad.agent.md already says not to rely on per-spawn model control cross-platform. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
opencode❌ unsupportedπŸ§ͺ validated-test (expected failure)Model is set per agent in opencode.json (agent.squad.model), not per task call; reasoning/context tiers unsupported. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
cursor❌ unsupportedπŸ§ͺ validated-test (expected failure)Digest has no model-selection section (only model-selection-reference.md on demand); host dispatch primitive has no per-spawn model parameter, so the session model is inherited. Record as a host limitation, not a bug: squad.agent.md already says not to rely on per-spawn model control cross-platform. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
codex❌ unsupportedπŸ§ͺ validated-test (expected failure)Digest has no model-selection section (only model-selection-reference.md on demand); host dispatch primitive has no per-spawn model parameter, so the session model is inherited. Record as a host limitation, not a bug: squad.agent.md already says not to rely on per-spawn model control cross-platform. No Codex binary or ChatGPT/API auth on the reference machine; static-only. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
antigravity❌ unsupportedπŸ§ͺ validated-test (expected failure)Digest has no model-selection section (only model-selection-reference.md on demand); host dispatch primitive has no per-spawn model parameter, so the session model is inherited. Record as a host limitation, not a bug: squad.agent.md already says not to rely on per-spawn model control cross-platform. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only

parallel-fanout

Parallel fan-out of independent specialists

Depends on: b, d Β· docs: features/parallel-execution Β· concepts/parallel-work Β· canonical sections: Team Mode

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§6 + every dispatch adapter says to issue independent spawns in one turn; all hosts declare the subagents token.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§6 + every dispatch adapter says to issue independent spawns in one turn; all hosts declare the subagents token.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-manual:lab:parallel-fanout@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§6 + every dispatch adapter says to issue independent spawns in one turn; all hosts declare the subagents token. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§6 + every dispatch adapter says to issue independent spawns in one turn; all hosts declare the subagents token.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-manual:lab:parallel-fanout@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§6 + every dispatch adapter says to issue independent spawns in one turn; all hosts declare the subagents token. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§6 + every dispatch adapter says to issue independent spawns in one turn; all hosts declare the subagents token. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§6 + every dispatch adapter says to issue independent spawns in one turn; all hosts declare the subagents token. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
static-only

background-agents

Background agents (Scribe/Rai run non-blocking)

Depends on: d Β· docs: features/parallel-execution Β· canonical sections: Shared Decision Architecture β€” Drop-Box Pattern

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testbackground-runs token; task mode=background / read_agent.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
claudeβœ… supportedπŸ–₯️ validated-livebackground-runs token declared (F7): Claude Code runs Agent spawns in the background (subagent_stats.started_in_background in the parallel-fanout live run). F7 fixed: token added to capability-matrix.json and CAPABILITY_TOKENS_BY_HOST after the 2026-10-22 live run showed background subagents.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
validated-manual:lab:parallel-fanout@2026-10-22
kiro⚠️ degradedπŸ§ͺ validated-testNo background-runs token: Scribe/Rai run synchronously as the last spawn of the turn instead of in the background.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
opencodeβœ… supportedπŸ–₯️ validated-livebackground-runs token declared; task subagents run as child sessions.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
validated-manual:lab:parallel-fanout@2026-10-22
cursor⚠️ degradedπŸ§ͺ validated-testNo background-runs token: Scribe/Rai run synchronously as the last spawn of the turn instead of in the background. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
codex⚠️ degradedπŸ§ͺ validated-testNo background-runs token: Scribe/Rai run synchronously as the last spawn of the turn instead of in the background.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
antigravity⚠️ degradedπŸ§ͺ validated-testNo background-runs token: Scribe/Rai run synchronously as the last spawn of the turn instead of in the background.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts

scribe-decisions-history

Scribe, decisions drop-box, agent history, orchestration log

Depends on: b, c Β· docs: features/memory Β· concepts/memory-and-knowledge Β· canonical sections: Shared Decision Architecture β€” Drop-Box Pattern, Built-in Support Agents

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§5/Β§11; writes go through squad_decide / squad_state_append; Scribe merges inbox β†’ decisions.md.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§5/Β§11; writes go through squad_decide / squad_state_append; Scribe merges inbox β†’ decisions.md.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
validated-manual:lab:parallel-fanout@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§5/Β§11; writes go through squad_decide / squad_state_append; Scribe merges inbox β†’ decisions.md. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§5/Β§11; writes go through squad_decide / squad_state_append; Scribe merges inbox β†’ decisions.md.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
validated-manual:lab:parallel-fanout@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§5/Β§11; writes go through squad_decide / squad_state_append; Scribe merges inbox β†’ decisions.md. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§5/Β§11; writes go through squad_decide / squad_state_append; Scribe merges inbox β†’ decisions.md. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§5/Β§11; writes go through squad_decide / squad_state_append; Scribe merges inbox β†’ decisions.md. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
static-only

directive-capture

Directive capture (β€œalways…/never…” β†’ squad_decide)

Depends on: b, c Β· docs: features/directives Β· canonical sections: Directive Capture

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§16 captures persistent directives via squad_decide and dispatches implementation separately.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§16 captures persistent directives via squad_decide and dispatches implementation separately.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:directive-capture@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§16 captures persistent directives via squad_decide and dispatches implementation separately. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§16 captures persistent directives via squad_decide and dispatches implementation separately.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:directive-capture@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§16 captures persistent directives via squad_decide and dispatches implementation separately. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§16 captures persistent directives via squad_decide and dispatches implementation separately. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§16 captures persistent directives via squad_decide and dispatches implementation separately. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

memory-governance

Memory governance (memory.* tools, classes, promote/audit)

Depends on: c Β· docs: features/memory Β· canonical sections: Memory Governance Tools

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testmemory.* aliases live in the same squad_state MCP server; digest Β§16 prefers them when exposed.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/memory-governance.test.ts::*
static-only
claudeβœ… supportedπŸ–₯️ validated-livememory.* aliases live in the same squad_state MCP server; digest Β§16 prefers them when exposed.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/memory-governance.test.ts::*
validated-manual:lab:state-orphan@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testmemory.* aliases live in the same squad_state MCP server; digest Β§16 prefers them when exposed. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/memory-governance.test.ts::*
static-only
opencodeβœ… supportedπŸ–₯️ validated-livememory.* aliases live in the same squad_state MCP server; digest Β§16 prefers them when exposed.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/memory-governance.test.ts::*
validated-manual:lab:state-orphan@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testmemory.* aliases live in the same squad_state MCP server; digest Β§16 prefers them when exposed. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/memory-governance.test.ts::*
static-only
codexβœ… supportedπŸ§ͺ validated-testmemory.* aliases live in the same squad_state MCP server; digest Β§16 prefers them when exposed. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/memory-governance.test.ts::*
static-only
antigravityβœ… supportedπŸ§ͺ validated-testmemory.* aliases live in the same squad_state MCP server; digest Β§16 prefers them when exposed. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/memory-governance.test.ts::*
static-only

state-backends

State backends (local / orphan / two-layer) + handshake

Depends on: a, c, b Β· docs: features/state-backends Β· reference/state-backend-selection Β· canonical sections: State & Team Root Resolution (before mode check), Memory Governance Tools

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testsquad init|upgrade --state-backend; state-mcp resolves the backend from config.json; digest Β§16 requires squad_state_health before writes and halts without the bridge.validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backend
validated-test:test/state-backend.test.ts::*
validated-test:test/upgrade-state-backend.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_decide over the bridge lands in the squad-state branch for the %s backend, not the working tree
claudeβœ… supportedπŸ–₯️ validated-livesquad init|upgrade --state-backend; state-mcp resolves the backend from config.json; digest Β§16 requires squad_state_health before writes and halts without the bridge. F6 fixed: squad_state_health now reports State backend: local|orphan|two-layer plus the storage class and team squad dir. F8 fixed: squad_state_list without dir lists the root on orphan/two-layer.validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backend
validated-test:test/state-backend.test.ts::*
validated-test:test/upgrade-state-backend.test.ts::*
validated-manual:lab:state-orphan@2026-10-22
validated-manual:lab:state-twolayer@2026-10-22
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_decide over the bridge lands in the squad-state branch for the %s backend, not the working tree
kiroβœ… supportedπŸ§ͺ validated-testsquad init|upgrade --state-backend; state-mcp resolves the backend from config.json; digest Β§16 requires squad_state_health before writes and halts without the bridge.validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backend
validated-test:test/state-backend.test.ts::*
validated-test:test/upgrade-state-backend.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_decide over the bridge lands in the squad-state branch for the %s backend, not the working tree
opencodeβœ… supportedπŸ–₯️ validated-livesquad init|upgrade --state-backend; state-mcp resolves the backend from config.json; digest Β§16 requires squad_state_health before writes and halts without the bridge. F6 fixed: squad_state_health now reports State backend: local|orphan|two-layer plus the storage class and team squad dir. F8 fixed: squad_state_list without dir lists the root on orphan/two-layer.validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backend
validated-test:test/state-backend.test.ts::*
validated-test:test/upgrade-state-backend.test.ts::*
validated-manual:lab:state-orphan@2026-10-22
validated-manual:lab:state-twolayer@2026-10-22
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_decide over the bridge lands in the squad-state branch for the %s backend, not the working tree
cursorβœ… supportedπŸ§ͺ validated-testsquad init|upgrade --state-backend; state-mcp resolves the backend from config.json; digest Β§16 requires squad_state_health before writes and halts without the bridge. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backend
validated-test:test/state-backend.test.ts::*
validated-test:test/upgrade-state-backend.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_decide over the bridge lands in the squad-state branch for the %s backend, not the working tree
static-only
codexβœ… supportedπŸ§ͺ validated-testsquad init|upgrade --state-backend; state-mcp resolves the backend from config.json; digest Β§16 requires squad_state_health before writes and halts without the bridge.validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backend
validated-test:test/state-backend.test.ts::*
validated-test:test/upgrade-state-backend.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_decide over the bridge lands in the squad-state branch for the %s backend, not the working tree
antigravityβœ… supportedπŸ§ͺ validated-testsquad init|upgrade --state-backend; state-mcp resolves the backend from config.json; digest Β§16 requires squad_state_health before writes and halts without the bridge.validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backend
validated-test:test/state-backend.test.ts::*
validated-test:test/upgrade-state-backend.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_decide over the bridge lands in the squad-state branch for the %s backend, not the working tree

skills-precedence

Skills (5 roots, precedence, untrusted-data rule)

Depends on: b Β· docs: features/skills Β· canonical sections: Team Mode

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§17 lists .squad/skills/ β†’ .copilot/skills/ β†’ .github/skills/ β†’ .claude/skills/ β†’ .agents/skills/ with earlier-wins precedence.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/skills.test.ts::*
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§17 lists .squad/skills/ β†’ .copilot/skills/ β†’ .github/skills/ β†’ .claude/skills/ β†’ .agents/skills/ with earlier-wins precedence.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/skills.test.ts::*
validated-manual:lab:skills-precedence@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§17 lists .squad/skills/ β†’ .copilot/skills/ β†’ .github/skills/ β†’ .claude/skills/ β†’ .agents/skills/ with earlier-wins precedence. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/skills.test.ts::*
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§17 lists .squad/skills/ β†’ .copilot/skills/ β†’ .github/skills/ β†’ .claude/skills/ β†’ .agents/skills/ with earlier-wins precedence.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/skills.test.ts::*
validated-manual:lab:skills-precedence@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§17 lists .squad/skills/ β†’ .copilot/skills/ β†’ .github/skills/ β†’ .claude/skills/ β†’ .agents/skills/ with earlier-wins precedence. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/skills.test.ts::*
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§17 lists .squad/skills/ β†’ .copilot/skills/ β†’ .github/skills/ β†’ .claude/skills/ β†’ .agents/skills/ with earlier-wins precedence. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/skills.test.ts::*
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§17 lists .squad/skills/ β†’ .copilot/skills/ β†’ .github/skills/ β†’ .claude/skills/ β†’ .agents/skills/ with earlier-wins precedence. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/skills.test.ts::*
static-only

reviewer-lockout

Reviewer rejection protocol & strict author lockout

Depends on: b Β· docs: features/reviewer-protocol Β· canonical sections: Reviewer Rejection Protocol

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§12: REJECT locks out the author; revision reassigned; re-review required.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§12: REJECT locks out the author; revision reassigned; re-review required.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:reviewer-lockout@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§12: REJECT locks out the author; revision reassigned; re-review required. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§12: REJECT locks out the author; revision reassigned; re-review required.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:reviewer-lockout@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§12: REJECT locks out the author; revision reassigned; re-review required. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§12: REJECT locks out the author; revision reassigned; re-review required. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§12: REJECT locks out the author; revision reassigned; re-review required. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

rai

Rai β€” Responsible-AI reviewer (🟒/🟑/πŸ”΄)

Depends on: b, d Β· docs: features/reviewer-protocol Β· canonical sections: Rai β€” RAI Reviewer

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testCanonical Β§Rai; background by default.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ§ͺ validated-testDigest Β§13; runs in the background (background-runs declared since F7).validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§13; runs synchronously where background-runs is absent (see background-agents). Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ§ͺ validated-testDigest Β§13; background capable.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§13; runs synchronously where background-runs is absent (see background-agents). Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§13; runs synchronously where background-runs is absent (see background-agents). No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§13; runs synchronously where background-runs is absent (see background-agents). Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

fact-checker

Fact Checker β€” verification & devil’s advocate

Depends on: b Β· docs: features/reviewer-protocol Β· canonical sections: Fact Checker β€” Verification & Devil's Advocate

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§14 with βœ…/⚠️/❌/πŸ” ratings, steelman and pre-mortem.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ§ͺ validated-testDigest Β§14 with βœ…/⚠️/❌/πŸ” ratings, steelman and pre-mortem.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§14 with βœ…/⚠️/❌/πŸ” ratings, steelman and pre-mortem. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ§ͺ validated-testDigest Β§14 with βœ…/⚠️/❌/πŸ” ratings, steelman and pre-mortem.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§14 with βœ…/⚠️/❌/πŸ” ratings, steelman and pre-mortem. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§14 with βœ…/⚠️/❌/πŸ” ratings, steelman and pre-mortem. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§14 with βœ…/⚠️/❌/πŸ” ratings, steelman and pre-mortem. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

ceremonies

Ceremonies (before/after/manual, cooldowns)

Depends on: b, c Β· docs: features/ceremonies Β· canonical sections: Ceremonies

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§15 reads ceremonies.md, spawns a facilitator, records via squad_decide.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ§ͺ validated-testDigest Β§15 reads ceremonies.md, spawns a facilitator, records via squad_decide.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§15 reads ceremonies.md, spawns a facilitator, records via squad_decide. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ§ͺ validated-testDigest Β§15 reads ceremonies.md, spawns a facilitator, records via squad_decide.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§15 reads ceremonies.md, spawns a facilitator, records via squad_decide. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§15 reads ceremonies.md, spawns a facilitator, records via squad_decide. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§15 reads ceremonies.md, spawns a facilitator, records via squad_decide. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

human-members

Human team members (never spawned; routed as requests)

Depends on: b Β· docs: features/human-team-members Β· scenarios/team-of-humans Β· canonical sections: Team Mode

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§21.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ§ͺ validated-testDigest Β§21.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§21. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ§ͺ validated-testDigest Β§21.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§21. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§21. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§21. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

copilot-coding-agent

@copilot coding agent member (squad copilot, GitHub assignment)

Depends on: a, b, e Β· docs: features/copilot-coding-agent Β· canonical sections: Copilot Coding Agent Member

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testCLI toggles the member; digest Β§21 says never spawn it, review its PRs. Assignment happens on GitHub, independent of the local host.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/team-capabilities-lifecycle.test.ts::*
static-only
claudeβœ… supportedπŸ§ͺ validated-testCLI toggles the member; digest Β§21 says never spawn it, review its PRs. Assignment happens on GitHub, independent of the local host.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/team-capabilities-lifecycle.test.ts::*
static-only
kiroβœ… supportedπŸ§ͺ validated-testCLI toggles the member; digest Β§21 says never spawn it, review its PRs. Assignment happens on GitHub, independent of the local host. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/team-capabilities-lifecycle.test.ts::*
static-only
opencodeβœ… supportedπŸ§ͺ validated-testCLI toggles the member; digest Β§21 says never spawn it, review its PRs. Assignment happens on GitHub, independent of the local host.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/team-capabilities-lifecycle.test.ts::*
static-only
cursorβœ… supportedπŸ§ͺ validated-testCLI toggles the member; digest Β§21 says never spawn it, review its PRs. Assignment happens on GitHub, independent of the local host. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/team-capabilities-lifecycle.test.ts::*
static-only
codexβœ… supportedπŸ§ͺ validated-testCLI toggles the member; digest Β§21 says never spawn it, review its PRs. Assignment happens on GitHub, independent of the local host. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/team-capabilities-lifecycle.test.ts::*
static-only
antigravityβœ… supportedπŸ§ͺ validated-testCLI toggles the member; digest Β§21 says never spawn it, review its PRs. Assignment happens on GitHub, independent of the local host. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/team-capabilities-lifecycle.test.ts::*
static-only

ralph-coordinator-loop

Ralph β€” interactive work monitor (β€œRalph, go”)

Depends on: b, e Β· docs: features/ralph Β· canonical sections: Ralph β€” Work Monitor

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§9: coordinator runs the loop itself via gh; circuit breaker template. Requires gh authenticated inside the host.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§9: coordinator runs the loop itself via gh; circuit breaker template. Requires gh authenticated inside the host.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:ralph-no-repo@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§9: coordinator runs the loop itself via gh; circuit breaker template. Requires gh authenticated inside the host. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§9: coordinator runs the loop itself via gh; circuit breaker template. Requires gh authenticated inside the host.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:ralph-no-repo@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§9: coordinator runs the loop itself via gh; circuit breaker template. Requires gh authenticated inside the host. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§9: coordinator runs the loop itself via gh; circuit breaker template. Requires gh authenticated inside the host. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§9: coordinator runs the loop itself via gh; circuit breaker template. Requires gh authenticated inside the host. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

ralph-cli-triage-watch

Ralph CLI (squad triage / watch / loop β€”execute)

Depends on: a, e (host-independent) Β· docs: features/ralph Β· features/labels

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDefault agentCmd is the Copilot CLI (copilot -p …).validated-test:test/ralph-triage.test.ts::*
validated-test:test/ralph-monitor.test.ts::*
validated-test:test/watch-fleet-dispatch.test.ts::*
claude⚠️ degradedπŸ§ͺ validated-testScanning/routing is host-agnostic, but --execute dispatches through the Copilot CLI unless agentCmd (--agent-cmd "<host> … {prompt}") is configured; no built-in preset for this host.validated-test:test/ralph-triage.test.ts::*
static-only
kiro⚠️ degradedπŸ§ͺ validated-testScanning/routing is host-agnostic, but --execute dispatches through the Copilot CLI unless agentCmd (--agent-cmd "<host> … {prompt}") is configured; no built-in preset for this host. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/ralph-triage.test.ts::*
static-only
opencode⚠️ degradedπŸ§ͺ validated-testScanning/routing is host-agnostic, but --execute dispatches through the Copilot CLI unless agentCmd (--agent-cmd "<host> … {prompt}") is configured; no built-in preset for this host.validated-test:test/ralph-triage.test.ts::*
static-only
cursor⚠️ degradedπŸ§ͺ validated-testScanning/routing is host-agnostic, but --execute dispatches through the Copilot CLI unless agentCmd (--agent-cmd "<host> … {prompt}") is configured; no built-in preset for this host. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/ralph-triage.test.ts::*
static-only
codex⚠️ degradedπŸ§ͺ validated-testScanning/routing is host-agnostic, but --execute dispatches through the Copilot CLI unless agentCmd (--agent-cmd "<host> … {prompt}") is configured; no built-in preset for this host. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/ralph-triage.test.ts::*
static-only
antigravity⚠️ degradedπŸ§ͺ validated-testScanning/routing is host-agnostic, but --execute dispatches through the Copilot CLI unless agentCmd (--agent-cmd "<host> … {prompt}") is configured; no built-in preset for this host. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/ralph-triage.test.ts::*
static-only

prd-mode

PRD mode (decompose β†’ approve β†’ dependency-aware dispatch)

Depends on: b Β· docs: features/prd-mode Β· canonical sections: PRD Mode

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§19; prd-intake.md template on demand.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ§ͺ validated-testDigest Β§19; prd-intake.md template on demand.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§19; prd-intake.md template on demand. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ§ͺ validated-testDigest Β§19; prd-intake.md template on demand.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§19; prd-intake.md template on demand. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§19; prd-intake.md template on demand. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§19; prd-intake.md template on demand. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

github-issues-mode

GitHub Issues mode (connect, list, route, branch β†’ PR β†’ merge)

Depends on: b, e Β· docs: features/github-issues Β· concepts/github-workflow Β· scenarios/issue-driven-dev Β· canonical sections: GitHub Issues Mode

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§18 with gh prerequisites, squad/{issue}-{slug} branches, gh pr create; issue-lifecycle.md on demand.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§18 with gh prerequisites, squad/{issue}-{slug} branches, gh pr create; issue-lifecycle.md on demand.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:github-issues-readonly@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§18 with gh prerequisites, squad/{issue}-{slug} branches, gh pr create; issue-lifecycle.md on demand. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§18 with gh prerequisites, squad/{issue}-{slug} branches, gh pr create; issue-lifecycle.md on demand.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-manual:lab:github-issues-readonly@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§18 with gh prerequisites, squad/{issue}-{slug} branches, gh pr create; issue-lifecycle.md on demand. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§18 with gh prerequisites, squad/{issue}-{slug} branches, gh pr create; issue-lifecycle.md on demand. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§18 with gh prerequisites, squad/{issue}-{slug} branches, gh pr create; issue-lifecycle.md on demand. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

labels-triage

Labels & triage (squad / squad:<member> taxonomy)

Depends on: a, b, e Β· docs: features/labels Β· canonical sections: GitHub Issues Mode, Ralph β€” Work Monitor

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§9/Β§18 route by squad:<member> labels; CLI triage applies the same taxonomy.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/ralph-triage.test.ts::*
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§9/Β§18 route by squad:<member> labels; CLI triage applies the same taxonomy.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/ralph-triage.test.ts::*
validated-manual:lab:github-issues-readonly@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§9/Β§18 route by squad:<member> labels; CLI triage applies the same taxonomy. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/ralph-triage.test.ts::*
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§9/Β§18 route by squad:<member> labels; CLI triage applies the same taxonomy.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/ralph-triage.test.ts::*
validated-manual:lab:github-issues-readonly@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§9/Β§18 route by squad:<member> labels; CLI triage applies the same taxonomy. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/ralph-triage.test.ts::*
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§9/Β§18 route by squad:<member> labels; CLI triage applies the same taxonomy. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/ralph-triage.test.ts::*
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§9/Β§18 route by squad:<member> labels; CLI triage applies the same taxonomy. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/ralph-triage.test.ts::*
static-only

project-boards

Project boards (squad triage --board)

Depends on: a, e (host-independent) Β· docs: features/project-boards

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testCLI capability, GitHub Projects via gh; the local host is not involved.validated-test:test/ralph-board.test.ts::*
claudeβœ… supportedπŸ§ͺ validated-testCLI capability, GitHub Projects via gh; the local host is not involved.validated-test:test/ralph-board.test.ts::*
kiroβœ… supportedπŸ§ͺ validated-testCLI capability, GitHub Projects via gh; the local host is not involved.validated-test:test/ralph-board.test.ts::*
opencodeβœ… supportedπŸ§ͺ validated-testCLI capability, GitHub Projects via gh; the local host is not involved.validated-test:test/ralph-board.test.ts::*
cursorβœ… supportedπŸ§ͺ validated-testCLI capability, GitHub Projects via gh; the local host is not involved.validated-test:test/ralph-board.test.ts::*
codexβœ… supportedπŸ§ͺ validated-testCLI capability, GitHub Projects via gh; the local host is not involved.validated-test:test/ralph-board.test.ts::*
antigravityβœ… supportedπŸ§ͺ validated-testCLI capability, GitHub Projects via gh; the local host is not involved.validated-test:test/ralph-board.test.ts::*

gitlab-issues

GitLab Issues mode (experimental, glab)

Depends on: b, e Β· docs: features/gitlab-issues

HostCapabilityValidationMechanismEvidence
copilot❌ unsupportedπŸ§ͺ validated-test (expected failure)Docs-only: no gitlab PlatformType in the SDK, no glab path in squad triage|watch, and neither the canonical agent nor the digest has a GitLab section. Works only if the model follows the docs page ad hoc with glab. Finding F2. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
claude❌ unsupportedπŸ§ͺ validated-test (expected failure)Docs-only: no gitlab PlatformType in the SDK, no glab path in squad triage|watch, and neither the canonical agent nor the digest has a GitLab section. Works only if the model follows the docs page ad hoc with glab. Finding F2. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
kiro❌ unsupportedπŸ§ͺ validated-test (expected failure)Docs-only: no gitlab PlatformType in the SDK, no glab path in squad triage|watch, and neither the canonical agent nor the digest has a GitLab section. Works only if the model follows the docs page ad hoc with glab. Finding F2. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
opencode❌ unsupportedπŸ§ͺ validated-test (expected failure)Docs-only: no gitlab PlatformType in the SDK, no glab path in squad triage|watch, and neither the canonical agent nor the digest has a GitLab section. Works only if the model follows the docs page ad hoc with glab. Finding F2. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
cursor❌ unsupportedπŸ§ͺ validated-test (expected failure)Docs-only: no gitlab PlatformType in the SDK, no glab path in squad triage|watch, and neither the canonical agent nor the digest has a GitLab section. Works only if the model follows the docs page ad hoc with glab. Finding F2. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
codex❌ unsupportedπŸ§ͺ validated-test (expected failure)Docs-only: no gitlab PlatformType in the SDK, no glab path in squad triage|watch, and neither the canonical agent nor the digest has a GitLab section. Works only if the model follows the docs page ad hoc with glab. Finding F2. No Codex binary or ChatGPT/API auth on the reference machine; static-only. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
antigravity❌ unsupportedπŸ§ͺ validated-test (expected failure)Docs-only: no gitlab PlatformType in the SDK, no glab path in squad triage|watch, and neither the canonical agent nor the digest has a GitLab section. Works only if the model follows the docs page ad hoc with glab. Finding F2. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only

azure-devops

Azure DevOps platform (work items, PRs, az boards, ADO MCP)

Depends on: a, b, e Β· docs: features/enterprise-platforms Β· canonical sections: GitHub Issues Mode

HostCapabilityValidationMechanismEvidence
copilot❌ unsupportedπŸ§ͺ validated-test (expected failure)squad triage|watch auto-detect ADO from the remote (or config.platform: azure-devops) and use az; squad upgrade seeds an EXAMPLE-azure-devops MCP server in .mcp.json. The coordinator section is GitHub-only (gh); ADO commands exist only in issue-lifecycle.md. Finding F3: interactive Issues mode has no ADO branch in the prompt. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/platform-adapter.test.ts::*
validated-test:test/ralph-commands.test.ts::*
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
claude❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI triage/watch on ADO is host-agnostic. In-host Issues mode: digest Β§18 is gh-only and the ADO MCP example is only seeded into Copilot’s .mcp.json; ADO commands reachable only via issue-lifecycle.md on demand. Finding F3. Live: detected ADO from the remote, read issue-lifecycle.md, proposed az boards commands, noted the template has no backlog-list command. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/platform-adapter.test.ts::*
validated-manual:lab:ado-platform@2026-10-22
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
kiro❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI triage/watch on ADO is host-agnostic. In-host Issues mode: digest Β§18 is gh-only and the ADO MCP example is only seeded into Copilot’s .mcp.json; ADO commands reachable only via issue-lifecycle.md on demand. Finding F3. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/platform-adapter.test.ts::*
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
opencode❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI triage/watch on ADO is host-agnostic. In-host Issues mode: digest Β§18 is gh-only and the ADO MCP example is only seeded into Copilot’s .mcp.json; ADO commands reachable only via issue-lifecycle.md on demand. Finding F3. Live: detected ADO from the remote, read issue-lifecycle.md, proposed az boards commands, noted the template has no backlog-list command. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/platform-adapter.test.ts::*
validated-manual:lab:ado-platform@2026-10-22
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
cursor❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI triage/watch on ADO is host-agnostic. In-host Issues mode: digest Β§18 is gh-only and the ADO MCP example is only seeded into Copilot’s .mcp.json; ADO commands reachable only via issue-lifecycle.md on demand. Finding F3. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/platform-adapter.test.ts::*
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
codex❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI triage/watch on ADO is host-agnostic. In-host Issues mode: digest Β§18 is gh-only and the ADO MCP example is only seeded into Copilot’s .mcp.json; ADO commands reachable only via issue-lifecycle.md on demand. Finding F3. No Codex binary or ChatGPT/API auth on the reference machine; static-only. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/platform-adapter.test.ts::*
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
antigravity❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI triage/watch on ADO is host-agnostic. In-host Issues mode: digest Β§18 is gh-only and the ADO MCP example is only seeded into Copilot’s .mcp.json; ADO commands reachable only via issue-lifecycle.md on demand. Finding F3. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/platform-adapter.test.ts::*
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only

upstream-inheritance

Upstream inheritance (squad upstream add|sync, inherited skills/decisions/wisdom/routing)

Depends on: a, b Β· docs: features/upstream-inheritance Β· canonical sections: Upstream Inheritance

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testRuntime inheritance: squad_state_upstreams (state-mcp bridge, all hosts) resolves upstream.json from local snapshots only (never fetches), with deterministic precedence (local .squad/ wins, then declared order, depth-first, depth limit 3), cycle detection, soft failure for missing/stale/unavailable sources and upstream:<name>@<ref> provenance; canonical Β§Upstream Inheritance + digest Β§16a tell the coordinator to call it once per session. squad doctor/squad status surface the same resolution. F1 fixed in Squad 2.0.validated-test:test/upstream-runtime.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_upstreams over the bridge serves inherited skills and decisions with provenance and never fetches
validated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied on
validated-test:test/upstream.test.ts::*
validated-test:test/upstream-e2e.test.ts::*
claudeβœ… supportedπŸ§ͺ validated-testRuntime inheritance: squad_state_upstreams (state-mcp bridge, all hosts) resolves upstream.json from local snapshots only (never fetches), with deterministic precedence (local .squad/ wins, then declared order, depth-first, depth limit 3), cycle detection, soft failure for missing/stale/unavailable sources and upstream:<name>@<ref> provenance; canonical Β§Upstream Inheritance + digest Β§16a tell the coordinator to call it once per session. squad doctor/squad status surface the same resolution. F1 fixed in Squad 2.0. Live (Claude, pre-fix): found the inherited decision and skill only when prompted toward upstream.json; the tool now returns both unprompted.validated-test:test/upstream-runtime.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_upstreams over the bridge serves inherited skills and decisions with provenance and never fetches
validated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied on
validated-test:test/upstream.test.ts::*
validated-test:test/upstream-e2e.test.ts::*
validated-manual:lab:upstream@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testRuntime inheritance: squad_state_upstreams (state-mcp bridge, all hosts) resolves upstream.json from local snapshots only (never fetches), with deterministic precedence (local .squad/ wins, then declared order, depth-first, depth limit 3), cycle detection, soft failure for missing/stale/unavailable sources and upstream:<name>@<ref> provenance; canonical Β§Upstream Inheritance + digest Β§16a tell the coordinator to call it once per session. squad doctor/squad status surface the same resolution. F1 fixed in Squad 2.0. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/upstream-runtime.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_upstreams over the bridge serves inherited skills and decisions with provenance and never fetches
validated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied on
validated-test:test/upstream.test.ts::*
validated-test:test/upstream-e2e.test.ts::*
opencodeβœ… supportedπŸ§ͺ validated-testRuntime inheritance: squad_state_upstreams (state-mcp bridge, all hosts) resolves upstream.json from local snapshots only (never fetches), with deterministic precedence (local .squad/ wins, then declared order, depth-first, depth limit 3), cycle detection, soft failure for missing/stale/unavailable sources and upstream:<name>@<ref> provenance; canonical Β§Upstream Inheritance + digest Β§16a tell the coordinator to call it once per session. squad doctor/squad status surface the same resolution. F1 fixed in Squad 2.0. Live (OpenCode, pre-fix, partial): missed .copilot/skills/org-logging; the bridge test now proves that skill is served with provenance.validated-test:test/upstream-runtime.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_upstreams over the bridge serves inherited skills and decisions with provenance and never fetches
validated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied on
validated-test:test/upstream.test.ts::*
validated-test:test/upstream-e2e.test.ts::*
validated-manual:lab:upstream@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testRuntime inheritance: squad_state_upstreams (state-mcp bridge, all hosts) resolves upstream.json from local snapshots only (never fetches), with deterministic precedence (local .squad/ wins, then declared order, depth-first, depth limit 3), cycle detection, soft failure for missing/stale/unavailable sources and upstream:<name>@<ref> provenance; canonical Β§Upstream Inheritance + digest Β§16a tell the coordinator to call it once per session. squad doctor/squad status surface the same resolution. F1 fixed in Squad 2.0. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/upstream-runtime.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_upstreams over the bridge serves inherited skills and decisions with provenance and never fetches
validated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied on
validated-test:test/upstream.test.ts::*
validated-test:test/upstream-e2e.test.ts::*
codexβœ… supportedπŸ§ͺ validated-testRuntime inheritance: squad_state_upstreams (state-mcp bridge, all hosts) resolves upstream.json from local snapshots only (never fetches), with deterministic precedence (local .squad/ wins, then declared order, depth-first, depth limit 3), cycle detection, soft failure for missing/stale/unavailable sources and upstream:<name>@<ref> provenance; canonical Β§Upstream Inheritance + digest Β§16a tell the coordinator to call it once per session. squad doctor/squad status surface the same resolution. F1 fixed in Squad 2.0. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/upstream-runtime.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_upstreams over the bridge serves inherited skills and decisions with provenance and never fetches
validated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied on
validated-test:test/upstream.test.ts::*
validated-test:test/upstream-e2e.test.ts::*
antigravityβœ… supportedπŸ§ͺ validated-testRuntime inheritance: squad_state_upstreams (state-mcp bridge, all hosts) resolves upstream.json from local snapshots only (never fetches), with deterministic precedence (local .squad/ wins, then declared order, depth-first, depth limit 3), cycle detection, soft failure for missing/stale/unavailable sources and upstream:<name>@<ref> provenance; canonical Β§Upstream Inheritance + digest Β§16a tell the coordinator to call it once per session. squad doctor/squad status surface the same resolution. F1 fixed in Squad 2.0. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/upstream-runtime.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_upstreams over the bridge serves inherited skills and decisions with provenance and never fetches
validated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied on
validated-test:test/upstream.test.ts::*
validated-test:test/upstream-e2e.test.ts::*

cross-squad-registry

Multiple squads / cross-squad (squad registry|discover|delegate, cross-squad skills)

Depends on: a, b, e Β· docs: scenarios/multiple-squads Β· canonical sections: Team Mode

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§20 routes peer-squad requests through the cross-squad / cross-squad-communication skills; CLI registry + delegate (GitHub issue handoff via gh).validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/cross-squad-registry.test.ts::*
validated-test:test/cross-squad.test.ts::*
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§20 routes peer-squad requests through the cross-squad / cross-squad-communication skills; CLI registry + delegate (GitHub issue handoff via gh).validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/cross-squad-registry.test.ts::*
validated-test:test/cross-squad.test.ts::*
validated-manual:lab:cross-squad@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§20 routes peer-squad requests through the cross-squad / cross-squad-communication skills; CLI registry + delegate (GitHub issue handoff via gh). Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/cross-squad-registry.test.ts::*
validated-test:test/cross-squad.test.ts::*
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§20 routes peer-squad requests through the cross-squad / cross-squad-communication skills; CLI registry + delegate (GitHub issue handoff via gh).validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/cross-squad-registry.test.ts::*
validated-test:test/cross-squad.test.ts::*
validated-manual:lab:cross-squad@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§20 routes peer-squad requests through the cross-squad / cross-squad-communication skills; CLI registry + delegate (GitHub issue handoff via gh). Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/cross-squad-registry.test.ts::*
validated-test:test/cross-squad.test.ts::*
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§20 routes peer-squad requests through the cross-squad / cross-squad-communication skills; CLI registry + delegate (GitHub issue handoff via gh). No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/cross-squad-registry.test.ts::*
validated-test:test/cross-squad.test.ts::*
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§20 routes peer-squad requests through the cross-squad / cross-squad-communication skills; CLI registry + delegate (GitHub issue handoff via gh). Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
validated-test:test/cross-squad-registry.test.ts::*
validated-test:test/cross-squad.test.ts::*
static-only

subsquads

SubSquads / workstreams (squad subsquads, multi-Codespace)

Depends on: a (host-independent) Β· docs: scenarios/multi-codespace Β· scenarios/scaling-workstreams Β· features/streams

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testCLI + watch discovery; host not involved.validated-test:test/watch-subsquad-discovery.test.ts::*
claudeβœ… supportedπŸ§ͺ validated-testCLI + watch discovery; host not involved.validated-test:test/watch-subsquad-discovery.test.ts::*
kiroβœ… supportedπŸ§ͺ validated-testCLI + watch discovery; host not involved.validated-test:test/watch-subsquad-discovery.test.ts::*
opencodeβœ… supportedπŸ§ͺ validated-testCLI + watch discovery; host not involved.validated-test:test/watch-subsquad-discovery.test.ts::*
cursorβœ… supportedπŸ§ͺ validated-testCLI + watch discovery; host not involved.validated-test:test/watch-subsquad-discovery.test.ts::*
codexβœ… supportedπŸ§ͺ validated-testCLI + watch discovery; host not involved.validated-test:test/watch-subsquad-discovery.test.ts::*
antigravityβœ… supportedπŸ§ͺ validated-testCLI + watch discovery; host not involved.validated-test:test/watch-subsquad-discovery.test.ts::*

monorepo-team-root

Monorepo / team-root resolution (--team-root, SQUAD_TEAM_ROOT, launch from a subfolder)

Depends on: a, b, c, d Β· docs: scenarios/monorepo Β· features/worktrees Β· canonical sections: State & Team Root Resolution (before mode check)

HostCapabilityValidationMechanismEvidence
copilot❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI honours --team-root/SQUAD_TEAM_ROOT; state-mcp walks up from cwd (findSquadDir); canonical Β§State & Team Root Resolution + worktree-reference.md resolve TEAM_ROOT and pass it to every spawn. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): The runtime path works (state-mcp walks up to the root .squad/ / follows teamRoot; see the live run where recorded), but the projected digest carries no team-root section, so the coordinator is not told how resolution works. Unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp resolves the root .squad when launched from a monorepo subfolder
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
claude❌ unsupportedπŸ§ͺ validated-test (expected failure)Claude discovers .claude/agents/squad.md and .mcp.json from a package subfolder; state-mcp walks up to the root .squad/. Headless (-p) runs need --mcp-config <root>/.mcp.json or a prior per-project approval (F5). Validate per host: does the host find root-level projections from a subfolder cwd? Expected-fail digest gap (per-host it.fails in test/clients.test.ts): The runtime path works (state-mcp walks up to the root .squad/ / follows teamRoot; see the live run where recorded), but the projected digest carries no team-root section, so the coordinator is not told how resolution works. Unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-manual:lab:mono-subfolder@2026-10-22
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp resolves the root .squad when launched from a monorepo subfolder
validated-test:test/squad-20-host-feature-matrix.test.ts::claude lists the root .mcp.json squad_state server from packages/api
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
kiro❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI/MCP resolution is host-agnostic, but the digest has no team-root section (only worktree-reference.md on demand) and the host discovers its projected agent/MCP config from its own project root, so launching from a package subfolder may not load the Squad coordinator at all. Validate per host: does the host find root-level projections from a subfolder cwd? Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp resolves the root .squad when launched from a monorepo subfolder
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
opencode❌ unsupportedπŸ§ͺ validated-test (expected failure)OpenCode resolves opencode.json (agent + MCP) from the repo root when launched in a package subfolder; state-mcp walks up to the root .squad/. Validate per host: does the host find root-level projections from a subfolder cwd? Expected-fail digest gap (per-host it.fails in test/clients.test.ts): The runtime path works (state-mcp walks up to the root .squad/ / follows teamRoot; see the live run where recorded), but the projected digest carries no team-root section, so the coordinator is not told how resolution works. Unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-manual:lab:mono-subfolder@2026-10-22
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp resolves the root .squad when launched from a monorepo subfolder
validated-test:test/squad-20-host-feature-matrix.test.ts::opencode resolves the squad primary agent and the squad_state MCP entry from packages/api
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
cursor❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI/MCP resolution is host-agnostic, but the digest has no team-root section (only worktree-reference.md on demand) and the host discovers its projected agent/MCP config from its own project root, so launching from a package subfolder may not load the Squad coordinator at all. Validate per host: does the host find root-level projections from a subfolder cwd? Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp resolves the root .squad when launched from a monorepo subfolder
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
codex❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI/MCP resolution is host-agnostic, but the digest has no team-root section (only worktree-reference.md on demand) and the host discovers its projected agent/MCP config from its own project root, so launching from a package subfolder may not load the Squad coordinator at all. Validate per host: does the host find root-level projections from a subfolder cwd? No Codex binary or ChatGPT/API auth on the reference machine; static-only. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp resolves the root .squad when launched from a monorepo subfolder
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
antigravity❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI/MCP resolution is host-agnostic, but the digest has no team-root section (only worktree-reference.md on demand) and the host discovers its projected agent/MCP config from its own project root, so launching from a package subfolder may not load the Squad coordinator at all. Validate per host: does the host find root-level projections from a subfolder cwd? Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp resolves the root .squad when launched from a monorepo subfolder
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only

dual-root-remote-mode

Dual-root remote mode (squad init --mode remote, link, externalize / internalize)

Depends on: a, b, c Β· docs: features/dual-mode-deployment Β· scenarios/team-state-storage Β· canonical sections: State & Team Root Resolution (before mode check)

HostCapabilityValidationMechanismEvidence
copilot❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI writes config.json.teamRoot; state-mcp resolves mode: remote; canonical step 3 loads team.md from the team root. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): The runtime path works (state-mcp walks up to the root .squad/ / follows teamRoot; see the live run where recorded), but the projected digest carries no team-root section, so the coordinator is not told how resolution works. Unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp follows config.json teamRoot from a satellite repo (remote mode)
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
claude❌ unsupportedπŸ§ͺ validated-test (expected failure)The state bridge follows config.json.teamRoot, so the host coordinator read the team-root roster via squad_state_read and did not enter Init Mode, even though the digest has no team-root section. Live: roster served from ..\base; no casting attempted. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): The runtime path works (state-mcp walks up to the root .squad/ / follows teamRoot; see the live run where recorded), but the projected digest carries no team-root section, so the coordinator is not told how resolution works. Unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-manual:lab:satellite-remote@2026-10-22
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp follows config.json teamRoot from a satellite repo (remote mode)
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
kiro❌ unsupportedπŸ§ͺ validated-test (expected failure)State tools follow teamRoot transparently, but the digest reads .squad/team.md literally and never mentions teamRoot/stateLocation, so a satellite repo may look like Init Mode to the host coordinator. Finding F4 candidate β€” validate. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp follows config.json teamRoot from a satellite repo (remote mode)
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
opencode❌ unsupportedπŸ§ͺ validated-test (expected failure)The state bridge follows config.json.teamRoot, so the host coordinator read the team-root roster via squad_state_read and did not enter Init Mode, even though the digest has no team-root section. Live: roster served from ..\base; no casting attempted. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): The runtime path works (state-mcp walks up to the root .squad/ / follows teamRoot; see the live run where recorded), but the projected digest carries no team-root section, so the coordinator is not told how resolution works. Unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-manual:lab:satellite-remote@2026-10-22
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp follows config.json teamRoot from a satellite repo (remote mode)
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
cursor❌ unsupportedπŸ§ͺ validated-test (expected failure)State tools follow teamRoot transparently, but the digest reads .squad/team.md literally and never mentions teamRoot/stateLocation, so a satellite repo may look like Init Mode to the host coordinator. Finding F4 candidate β€” validate. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp follows config.json teamRoot from a satellite repo (remote mode)
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
codex❌ unsupportedπŸ§ͺ validated-test (expected failure)State tools follow teamRoot transparently, but the digest reads .squad/team.md literally and never mentions teamRoot/stateLocation, so a satellite repo may look like Init Mode to the host coordinator. Finding F4 candidate β€” validate. No Codex binary or ChatGPT/API auth on the reference machine; static-only. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp follows config.json teamRoot from a satellite repo (remote mode)
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
antigravity❌ unsupportedπŸ§ͺ validated-test (expected failure)State tools follow teamRoot transparently, but the digest reads .squad/team.md literally and never mentions teamRoot/stateLocation, so a satellite repo may look like Init Mode to the host coordinator. Finding F4 candidate β€” validate. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/resolution.test.ts::*
validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp follows config.json teamRoot from a satellite repo (remote mode)
validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only

git-worktrees

Git worktrees & worktree mode (issue worktrees, WORKTREE_PATH)

Depends on: a, b, d Β· docs: features/worktrees Β· canonical sections: Team Mode

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§9/Β§18 prefer an isolated worktree per issue and point to worktree-reference.md; needs shell access in the host.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/worktree.test.ts::*
static-only
claudeβœ… supportedπŸ–₯️ validated-liveDigest Β§9/Β§18 prefer an isolated worktree per issue and point to worktree-reference.md; needs shell access in the host.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/worktree.test.ts::*
validated-manual:lab:worktree-spawn@2026-10-22
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§9/Β§18 prefer an isolated worktree per issue and point to worktree-reference.md; needs shell access in the host. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/worktree.test.ts::*
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveDigest Β§9/Β§18 prefer an isolated worktree per issue and point to worktree-reference.md; needs shell access in the host.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/worktree.test.ts::*
validated-manual:lab:worktree-spawn@2026-10-22
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§9/Β§18 prefer an isolated worktree per issue and point to worktree-reference.md; needs shell access in the host. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/worktree.test.ts::*
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§9/Β§18 prefer an isolated worktree per issue and point to worktree-reference.md; needs shell access in the host. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/worktree.test.ts::*
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§9/Β§18 prefer an isolated worktree per issue and point to worktree-reference.md; needs shell access in the host. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator Ralph mode
validated-test:test/worktree.test.ts::*
static-only

export-import

Export / import (squad export, squad import, team portability)

Depends on: a (host-independent) Β· docs: features/export-import Β· scenarios/team-portability Β· concepts/portability

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testPure CLI; portable clients[] hygiene strips host secrets.validated-test:test/cli/export-import.test.ts::*
validated-test:test/clients.test.ts::portable clients[] hygiene
claudeβœ… supportedπŸ§ͺ validated-testPure CLI; portable clients[] hygiene strips host secrets.validated-test:test/cli/export-import.test.ts::*
validated-test:test/clients.test.ts::portable clients[] hygiene
kiroβœ… supportedπŸ§ͺ validated-testPure CLI; portable clients[] hygiene strips host secrets.validated-test:test/cli/export-import.test.ts::*
validated-test:test/clients.test.ts::portable clients[] hygiene
opencodeβœ… supportedπŸ§ͺ validated-testPure CLI; portable clients[] hygiene strips host secrets.validated-test:test/cli/export-import.test.ts::*
validated-test:test/clients.test.ts::portable clients[] hygiene
cursorβœ… supportedπŸ§ͺ validated-testPure CLI; portable clients[] hygiene strips host secrets.validated-test:test/cli/export-import.test.ts::*
validated-test:test/clients.test.ts::portable clients[] hygiene
codexβœ… supportedπŸ§ͺ validated-testPure CLI; portable clients[] hygiene strips host secrets.validated-test:test/cli/export-import.test.ts::*
validated-test:test/clients.test.ts::portable clients[] hygiene
antigravityβœ… supportedπŸ§ͺ validated-testPure CLI; portable clients[] hygiene strips host secrets.validated-test:test/cli/export-import.test.ts::*
validated-test:test/clients.test.ts::portable clients[] hygiene

storage-provider

Storage provider abstraction (FS / SQLite / external state)

Depends on: a, c (host-independent) Β· docs: features/storage-provider

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testSDK/CLI layer under state-mcp; host not involved.validated-test:test/state-backend.test.ts::*
claudeβœ… supportedπŸ§ͺ validated-testSDK/CLI layer under state-mcp; host not involved.validated-test:test/state-backend.test.ts::*
kiroβœ… supportedπŸ§ͺ validated-testSDK/CLI layer under state-mcp; host not involved.validated-test:test/state-backend.test.ts::*
opencodeβœ… supportedπŸ§ͺ validated-testSDK/CLI layer under state-mcp; host not involved.validated-test:test/state-backend.test.ts::*
cursorβœ… supportedπŸ§ͺ validated-testSDK/CLI layer under state-mcp; host not involved.validated-test:test/state-backend.test.ts::*
codexβœ… supportedπŸ§ͺ validated-testSDK/CLI layer under state-mcp; host not involved.validated-test:test/state-backend.test.ts::*
antigravityβœ… supportedπŸ§ͺ validated-testSDK/CLI layer under state-mcp; host not involved.validated-test:test/state-backend.test.ts::*

notifications

Notifications (watch --notify-level, Teams/email monitors)

Depends on: a (host-independent) Β· docs: features/notifications

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testCLI watch capability.validated-test:test/watch-notify-level.test.ts::*
claudeβœ… supportedπŸ§ͺ validated-testCLI watch capability.validated-test:test/watch-notify-level.test.ts::*
kiroβœ… supportedπŸ§ͺ validated-testCLI watch capability.validated-test:test/watch-notify-level.test.ts::*
opencodeβœ… supportedπŸ§ͺ validated-testCLI watch capability.validated-test:test/watch-notify-level.test.ts::*
cursorβœ… supportedπŸ§ͺ validated-testCLI watch capability.validated-test:test/watch-notify-level.test.ts::*
codexβœ… supportedπŸ§ͺ validated-testCLI watch capability.validated-test:test/watch-notify-level.test.ts::*
antigravityβœ… supportedπŸ§ͺ validated-testCLI watch capability.validated-test:test/watch-notify-level.test.ts::*

marketplace-plugins

Marketplace & plugins (squad plugin marketplace …, skill install on cast)

Depends on: a, b Β· docs: features/marketplace Β· features/plugins Β· canonical sections: Team Mode

HostCapabilityValidationMechanismEvidence
copilot❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI + canonical β€œcheck plugin marketplaces when adding a member” step. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): The CLI/SDK side works, but the projected digest carries no section for it, so the coordinator is not told about it on this host. Unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
claude❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI works; the digest Init/cast flow does not include the marketplace-browse step. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
kiro❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI works; the digest Init/cast flow does not include the marketplace-browse step. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
opencode❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI works; the digest Init/cast flow does not include the marketplace-browse step. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
cursor❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI works; the digest Init/cast flow does not include the marketplace-browse step. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
codex❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI works; the digest Init/cast flow does not include the marketplace-browse step. No Codex binary or ChatGPT/API auth on the reference machine; static-only. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only
antigravity❌ unsupportedπŸ§ͺ validated-test (expected failure)CLI works; the digest Init/cast flow does not include the marketplace-browse step. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine. Expected-fail digest gap (per-host it.fails in test/clients.test.ts): unsupported on this host until the section ships.validated-test:test/clients.test.ts::coordinator digest vs. host feature matrix
static-only

mcp-integration

MCP integration (user MCP servers discovered; MCP β†’ CLI fallback)

Depends on: b, d Β· docs: features/mcp Β· canonical sections: MCP Integration

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ“„ static-onlyCanonical Β§MCP Integration with tool-prefix discovery and gh/az fallbacks; .mcp.json.static-only
claudeβœ… supportedπŸ§ͺ validated-testHost loads its own MCP config; squad_state is merged without clobbering user servers. Digest lacks the discovery/fallback table but hosts expose MCP tools natively.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
static-only
kiroβœ… supportedπŸ§ͺ validated-testHost loads its own MCP config; squad_state is merged without clobbering user servers. Digest lacks the discovery/fallback table but hosts expose MCP tools natively. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
static-only
opencodeβœ… supportedπŸ§ͺ validated-testHost loads its own MCP config; squad_state is merged without clobbering user servers. Digest lacks the discovery/fallback table but hosts expose MCP tools natively.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
static-only
cursorβœ… supportedπŸ§ͺ validated-testHost loads its own MCP config; squad_state is merged without clobbering user servers. Digest lacks the discovery/fallback table but hosts expose MCP tools natively. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
static-only
codexβœ… supportedπŸ§ͺ validated-testHost loads its own MCP config; squad_state is merged without clobbering user servers. Digest lacks the discovery/fallback table but hosts expose MCP tools natively. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
static-only
antigravityβœ… supportedπŸ§ͺ validated-testHost loads its own MCP config; squad_state is merged without clobbering user servers. Digest lacks the discovery/fallback table but hosts expose MCP tools natively. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
static-only

standalone-install

Standalone install (no npm; squad.exe state-mcp launch spec)

Depends on: a (host-independent) Β· docs: features/standalone-install

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testmcp-spec.ts picks the standalone binary for the state-mcp launch spec in every projection.validated-test:test/cli/upgrade.test.ts::*
claudeβœ… supportedπŸ§ͺ validated-testmcp-spec.ts picks the standalone binary for the state-mcp launch spec in every projection.validated-test:test/cli/upgrade.test.ts::*
kiroβœ… supportedπŸ§ͺ validated-testmcp-spec.ts picks the standalone binary for the state-mcp launch spec in every projection.validated-test:test/cli/upgrade.test.ts::*
opencodeβœ… supportedπŸ§ͺ validated-testmcp-spec.ts picks the standalone binary for the state-mcp launch spec in every projection.validated-test:test/cli/upgrade.test.ts::*
cursorβœ… supportedπŸ§ͺ validated-testmcp-spec.ts picks the standalone binary for the state-mcp launch spec in every projection.validated-test:test/cli/upgrade.test.ts::*
codexβœ… supportedπŸ§ͺ validated-testmcp-spec.ts picks the standalone binary for the state-mcp launch spec in every projection.validated-test:test/cli/upgrade.test.ts::*
antigravityβœ… supportedπŸ§ͺ validated-testmcp-spec.ts picks the standalone binary for the state-mcp launch spec in every projection.validated-test:test/cli/upgrade.test.ts::*

vscode

VS Code (runSubagent, settings default agent)

Depends on: d Β· docs: features/vscode Β· canonical sections: Client Compatibility

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testCanonical Β§Client Compatibility micro-playbook; squad init writes .vscode/settings.json.validated-test:test/cli/init.test.ts::*
static-only
claudeβ€” n/aπŸ“„ static-onlyCopilot-specific surface.static-only
kiroβ€” n/aπŸ“„ static-onlyCopilot-specific surface. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.static-only
opencodeβ€” n/aπŸ“„ static-onlyCopilot-specific surface.static-only
cursorβ€” n/aπŸ“„ static-onlyCopilot-specific surface. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.static-only
codexβ€” n/aπŸ“„ static-onlyCopilot-specific surface. No Codex binary or ChatGPT/API auth on the reference machine; static-only.static-only
antigravityβ€” n/aπŸ“„ static-onlyCopilot-specific surface. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.static-only

squad-rc-start

Squad RC / squad start (remote control bridge, tunnels)

Depends on: a, d Β· docs: features/squad-rc Β· scenarios/remote-qa

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testsquad start|rc wrap the Copilot CLI with phone/browser access.validated-test:test/cli/rc.test.ts::*
static-only
claudeβ€” n/aπŸ“„ static-onlyBridges the Copilot CLI (ACP stdio); other hosts are not wrapped.static-only
kiroβ€” n/aπŸ“„ static-onlyBridges the Copilot CLI (ACP stdio); other hosts are not wrapped. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.static-only
opencodeβ€” n/aπŸ“„ static-onlyBridges the Copilot CLI (ACP stdio); other hosts are not wrapped.static-only
cursorβ€” n/aπŸ“„ static-onlyBridges the Copilot CLI (ACP stdio); other hosts are not wrapped. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.static-only
codexβ€” n/aπŸ“„ static-onlyBridges the Copilot CLI (ACP stdio); other hosts are not wrapped. No Codex binary or ChatGPT/API auth on the reference machine; static-only.static-only
antigravityβ€” n/aπŸ“„ static-onlyBridges the Copilot CLI (ACP stdio); other hosts are not wrapped. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.static-only

enterprise-platforms

Enterprise platforms (ADO + Planner work items, Teams/ADO discussions)

Depends on: a, e (host-independent) Β· docs: features/enterprise-platforms

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testPlatform adapters in @bradygaster/squad-sdk/platform, consumed by squad triage|watch.validated-test:test/platform-adapter.test.ts::*
validated-test:test/ralph-commands.test.ts::*
claudeβœ… supportedπŸ§ͺ validated-testPlatform adapters in @bradygaster/squad-sdk/platform, consumed by squad triage|watch.validated-test:test/platform-adapter.test.ts::*
validated-test:test/ralph-commands.test.ts::*
kiroβœ… supportedπŸ§ͺ validated-testPlatform adapters in @bradygaster/squad-sdk/platform, consumed by squad triage|watch.validated-test:test/platform-adapter.test.ts::*
validated-test:test/ralph-commands.test.ts::*
opencodeβœ… supportedπŸ§ͺ validated-testPlatform adapters in @bradygaster/squad-sdk/platform, consumed by squad triage|watch.validated-test:test/platform-adapter.test.ts::*
validated-test:test/ralph-commands.test.ts::*
cursorβœ… supportedπŸ§ͺ validated-testPlatform adapters in @bradygaster/squad-sdk/platform, consumed by squad triage|watch.validated-test:test/platform-adapter.test.ts::*
validated-test:test/ralph-commands.test.ts::*
codexβœ… supportedπŸ§ͺ validated-testPlatform adapters in @bradygaster/squad-sdk/platform, consumed by squad triage|watch.validated-test:test/platform-adapter.test.ts::*
validated-test:test/ralph-commands.test.ts::*
antigravityβœ… supportedπŸ§ͺ validated-testPlatform adapters in @bradygaster/squad-sdk/platform, consumed by squad triage|watch.validated-test:test/platform-adapter.test.ts::*
validated-test:test/ralph-commands.test.ts::*

distributed-mesh

Distributed mesh, capability routing, rate limiting, KEDA autoscaling

Depends on: a (host-independent) Β· docs: features/distributed-mesh Β· features/capability-routing Β· features/rate-limiting Β· features/keda-scaling

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testFleet/watch-side features; the interactive host is not involved.validated-test:test/watch-fleet-dispatch.test.ts::*
validated-test:test/rate-limiting.test.ts::*
validated-test:test/watch-rate-limit.test.ts::*
claudeβœ… supportedπŸ§ͺ validated-testFleet/watch-side features; the interactive host is not involved.validated-test:test/watch-fleet-dispatch.test.ts::*
validated-test:test/rate-limiting.test.ts::*
validated-test:test/watch-rate-limit.test.ts::*
kiroβœ… supportedπŸ§ͺ validated-testFleet/watch-side features; the interactive host is not involved.validated-test:test/watch-fleet-dispatch.test.ts::*
validated-test:test/rate-limiting.test.ts::*
validated-test:test/watch-rate-limit.test.ts::*
opencodeβœ… supportedπŸ§ͺ validated-testFleet/watch-side features; the interactive host is not involved.validated-test:test/watch-fleet-dispatch.test.ts::*
validated-test:test/rate-limiting.test.ts::*
validated-test:test/watch-rate-limit.test.ts::*
cursorβœ… supportedπŸ§ͺ validated-testFleet/watch-side features; the interactive host is not involved.validated-test:test/watch-fleet-dispatch.test.ts::*
validated-test:test/rate-limiting.test.ts::*
validated-test:test/watch-rate-limit.test.ts::*
codexβœ… supportedπŸ§ͺ validated-testFleet/watch-side features; the interactive host is not involved.validated-test:test/watch-fleet-dispatch.test.ts::*
validated-test:test/rate-limiting.test.ts::*
validated-test:test/watch-rate-limit.test.ts::*
antigravityβœ… supportedπŸ§ͺ validated-testFleet/watch-side features; the interactive host is not involved.validated-test:test/watch-fleet-dispatch.test.ts::*
validated-test:test/rate-limiting.test.ts::*
validated-test:test/watch-rate-limit.test.ts::*

aspire-dashboard

Aspire dashboard / OTel observability (squad aspire)

Depends on: a (host-independent) Β· docs: scenarios/aspire-dashboard Β· scenarios/production-observability

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testCLI launches the dashboard; OTel export from the SDK runtime.validated-test:test/aspire-command.test.ts::*
validated-test:test/otel-export.test.ts::*
claudeβœ… supportedπŸ§ͺ validated-testCLI launches the dashboard; OTel export from the SDK runtime.validated-test:test/aspire-command.test.ts::*
validated-test:test/otel-export.test.ts::*
kiroβœ… supportedπŸ§ͺ validated-testCLI launches the dashboard; OTel export from the SDK runtime.validated-test:test/aspire-command.test.ts::*
validated-test:test/otel-export.test.ts::*
opencodeβœ… supportedπŸ§ͺ validated-testCLI launches the dashboard; OTel export from the SDK runtime.validated-test:test/aspire-command.test.ts::*
validated-test:test/otel-export.test.ts::*
cursorβœ… supportedπŸ§ͺ validated-testCLI launches the dashboard; OTel export from the SDK runtime.validated-test:test/aspire-command.test.ts::*
validated-test:test/otel-export.test.ts::*
codexβœ… supportedπŸ§ͺ validated-testCLI launches the dashboard; OTel export from the SDK runtime.validated-test:test/aspire-command.test.ts::*
validated-test:test/otel-export.test.ts::*
antigravityβœ… supportedπŸ§ͺ validated-testCLI launches the dashboard; OTel export from the SDK runtime.validated-test:test/aspire-command.test.ts::*
validated-test:test/otel-export.test.ts::*

gh-aw

GitHub Agentic Workflows (gh-aw) integration

Depends on: e Β· docs: guide/gh-aw

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testWorkflows in workflows/*.md; verifier + e2e scripts.validated-test:test/gh-aw-enlistment-skill.test.ts::*
static-only
claudeβ€” n/aπŸ“„ static-onlyRuns in GitHub Actions with the Copilot engine; the local host is irrelevant.static-only
kiroβ€” n/aπŸ“„ static-onlyRuns in GitHub Actions with the Copilot engine; the local host is irrelevant. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.static-only
opencodeβ€” n/aπŸ“„ static-onlyRuns in GitHub Actions with the Copilot engine; the local host is irrelevant.static-only
cursorβ€” n/aπŸ“„ static-onlyRuns in GitHub Actions with the Copilot engine; the local host is irrelevant. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.static-only
codexβ€” n/aπŸ“„ static-onlyRuns in GitHub Actions with the Copilot engine; the local host is irrelevant. No Codex binary or ChatGPT/API auth on the reference machine; static-only.static-only
antigravityβ€” n/aπŸ“„ static-onlyRuns in GitHub Actions with the Copilot engine; the local host is irrelevant. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.static-only

sdk-first-mode

SDK-first mode (squad.config.ts, squad build, squad migrate)

Depends on: a (host-independent) Β· docs: sdk-first-mode Β· reference/sdk

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testCompiles to the same .squad/ markdown every host consumes.validated-test:test/migrate.test.ts::*
claudeβœ… supportedπŸ§ͺ validated-testCompiles to the same .squad/ markdown every host consumes.validated-test:test/migrate.test.ts::*
kiroβœ… supportedπŸ§ͺ validated-testCompiles to the same .squad/ markdown every host consumes.validated-test:test/migrate.test.ts::*
opencodeβœ… supportedπŸ§ͺ validated-testCompiles to the same .squad/ markdown every host consumes.validated-test:test/migrate.test.ts::*
cursorβœ… supportedπŸ§ͺ validated-testCompiles to the same .squad/ markdown every host consumes.validated-test:test/migrate.test.ts::*
codexβœ… supportedπŸ§ͺ validated-testCompiles to the same .squad/ markdown every host consumes.validated-test:test/migrate.test.ts::*
antigravityβœ… supportedπŸ§ͺ validated-testCompiles to the same .squad/ markdown every host consumes.validated-test:test/migrate.test.ts::*

doctor-health-nap

Maintenance CLIs (squad doctor, squad health, squad nap, squad upgrade)

Depends on: a (host-independent) Β· docs: reference/cli Β· scenarios/upgrading Β· scenarios/troubleshooting

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testPure CLI; upgrade --client refreshes every configured host projection.validated-test:test/cli/doctor.test.ts::*
validated-test:test/cli/upgrade.test.ts::*
validated-test:test/squad-20-all-scenarios.e2e.test.ts::RC1β†’stable exit 1: upgrade and rollback from a v0.1 workspace
claudeβœ… supportedπŸ§ͺ validated-testPure CLI; upgrade --client refreshes every configured host projection.validated-test:test/cli/doctor.test.ts::*
validated-test:test/cli/upgrade.test.ts::*
validated-test:test/squad-20-all-scenarios.e2e.test.ts::RC1β†’stable exit 1: upgrade and rollback from a v0.1 workspace
kiroβœ… supportedπŸ§ͺ validated-testPure CLI; upgrade --client refreshes every configured host projection.validated-test:test/cli/doctor.test.ts::*
validated-test:test/cli/upgrade.test.ts::*
validated-test:test/squad-20-all-scenarios.e2e.test.ts::RC1β†’stable exit 1: upgrade and rollback from a v0.1 workspace
opencodeβœ… supportedπŸ§ͺ validated-testPure CLI; upgrade --client refreshes every configured host projection.validated-test:test/cli/doctor.test.ts::*
validated-test:test/cli/upgrade.test.ts::*
validated-test:test/squad-20-all-scenarios.e2e.test.ts::RC1β†’stable exit 1: upgrade and rollback from a v0.1 workspace
cursorβœ… supportedπŸ§ͺ validated-testPure CLI; upgrade --client refreshes every configured host projection.validated-test:test/cli/doctor.test.ts::*
validated-test:test/cli/upgrade.test.ts::*
validated-test:test/squad-20-all-scenarios.e2e.test.ts::RC1β†’stable exit 1: upgrade and rollback from a v0.1 workspace
codexβœ… supportedπŸ§ͺ validated-testPure CLI; upgrade --client refreshes every configured host projection.validated-test:test/cli/doctor.test.ts::*
validated-test:test/cli/upgrade.test.ts::*
validated-test:test/squad-20-all-scenarios.e2e.test.ts::RC1β†’stable exit 1: upgrade and rollback from a v0.1 workspace
antigravityβœ… supportedπŸ§ͺ validated-testPure CLI; upgrade --client refreshes every configured host projection.validated-test:test/cli/doctor.test.ts::*
validated-test:test/cli/upgrade.test.ts::*
validated-test:test/squad-20-all-scenarios.e2e.test.ts::RC1β†’stable exit 1: upgrade and rollback from a v0.1 workspace

client-projection

Squad 2.0 --client projection (coordinator file + MCP config per host, rollback)

Depends on: a, d Β· docs: concepts/squad-2-0-architecture Β· scenarios/using-squad-across-clients Β· scenarios/client-compatibility

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testinstallClients() writes host-native files idempotently; real CLIs load them.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hosts
claudeβœ… supportedπŸ§ͺ validated-testinstallClients() writes host-native files idempotently; real CLIs load them.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hosts
validated-test:test/clients-real-cli.test.ts::claude discovers the squad subagents and parses .mcp.json
kiroβœ… supportedπŸ§ͺ validated-testinstallClients() writes host-native files idempotently; real CLIs load them.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hosts
validated-test:test/clients-real-cli.test.ts::kiro validates and lists the squad agent
opencodeβœ… supportedπŸ§ͺ validated-testinstallClients() writes host-native files idempotently; real CLIs load them.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hosts
validated-test:test/clients-real-cli.test.ts::opencode loads squad as a primary agent and connects the MCP server
cursorβœ… supportedπŸ§ͺ validated-testinstallClients() writes host-native files idempotently; real CLIs load them. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hosts
validated-test:test/clients-real-cli.test.ts::cursor-agent lists the squad_state server from .cursor/mcp.json (read-only)
codexβœ… supportedπŸ§ͺ validated-testinstallClients() writes host-native files idempotently; real CLIs load them.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hosts
validated-test:test/clients-real-cli.test.ts::codex loads the project config (trusted), sees squad_state MCP, discovers the squad TOML role, and activates coordinator instructions on spawn
antigravityβœ… supportedπŸ§ͺ validated-testinstallClients() writes host-native files idempotently; real CLIs load them.validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --client
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hosts
validated-test:test/clients-real-cli.test.ts::antigravity discovers the squad agent

squad-state-mcp-bridge

squad_state MCP bridge reachable from the host (stdio, host-prefixed tool names)

Depends on: c, d Β· docs: concepts/squad-2-0-architecture Β· reference/tools-and-hooks

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testProjected launch spec npx -y @bradygaster/squad-cli@<ver> state-mcp (or standalone binary); digest Β§4 documents the host prefixes.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
static-only
claudeβœ… supportedπŸ–₯️ validated-liveProjected launch spec npx -y @bradygaster/squad-cli@<ver> state-mcp (or standalone binary); digest Β§4 documents the host prefixes.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients-real-cli.test.ts::claude discovers the squad subagents and parses .mcp.json
validated-manual:lab:smoke-roster@2026-10-22
validated-test:test/squad-20-host-feature-matrix.test.ts::claude --agent squad reads the roster through mcp__squad_state__squad_state_read
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
kiroβœ… supportedπŸ§ͺ validated-testProjected launch spec npx -y @bradygaster/squad-cli@<ver> state-mcp (or standalone binary); digest Β§4 documents the host prefixes. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients-real-cli.test.ts::kiro validates and lists the squad agent
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
static-only
opencodeβœ… supportedπŸ–₯️ validated-liveProjected launch spec npx -y @bradygaster/squad-cli@<ver> state-mcp (or standalone binary); digest Β§4 documents the host prefixes.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients-real-cli.test.ts::opencode loads squad as a primary agent and connects the MCP server
validated-manual:lab:smoke-roster@2026-10-22
validated-test:test/squad-20-host-feature-matrix.test.ts::opencode --agent squad reads the roster through squad_state_squad_state_read
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
cursorβœ… supportedπŸ§ͺ validated-testProjected launch spec npx -y @bradygaster/squad-cli@<ver> state-mcp (or standalone binary); digest Β§4 documents the host prefixes. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients-real-cli.test.ts::cursor-agent lists the squad_state server from .cursor/mcp.json (read-only)
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
static-only
codexβœ… supportedπŸ§ͺ validated-testProjected launch spec npx -y @bradygaster/squad-cli@<ver> state-mcp (or standalone binary); digest Β§4 documents the host prefixes. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients-real-cli.test.ts::codex loads the project config (trusted), sees squad_state MCP, discovers the squad TOML role, and activates coordinator instructions on spawn
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
static-only
antigravityβœ… supportedπŸ§ͺ validated-testProjected launch spec npx -y @bradygaster/squad-cli@<ver> state-mcp (or standalone binary); digest Β§4 documents the host prefixes. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directory
validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client reads
validated-test:test/clients-real-cli.test.ts::antigravity discovers the squad agent
validated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promises
static-only

capability-negotiation

Capability negotiation (client ∩ backend ∩ policy)

Depends on: c Β· docs: concepts/squad-2-0-architecture

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testCAPABILITY_TOKENS_BY_HOST 1:1 with capability-matrix.json; negotiated over real JSON-RPC.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection
claudeβœ… supportedπŸ§ͺ validated-testCAPABILITY_TOKENS_BY_HOST 1:1 with capability-matrix.json; negotiated over real JSON-RPC.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection
kiroβœ… supportedπŸ§ͺ validated-testCAPABILITY_TOKENS_BY_HOST 1:1 with capability-matrix.json; negotiated over real JSON-RPC.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection
opencodeβœ… supportedπŸ§ͺ validated-testCAPABILITY_TOKENS_BY_HOST 1:1 with capability-matrix.json; negotiated over real JSON-RPC.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection
cursorβœ… supportedπŸ§ͺ validated-testCAPABILITY_TOKENS_BY_HOST 1:1 with capability-matrix.json; negotiated over real JSON-RPC.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection
codexβœ… supportedπŸ§ͺ validated-testCAPABILITY_TOKENS_BY_HOST 1:1 with capability-matrix.json; negotiated over real JSON-RPC.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection
antigravityβœ… supportedπŸ§ͺ validated-testCAPABILITY_TOKENS_BY_HOST 1:1 with capability-matrix.json; negotiated over real JSON-RPC.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.json
validated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection

experimental-backend

Experimental conversation backend (squad_backend_*, durable-http, approvals, resume)

Depends on: c Β· docs: concepts/squad-2-0-architecture

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testOpt-in tools over the same MCP server; backend semantics are host-independent.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecycle
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β†’ broker β†’ harness β†’ approval β†’ restart/reconnect
claudeβœ… supportedπŸ§ͺ validated-testOpt-in tools over the same MCP server; backend semantics are host-independent.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecycle
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β†’ broker β†’ harness β†’ approval β†’ restart/reconnect
kiroβœ… supportedπŸ§ͺ validated-testOpt-in tools over the same MCP server; backend semantics are host-independent.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecycle
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β†’ broker β†’ harness β†’ approval β†’ restart/reconnect
opencodeβœ… supportedπŸ§ͺ validated-testOpt-in tools over the same MCP server; backend semantics are host-independent.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecycle
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β†’ broker β†’ harness β†’ approval β†’ restart/reconnect
cursorβœ… supportedπŸ§ͺ validated-testOpt-in tools over the same MCP server; backend semantics are host-independent.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecycle
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β†’ broker β†’ harness β†’ approval β†’ restart/reconnect
codexβœ… supportedπŸ§ͺ validated-testOpt-in tools over the same MCP server; backend semantics are host-independent.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecycle
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β†’ broker β†’ harness β†’ approval β†’ restart/reconnect
antigravityβœ… supportedπŸ§ͺ validated-testOpt-in tools over the same MCP server; backend semantics are host-independent.validated-test:test/squad-20-real-clients-stdio.e2e.test.ts::completes the MCP handshake and lists squad_state_* and all squad_backend_* tools when opted in
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecycle
validated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β†’ broker β†’ harness β†’ approval β†’ restart/reconnect

process-hygiene

Process hygiene (never kill by image name; PID-only)

Depends on: b Β· docs: scenarios/troubleshooting Β· canonical sections: Constraints

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ§ͺ validated-testDigest Β§22–23.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
claudeβœ… supportedπŸ§ͺ validated-testDigest Β§22–23.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
kiroβœ… supportedπŸ§ͺ validated-testDigest Β§22–23. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
opencodeβœ… supportedπŸ§ͺ validated-testDigest Β§22–23.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
cursorβœ… supportedπŸ§ͺ validated-testDigest Β§22–23. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
codexβœ… supportedπŸ§ͺ validated-testDigest Β§22–23. No Codex binary or ChatGPT/API auth on the reference machine; static-only.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only
antigravityβœ… supportedπŸ§ͺ validated-testDigest Β§22–23. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.validated-test:test/clients.test.ts::coordinator behavioral-contract parity
static-only

subagent-mcp-inheritance

Specialists (subagents) can reach squad_state tools themselves

Depends on: d Β· docs: concepts/squad-2-0-architecture

HostCapabilityValidationMechanismEvidence
copilotβœ… supportedπŸ“„ static-onlytask subagents inherit the session MCP servers.static-only
claudeβœ… supportedπŸ–₯️ validated-liveSubagents inherit MCP servers (Claude Task, Codex spawn_agent, OpenCode child sessions, Kiro subagents). Live: Galois/Fermat/Scribe each called squad_state_* tools from inside their spawn (history appended, inbox drained).validated-manual:lab:parallel-fanout@2026-10-22
kiroβœ… supportedβ›” blocked β€” live run blocked on the reference machine: kiro-cli chat failed: β€œThe monthly usage limit has been reached”.Subagents inherit MCP servers (Claude Task, Codex spawn_agent, OpenCode child sessions, Kiro subagents). Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine.static-only
opencodeβœ… supportedπŸ–₯️ validated-liveSubagents inherit MCP servers (Claude Task, Codex spawn_agent, OpenCode child sessions, Kiro subagents). Live: Galois/Fermat/Scribe each called squad_state_* tools from inside their spawn (history appended, inbox drained).validated-manual:lab:parallel-fanout@2026-10-22
cursorβœ… supportedβ›” blocked β€” live run blocked on the reference machine: cursor-agent -p failed: β€œYou’ve hit your usage limit”.Subagents inherit MCP servers (Claude Task, Codex spawn_agent, OpenCode child sessions, Kiro subagents). Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine.static-only
codexβœ… supported❔ untestedSubagents inherit MCP servers (Claude Task, Codex spawn_agent, OpenCode child sessions, Kiro subagents). No Codex binary or ChatGPT/API auth on the reference machine; static-only.static-only
antigravity⚠️ degradedβ›” blocked β€” live run blocked on the reference machine: agy -p failed: RESOURCE_EXHAUSTED 429 β€œIndividual quota reached” (resets in ~75h).invoke_subagent starts with a clean context; MCP attached via agent frontmatter may not propagate β€” specialists return results for the coordinator to persist. Live run blocked on 2026-10-22: antigravity quota/usage limit reached on the reference machine.static-only

Live run log

Headless real-CLI runs behind the validated-manual:lab:<scenario> evidence entries above (only pass/partial runs raise a cell to validated-live). Each run drove the host’s projected Squad coordinator against a real model in a throwaway repository; transcripts are kept outside the repository.

DateHostScenarioOutcomeObserved toolsNotes
2026-10-22claudesmoke-rosterβœ… passmcp__squad_state__squad_state_readRoster + testing owner from team.md/routing.md via host-reported squad_state tool events (observed in the host transcript, not a JSON-RPC assertion).
2026-10-22claudeinit-modeβœ… passmcp__squad_state__squad_state_read, BashEmpty roster β†’ proposed 4 specialists, cast each with squad cast --name, stopped after reporting the roster.
2026-10-22claudeupstreamβœ… passmcp__squad_state__squad_state_read, BashFound SEVEN-SECOND-TIMEOUT decision and ORG-LOG-PREFIX skill by reading the upstream path from upstream.json.
2026-10-22claudecross-squadβœ… passRead, BashLoaded cross-squad + cross-squad-communication skills, read squad-registry.json and peer manifest, prepared squad delegate peer-b …, no issue created, no ad-hoc subagents.
2026-10-22claudemono-subfolderβœ… passmcp__squad_state__squad_state_readFrom packages/api with β€”mcp-config /.mcp.json; natively the server is β€œPending approval” (F5).
2026-10-22claudesatellite-remoteβœ… passmcp__squad_state__squad_state_read, ReadRoster served from teamRoot ..\base; no Init Mode.
2026-10-22claudeado-platformβœ… passBash, ReadDetected Azure DevOps from the remote; consulted issue-lifecycle.md; proposed az boards/az repos commands; ran only read-only checks.
2026-10-22claudegithub-issues-readonlyβœ… passBash, mcp__squad_state__squad_state_readgh prerequisites checked; 5 squad-labelled issues listed read-only and routed via routing.md (Lead triages unknown squad:* labels).
2026-10-22claudestate-orphanβœ… passmcp__squad_state__squad_state_health, mcp__squad_state__squad_decide, mcp__squad_state__squad_state_listDecision committed to the squad-state orphan branch; working tree untouched; health reported the storage class, not β€œorphan” (F6).
2026-10-22claudestate-twolayerβœ… passmcp__squad_state__squad_state_health, mcp__squad_state__squad_decide, mcp__squad_state__squad_state_listDecision committed to the squad-state branch (two-layer); health reported the storage class, not β€œtwo-layer” (F6).
2026-10-22claudeskills-precedenceβœ… passBash.squad/skills/deploy-rules (DEPLOY-ALPHA) won over .github and .claude copies; no spawn in the dry run.
2026-10-22claudedirective-captureβœ… passmcp__squad_state__squad_decidePersistent β€œalways use tabs” directive recorded via squad_decide and acknowledged.
2026-10-22claudereviewer-lockoutβœ… passAgent, mcp__squad_state__squad_decideGalois authored, Fermat REJECTed (β€œmissing tests”), Galois locked out, revision assigned to Noether, verdict recorded via squad_decide.
2026-10-22clauderalph-no-repoβœ… passBashNo git remote β†’ Ralph reported it and stopped without routing work.
2026-10-22claudeworktree-spawnβœ… passBash, ReadCreated sibling worktree base-12 on squad/12-add-health per worktree-reference.md.
2026-10-22claudeparallel-fanoutβœ… passAgent, mcp__squad_state__squad_state_append, mcp__squad_state__squad_state_healthTwo specialists spawned in one turn (Claude: background subagents), each appended its own history via host-reported squad_state tool events (observed in the host transcript, not a JSON-RPC assertion); Scribe drained the inbox.
2026-10-22opencodesmoke-rosterβœ… passsquad_state_squad_state_readRoster + testing owner from team.md/routing.md via host-reported squad_state tool events (observed in the host transcript, not a JSON-RPC assertion).
2026-10-22opencodeinit-modeβœ… passsquad_state_squad_state_read, BashEmpty roster β†’ proposed 4 specialists, cast each with squad cast --name, stopped after reporting the roster.
2026-10-22opencodeupstream⚠️ partialsquad_state_squad_state_read, BashFound the upstream decision; missed the .copilot/skills skill living beside the upstream .squad/.
2026-10-22opencodecross-squadβœ… passRead, BashLoaded cross-squad + cross-squad-communication skills, read squad-registry.json and peer manifest, prepared squad delegate peer-b …, no issue created, no ad-hoc subagents.
2026-10-22opencodemono-subfolderβœ… passsquad_state_squad_state_readFrom packages/api; opencode.json and agent resolved from the repo root.
2026-10-22opencodesatellite-remoteβœ… passsquad_state_squad_state_read, ReadRoster served from teamRoot ..\base; no Init Mode.
2026-10-22opencodeado-platformβœ… passBash, ReadDetected Azure DevOps from the remote; consulted issue-lifecycle.md; proposed az boards/az repos commands; ran only read-only checks.
2026-10-22opencodegithub-issues-readonlyβœ… passBash, squad_state_squad_state_readgh prerequisites checked; 5 squad-labelled issues listed read-only and routed via routing.md (Lead triages unknown squad:* labels).
2026-10-22opencodestate-orphanβœ… passsquad_state_squad_state_health, squad_state_squad_decide, squad_state_squad_state_listDecision committed to the squad-state orphan branch; working tree untouched; health reported the storage class, not β€œorphan” (F6).
2026-10-22opencodestate-twolayerβœ… passsquad_state_squad_state_health, squad_state_squad_decide, squad_state_squad_state_listDecision committed to the squad-state branch (two-layer); health reported the storage class, not β€œtwo-layer” (F6).
2026-10-22opencodeskills-precedenceβœ… passBash.squad/skills/deploy-rules (DEPLOY-ALPHA) won over .github and .claude copies; no spawn in the dry run.
2026-10-22opencodedirective-captureβœ… passsquad_state_squad_decidePersistent β€œalways use tabs” directive recorded via squad_decide and acknowledged.
2026-10-22opencodereviewer-lockoutβœ… passtask, squad_state_squad_decideGalois authored, Fermat REJECTed (β€œmissing tests”), Galois locked out, revision assigned to Noether, verdict recorded via squad_decide.
2026-10-22opencoderalph-no-repoβœ… passBashNo git remote β†’ Ralph reported it and stopped without routing work.
2026-10-22opencodeworktree-spawnβœ… passBash, ReadCreated sibling worktree base-12 on squad/12-add-health per worktree-reference.md.
2026-10-22opencodeparallel-fanoutβœ… passtask, squad_state_squad_state_append, squad_state_squad_state_healthTwo specialists spawned in one turn (Claude: background subagents), each appended its own history via host-reported squad_state tool events (observed in the host transcript, not a JSON-RPC assertion); Scribe drained the inbox.
2026-10-22kirosmoke-rosterβ›” blockedβ€”kiro-cli chat failed: β€œThe monthly usage limit has been reached”.
2026-10-22antigravitysmoke-rosterβ›” blockedβ€”agy -p failed: RESOURCE_EXHAUSTED 429 β€œIndividual quota reached” (resets in ~75h).
2026-10-22cursorsmoke-rosterβ›” blockedβ€”cursor-agent -p failed: β€œYou’ve hit your usage limit”.