Dream 0002 - 2026-08-05

dream

Dream 0002 - 2026-08-05

About this note
Field Value
Scope whole brain
Read 11 topic notes, claims 1-177, 20 ADRs, INDEX.md, glossary.md, log.md tail, brain/dreams/0001-260802.md
Findings 8 applied, 3 proposed, 7 classes clean
Validator OK (13 checks) before and after

The first pass after a large single-session ingest. Between dream 0001 and this one the brain went from 11 sources and 100 claims to 22 sources and 177 claims - seven sources landed in one session (S16-S22), agent-security advanced to established, and two ADRs were written. That is the largest compounding burst this repo has had, and it is exactly the condition the stage exists for.

The headline: belief drift is still zero, and bookkeeping drift is up sharply and concentrated. Nothing contradicts anything. No claim needed its confidence moved, no topic needed splitting or merging, and every conflict the brain holds is still kept-both-sides and labelled. Seven of the eight findings are the same two bugs dream 0001 already named, which is the real result: the defects did not diversify, they multiplied. Three are stale source counts (dream 0001's P1, never implemented). Three are absolute statements - "nothing here yet on X" - that a later source in the same session falsified and nobody went back to.

On this pageFindings appliedFinding 4 is the one worth reading twiceProposed, not applied (needs a human call)Checked and cleanNotes for the next pass

Findings applied#

# Class Where What was wrong What changed
1 Stale status topics/agents.md:3 Header read 11 sources / 10 independent while listing 14, and INDEX.md said 14 (13 independent). Three sources were appended to the list today without touching the count Corrected to 14 sources / 13 independent
2 Stale status INDEX.md, context-engineering row Note said 10 sources, INDEX row said 9. S21 was added to the note and not to the row INDEX row corrected to 10
3 Stale status topics/memory.md:3 + its INDEX row Header said 4 sources while listing six (S6, S7, S8, S16, S17, S19); INDEX said 5. Both were wrong and they disagreed with each other Both corrected to 6
4 Superseded framing topics/agents.md:535 "Gap: nothing here yet on agent security. Both sources treat tool calls as trusted" - and it pointed at agent-security.md as "emerging, and still with no source that studies agent threats". Triply false: this note now carries S17, S18 and S20 with claims 147/149/168; "both sources" was written at 2 sources and there are 14; and agent-security is established with four threat sources Rewritten as what is actually still missing, with the cross-note status removed rather than restated
5 Superseded framing topics/agent-security.md:469 "fraud and manipulated content are explicit non-goals (claim 155), and nothing in this brain addresses them". Written during S18's compound; S21 landed four hours later and its behavioural defences act before an instruction is followed, so they are the one class that can touch a manipulated-content payload Corrected to name S21 as partial, unmeasured coverage - which also sharpens the three-class framing rather than merely fixing a fact
6 Closed open question topics/skills.md, Open questions "Nothing yet on skills as an attack surface." The same note gained a section today titled "The topic's first security material: a skill is a write channel" (S19, claims 158/162). A note contradicting itself between two of its own sections Struck through and dated, naming S19 and what genuinely remains open
7 Stale self-reference topics/rag.md:~318 "this brain ... at 11 sources", testing S8's ~100-source ceiling against this repo. Dream 0001 fixed this exact line (8 to 11); it is now 22 Updated to 22, and the number replaced with a pointer so it cannot go stale a third time
8 Superseded framing topics/agent-security.md, Note for the architect "This note now carries three distinguishable bodies of material ... agent-specific threats (still thin)". The threat material is now the bulk of the note across four sources and two corroborating groups, and a fourth body exists that is not listed - defences (S18, S20, S21) Rewritten to four bodies with the threat material no longer described as thin

Finding 4 is the one worth reading twice#

It is dream 0001's Finding 3 recurring in the same file, and it now carries a factual claim about a neighbour note that four sources have falsified. The sentence was correct when written at two sources. Nothing in an ingest pass ever revisits a "gap" statement in a note it is not editing, and validate.py cannot see it because every link resolves and every claim number exists.

This is the class the stage exists for, and it has now produced findings in both passes.

Proposed, not applied (needs a human call)#

# Proposal Reasoning Why it is a judgement call
P1 Implement dream 0001's P1: a validate.py check that a topic note's **Status:** source count agrees with its INDEX.md row, and with the number of sources the status line itself lists Dream 0001 proposed this after three occurrences and it was never built. It has now fired three more times (findings 1-3), and finding 3 is the worst form - note, INDEX and the note's own list all disagreeing. I caught all three with a throwaway script in under a minute. Six occurrences across two passes is no longer a pattern, it is a missing check It hardens a convention AGENTS.md states only in prose, and touches a frozen script - so AGENTS.md must gain the rule before the checker enforces it. Also needs care: some notes legitimately carry two counts (raw and independent)
P2 Record a rule for a seed that never attracts a source, and apply it to inferencing Dream 0001 flagged this as having no rule. Since then the call has been tested twice and deliberately declined - S14 and S15 were both examined against it and routed elsewhere, with the reasoning recorded in ADR-0018. So the note is not neglected; it is actively defended. The proposal is to say so in the note itself, converting an apparent gap into a recorded decision Whether an empty seed should ever be retired is a taxonomy question, and the honest argument for keeping this one is that it has twice stopped a source being misfiled - which is work, even though the note is empty
P3 Add a security cross-reference to mcp.md Four sources landed today whose subject is untrusted content arriving through the channel MCP defines, and mcp.md contains no pointer to any of them. Its own additional_search_text observation is the seed of exactly the retrieval-poisoning shape S16 measures This is an addition, not drift, and dreaming reconciles rather than ingests. Recorded here so it is not lost, and left for a compound pass or a deliberate edit

Checked and clean#

Notes for the next pass#