Skip to content

docs(crews): sync the Crews pages and tool contract with what ships - #306

Merged
bryantderosier merged 6 commits into
j5/mainfrom
j5/crews-docs-sync
Sep 29, 2026
Merged

bryantderosier merged 6 commits into
j5/mainfrom
j5/crews-docs-sync

Conversation

@bryantderosier

Copy link
Copy Markdown
Collaborator

Problem

The Crews pages and the agent tool contract had drifted from what ships (#229), the artifacts user page contradicted itself about handoff versions (#230), and FORK.md case 3 didn't name the Crew-stop replay test that lives in the same upstream test file (#232). None of this is a policy change, except the approver narrowing I ruled on in #234.

What I changed

  • docs/j5/product/features/crews.md:
    • History is back in date order, with a 2026-09-21 line for the /crew retirement (Compose Crews in ordinary chat and let members coordinate directly #211) and a 2026-09-24 line for today's changes.
    • The Definition, AC6, and AC20 say the snapshot keeps each member's reason (the person approves every seat).
    • The Lifecycle section says a former seat unarchived on its own is a solo agent.
    • "Roles" in the Lifecycle paragraph becomes "personas".
  • docs/j5/product/a2a/agent-tools.md:
    • The propose_crew and request_crew_member contract strings are regenerated from J5_PROPOSE_CREW_DESCRIPTION and J5_REQUEST_CREW_MEMBER_DESCRIPTION.
    • The seat and request tables gain model_selection and runtime_mode and drop the struck agent alias; reason is up to 500 characters.
    • Approval records each member's reason, and persona vocabulary is used throughout.
    • The seat-finish paragraph is rewritten to match CrewSeatFinishNotifier: completed and failed runs only, posts on change, folds into a queued digest, and missing means checked and not there.
  • docs/j5/product/glossary.md: Persona replaces Role in the row and the casing example.
  • docs/j5/product/agent-personas/index.md: the Captain is told on every finish whether the handoff was written, missing, or never declared.
  • apps/server/src/j5/a2a/README.md: the "no cascade" line now names CrewCaptainArchiveCascade.ts and crewSeatArchiveGuard.ts.
  • docs/j5/worklog/2026-09-16-crew-command-decoupling.md: one pointer that the Inbox failure alert shipped in feat(agents): Crews, a roster the Captain proposes and the person approves #148; the history is untouched.
  • docs/user/artifacts.md (Handoff files keep every version: fix the artifacts user page #230): a rewritten handoff adds a version at the top of the same file.
  • docs/user/personas.md: retired crews sit in Fleet's Retired section, across Squadrons.
  • FORK.md case 3 (Record the Crew-stop replay test under FORK.md case 3 #232): names replaying a Crew stop does not dispatch a second real interrupt.
  • Comments only: apps/web/src/j5/a2a/ThreadA2ARenderer.tsx (no /crew turn) and the FleetCrew comment in packages/contracts/src/j5.ts.

Why this shape

Definitions are rewritten, not appended (docs/j5/process/docs.md), so every sentence was changed in place and History got one line per amendment. The contract strings are copied from tools.ts rather than paraphrased, because EnvelopeFormatter.test.ts already reads this file for the send_message contract and paraphrases drift.

Invariants

  • No behavior change: the only code edits are two comments.
  • Worklog records stay as written; the one addition is a pointer paragraph.

Surfaces

Surface Decision
Entry points (chat, Settings, command palette, keybinding) Unaffected.
Clients (web, desktop, mobile) Unaffected; one web comment.
Providers Unaffected.
Contracts (packages/contracts) One comment.
Reverse states n/a.
Connection modes (local, remote, tunnel) Unaffected.
Upstream files / FORK.md FORK.md case 3 gains one sentence.
Docs The point of the PR.

Out of scope

Upgrade and data

None.

Verification

  • EnvelopeFormatter.test.ts, which reads agent-tools.md, passes.
  • Format and lint clean on the changed files.

Review focus

Closes #229
Closes #230
Closes #232

Claude Opus 5.5 via Claude Code

🤖 Generated with Claude Code

The Crews definition, the agent tool contract, and nearby docs had drifted
from the shipped surface: the retired /crew command, the struck agent seat
alias, stale propose_crew and request_crew_member contract strings, the
approver field #234 removed, and a seat-finish paragraph that described
every run including cancelled ones.

Every sentence now matches j5/main: History reads in date order with the
command's retirement, the contract strings come from tools.ts, seats list
their custom-seat runtime overrides, the snapshot keeps each member's
reason, and seat finish notices post on change for completed and failed
runs. The artifacts user page says one thing about handoff versions, and
FORK.md case 3 names the Crew stop replay test.

Closes #229
Closes #230
Closes #232

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Repository: Jacksondr5/j5code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: a8494b2b-8746-4401-b0b8-b3c63408affd


Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 effective changed lines (test files excluded in mixed PRs). labels Sep 25, 2026
Conflicts in FORK.md, crews.md, agent-tools.md, the persona contract, and the artifacts page: merged word by word, keeping this branch's sync of the shipped Crew surface in the sync's handoff artifact wording, and kept both History entries.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Comment thread docs/j5/product/features/crews.md Outdated
Comment thread docs/user/artifacts.md Outdated
@Jacksondr5

Copy link
Copy Markdown
Owner

[Review panel: Opus 5.5 + coordinator (Opus 5.5)]

Missed file: docs/j5/product/features/fleet-page.md AC28 still describes the retired roster snapshot as "(seat, agent, who approved it and why, the version it joined at)". The roster has no approver field (FleetCrew.roster in packages/contracts/src/j5.ts is seat, agentId, participantId, addedVersion, reason). This PR removes the approver from crews.md AC6, AC20, and the Definition but not from the Fleet page definition, so the two definitions disagree.

Suggested fix: change it to "(seat, agent, why it joined, the version it joined at)" and add a fleet-page.md History line. Note that #315 also rewrites AC28 and keeps "who approved it and why", so whichever PR lands second needs the corrected wording.

bryantderosier and others added 2 commits September 28, 2026 09:02
… typo

Fleet-page AC28 still listed "who approved it and why" in the retired roster
snapshot, which has no approver field; it now matches Crews AC6 and AC20, with
a History line. Also fixes "Handoffartifacts" on the artifacts page.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@bryantderosier

Copy link
Copy Markdown
Collaborator Author

@Jacksondr5 An update on #306:

@Jacksondr5

Copy link
Copy Markdown
Owner

[Review panel: Opus 5.5 + coordinator (Opus 5.5)]

Re: the fleet-page AC28 finding. Verified at e72d27a. AC28 now reads "(seat, agent, why it joined, the version it joined at)", which matches FleetCrew.roster. The new 2026-09-24 History line explains why the roster records no approver.

bryantderosier and others added 2 commits September 29, 2026 09:36
Conflicts in the Crews docs resolved to the shipped wording from #313 and #315, keeping this branch's corrections:
- crews.md: the Lifecycle sentence now says a Crew comes back only with its Captain, and the 2026-09-24 History line drops "Crews never unarchive as a unit" (Jackson's suggestion). The roster snapshot records each member's reason and no approver. History is back in date order.
- agent-tools.md: the launch report keeps not_started, seat_not_created, and resolve-once, and the seat finish notice adds the unavailable status and over-read-limit case.
- fleet-page.md: AC28 takes #315's wording, with both History lines.
- personas.md: #315's paragraph, with Retired crews described as one section across every Squadron.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Conflicts: agent-tools.md takes main's quoted propose_crew and request_crew_member descriptions and tables, which match the shipped strings after #347; crews.md takes main's Definition (Full access default, seats ask their Captain) with this branch's no-approver roster wording, and History keeps one date-ordered list with #301's and #307's 2026-09-24 lines.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added size:M 30-99 effective changed lines (test files excluded in mixed PRs). and removed size:L 100-499 effective changed lines (test files excluded in mixed PRs). labels Sep 29, 2026
@bryantderosier
bryantderosier merged commit 0c3c08d into j5/main Sep 29, 2026
33 of 35 checks passed
@bryantderosier
bryantderosier deleted the j5/crews-docs-sync branch September 29, 2026 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 effective changed lines (test files excluded in mixed PRs). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

2 participants