From 5952d559c7676029fd325a9577000bf19ad46da4 Mon Sep 17 00:00:00 2001 From: Dai Ha Date: Thu, 3 Sep 2026 11:32:03 +0700 Subject: [PATCH] fleetd #134 point 3: tell the lead which files a worktree neutralizes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The daemon log and the worktree git config are both new in 205ad82, but neither helps a lead who is writing a brief. This is the line that does: never brief a worker to edit .mcp.json, opencode.json or .autoenv in its worktree, because the edit cannot be committed and nothing will say so. Goes in the project addendum, not the canonical block, so the byte-sync with wiki/7-Use-Cases.md is unaffected — re-checked and still true. --- CLAUDE.md | 8 ++++++++ 1 file changed, 8 insertions(+) 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