From c290dea4cabe2eaf84b3e33fbe6fa2835a20e9cc Mon Sep 17 00:00:00 2001 From: Jonathan Borduas Date: Sun, 23 Aug 2026 15:27:07 +0100 Subject: [PATCH] goals: a fifth carrier -- memory notes load like a role prompt and carry no author Reported by TEAMLEAD after they wrote a corrected measurement into this machine's memory directory and I read it without being able to tell who wrote it. Their fact is confirmed to the second: mtime 14:15:58Z. Their mechanism is not, and correcting it moves the finding. They read the path as keyed by PROJECT, so that every pane resolves the same directory. Measured, it is keyed by CWD: slugs under ~/.claude/projects for this one repo 9 the primary checkout's slug 24 notes the eight .claude/worktrees/ slugs no memory/ at all CONTROL total notes found = 24 Eight of nine slugs are already distinct, so the substrate separates panes. The collision exists only because panes operate in the shared primary checkout, which is #205's root cause. One fix closes both, and filing this as a separate substrate defect would have split one cause into two tickets. What earns it a rung is the carrier's shape, not the collision. A memory note loads into context at every session start, like a role prompt, but unlike every other carrier on the ladder it has no ref, no blame and no version. A note another pane wrote forty minutes ago is indistinguishable from one this pane wrote a week ago, and both read as settled. The first-person instance is why this is stated rather than suspected: I read that note, nearly relied on it, and re-measured all six cells instead. The discipline worked, and the discipline is principle-shaped -- "do not cite an unattributed source" -- which is the shape that binds 0 of 5 times here. Authoring-time question: would this sentence still be safe if another pane wrote it and I could not tell? Not established, each needing its own measurement: whether the shared directory is intended, whether panes other than this one have read each other's notes, whether anything wrong has propagated. One directory, one machine, one read, one inference about the mechanism. Gates: check-orientation 0, check-goal-conformance 0, check-tools-index 0, gate-selftests 0. Filed by ARCHITECT, session c83ecf77. Found by TEAMLEAD. Refs #205, #575. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01RTX4A8KkC9cRRrt17yzjWQ --- goals/README.md | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/goals/README.md b/goals/README.md index 9a8d025..bed6b44 100644 --- a/goals/README.md +++ b/goals/README.md @@ -670,6 +670,56 @@ does not move — a design property, not agent behaviour. ⛔ **The test is whether the rule's content is time-indexed to the load, not whether the prompt is a good place to write.** + #### ⛔ AND A FIFTH: THE AGENT'S OWN MEMORY NOTES, WHICH ARE SHARED AND CARRY NO AUTHOR + + ⚠ **A pane's private-feeling scratch memory is a published carrier, and it is the only one on this + ladder that arrives with NO author and NO date-of-claim.** + + **Measured 2026-08-23 on this machine:** + + ``` + slugs under ~/.claude/projects for this ONE repo 9 ⇐ keyed by CWD, not by project + the primary checkout's slug 24 notes + the eight .claude/worktrees/ slugs no memory/ at all + CONTROL total notes found = 24 (a zero here would mean the probe was broken, not the dir empty) + ``` + + ★★ **SO THE SUBSTRATE ALREADY SEPARATES PANES — eight of nine slugs are distinct.** ⇒ ⛔ **The + collision exists only because panes operate in the SHARED PRIMARY CHECKOUT, which is #205's root + cause and not a new one.** ★ **One fix closes both, and reporting this as a separate substrate + defect would have split a single cause into two tickets.** + + ⇒ **What the carrier does badly is what makes it worth a rung:** + + ``` + message delivers, does not persist author KNOWN + document persists, delivers unreliably author in git blame + instrument both, IF called author in git blame + role prompt delivers ONCE at t=0, then freezes author in git blame + MEMORY NOTE persists AND loads at every start ⛔ NO author, NO date-of-claim + ``` + + ⛔ **It loads into context automatically, like the role prompt, but unlike the role prompt it has + no ref, no blame, and no version.** ★ **A note another pane wrote forty minutes ago is + indistinguishable from one this pane wrote a week ago, and both read as settled.** + + **First-person instance, and the reason this is stated rather than suspected:** a peer wrote a + corrected timezone measurement into `memory/git-timestamps-are-local.md` at **14:15:58Z**; **this + pane read it and nearly relied on it**, then re-measured all six cells instead and published only + what it ran. ⇒ ⚠ **The discipline worked and the discipline is PRINCIPLE-shaped** — *"do not cite + an unattributed source"* — **which is the shape that binds 0 of 5 times here.** + + #### ⇒ The authoring-time question + + > **Would this sentence still be safe if another pane wrote it, and I could not tell?** ⛔ **If + > not, it does not belong in a memory note — it belongs where authorship is recoverable.** + + ⚠ **NOT ESTABLISHED, and each would need its own measurement:** whether the shared directory is + intended; whether panes other than this one have read each other's notes; whether anything wrong + has ever propagated through it. ⛔ **One directory, one machine, one read, one inference about the + mechanism.** *(#205 · #575; mechanism corrected from a peer's first account, which read it as + keyed by project.)* + ⛔ **7 files in `goals/`, `docs/` and `prompts/` name session-start reading as a carrier.** ⚠ **This does not make them wrong** — **it bounds them: they reach fresh panes and cannot reach old ones.**