M5.3: scope memory
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 1m57s
CI / e2e (pull_request) Successful in 3m49s

A project's notes have their own folder, memory/nisse-dev/projects/<project>/,
with its own index; remember and forget take scope (general, or project:
always the current item's own, so no item writes another project's notes,
and a conversation has none). At an item's start the transcript gets the
general index and its project's, never another's. Index links are pages
from the vault's root, as SilverBullet names them.

The closing pass's memory_done can name repository documents the item left
out of date; the harness says so in the thread and records it. The prompt:
the repository is the authority, and a note that disagrees is corrected.

With the operator: ARCHITECTURE.md isn't put into every item's context (its
size); the infrastructure world model waits for nisse-ops. The walk writes
project notes and checks they come only from that project's items.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
This commit is contained in:
dongarandClaude Opus 5.5 committed 2026-10-08 23:33:12 +00:00
1 parent 427278ac80
commit fe4548459f
8 files changed
+301 -66

No files matched your search

+14 -8
View File
@@ -341,24 +341,30 @@ only as code-rendered summaries.
expert sees only its question. **No role sees another's turns as its own:**
whatever isn't the viewer's own arrives labelled with its origin.
**3. Scope memory** outlives work items: a repository's own documents (D2), read at
work-item start, with the repository as the authority; for infrastructure, the
world model in the vault (L10).
**3. Scope memory** outlives work items: a repository's own documents (D2), with
the repository as the authority, read by the driver as it needs them (not put into
every item's context); for infrastructure, the world model in the vault (L10).
What the agent knows about a project that doesn't belong in its repository is
agent memory kept with that project (below). A memory note that disagrees with
the repository is corrected.
**4. Agent memory:** the agent's own notes (the operator's preferences, lessons,
recurring decisions and their reasons), one note per fact with an index the
harness keeps, in its folder under `memory/` in the vault (L10). The model
harness keeps, in its folder under `memory/` in the vault (L10): general notes at
its top, a project's under `projects/<project>/`, written only from that project's
items. The model
writes, updates and forgets them itself, without asking; each change is said in
the thread. The index is put into the transcript at a work item's start; a note
is read before decisions it covers. Visible to the operator, who corrects it
the thread. The general index and the item's project's are put into the
transcript at a work item's start; a note is read before decisions it covers. Visible to the operator, who corrects it
through conversation, not by editing it.
**5. Never memory:** Matrix history, provider-side session state, build artifacts,
a previous task's workspace.
**Writing memory:** when a fact is learned, with its source and time; at work-item
close, by a bounded pass of its own (what was decided and learned, into scope memory
or agent memory as it belongs), so it never depends on the model thinking of it;
close, by a bounded pass of its own (what was decided and learned, into agent
memory; repository documents it left out of date are flagged to the operator, since
they change in PRs), so it never depends on the model thinking of it;
operator corrections faithfully, with attribution. Paraphrase is fine: after a
back-and-forth, the gist is what matters.
+16 -1
View File
@@ -512,7 +512,22 @@ notes are written and read (L6.4).
- The walk remembers and forgets, and checks that nothing lands outside the
agent's folder.
**M5.3 Scope memory.** *Pre-approved.* Scope memory outliving work items (L6.3).
**M5.3 Scope memory.** *Discussed with the operator.* **Done** (this PR) (L6.3).
- Project notes have their own folder, `memory/nisse-dev/projects/<project>/`,
with its own index; `remember` and `forget` take `scope` (`general`, or
`project`: always the current item's, so no item writes another project's
notes; a conversation has none). At an item's start the transcript gets the
general index and its project's, never another project's.
- Index links are pages from the vault's root, as SilverBullet names them.
- The closing pass's `memory_done` can name repository documents the item left
out of date: said in the thread and recorded, for the operator.
- The prompt: the repository is the authority; a note disagreeing with it is
corrected; don't remember what it already holds.
- Decided with the operator: `ARCHITECTURE.md` isn't put into every item's
context (its size); the driver still reads it as told. The infrastructure
world model waits for `nisse-ops` (Phase 7).
- The walk writes project notes and checks they come only from that project's
items.
**M5.4 The operator's view.** *Pre-approved.* SilverBullet in its own container on
the vault: the operator's folders read-write, the agents' read-only (L10), behind