dream
Dream 0001 - 2026-08-02
About this note
| Field | Value |
|---|---|
| Scope | whole brain |
| Read | 9 topic notes, claims 1-100, 15 ADRs, INDEX.md, glossary.md, log.md tail, brain/dreams/README.md |
| Findings | 6 applied, 2 proposed, 3 classes clean |
| Validator | OK (12 checks) before and after |
The first pass, run 11 sources and 100 claims after the stage was created in ADR-0009 on 2026-07-31. Everything below is accumulated drift from six ingests that never had a reconciliation behind them.
The headline: the brain is in good shape, and the defects cluster. Nothing contradicts anything.
No claim needed its confidence moved. No topic needed splitting or merging. Five of the six
findings are the same structural bug - a fact about note A written down inside note B, which went
stale when A changed and nothing pointed back. That is the class this pass exists to catch, and it is
the class validate.py structurally cannot.
On this page
Findings appliedFinding 1 is the interesting one, and it is a repeatProposed, not applied (needs a human call)Checked and cleanNotes for the next passFindings applied#
| # | Class | Where | What was wrong | What changed |
|---|---|---|---|---|
| 1 | Drift from source | topics/memory.md:146 |
Cited claim 33 for "the generator and the evaluator are separate processes". Claim 33 is about ablation ("remove one component at a time"). The claim meant is 34 ("Do not let the producer grade its own work - self-evaluation bias") | Corrected to claim 34 |
| 2 | Stale status | topics/agent-security.md:3 |
Status line read emerging (1 source ...) while two sources were listed below and INDEX.md said two |
Rewritten to name both sources, and to say why two sources are still not two evidence |
| 3 | Stale status | topics/agents.md:376 |
Pointed at agent-security.md as "still a seed"; it has been emerging since S3 |
Corrected, and re-stated what is actually still missing there |
| 4 | Stale status | topics/skills.md:198 |
Pointed at mcp.md as "still a seed"; emerging since S10 (ADR-0013) |
Corrected, keeping the real point - mcp.md still says nothing about skills |
| 5 | Stale self-reference | topics/rag.md:416 |
"this brain ... at 8 sources" - the sentence testing S8's ~100-source ceiling against this repo | Updated to 11. The argument (n=1, well inside the easy regime) is unchanged |
| 6 | Superseded framing | INDEX.md:46 |
"The six below are seeds, not a whitelist" - written when six topics existed, with nine rows beneath it | Rewritten to name the six original seeds and distinguish them from the ADR-created notes |
Finding 1 is the interesting one, and it is a repeat#
The same mis-citation was fixed in AGENTS.md earlier the same day
(e33c188) - claim 33 cited for
generator/evaluator separation in two different files. glossary.md gets it right ("claims 34,
59"), which is what settles the correct number.
This is the exact defect the new validate.py check cannot catch, by construction. Claim 33
exists, so the reference resolves; it just does not say what the citing sentence claims it says.
The check catches dangling references, and this one is wrong. Whether a cited claim supports the
sentence citing it is a reading judgement - so it belongs here, in a pass that reads everything, and
nowhere else. This pass paid for itself on this finding alone.
Proposed, not applied (needs a human call)#
| # | Proposal | Reasoning | Why it is a judgement call |
|---|---|---|---|
| P1 | Add a validate.py check: a topic note's **Status:** line must agree with its INDEX.md Topics row on both status word and source count |
Findings 2, 3 and 4 are all this bug. skills.md already records fixing it once, on 2026-08-02 - so it has now fired twice on the count and twice more on cross-note "still a seed" pointers. It is purely mechanical: I caught all four with a throwaway script during this pass |
It adds a check to a frozen script and hardens a convention AGENTS.md states only in prose. Cheap and high-yield, but it is a kit change, and AGENTS.md must gain the rule before the checker enforces it |
| P2 | Extend that check to cross-note status claims - flag any note that links to another topic note and calls it "still a seed" / emerging / established in the surrounding words, when that disagrees with the linked note's own status line |
Findings 3 and 4 are exactly this, and both survived every ingest since the referenced topic advanced | Fiddlier to match reliably, and risks false positives on prose that discusses a status historically ("it was a seed when S5 landed"). Worth doing only if P1 proves the pattern keeps recurring |
Neither proposal changes what the brain believes, so neither is urgent. Nothing in this pass required a human call on a claim, which is itself the result: six ingests of in-band compounding produced bookkeeping drift and zero belief drift.
Checked and clean#
- Contradiction. No unflagged contradictions anywhere. Every conflict the brain holds is already
kept-both-sides and labelled: S2 vs S9 on owning the loop (
agents.md, tabled and explicitly "kept, not resolved"), S10 vs S11 on head/tail treatment (context-engineering.md, claim 99, both correct under different scarce resources), claim 24 vs S6 on whether memory helps (memory.md, resolved as measuring different constructs rather than by picking a winner). This is the contract's hardest rule and it is being followed without exception. - Duplication / fragmentation. The two live overlap risks are both declared and divided, not
drifting:
context-engineering.md/rag.mdsplit S10 by budget-half vs retrieval-half and each says so;memory.md/rag.mdre-derived their boundary when S8 straddled it (external-source knowledge vs own-experience knowledge). No idea found stated twice. - Stale confidence. No claim found sitting at a confidence a later source had already earned or
refuted. The near-miss is claim 34: S9 ships Author/Critic as a named SDK primitive, and
agents.mddeliberately declines to promote it - "corroboration of the pattern's currency, not its efficacy". That is the right call, already reasoned, and left alone. - Closed open questions. All struck-through items are correctly struck and dated. The
strikethroughs that exist (
rag.mdon retrieval mechanics,context-engineering.mdon tool selection and on "no measurements",memory.mdon "no measurements" and "consumer assistant only") each name the closing source. No open bullet found that a later source had silently answered. - Orphans. Attempted mechanically and the method was too weak to report on: 63 of 100 claims
are never referenced by number outside
claims.md, but topic notes restate claims in their own Key-claims tables rather than citing numbers, so this measures a writing convention and not an orphan. Recorded so the next pass does not re-run it expecting a signal. A real orphan check would have to match claim text, not claim numbers.
Notes for the next pass#
inferencinghas beenseedwith zero sources since the kit was created (2026-07-24), now eleven sources in. Not a defect - the contract allows a seed to sit - but it is the one topic with no evidence of ever being on the reading path. Worth a deliberate keep-or-retire call, and there is currently no rule for retiring a seed that never attracted a source.mcpis one primary source away from a real note. It isemergingon a secondary source that taught it sideways (ADR-0013), and its own note says so plainly. Resources, prompts, sampling, transports and the handshake remain at zero.agent-securityis one identity source away from the planned split intoidentity-and-authorization, per the standing instruction in its own "Note for the architect". Watch for it; record an ADR when it fires.- Watch whether ADR Context sections get "corrected". ADR-0011 says "Eight sources in" and ADR-0009 reasons from what was known on 2026-07-31. Those are dated historical records and must not be updated - unlike topic notes, which are living. This pass deliberately left them alone, and a future pass should too.