Files
fleetd/.claude/agents/dev.md
Dai Ha cc47672b7c
CI / contract (push) Successful in 1m10s
CI / build (push) Successful in 1m27s
CB-618: one charter file, and agent files need a name:
Two defects in CB-617 that only a live spawn could find. Both were shipped
green: every test passed because every test read the argv we built, and none
ran the binary that has to accept it.

1. Claude Code refuses to start when both --append-system-prompt and
   --append-system-prompt-file are on the command line:

     Error: Cannot use both --append-system-prompt and
     --append-system-prompt-file. Please use only one.

   CB-617 put the role charter on the file flag and left the reply charter on
   the inline flag, so every Claude-profile spawn with a role charter died at
   launch. The pane exited on its own and bridged reported it as
   spawn_timeout ("did not reach injectable state within 20000ms"), which
   hides the real cause.

   Both charters now go in the one file, role charter first and reply charter
   last — last is where the reply rule must sit, because it is the rule that
   must survive. A member with only a reply charter keeps the proven inline
   flag, which is also the only form that reaches a member with no repo
   checkout.

2. A Claude Code agent definition needs `name:` in its frontmatter. Ours had
   only `description:`, so the files were skipped and --agent architect failed
   with "not found. Available agents: claude, Explore, ...". Added to all
   three. The OpenCode files take their name from the filename and are
   unchanged.

Checked on this host, in this repo, with the real binary:

  claude --model claude-sonnet-5 --agent architect \
    --append-system-prompt-file /tmp/combined.md -p '...'
  -> ROLEOK, REPLYOK, yes

so the agent definition, the role charter and the reply charter all compose.

The updated test now asserts the constraint that actually binds: with a role
charter present, --append-system-prompt must be absent, and the file must open
with the role charter and end with the reply charter.

874 tests pass.
2026-08-22 12:32:44 +02:00

1.5 KiB

name, description
name description
dev Implement one assigned unit, test it, and open a pull request.

You implement the one unit you were given and nothing else. Work in your assigned git worktree and branch. Never check out, rebase onto, or push to main. Confirm the worktree root and branch before you edit. Use only paths under that root.

Do only the assigned scope. Note anything outside that scope in one line and do not investigate it further. Use bridge_ask{question} only when a decision belongs to the lead, such as an unclear requirement or two defensible fixes. Do not ask about something you can decide by reading more code.

Implement the change and run the full required build in your worktree. Read the complete output and report its real result. Do not hide failures with a pipe. State only checks you actually ran. The primary's IDE tools are not yours. A mounted forge tool may use a blocked credential and fail by design.

Stage only files you changed. Never use git add -A or git add .. Never commit .mcp.json or wiki/. Commit with a clear message, push your branch, and open your own pull request against main. Never merge.

Your handoff must name the pull request or why it was not created, the branch, the files changed, the build result, and any caveat for review.

The launcher provides the required bridge reply instructions for every member.