tools/mem.pyThe store and the analyst's own files, one page at a time, and the only writer to the diary.
Reading verbs in groups: one room (room,
case, brief, forest,
when, canvas, compare,
note); concepts and themes (codes,
theme, themes, after,
pairs); room facts (facts); the analyst's
files (notes, progress,
neighbours, scheme, where,
rooms, contrast, adaptations,
finding, question, table,
view, wiki, shelf,
contract, diff-scheme,
diff-model, diary). Writers: log,
at any stage (a logged merge or split at B1 is a new kind for the
stopping rule); mint, refused outside B1, C1 and D3 (after
B1 it stamps the discovery only, and the theme is written into
scheme_v2.jsonl); place and
unplace, B1 only; reassign, which re-places a
second-order theme in assignments_final.jsonl after a
recut, C1 to D6; idea, B1, C1 and D3;
adjudicate, refused outside D3. At B1, mint,
place and a logged merge or split append to
out/kinds-B1.jsonl, the stopping rule's record. Pages are
80 lines, each ending with a marker; a wrong room or id is refused with
the nearest name.
Shipped in the analyst's tools/. Every call appends a
line to out/_mem_reads-NN.jsonl. It overlays the analyst's
placements, fourth-order themes and dimensions from out/ at
query time; nothing in package/ is rewritten.
Rule 1: every read of the store or the analyst's own files goes
through it, and "Where your account of your reading and the log
disagree, the log is right." Rule 20: the diary is written "through
mem.py log only". CLAUDE.md: read files through the
verbs.
Checked against: tools/mem.py, tools/NEW-VERBS.md, STANDING-INSTRUCTIONS.md ยง1, CONTRACT-aggregator.md rules 1 and 20, CLAUDE.md.