I3960 — The initialize instructions tell the caller about itself before the board, and the board line is bounded
Bound PeerBoard::summary (each claim's intent cut, at most three claims a peer, the whole line capped, the rest counted with a pointer to majordomus_peers) and move it after the sentences about the caller in the MCP initialize instructions.
READY wave 0 · p1 · implementation profile · parallel safe
Ready. Every dependency is done, so majordomus plan start I3960 will be accepted.
Objective
Bound PeerBoard::summary (each claim's intent cut, at most three claims a peer, the whole line capped, the rest counted with a pointer to majordomus_peers) and move it after the sentences about the caller in the MCP initialize instructions.
Why
On 2026-10-22 five peers holding twenty claims made the board line of the initialize instructions about 6 kB. Claude Code cut the instructions inside that line, so the sentences after it — the nudge to announce, which the code calls the one that matters on every reconnect — never reached the caller. Observed in session 54f32bb3 (native-acceleration pack, P01).
Current state
apps/majordomus-cli/src/mcp/protocol.rs pushes board.summary() with every claim's whole intent before the caller-specific sentences; PeerBoard::summary has no bound.
Desired state
The caller-specific sentences come before the board; the board line stays within SUMMARY_LINE characters whatever the board holds, counts what it does not name, and points at majordomus_peers for every word.
Scope
- apps/majordomus-cli/src/peers.rs
- apps/majordomus-cli/src/mcp/protocol.rs
Out of scope
- The size of tool descriptions, which clients load deferred
- peers.list itself (I3961)
Dependencies
None. This issue is a root of the graph.
Acceptance criteria
- With twelve peers holding five claims of several hundred characters each, the board line stays within its bound, names the first peer, counts the rest and points at majordomus_peers
- The caller's own sentence (you have not announced anything) precedes the board line in the initialize instructions
- A small board still names every claim, as before
Validation
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib -- peers::tests protocol::tests
- bin/majordomus plan validate
Evidence required
- the_summary_stays_bounded_however_large_the_board
- the_caller_is_told_about_itself_before_the_board_is_listed
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I3960.yaml. Read it back with majordomus plan show I3960.