diff --git a/CLAUDE.md b/CLAUDE.md index 202e993..730bae6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -195,6 +195,14 @@ must obey belongs in the charter, not here. `fleets-status` (report every fleet that shares one LavinMQ instance). - **Never commit** `.mcp.json` (the primary's local copy, flagged `--skip-worktree`) or `wiki/` (a submodule with its own remote). +- **A provisioned worktree neutralizes `.mcp.json`, `opencode.json` and `.autoenv`** — the repo's + committed copies would otherwise mount the primary's IDE and forge servers (fleetd #134). The + worktree's copy of each is a stub, **not** the repo's real file, so a worker that reads one and + reports what it found is reporting on the stub. The daemon logs a per-spawn summary, but the + worker cannot see that log. From inside its own worktree a worker — or a lead debugging one — + reads the list with `git config --worktree --get-all fleet.neutralizedConfig`, and the + consequence with `git config --worktree --get fleet.neutralizedConfigNote`. Never brief a worker + to edit one of these files: the edit cannot be committed, and it will not tell you so. - **Flows and the error model** — rendezvous, `fleet_ask`, detached delivery, turn-done fallback — are diagrammed in `docs/MCP-Contract.md` **§6 only**. The rest of that page is a pre-build design doc whose tool names, parameter names and REST paths never caught up with the code, so do not use