docs: align every roster introduction on the eight Participant CLIs - #56
Conversation
There was a problem hiding this comment.
Pull request overview
Aligns top-level documentation and npm package metadata with the authoritative eight-Participant-CLI roster defined in src/participants.ts / the platforms registry, resolving documented roster drift without changing runtime behavior.
Changes:
- Update
README.mdintroductions and the Mermaid architecture diagram to reflect all eight Participant CLIs. - Update onboarding docs (
CLAUDE.md,AGENTS.md) and specs (docs/design/srs.md,docs/design/product-spec.md) to reference/reflect the eight-CLI roster, including adding Antigravity to FR-G07’s normative invocation list. - Refresh
package.jsondescription and keywords so npm metadata matches the shipped roster.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates intro/bullets and architecture diagram to list all eight Participant CLIs. |
| package.json | Expands description + keywords to include Antigravity, Pi, and opencode for npm discoverability. |
| docs/design/srs.md | Removes undercounted restatements by pointing to Appendix A; updates FR-G07 to include Antigravity. |
| docs/design/product-spec.md | Updates v1 capability scope bullet to include all eight Participant CLIs. |
| CLAUDE.md | Corrects the “What this is” roster to eight and points to src/participants.ts. |
| AGENTS.md | Mirrors CLAUDE.md roster correction and src/participants.ts pointer. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
dichovsky
left a comment
There was a problem hiding this comment.
Routine review. Roster per .github/ISSUE_TRIAGE.md: general code reviewer (always) plus the docs-only prose-vs-code verification in place of the TypeScript reviewer. No security reviewer — the diff touches none of src/store/, src/process.ts, src/which.ts, src/fs-safe.ts, src/setup/, or the Launcher.
CRITICAL: none. HIGH: none. No fix pass triggered.
Verified
- Roster and order. All six enumerations (README prose ×2, README mermaid
A1–A8,CLAUDE.md/AGENTS.md,package.json,product-spec.md:70-71) are exactly the eight ids ofsrc/participants.ts:7-16in the canonical order ofsrc/platforms/registry.ts:20-29. Display names matchdocs/design/setup-integration.md§4.1–§4.8, including the deliberately lowercase "opencode CLI" and bare "Little Coder". - FR-G07 groupings are exactly right, checked against every
invocation():/crew—claude.ts:34,gemini.ts:35,antigravity.ts:29,pi.ts:51,little-coder.ts:40,opencode.ts:33;$crew—codex.ts:30;/agent (select crew), then: …—copilot.ts:34. The cited verification test really does assert all eight (tests/unit/platforms.test.ts:114-124). This reconciles FR-G07 with Appendix E's existing grade atsrs.md:1390. - "Setup generators for each of the eight" does not over-promise. All eight modules implement
render(),src/setup/index.ts:174writes it, andcli-contract.md:37accepts all eight ids. - Mermaid parses.
A5–A8declared and consumed only by the single&-chained edge; no dangling or duplicate ids. The edge previously wired onlyA1–A4, orphaning the already-declaredA5— both halves are now consistent. - Authority direction is correct. Appendix A (
srs.md:1175,:1179-1181) and Appendix E (srs.md:1390) already said eight; §1.1, §1.3.1 and FR-G07 said four/seven. The lower/older prose was fixed to match the registry, adding no obligation the code does not already meet. NoFR-*/NFR-*id added or renumbered. No accepted ADR states a roster this contradicts (ADR-0016's five-CLI list is a scoped mid-2026 survey, and its ownUpdate 2026-07-14already addspi-cli/opencode-cli). - Scope.
git diff --checkclean; rewrapping is confined to paragraphs that had to change.CLAUDE.mdandAGENTS.mdremain byte-identical in the changed span.package.jsonversion untouched;docs-facts.test.tsreads onlyname/version/engines/deps from it, so no fact regeneration is needed. - CI is green on GitHub-hosted runners (
ubuntu / node 24.18.0, pluspublish dry-run— which matters here becausepackage.jsonchanged). That supersedes the two localdoctorfailures reported in the PR body, which were a uid-0 sandbox artifact.
MEDIUM
-
docs/design/architecture.md:458-459— the same understatement FR-G07 just fixed, still present one authority level down: "Claude and Gemini use/crew, Codex uses$crew, and in Copilot you run/agent…" omits Antigravity, Pi, Little Coder, and opencode, all of which return/crew. This disagreement is pre-existing — architecture.md already omitted Pi, Little Coder, and opencode before this PR — so it is not something the change introduced, and.github/ISSUE_TRIAGE.md's scope rule directs a distinct problem in an unnamed file to a new issue rather than into this diff. Filed as a follow-up rather than folded in. -
web/view-model.ts:141-161—ENGINE_METAenumerates seven of eight;little-coderis absent, soengineMeta()(line 170) falls through to the unknown-engine badge and the Console renders the raw id. A genuine code-side roster gap, correctly outside a docs-only PR. Filed separately. -
tests/tools/release-smoke.test.ts:15— maintainer instruction still says "the five Participant CLIs / backends installed" while the recorder iteratesPARTICIPANT_TARGETS+BACKEND_TARGETS(eight plus two). Same class of drift, unnamed file; filed with (1).
LOW
-
README.md:26-28— the rewritten bullet keeps the inherited phrase "…and locally hosted models can all join the same Crew".CONTEXT.md:181resolves exactly this ambiguity: Ollama and LM Studio are Setup Targets and Model Backends, never Participants, and a Crew contains Agents (CONTEXT.md:155). A locally hosted model does not join a Crew; a Participant CLI pointed at one does. Wording is pre-existing but sits on a line this PR rewrote. -
CLAUDE.md:7-9/AGENTS.md:7-9— the new sentence points atsrc/participants.tsfor names, but that module is "intentionally only an id vocabulary" (src/participants.ts:1-6); display names and canonical order live inPARTICIPANT_TARGETS(src/platforms/registry.ts:20-29). Count is right; the pointer is slightly off-target. -
docs/design/srs.md:53,:88— the two new#appendix-a--assumptions-dependencies-and-tbd-itemslinks do not resolve, because the heading's trailing(§9.5.7)contributes-957to the GitHub slug. Pre-existing convention, not introduced here: the TOC atsrs.md:30and the link atsrs.md:1034have the identical defect, and no link checker runs in CI. The PR is internally consistent; flagging only so it is not misattributed. -
Durability —
tests/unit/docs-facts.test.tsguards onlydocs-site/generated/facts.json; its own docstring records that prose roster drift "has already happened once" (commit8820be7). This PR is the second manual reconciliation and adds more hand-maintained restatements. Extending the fact-extraction guard to the root docs would prevent a third recurrence — worth a follow-up, out of scope here.
Nothing at MEDIUM or LOW blocks this change. Findings 1–3 are filed as separate issues per the scope rule; 4–7 are recorded for a maintainer's judgment.
Generated by Claude Code
README, CLAUDE.md/AGENTS.md, the SRS, the product spec, and the published npm metadata each understated the Participant roster differently — five, seven, or four CLIs — while src/participants.ts and the platform registry have shipped eight since Antigravity, Pi, Little Coder, and opencode landed. Several of those documents contradicted their own appendices (SRS Appendix A and E already say eight; the product-spec gate table already says eight), and the npm description and keywords left three supported tools search-invisible. Restate the full roster where prose names tools for reader orientation, and point at the authoritative source (Appendix A / src/participants.ts) where a pointer reads naturally. FR-G07 is normative, so it gains the Antigravity /crew invocation that src/platforms/antigravity.ts already implements and that Appendix E already grades as "Lists eight per-platform invocations". The README architecture diagram declared five participant nodes but wired only four into the CLI edge; both halves now cover all eight. Refs #26 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xs4pyjbmg6eyP2JR8P16Cm
24f5c88 to
68e32c1
Compare
Closes #26
What changed and why
src/participants.ts:7-16andsrc/platforms/registry.tsdeclare eight Participant CLIs, but every top-level introduction understated the roster — and each understated it differently. Per the authority order indocs/README.md, the registry is authoritative and the restatements are the bug, so this is a documentation-and-metadata correction with no behavior change.README.md— three sites, all at five:README.md:7-12): "Tools such as Claude Code, Codex CLI, Gemini CLI, GitHub Copilot CLI, and Little Coder each run as..." → "The eight supported tools — Claude Code, Codex CLI, Gemini CLI, GitHub Copilot CLI, Antigravity CLI, Pi CLI, Little Coder, and opencode CLI — each run as...".A1–A5, but the edge intoBINwired onlyA1 & A2 & A3 & A4— so even the already-declared Little Coder node was orphaned. NowA1–A8in registry order, with the edge covering all eight.CLAUDE.md/AGENTS.md— both listed seven, omitting Little Coder. Both now read "the eight Participant CLIs listed insrc/participants.ts(…)", adding an authoritative pointer alongside the inline names. The two files remain byte-identical in the changed span.package.json—descriptionnow names all eight;keywordsgainantigravity,pi, andopencode, which were search-invisible on npm despite being shipped. No version bump, no other field touched.docs/is not infiles, and this metadata reaches the registry only at the next publish.docs/design/srs.md— §1.1 and §1.3.1 listed four while Appendix A (srs.md:1172) already said "The eight Participant CLIs" and the Dependencies list (srs.md:1176-1178) already named all eight. Both now reference Appendix A rather than restating, per the issue's stated preference. FR-G07 (srs.md:511-514) gains Antigravity in the/crewgroup —src/platforms/antigravity.ts:28-30returns`/crew ${role} ${id}`, and Appendix E (srs.md:1387) already grades FR-G07 as "Lists eight per-platform invocations". FR-G07 keeps its explicit enumeration because it is normative and Appendix E grades it specifically on listing eight. NoFR-*/NFR-*id was added or renumbered.docs/design/product-spec.md— line 70 promised setup generators for four, against its own gate table (line 126) saying "each of the eight Participant CLIs". Now aligned.Already-correct sites were deliberately left alone:
srs.md:1172,srs.md:1176-1178,srs.md:1387, andproduct-spec.md:126.No
src/,tests/,bin/,web/, ordocs-site/file is touched.tests/unit/docs-facts.test.tsextracts its roster fromPARTICIPANT_TARGETSintodocs-site/generated/facts.jsonand never reads this prose, so no fact regeneration is required.Verification
Docs-and-metadata-only change: no tests added, claiming the docs-only exemption in
.github/ISSUE_TRIAGE.md. The full gate was still run, under Node24.18.0(the CI version).npm run typecheckweb/+docs-site/projectsnpm run lintnpm run format:checknpm run buildnpm run test:coverageBoth failures are in
tests/integration/commands/doctor.test.ts("degrades a raw filesystem read failure in project roles instead of aborting doctor" and "degrades unreadable roles and teams directories to whole-listing warnings"). They reproduce identically on an unmodified tree atd311767— verified by stashing the change and re-running the file. Root cause is environmental: the sandbox runs as uid 0, so the tests'chmod 000does not actually make the directories unreadable and the expectedINVALID_CONFIGwarnings never fire.Because vitest suppresses the coverage table on a failing run, the 95% thresholds were not evaluated locally — not on this branch and not on the clean tree. No
src/**orbin/**file changed, so coverage is unchanged frommain. This PR's CI run on GitHub-hosted runners is the authority for the gate.Rebased onto
origin/main@d311767immediately before pushing (a no-op — the base had not moved) and the gate was re-run afterward.Related open PRs
docs: trace crew team resume with SRS requirements. Touchesdocs/design/srs.md, the same file this PR edits, but in disjoint regions: docs: trace crew team resume with SRS requirements #49 adds FR-U39–FR-U42 in group U and edits §1.3.2, the v1-recount line, and the Appendix E section-default row; this PR edits §1.1, §1.3.1, and FR-G07. Whichever merges second may need a trivial rebase, but the hunks do not overlap.Out of scope
Deliberately untouched, each tracked separately:
CLAUDE.md/AGENTS.mdcommand-annotation drift — CLAUDE.md/AGENTS.md command annotations have drifted from the actual scripts and gates #41.README.md:8says "GitHub Copilot CLI" while every other surface uses the bare "Copilot CLI". That is naming-consistency drift, not roster drift; the existing wording was preserved.Generated by Claude Code