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
| Class | Depends on |
|---|---|
| a | squad CLI only (host-agnostic; the host is not involved) |
| b | coordinator-prompt behavior (the section must be present in the hostβs coordinator file or reachable on demand) |
| c | squad_state / memory.* MCP tools (state-mcp bridge reachable from the host) |
| d | host runtime capability (subagent spawn, background tasks, shell, file ops, sql, per-spawn model, MCP inheritance by subagents) |
| e | platform 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).
| Capability | Meaning |
|---|---|
β
supported | The host can do this through the stated mechanism, with no known limitation. |
β οΈ degraded | The 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). |
β unsupported | The 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/a | Not applicable to this host (a Copilot-only surface or something that runs outside the host). |
| Validation | Meaning |
|---|---|
π§ͺ validated-test | An 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-live | A 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-only | Only the projected/canonical text or the source was inspected; no automated or live evidence for this cell. |
β untested | Nothing beyond static reading, and no live attempt was made for this host. |
β blocked | A live run was attempted for this host and could not complete for an external reason (blockedReason); confidence is the same as untested. |
| Evidence entry | Meaning |
|---|---|
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-only | Marker: 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
| Host | CLI | Coordinator file | MCP config | Subagents | Background | Per-spawn model | Subagents inherit MCP |
|---|---|---|---|---|---|---|---|
GitHub Copilot (CLI / app / VS Code) (copilot) | copilot | .github/agents/squad.agent.md (canonical) | .mcp.json | yes | yes | yes | yes |
Claude Code (claude) | claude | .claude/agents/squad.md (digest) + CLAUDE.md block | .mcp.json | yes | yes | no | yes |
Kiro CLI (kiro) | kiro-cli | .kiro/agents/squad.json + .kiro/steering/squad.md (manual) | .kiro/settings/mcp.json | yes | no | no | yes |
OpenCode (opencode) | opencode | .opencode/agents/squad.md (primary) | opencode.json (mcp.squad_state) | yes | yes | no | yes |
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.json | yes | no | no | yes |
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) | yes | no | no | yes |
Google Antigravity (antigravity) | agy | .agents/agents/squad.md + GEMINI.md block | agent frontmatter mcpServers (or agy mcp add) | yes | no | no | no |
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 | β blocked | of which expected-failure gaps |
|---|---|---|---|---|---|---|---|---|---|---|
copilot | 45 | 0 | 6 | 0 | 0 | 49 | 2 | 0 | 0 | 6 |
claude | 41 | 1 | 6 | 3 | 18 | 30 | 3 | 0 | 0 | 6 |
kiro | 40 | 2 | 6 | 3 | 0 | 47 | 3 | 0 | 1 | 6 |
opencode | 41 | 1 | 6 | 3 | 18 | 30 | 3 | 0 | 0 | 6 |
cursor | 40 | 2 | 6 | 3 | 0 | 47 | 3 | 0 | 1 | 6 |
codex | 40 | 2 | 6 | 3 | 0 | 47 | 3 | 1 | 0 | 6 |
antigravity | 39 | 3 | 6 | 3 | 0 | 47 | 3 | 0 | 1 | 6 |
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.
| Feature | Test (title; each generated test appends the host as [<host>]) | Hosts | Meaning |
|---|---|---|---|
| monorepo-team-root | test/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 antigravity | The 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-mode | test/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 antigravity | The 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-devops | test/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 antigravity | The 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-issues | test/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 antigravity | The 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-selection | test/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 antigravity | The 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-plugins | test/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 antigravity | The 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
supportedcell may be onlystatic-only, and anunsupporteddigest-gap cell isvalidated-testbecause anit.failsproves the gap. Read both columns. - Expected failures are pinned per host and per gap (one
it.failsper<gap> [<host>]pair); a section landing for one host turns exactly that hostβs test red. Those cells areunsupported, neverdegraded. - 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-testonly through host-independent tests, otherwisestatic-only,untestedorblocked. - The opt-in headless coordinator tests (
SQUAD_REAL_MODEL_TESTS=1) verify the MCP bridge through a teeβdsquad state-mcptranscript (a successfultools/callofsquad_state_readwithkey: "team.md"), not by matching stdout. No other cell claims bridge-level verification.
Matrix
Core
| Feature | Deps | copilot | claude | kiro | opencode | cursor | codex | antigravity |
|---|---|---|---|---|---|---|---|---|
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β acknowledgement | b | β π§ͺ | β π₯οΈ | β π§ͺ | β π₯οΈ | β π§ͺ | β π§ͺ | β π§ͺ |
| Model / reasoning-effort / context-tier selection per spawn | b, d | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ |
| Parallel fan-out of independent specialists | b, 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
| Feature | Deps | copilot | claude | kiro | opencode | cursor | codex | antigravity |
|---|---|---|---|---|---|---|---|---|
| Scribe, decisions drop-box, agent history, orchestration log | b, c | β π§ͺ | β π₯οΈ | β π§ͺ | β π₯οΈ | β π§ͺ | β π§ͺ | β π§ͺ |
Directive capture (βalwaysβ¦/neverβ¦β β squad_decide) | b, c | β π§ͺ | β π₯οΈ | β π§ͺ | β π₯οΈ | β π§ͺ | β π§ͺ | β π§ͺ |
Memory governance (memory.* tools, classes, promote/audit) | c | β π§ͺ | β π₯οΈ | β π§ͺ | β π₯οΈ | β π§ͺ | β π§ͺ | β π§ͺ |
State backends (local / orphan / two-layer) + handshake | a, c, b | β π§ͺ | β π₯οΈ | β π§ͺ | β π₯οΈ | β π§ͺ | β π§ͺ | β π§ͺ |
Quality
| Feature | Deps | copilot | claude | kiro | opencode | cursor | codex | antigravity |
|---|---|---|---|---|---|---|---|---|
| Reviewer rejection protocol & strict author lockout | b | β π§ͺ | β π₯οΈ | β π§ͺ | β π₯οΈ | β π§ͺ | β π§ͺ | β π§ͺ |
| Rai β Responsible-AI reviewer (π’/π‘/π΄) | b, d | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ |
| Fact Checker β verification & devilβs advocate | b | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ |
Advanced
| Feature | Deps | copilot | claude | kiro | opencode | cursor | codex | antigravity |
|---|---|---|---|---|---|---|---|---|
| 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
| Feature | Deps | copilot | claude | kiro | opencode | cursor | codex | antigravity |
|---|---|---|---|---|---|---|---|---|
@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) integration | e | β π§ͺ | β π | β π | β π | β π | β π | β π |
Platforms
| Feature | Deps | copilot | claude | kiro | opencode | cursor | codex | antigravity |
|---|---|---|---|---|---|---|---|---|
GitLab Issues mode (experimental, glab) | b, e | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ |
Azure DevOps platform (work items, PRs, az boards, ADO MCP) | a, b, e | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ |
Multi-squad
| Feature | Deps | copilot | claude | kiro | opencode | cursor | codex | antigravity |
|---|---|---|---|---|---|---|---|---|
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
| Feature | Deps | copilot | claude | kiro | opencode | cursor | codex | antigravity |
|---|---|---|---|---|---|---|---|---|
| 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 autoscaling | a (host-independent) | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ |
Aspire dashboard / OTel observability (squad aspire) | a (host-independent) | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ | β π§ͺ |
Squad 2.0
| Feature | Deps | copilot | claude | kiro | opencode | cursor | codex | antigravity |
|---|---|---|---|---|---|---|---|---|
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 themselves | d | β π | β π₯οΈ | β β | β π₯οΈ | β β | β β | β οΈ β |
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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registryvalidated-test:test/cli/init.test.ts::*static-only |
claude | β supported | π₯οΈ validated-live | CLI 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 parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registryvalidated-test:test/cli/init.test.ts::*validated-manual:lab:init-mode@2026-10-22 |
kiro | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registryvalidated-test:test/cli/init.test.ts::*static-only |
opencode | β supported | π₯οΈ validated-live | CLI 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 parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registryvalidated-test:test/cli/init.test.ts::*validated-manual:lab:init-mode@2026-10-22 |
cursor | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registryvalidated-test:test/cli/init.test.ts::*static-only |
codex | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registryvalidated-test:test/cli/init.test.ts::*static-only |
antigravity | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::field findings from the live demo: Init Mode, scratch files, casting registryvalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§2β3: route by routing.md, exactly one owner, explicit deliverables/exclusions. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π₯οΈ validated-live | Digest Β§2β3: route by routing.md, exactly one owner, explicit deliverables/exclusions. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-manual:lab:smoke-roster@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§2β3: route by routing.md, exactly one owner, explicit deliverables/exclusions. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-manual:lab:smoke-roster@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-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"
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§10 carries all four modes and the acknowledge-then-spawn rule. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π₯οΈ validated-live | Digest Β§10 carries all four modes and the acknowledge-then-spawn rule. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-manual:lab:smoke-roster@2026-10-22validated-manual:lab:ralph-no-repo@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§10 carries all four modes and the acknowledge-then-spawn rule. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-manual:lab:smoke-roster@2026-10-22validated-manual:lab:ralph-no-repo@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-only |
parallel-fanout
Parallel fan-out of independent specialists
Depends on: b, d Β· docs: features/parallel-execution Β· concepts/parallel-work Β· canonical sections: Team Mode
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.jsonstatic-only |
claude | β supported | π₯οΈ validated-live | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.jsonvalidated-manual:lab:parallel-fanout@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.jsonstatic-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.jsonvalidated-manual:lab:parallel-fanout@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.jsonstatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.jsonstatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::negotiates capabilities for the client per capability-matrix.jsonstatic-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | background-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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts |
claude | β supported | π₯οΈ validated-live | background-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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hostsvalidated-manual:lab:parallel-fanout@2026-10-22 |
kiro | β οΈ degraded | π§ͺ validated-test | No 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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts |
opencode | β supported | π₯οΈ validated-live | background-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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hostsvalidated-manual:lab:parallel-fanout@2026-10-22 |
cursor | β οΈ degraded | π§ͺ validated-test | No 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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts |
codex | β οΈ degraded | π§ͺ validated-test | No 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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hosts |
antigravity | β οΈ degraded | π§ͺ validated-test | No 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.jsonvalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§5/Β§11; writes go through squad_decide / squad_state_append; Scribe merges inbox β decisions.md. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directorystatic-only |
claude | β supported | π₯οΈ validated-live | Digest Β§5/Β§11; writes go through squad_decide / squad_state_append; Scribe merges inbox β decisions.md. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directoryvalidated-manual:lab:parallel-fanout@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directorystatic-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§5/Β§11; writes go through squad_decide / squad_state_append; Scribe merges inbox β decisions.md. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directoryvalidated-manual:lab:parallel-fanout@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directorystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directorystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::executes squad_state tools against the workspace .squad directorystatic-only |
directive-capture
Directive capture (βalwaysβ¦/neverβ¦β β squad_decide)
Depends on: b, c Β· docs: features/directives Β· canonical sections: Directive Capture
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§16 captures persistent directives via squad_decide and dispatches implementation separately. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π₯οΈ validated-live | Digest Β§16 captures persistent directives via squad_decide and dispatches implementation separately. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-manual:lab:directive-capture@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§16 captures persistent directives via squad_decide and dispatches implementation separately. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-manual:lab:directive-capture@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
memory-governance
Memory governance (memory.* tools, classes, promote/audit)
Depends on: c Β· docs: features/memory Β· canonical sections: Memory Governance Tools
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | memory.* aliases live in the same squad_state MCP server; digest Β§16 prefers them when exposed. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-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 invalidated-test:test/memory-governance.test.ts::*static-only |
claude | β supported | π₯οΈ validated-live | memory.* aliases live in the same squad_state MCP server; digest Β§16 prefers them when exposed. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-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 invalidated-test:test/memory-governance.test.ts::*validated-manual:lab:state-orphan@2026-10-22 |
kiro | β supported | π§ͺ validated-test | memory.* 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 parityvalidated-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 invalidated-test:test/memory-governance.test.ts::*static-only |
opencode | β supported | π₯οΈ validated-live | memory.* aliases live in the same squad_state MCP server; digest Β§16 prefers them when exposed. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-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 invalidated-test:test/memory-governance.test.ts::*validated-manual:lab:state-orphan@2026-10-22 |
cursor | β supported | π§ͺ validated-test | memory.* 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 parityvalidated-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 invalidated-test:test/memory-governance.test.ts::*static-only |
codex | β supported | π§ͺ validated-test | memory.* 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 parityvalidated-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 invalidated-test:test/memory-governance.test.ts::*static-only |
antigravity | β supported | π§ͺ validated-test | memory.* 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 parityvalidated-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 invalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | squad 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 promisesvalidated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backendvalidated-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-live | squad 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 promisesvalidated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backendvalidated-test:test/state-backend.test.ts::*validated-test:test/upgrade-state-backend.test.ts::*validated-manual:lab:state-orphan@2026-10-22validated-manual:lab:state-twolayer@2026-10-22validated-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-test | squad 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 promisesvalidated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backendvalidated-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-live | squad 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 promisesvalidated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backendvalidated-test:test/state-backend.test.ts::*validated-test:test/upgrade-state-backend.test.ts::*validated-manual:lab:state-orphan@2026-10-22validated-manual:lab:state-twolayer@2026-10-22validated-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-test | squad 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 promisesvalidated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backendvalidated-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 treestatic-only |
codex | β supported | π§ͺ validated-test | squad 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 promisesvalidated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backendvalidated-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-test | squad 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 promisesvalidated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::R3-9: createMcpBackend honors a configured (non-local) state backend instead of writing .squad/backendvalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/skills.test.ts::*static-only |
claude | β supported | π₯οΈ validated-live | Digest Β§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 parityvalidated-test:test/skills.test.ts::*validated-manual:lab:skills-precedence@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/skills.test.ts::*static-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§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 parityvalidated-test:test/skills.test.ts::*validated-manual:lab:skills-precedence@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/skills.test.ts::*static-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/skills.test.ts::*static-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§12: REJECT locks out the author; revision reassigned; re-review required. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π₯οΈ validated-live | Digest Β§12: REJECT locks out the author; revision reassigned; re-review required. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-manual:lab:reviewer-lockout@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§12: REJECT locks out the author; revision reassigned; re-review required. | validated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-manual:lab:reviewer-lockout@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
rai
Rai β Responsible-AI reviewer (π’/π‘/π΄)
Depends on: b, d Β· docs: features/reviewer-protocol Β· canonical sections: Rai β RAI Reviewer
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Canonical Β§Rai; background by default. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π§ͺ validated-test | Digest Β§13; runs in the background (background-runs declared since F7). | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π§ͺ validated-test | Digest Β§13; background capable. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
fact-checker
Fact Checker β verification & devilβs advocate
Depends on: b Β· docs: features/reviewer-protocol Β· canonical sections: Fact Checker β Verification & Devil's Advocate
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§14 with β /β οΈ/β/π ratings, steelman and pre-mortem. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π§ͺ validated-test | Digest Β§14 with β /β οΈ/β/π ratings, steelman and pre-mortem. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π§ͺ validated-test | Digest Β§14 with β /β οΈ/β/π ratings, steelman and pre-mortem. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
ceremonies
Ceremonies (before/after/manual, cooldowns)
Depends on: b, c Β· docs: features/ceremonies Β· canonical sections: Ceremonies
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§15 reads ceremonies.md, spawns a facilitator, records via squad_decide. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π§ͺ validated-test | Digest Β§15 reads ceremonies.md, spawns a facilitator, records via squad_decide. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π§ͺ validated-test | Digest Β§15 reads ceremonies.md, spawns a facilitator, records via squad_decide. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§21. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π§ͺ validated-test | Digest Β§21. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π§ͺ validated-test | Digest Β§21. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§21. No Codex binary or ChatGPT/API auth on the reference machine; static-only. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/team-capabilities-lifecycle.test.ts::*static-only |
claude | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/team-capabilities-lifecycle.test.ts::*static-only |
kiro | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/team-capabilities-lifecycle.test.ts::*static-only |
opencode | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/team-capabilities-lifecycle.test.ts::*static-only |
cursor | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/team-capabilities-lifecycle.test.ts::*static-only |
codex | β supported | π§ͺ validated-test | CLI 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 parityvalidated-test:test/team-capabilities-lifecycle.test.ts::*static-only |
antigravity | β supported | π§ͺ validated-test | CLI 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 parityvalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π₯οΈ validated-live | Digest Β§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 modevalidated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-manual:lab:ralph-no-repo@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§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 modevalidated-test:test/clients.test.ts::coordinator behavioral-contract parityvalidated-manual:lab:ralph-no-repo@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
ralph-cli-triage-watch
Ralph CLI (squad triage / watch / loop βexecute)
Depends on: a, e (host-independent) Β· docs: features/ralph Β· features/labels
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Default 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-test | Scanning/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-test | Scanning/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-test | Scanning/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-test | Scanning/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-test | Scanning/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-test | Scanning/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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§19; prd-intake.md template on demand. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π§ͺ validated-test | Digest Β§19; prd-intake.md template on demand. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π§ͺ validated-test | Digest Β§19; prd-intake.md template on demand. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
claude | β supported | π₯οΈ validated-live | Digest Β§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 parityvalidated-manual:lab:github-issues-readonly@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§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 parityvalidated-manual:lab:github-issues-readonly@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§9/Β§18 route by squad:<member> labels; CLI triage applies the same taxonomy. | validated-test:test/clients.test.ts::coordinator Ralph modevalidated-test:test/ralph-triage.test.ts::*static-only |
claude | β supported | π₯οΈ validated-live | Digest Β§9/Β§18 route by squad:<member> labels; CLI triage applies the same taxonomy. | validated-test:test/clients.test.ts::coordinator Ralph modevalidated-test:test/ralph-triage.test.ts::*validated-manual:lab:github-issues-readonly@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/ralph-triage.test.ts::*static-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§9/Β§18 route by squad:<member> labels; CLI triage applies the same taxonomy. | validated-test:test/clients.test.ts::coordinator Ralph modevalidated-test:test/ralph-triage.test.ts::*validated-manual:lab:github-issues-readonly@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/ralph-triage.test.ts::*static-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/ralph-triage.test.ts::*static-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | CLI capability, GitHub Projects via gh; the local host is not involved. | validated-test:test/ralph-board.test.ts::* |
claude | β supported | π§ͺ validated-test | CLI capability, GitHub Projects via gh; the local host is not involved. | validated-test:test/ralph-board.test.ts::* |
kiro | β supported | π§ͺ validated-test | CLI capability, GitHub Projects via gh; the local host is not involved. | validated-test:test/ralph-board.test.ts::* |
opencode | β supported | π§ͺ validated-test | CLI capability, GitHub Projects via gh; the local host is not involved. | validated-test:test/ralph-board.test.ts::* |
cursor | β supported | π§ͺ validated-test | CLI capability, GitHub Projects via gh; the local host is not involved. | validated-test:test/ralph-board.test.ts::* |
codex | β supported | π§ͺ validated-test | CLI capability, GitHub Projects via gh; the local host is not involved. | validated-test:test/ralph-board.test.ts::* |
antigravity | β supported | π§ͺ validated-test | CLI 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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
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 matrixstatic-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-22validated-test:test/clients.test.ts::coordinator digest vs. host feature matrixstatic-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 matrixstatic-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-22validated-test:test/clients.test.ts::coordinator digest vs. host feature matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Runtime 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 fetchesvalidated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied onvalidated-test:test/upstream.test.ts::*validated-test:test/upstream-e2e.test.ts::* |
claude | β supported | π§ͺ validated-test | Runtime 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 fetchesvalidated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied onvalidated-test:test/upstream.test.ts::*validated-test:test/upstream-e2e.test.ts::*validated-manual:lab:upstream@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Runtime 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 fetchesvalidated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied onvalidated-test:test/upstream.test.ts::*validated-test:test/upstream-e2e.test.ts::* |
opencode | β supported | π§ͺ validated-test | Runtime 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 fetchesvalidated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied onvalidated-test:test/upstream.test.ts::*validated-test:test/upstream-e2e.test.ts::*validated-manual:lab:upstream@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Runtime 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 fetchesvalidated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied onvalidated-test:test/upstream.test.ts::*validated-test:test/upstream-e2e.test.ts::* |
codex | β supported | π§ͺ validated-test | Runtime 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 fetchesvalidated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied onvalidated-test:test/upstream.test.ts::*validated-test:test/upstream-e2e.test.ts::* |
antigravity | β supported | π§ͺ validated-test | Runtime 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 fetchesvalidated-test:test/clients.test.ts::digest carries the host-specific sections the live runs relied onvalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/cross-squad-registry.test.ts::*validated-test:test/cross-squad.test.ts::*static-only |
claude | β supported | π₯οΈ validated-live | Digest Β§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 parityvalidated-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-test | Digest Β§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 parityvalidated-test:test/cross-squad-registry.test.ts::*validated-test:test/cross-squad.test.ts::*static-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§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 parityvalidated-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-test | Digest Β§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 parityvalidated-test:test/cross-squad-registry.test.ts::*validated-test:test/cross-squad.test.ts::*static-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-test:test/cross-squad-registry.test.ts::*validated-test:test/cross-squad.test.ts::*static-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 parityvalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | CLI + watch discovery; host not involved. | validated-test:test/watch-subsquad-discovery.test.ts::* |
claude | β supported | π§ͺ validated-test | CLI + watch discovery; host not involved. | validated-test:test/watch-subsquad-discovery.test.ts::* |
kiro | β supported | π§ͺ validated-test | CLI + watch discovery; host not involved. | validated-test:test/watch-subsquad-discovery.test.ts::* |
opencode | β supported | π§ͺ validated-test | CLI + watch discovery; host not involved. | validated-test:test/watch-subsquad-discovery.test.ts::* |
cursor | β supported | π§ͺ validated-test | CLI + watch discovery; host not involved. | validated-test:test/watch-subsquad-discovery.test.ts::* |
codex | β supported | π§ͺ validated-test | CLI + watch discovery; host not involved. | validated-test:test/watch-subsquad-discovery.test.ts::* |
antigravity | β supported | π§ͺ validated-test | CLI + 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)
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
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 subfoldervalidated-test:test/clients.test.ts::coordinator digest vs. host feature matrixstatic-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-22validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp resolves the root .squad when launched from a monorepo subfoldervalidated-test:test/squad-20-host-feature-matrix.test.ts::claude lists the root .mcp.json squad_state server from packages/apivalidated-test:test/clients.test.ts::coordinator digest vs. host feature matrixstatic-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 subfoldervalidated-test:test/clients.test.ts::coordinator digest vs. host feature matrixstatic-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-22validated-test:test/squad-20-host-feature-matrix.test.ts::state-mcp resolves the root .squad when launched from a monorepo subfoldervalidated-test:test/squad-20-host-feature-matrix.test.ts::opencode resolves the squad primary agent and the squad_state MCP entry from packages/apivalidated-test:test/clients.test.ts::coordinator digest vs. host feature matrixstatic-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 subfoldervalidated-test:test/clients.test.ts::coordinator digest vs. host feature matrixstatic-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 subfoldervalidated-test:test/clients.test.ts::coordinator digest vs. host feature matrixstatic-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 subfoldervalidated-test:test/clients.test.ts::coordinator digest vs. host feature matrixstatic-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)
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
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 matrixstatic-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-22validated-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 matrixstatic-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 matrixstatic-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-22validated-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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-only |
git-worktrees
Git worktrees & worktree mode (issue worktrees, WORKTREE_PATH)
Depends on: a, b, d Β· docs: features/worktrees Β· canonical sections: Team Mode
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/worktree.test.ts::*static-only |
claude | β supported | π₯οΈ validated-live | Digest Β§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 modevalidated-test:test/worktree.test.ts::*validated-manual:lab:worktree-spawn@2026-10-22 |
kiro | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/worktree.test.ts::*static-only |
opencode | β supported | π₯οΈ validated-live | Digest Β§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 modevalidated-test:test/worktree.test.ts::*validated-manual:lab:worktree-spawn@2026-10-22 |
cursor | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/worktree.test.ts::*static-only |
codex | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-test:test/worktree.test.ts::*static-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 modevalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Pure 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-test | Pure 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-test | Pure 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-test | Pure 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-test | Pure 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-test | Pure 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-test | Pure 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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | SDK/CLI layer under state-mcp; host not involved. | validated-test:test/state-backend.test.ts::* |
claude | β supported | π§ͺ validated-test | SDK/CLI layer under state-mcp; host not involved. | validated-test:test/state-backend.test.ts::* |
kiro | β supported | π§ͺ validated-test | SDK/CLI layer under state-mcp; host not involved. | validated-test:test/state-backend.test.ts::* |
opencode | β supported | π§ͺ validated-test | SDK/CLI layer under state-mcp; host not involved. | validated-test:test/state-backend.test.ts::* |
cursor | β supported | π§ͺ validated-test | SDK/CLI layer under state-mcp; host not involved. | validated-test:test/state-backend.test.ts::* |
codex | β supported | π§ͺ validated-test | SDK/CLI layer under state-mcp; host not involved. | validated-test:test/state-backend.test.ts::* |
antigravity | β supported | π§ͺ validated-test | SDK/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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | CLI watch capability. | validated-test:test/watch-notify-level.test.ts::* |
claude | β supported | π§ͺ validated-test | CLI watch capability. | validated-test:test/watch-notify-level.test.ts::* |
kiro | β supported | π§ͺ validated-test | CLI watch capability. | validated-test:test/watch-notify-level.test.ts::* |
opencode | β supported | π§ͺ validated-test | CLI watch capability. | validated-test:test/watch-notify-level.test.ts::* |
cursor | β supported | π§ͺ validated-test | CLI watch capability. | validated-test:test/watch-notify-level.test.ts::* |
codex | β supported | π§ͺ validated-test | CLI watch capability. | validated-test:test/watch-notify-level.test.ts::* |
antigravity | β supported | π§ͺ validated-test | CLI 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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-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 matrixstatic-only |
mcp-integration
MCP integration (user MCP servers discovered; MCP β CLI fallback)
Depends on: b, d Β· docs: features/mcp Β· canonical sections: MCP Integration
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π static-only | Canonical Β§MCP Integration with tool-prefix discovery and gh/az fallbacks; .mcp.json. | static-only |
claude | β supported | π§ͺ validated-test | Host 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 --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsstatic-only |
kiro | β supported | π§ͺ validated-test | Host 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 --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsstatic-only |
opencode | β supported | π§ͺ validated-test | Host 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 --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsstatic-only |
cursor | β supported | π§ͺ validated-test | Host 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 --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsstatic-only |
codex | β supported | π§ͺ validated-test | Host 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 --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsstatic-only |
antigravity | β supported | π§ͺ validated-test | Host 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 --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsstatic-only |
standalone-install
Standalone install (no npm; squad.exe state-mcp launch spec)
Depends on: a (host-independent) Β· docs: features/standalone-install
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | mcp-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-test | mcp-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-test | mcp-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-test | mcp-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-test | mcp-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-test | mcp-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-test | mcp-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Canonical Β§Client Compatibility micro-playbook; squad init writes .vscode/settings.json. | validated-test:test/cli/init.test.ts::*static-only |
claude | β n/a | π static-only | Copilot-specific surface. | static-only |
kiro | β n/a | π static-only | Copilot-specific surface. Live run blocked on 2026-10-22: kiro quota/usage limit reached on the reference machine. | static-only |
opencode | β n/a | π static-only | Copilot-specific surface. | static-only |
cursor | β n/a | π static-only | Copilot-specific surface. Live run blocked on 2026-10-22: cursor quota/usage limit reached on the reference machine. | static-only |
codex | β n/a | π static-only | Copilot-specific surface. No Codex binary or ChatGPT/API auth on the reference machine; static-only. | static-only |
antigravity | β n/a | π static-only | Copilot-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | squad start|rc wrap the Copilot CLI with phone/browser access. | validated-test:test/cli/rc.test.ts::*static-only |
claude | β n/a | π static-only | Bridges the Copilot CLI (ACP stdio); other hosts are not wrapped. | static-only |
kiro | β n/a | π static-only | Bridges 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-only | Bridges the Copilot CLI (ACP stdio); other hosts are not wrapped. | static-only |
cursor | β n/a | π static-only | Bridges 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-only | Bridges 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-only | Bridges 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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Platform 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-test | Platform 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-test | Platform 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-test | Platform 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-test | Platform 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-test | Platform 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-test | Platform 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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Fleet/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-test | Fleet/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-test | Fleet/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-test | Fleet/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-test | Fleet/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-test | Fleet/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-test | Fleet/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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | CLI 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-test | CLI 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-test | CLI 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-test | CLI 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-test | CLI 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-test | CLI 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-test | CLI 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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Workflows in workflows/*.md; verifier + e2e scripts. | validated-test:test/gh-aw-enlistment-skill.test.ts::*static-only |
claude | β n/a | π static-only | Runs in GitHub Actions with the Copilot engine; the local host is irrelevant. | static-only |
kiro | β n/a | π static-only | Runs 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-only | Runs in GitHub Actions with the Copilot engine; the local host is irrelevant. | static-only |
cursor | β n/a | π static-only | Runs 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-only | Runs 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-only | Runs 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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Compiles to the same .squad/ markdown every host consumes. | validated-test:test/migrate.test.ts::* |
claude | β supported | π§ͺ validated-test | Compiles to the same .squad/ markdown every host consumes. | validated-test:test/migrate.test.ts::* |
kiro | β supported | π§ͺ validated-test | Compiles to the same .squad/ markdown every host consumes. | validated-test:test/migrate.test.ts::* |
opencode | β supported | π§ͺ validated-test | Compiles to the same .squad/ markdown every host consumes. | validated-test:test/migrate.test.ts::* |
cursor | β supported | π§ͺ validated-test | Compiles to the same .squad/ markdown every host consumes. | validated-test:test/migrate.test.ts::* |
codex | β supported | π§ͺ validated-test | Compiles to the same .squad/ markdown every host consumes. | validated-test:test/migrate.test.ts::* |
antigravity | β supported | π§ͺ validated-test | Compiles 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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Pure 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-test | Pure 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-test | Pure 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-test | Pure 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-test | Pure 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-test | Pure 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-test | Pure 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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | installClients() writes host-native files idempotently; real CLIs load them. | validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-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-test | installClients() writes host-native files idempotently; real CLIs load them. | validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hostsvalidated-test:test/clients-real-cli.test.ts::claude discovers the squad subagents and parses .mcp.json |
kiro | β supported | π§ͺ validated-test | installClients() writes host-native files idempotently; real CLIs load them. | validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hostsvalidated-test:test/clients-real-cli.test.ts::kiro validates and lists the squad agent |
opencode | β supported | π§ͺ validated-test | installClients() writes host-native files idempotently; real CLIs load them. | validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hostsvalidated-test:test/clients-real-cli.test.ts::opencode loads squad as a primary agent and connects the MCP server |
cursor | β supported | π§ͺ validated-test | installClients() 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 --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hostsvalidated-test:test/clients-real-cli.test.ts::cursor-agent lists the squad_state server from .cursor/mcp.json (read-only) |
codex | β supported | π§ͺ validated-test | installClients() writes host-native files idempotently; real CLIs load them. | validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hostsvalidated-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-test | installClients() writes host-native files idempotently; real CLIs load them. | validated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 1: client projections and --clientvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/clients.test.ts::Reviewer gate (@Bubu): /client <-> /clients export identity (===), pure projection boundary, and byte-exact rollback across all 7 hostsvalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Projected 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 directoryvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promisesstatic-only |
claude | β supported | π₯οΈ validated-live | Projected 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 directoryvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/clients-real-cli.test.ts::claude discovers the squad subagents and parses .mcp.jsonvalidated-manual:lab:smoke-roster@2026-10-22validated-test:test/squad-20-host-feature-matrix.test.ts::claude --agent squad reads the roster through mcp__squad_state__squad_state_readvalidated-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-test | Projected 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 directoryvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/clients-real-cli.test.ts::kiro validates and lists the squad agentvalidated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promisesstatic-only |
opencode | β supported | π₯οΈ validated-live | Projected 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 directoryvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/clients-real-cli.test.ts::opencode loads squad as a primary agent and connects the MCP servervalidated-manual:lab:smoke-roster@2026-10-22validated-test:test/squad-20-host-feature-matrix.test.ts::opencode --agent squad reads the roster through squad_state_squad_state_readvalidated-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-test | Projected 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 directoryvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-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 promisesstatic-only |
codex | β supported | π§ͺ validated-test | Projected 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 directoryvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-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 spawnvalidated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promisesstatic-only |
antigravity | β supported | π§ͺ validated-test | Projected 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 directoryvalidated-test:test/squad-20-real-clients-stdio.e2e.test.ts::writes the host config and agent files each client readsvalidated-test:test/clients-real-cli.test.ts::antigravity discovers the squad agentvalidated-test:test/squad-20-host-feature-matrix.test.ts::squad_state_health names the configured backend (orphan) as the coordinator digest promisesstatic-only |
capability-negotiation
Capability negotiation (client β© backend β© policy)
Depends on: c Β· docs: concepts/squad-2-0-architecture
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | CAPABILITY_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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hostsvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection |
claude | β supported | π§ͺ validated-test | CAPABILITY_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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hostsvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection |
kiro | β supported | π§ͺ validated-test | CAPABILITY_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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hostsvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection |
opencode | β supported | π§ͺ validated-test | CAPABILITY_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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hostsvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection |
cursor | β supported | π§ͺ validated-test | CAPABILITY_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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hostsvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection |
codex | β supported | π§ͺ validated-test | CAPABILITY_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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hostsvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 2: cross-plane capability intersection |
antigravity | β supported | π§ͺ validated-test | CAPABILITY_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.jsonvalidated-test:test/squad-20-all-scenarios.e2e.test.ts::12. capability tokens match capability-matrix.json for all 7 hostsvalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Opt-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 invalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecyclevalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β broker β harness β approval β restart/reconnect |
claude | β supported | π§ͺ validated-test | Opt-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 invalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecyclevalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β broker β harness β approval β restart/reconnect |
kiro | β supported | π§ͺ validated-test | Opt-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 invalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecyclevalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β broker β harness β approval β restart/reconnect |
opencode | β supported | π§ͺ validated-test | Opt-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 invalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecyclevalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β broker β harness β approval β restart/reconnect |
cursor | β supported | π§ͺ validated-test | Opt-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 invalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecyclevalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β broker β harness β approval β restart/reconnect |
codex | β supported | π§ͺ validated-test | Opt-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 invalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecyclevalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Full non-bypass journey: host adapter β broker β harness β approval β restart/reconnect |
antigravity | β supported | π§ͺ validated-test | Opt-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 invalidated-test:test/squad-20-all-scenarios.e2e.test.ts::Scenario 4: DurableHttpSquadBackend full HTTP lifecyclevalidated-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
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π§ͺ validated-test | Digest Β§22β23. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
claude | β supported | π§ͺ validated-test | Digest Β§22β23. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
kiro | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
opencode | β supported | π§ͺ validated-test | Digest Β§22β23. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
cursor | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
codex | β supported | π§ͺ validated-test | Digest Β§22β23. No Codex binary or ChatGPT/API auth on the reference machine; static-only. | validated-test:test/clients.test.ts::coordinator behavioral-contract paritystatic-only |
antigravity | β supported | π§ͺ validated-test | Digest Β§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 paritystatic-only |
subagent-mcp-inheritance
Specialists (subagents) can reach squad_state tools themselves
Depends on: d Β· docs: concepts/squad-2-0-architecture
| Host | Capability | Validation | Mechanism | Evidence |
|---|---|---|---|---|
copilot | β supported | π static-only | task subagents inherit the session MCP servers. | static-only |
claude | β supported | π₯οΈ validated-live | Subagents 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-live | Subagents 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 | β untested | Subagents 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.
| Date | Host | Scenario | Outcome | Observed tools | Notes |
|---|---|---|---|---|---|
| 2026-10-22 | claude | smoke-roster | β pass | mcp__squad_state__squad_state_read | Roster + 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-22 | claude | init-mode | β pass | mcp__squad_state__squad_state_read, Bash | Empty roster β proposed 4 specialists, cast each with squad cast --name, stopped after reporting the roster. |
| 2026-10-22 | claude | upstream | β pass | mcp__squad_state__squad_state_read, Bash | Found SEVEN-SECOND-TIMEOUT decision and ORG-LOG-PREFIX skill by reading the upstream path from upstream.json. |
| 2026-10-22 | claude | cross-squad | β pass | Read, Bash | Loaded 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-22 | claude | mono-subfolder | β pass | mcp__squad_state__squad_state_read | From packages/api with βmcp-config |
| 2026-10-22 | claude | satellite-remote | β pass | mcp__squad_state__squad_state_read, Read | Roster served from teamRoot ..\base; no Init Mode. |
| 2026-10-22 | claude | ado-platform | β pass | Bash, Read | Detected Azure DevOps from the remote; consulted issue-lifecycle.md; proposed az boards/az repos commands; ran only read-only checks. |
| 2026-10-22 | claude | github-issues-readonly | β pass | Bash, mcp__squad_state__squad_state_read | gh prerequisites checked; 5 squad-labelled issues listed read-only and routed via routing.md (Lead triages unknown squad:* labels). |
| 2026-10-22 | claude | state-orphan | β pass | mcp__squad_state__squad_state_health, mcp__squad_state__squad_decide, mcp__squad_state__squad_state_list | Decision committed to the squad-state orphan branch; working tree untouched; health reported the storage class, not βorphanβ (F6). |
| 2026-10-22 | claude | state-twolayer | β pass | mcp__squad_state__squad_state_health, mcp__squad_state__squad_decide, mcp__squad_state__squad_state_list | Decision committed to the squad-state branch (two-layer); health reported the storage class, not βtwo-layerβ (F6). |
| 2026-10-22 | claude | skills-precedence | β pass | Bash | .squad/skills/deploy-rules (DEPLOY-ALPHA) won over .github and .claude copies; no spawn in the dry run. |
| 2026-10-22 | claude | directive-capture | β pass | mcp__squad_state__squad_decide | Persistent βalways use tabsβ directive recorded via squad_decide and acknowledged. |
| 2026-10-22 | claude | reviewer-lockout | β pass | Agent, mcp__squad_state__squad_decide | Galois authored, Fermat REJECTed (βmissing testsβ), Galois locked out, revision assigned to Noether, verdict recorded via squad_decide. |
| 2026-10-22 | claude | ralph-no-repo | β pass | Bash | No git remote β Ralph reported it and stopped without routing work. |
| 2026-10-22 | claude | worktree-spawn | β pass | Bash, Read | Created sibling worktree base-12 on squad/12-add-health per worktree-reference.md. |
| 2026-10-22 | claude | parallel-fanout | β pass | Agent, mcp__squad_state__squad_state_append, mcp__squad_state__squad_state_health | Two 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-22 | opencode | smoke-roster | β pass | squad_state_squad_state_read | Roster + 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-22 | opencode | init-mode | β pass | squad_state_squad_state_read, Bash | Empty roster β proposed 4 specialists, cast each with squad cast --name, stopped after reporting the roster. |
| 2026-10-22 | opencode | upstream | β οΈ partial | squad_state_squad_state_read, Bash | Found the upstream decision; missed the .copilot/skills skill living beside the upstream .squad/. |
| 2026-10-22 | opencode | cross-squad | β pass | Read, Bash | Loaded 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-22 | opencode | mono-subfolder | β pass | squad_state_squad_state_read | From packages/api; opencode.json and agent resolved from the repo root. |
| 2026-10-22 | opencode | satellite-remote | β pass | squad_state_squad_state_read, Read | Roster served from teamRoot ..\base; no Init Mode. |
| 2026-10-22 | opencode | ado-platform | β pass | Bash, Read | Detected Azure DevOps from the remote; consulted issue-lifecycle.md; proposed az boards/az repos commands; ran only read-only checks. |
| 2026-10-22 | opencode | github-issues-readonly | β pass | Bash, squad_state_squad_state_read | gh prerequisites checked; 5 squad-labelled issues listed read-only and routed via routing.md (Lead triages unknown squad:* labels). |
| 2026-10-22 | opencode | state-orphan | β pass | squad_state_squad_state_health, squad_state_squad_decide, squad_state_squad_state_list | Decision committed to the squad-state orphan branch; working tree untouched; health reported the storage class, not βorphanβ (F6). |
| 2026-10-22 | opencode | state-twolayer | β pass | squad_state_squad_state_health, squad_state_squad_decide, squad_state_squad_state_list | Decision committed to the squad-state branch (two-layer); health reported the storage class, not βtwo-layerβ (F6). |
| 2026-10-22 | opencode | skills-precedence | β pass | Bash | .squad/skills/deploy-rules (DEPLOY-ALPHA) won over .github and .claude copies; no spawn in the dry run. |
| 2026-10-22 | opencode | directive-capture | β pass | squad_state_squad_decide | Persistent βalways use tabsβ directive recorded via squad_decide and acknowledged. |
| 2026-10-22 | opencode | reviewer-lockout | β pass | task, squad_state_squad_decide | Galois authored, Fermat REJECTed (βmissing testsβ), Galois locked out, revision assigned to Noether, verdict recorded via squad_decide. |
| 2026-10-22 | opencode | ralph-no-repo | β pass | Bash | No git remote β Ralph reported it and stopped without routing work. |
| 2026-10-22 | opencode | worktree-spawn | β pass | Bash, Read | Created sibling worktree base-12 on squad/12-add-health per worktree-reference.md. |
| 2026-10-22 | opencode | parallel-fanout | β pass | task, squad_state_squad_state_append, squad_state_squad_state_health | Two 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-22 | kiro | smoke-roster | β blocked | β | kiro-cli chat failed: βThe monthly usage limit has been reachedβ. |
| 2026-10-22 | antigravity | smoke-roster | β blocked | β | agy -p failed: RESOURCE_EXHAUSTED 429 βIndividual quota reachedβ (resets in ~75h). |
| 2026-10-22 | cursor | smoke-roster | β blocked | β | cursor-agent -p failed: βYouβve hit your usage limitβ. |
