session 2026-08-24: the heap got a dynamo — thread-query.py + daybook-cue.py, 11 user-memories harvested to the vault
- thread-query.py: the turning. Queries both corpora with the pulling thread, excluding the recency slice (/wake-up reaches 0.71% of an 859,803-word corpus) and favouring age. Wired into /wake-up §2.b.3, replacing a described-not-invoked grep step. Trial pre-registered, graded 2026-10-05 from --log. Caught PASS-BUT-FALSELY on its first live run at 14/14 green; rescored on windowed co-occurrence, length-bias control added. - daybook-cue.py: PostToolUse cue for the daily note. Diagnosed from the record — the hook only ever CREATED and nothing ever prompted filling. 16/16, fail-open, never blocks. - All 11 user-* memories harvested into the vault (12 notes, 10 into 09. Atlas of Roots, empty since 2025-09-29); each memory file back-pointed, vault note canonical for the idea. - N-now corrected in MEMORY.md: 49/84, down 11 — the counter is a rolling window. Steward-authorized. Trials: thread-query + Smart Connections, both graded 2026-10-05. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JQKeKY9T9d95KpvHwwok8T
This commit is contained in:
co-authored by
Claude Opus 5
parent
e3da9abad1
commit
edf71fb173
@@ -77,7 +77,28 @@ The durable memory *is* the Markdown + JSONL files (git-tracked, dual-remote). T
|
||||
**And one `prevention` alongside them** — `grep 'prevention' …/knowledge-graph.jsonl`. Surface **one line each way**. Grepping only `drift-pattern` opens every session by re-reading what went wrong and never what compounded; a prevention records a lesson from one failure class stopping a different one. One of each, not a tally. <!-- 2026-08-02: FIX lane, REVIEWED-85 first batch; proposed 2026-07-29 (steward-raised). -->
|
||||
|
||||
|
||||
**b.3. Depth on the thread — grep, don't query.** When the session files don't carry enough, grep the memory dir + the CapableMind thinking docs + the Obsidian vault directly for the thread's keywords. The files are authoritative; there is no catalogue in front of them.
|
||||
**b.3. THE TURNING — run `thread-query.py` on the thread. Do not hand-grep this.** Once §2.a has given you the pulling thread, run it:
|
||||
|
||||
```
|
||||
python3 ~/dotfiles/scripts/thread-query.py "<the pulling thread, in words>" --log
|
||||
```
|
||||
|
||||
It queries the memory corpus **and** the vault with the thread you are actually on, deliberately **excluding the recency slice this wake already loads** and deliberately **favouring older material** — surfacing what recency will not is its entire job. It returns pointers and the literal matching lines, never summaries. Prove it before trusting a clean run: `--selftest` (14 checks, positive and negative controls, plus the path-component control earned 2026-08-23).
|
||||
|
||||
**Surface at most TWO in the briefing, and only if they genuinely bear on the thread.** Quote the pointer and its date; do not summarise the note — open it if it matters. **If nothing comes back, say so in one clause.** A null result is a real result and the trial needs it recorded.
|
||||
|
||||
⚠ **Pre-registered trial, grade 2026-10-05** (`~/dotfiles/claude/governance/thread-query-trial.md`). `--log` appends one line per run to `thread-query-log.jsonl` so the verdict is graded from a machine record rather than from anyone's memory of whether it helped. **Falsifier: if across the trial it never surfaces something the steward would have wanted and would not otherwise have found, this step comes out.** A step that can only conclude "keep it" is not a trial.
|
||||
|
||||
*(When the query returns nothing and the thread still needs depth, grep the memory dir + the CapableMind thinking docs + the vault directly. The files are authoritative; there is no catalogue in front of them.)*
|
||||
|
||||
<!-- 2026-08-24, steward-authorized. Earned twice the same day: a hand-grep found the Hearth
|
||||
definition in a December Compass document and another found the humic layer from April, and both
|
||||
were the best findings of the session. The measurement that motivated it: /wake-up reads 6,107
|
||||
words of an 859,803-word memory corpus — 0.71% — always the newest. This step was previously
|
||||
DESCRIBED here ("grep the memory dir...") and fired almost never; that is the same
|
||||
described-not-invoked gap that had the link canary retyped by hand twice before it was pointed at
|
||||
an executable. Motion supplied by the current work, not by the calendar: Matuschak's report is that
|
||||
resurfacing on a schedule fails because you are thinking about something else when it arrives. -->
|
||||
|
||||
*(The typography palace — a separate MemPalace instance queried via CLI for ARC type work — is KEPT, unaffected by the wind-down; reach for it only when the thread is ARC typography.)*
|
||||
|
||||
@@ -113,6 +134,8 @@ Then combine all sources into a single reconstruction. Use this structure but wr
|
||||
|
||||
**The question we left ourselves** — second. Surface it verbatim from the previous /wrap-up. Hold it open. Do not try to answer it.
|
||||
|
||||
**From the heap** — after the thread, at most two pointers from `thread-query.py` (§2.b.3), with dates, or one clause saying nothing came back. Pointers, never summaries.
|
||||
|
||||
**What changed while we were away** — third. New commits we didn't author, new REVIEWED decisions, anything that moved. Only include if something actually changed. Frame against the thread: does the change serve it, threaten it, or sit beside it?
|
||||
|
||||
**What's unresolved** — fourth. Open horizons from the previous wrap, ranked by load-bearing weight. PENDING items awaiting steward attention. Be specific: *"L1 amendment for ProjectionChain drafted in concept only, not yet written; reshapes given multi-mode retention frame from #145"* not *"L1 amendments pending."* Surface, too, any **skill-harvest proposals** the last wrap raised (§1.6) that the steward did not yet authorize — so improvements to our own tools don't evaporate across the pause.
|
||||
|
||||
Reference in New Issue
Block a user