Skip to content

docs: align every roster introduction on the eight Participant CLIs - #56

Merged
dichovsky merged 1 commit into
mainfrom
docs/participant-roster-alignment
Aug 6, 2026
Merged

docs: align every roster introduction on the eight Participant CLIs#56
dichovsky merged 1 commit into
mainfrom
docs/participant-roster-alignment

Conversation

@dichovsky

Copy link
Copy Markdown
Owner

Closes #26

What changed and why

src/participants.ts:7-16 and src/platforms/registry.ts declare eight Participant CLIs, but every top-level introduction understated the roster — and each understated it differently. Per the authority order in docs/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:

  • Intro (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...".
  • "Not locked to one vendor" bullet: gains Antigravity CLI, Pi CLI, and opencode CLI.
  • Architecture diagram: the subgraph declared A1A5, but the edge into BIN wired only A1 & A2 & A3 & A4 — so even the already-declared Little Coder node was orphaned. Now A1A8 in 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 in src/participants.ts (…)", adding an authoritative pointer alongside the inline names. The two files remain byte-identical in the changed span.

package.jsondescription now names all eight; keywords gain antigravity, pi, and opencode, which were search-invisible on npm despite being shipped. No version bump, no other field touched. docs/ is not in files, 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 /crew group — src/platforms/antigravity.ts:28-30 returns `/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. No FR-*/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, and product-spec.md:126.

No src/, tests/, bin/, web/, or docs-site/ file is touched. tests/unit/docs-facts.test.ts extracts its roster from PARTICIPANT_TARGETS into docs-site/generated/facts.json and 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 Node 24.18.0 (the CI version).

Command Result
npm run typecheck pass — root + web/ + docs-site/ projects
npm run lint pass — no output
npm run format:check pass — "All matched files use Prettier code style"
npm run build pass
npm run test:coverage fail (exit 1) — 1395 passed, 3 skipped, 2 pre-existing environment failures

Both 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 at d311767 — verified by stashing the change and re-running the file. Root cause is environmental: the sandbox runs as uid 0, so the tests' chmod 000 does not actually make the directories unreadable and the expected INVALID_CONFIG warnings 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/** or bin/** file changed, so coverage is unchanged from main. This PR's CI run on GitHub-hosted runners is the authority for the gate.

Rebased onto origin/main @ d311767 immediately before pushing (a no-op — the base had not moved) and the gate was re-run afterward.

Related open PRs

Out of scope

Deliberately untouched, each tracked separately:


Generated by Claude Code

@dichovsky
dichovsky marked this pull request as ready for review August 6, 2026 11:15
@dichovsky
dichovsky requested a lite review from Copilot August 6, 2026 11:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.md introductions 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.json description 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 dichovsky left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 A1A8, CLAUDE.md/AGENTS.md, package.json, product-spec.md:70-71) are exactly the eight ids of src/participants.ts:7-16 in the canonical order of src/platforms/registry.ts:20-29. Display names match docs/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(): /crewclaude.ts:34, gemini.ts:35, antigravity.ts:29, pi.ts:51, little-coder.ts:40, opencode.ts:33; $crewcodex.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 at srs.md:1390.
  • "Setup generators for each of the eight" does not over-promise. All eight modules implement render(), src/setup/index.ts:174 writes it, and cli-contract.md:37 accepts all eight ids.
  • Mermaid parses. A5A8 declared and consumed only by the single &-chained edge; no dangling or duplicate ids. The edge previously wired only A1A4, orphaning the already-declared A5 — 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. No FR-*/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 own Update 2026-07-14 already adds pi-cli/opencode-cli).
  • Scope. git diff --check clean; rewrapping is confined to paragraphs that had to change. CLAUDE.md and AGENTS.md remain byte-identical in the changed span. package.json version untouched; docs-facts.test.ts reads only name/version/engines/deps from it, so no fact regeneration is needed.
  • CI is green on GitHub-hosted runners (ubuntu / node 24.18.0, plus publish dry-run — which matters here because package.json changed). That supersedes the two local doctor failures reported in the PR body, which were a uid-0 sandbox artifact.

MEDIUM

  1. 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.

  2. web/view-model.ts:141-161ENGINE_META enumerates seven of eight; little-coder is absent, so engineMeta() (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.

  3. tests/tools/release-smoke.test.ts:15 — maintainer instruction still says "the five Participant CLIs / backends installed" while the recorder iterates PARTICIPANT_TARGETS + BACKEND_TARGETS (eight plus two). Same class of drift, unnamed file; filed with (1).

LOW

  1. README.md:26-28 — the rewritten bullet keeps the inherited phrase "…and locally hosted models can all join the same Crew". CONTEXT.md:181 resolves 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.

  2. CLAUDE.md:7-9 / AGENTS.md:7-9 — the new sentence points at src/participants.ts for names, but that module is "intentionally only an id vocabulary" (src/participants.ts:1-6); display names and canonical order live in PARTICIPANT_TARGETS (src/platforms/registry.ts:20-29). Count is right; the pointer is slightly off-target.

  3. docs/design/srs.md:53, :88 — the two new #appendix-a--assumptions-dependencies-and-tbd-items links do not resolve, because the heading's trailing (§9.5.7) contributes -957 to the GitHub slug. Pre-existing convention, not introduced here: the TOC at srs.md:30 and the link at srs.md:1034 have the identical defect, and no link checker runs in CI. The PR is internally consistent; flagging only so it is not misattributed.

  4. Durabilitytests/unit/docs-facts.test.ts guards only docs-site/generated/facts.json; its own docstring records that prose roster drift "has already happened once" (commit 8820be7). 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
@dichovsky
dichovsky force-pushed the docs/participant-roster-alignment branch from 24f5c88 to 68e32c1 Compare August 6, 2026 12:30
@dichovsky
dichovsky merged commit 8cd6d99 into main Aug 6, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Participant roster drift: README, CLAUDE.md/AGENTS.md, SRS, product-spec, and npm metadata disagree with the eight-CLI registry

3 participants