The guide learns the thread it was silent on, and grows a vendor-neutral twin
CLAUDE.md bumps to v14: a new Comments section teaches the comments/ mechanics (chronology-as-ordering, author vs modified-by, .draft/.trash as the app's, retract-by-follow-up), and a new "Use the thread: journal your work" section teaches conduct the guide never had — body is the spec, thread is the journal, post a plan cold-reader-ready on start, decisions as they're made, questions as comments, re-read before resuming, close with verification. comments/ leaves the reserved-tracker-keys list; the Layout diagram gains comments/ and AGENTS.md. The app now writes a byte-identical twin at AGENTS.md, the vendor-neutral name most non-Claude tools read — same lifecycle as CLAUDE.md, decided and healed independently per claimed name, both funneling a markerless foreign file to the single shared CLAUDE.user.md rescue. AgentGuide.install now returns [Displacement]; IntegrityRules.claimedRootNames and BoardStore.refreshAgentGuide cover both names; ChangeNarrator's guide-commit path check widens to both. DESIGN/08-agent-integration.md amends: the agent-guide section gains the Comments and Use-the-thread bullets and an AGENTS.md twin paragraph. Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
@@ -847,10 +847,12 @@ enum ChangeNarrator {
|
||||
|
||||
// **N is a pure function of the file's content** (06; the m10 agent-guide card's deferred
|
||||
// bullet): the version marker on the guide's first line, read here rather than tagged at
|
||||
// the write site — "the no-interception rule stands". A `CLAUDE.md` with no marker is not
|
||||
// an old guide, it is somebody else's file (`AgentGuide.installedVersion`), and it
|
||||
// composes as the ordinary path it is.
|
||||
if path == AgentGuide.filename,
|
||||
// the write site — "the no-interception rule stands". A guide filename with no marker is
|
||||
// not an old guide, it is somebody else's file (`AgentGuide.installedVersion`), and it
|
||||
// composes as the ordinary path it is. **Both claimed names** (`CLAUDE.md` and its
|
||||
// `AGENTS.md` twin, ruled 2026-08-09) share this shape — the twin carries the identical
|
||||
// marker line by construction, so the same version parse answers for either path.
|
||||
if AgentGuide.targetFilenames.contains(path),
|
||||
let version = request.agentGuideText.flatMap(AgentGuide.installedVersion(of:)) {
|
||||
events.append(Event(kind: .agentGuide, subject: "Update agent guide (v\(version))", paths: [path]))
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user