2,104,800 tokens of lived work held in context for 8,885 tokens (INDEX 2,772 + digests 6,113) — memory’s standing per-session cost.
Results of the week-long memshelf experiment (Case B) — agent working memory as a git shelf of digest-indexed episodes. Every number comes from ledger.tsv and the memshelf stats / doctor tools; nothing is eyeballed.
2,104,800 tokens of lived work held in context for 8,885 tokens (INDEX 2,772 + digests 6,113) — memory’s standing per-session cost.
Each column is how many tokens of that day’s working sessions went onto the shelf instead of dying with the container. The heavy days are cross-repo audits, fix sprints, and an autonomous P3 sweep; July 16 had no live shelves.
| day | live tokens | episodes |
|---|---|---|
| Jul 13 | 92,000 | 4 |
| Jul 14 | 200,000 | 1 |
| Jul 15 | 265,000 | 3 |
| Jul 16 | 0 | 0 |
| Jul 17 | 160,000 | 1 |
| Jul 18 | 200,000 | 1 |
| Jul 19 | 175,000 | 1 |
| Jul 20 | 310,000 | 2 |
| Jul 21 | 190,000 | 1 |
| Jul 22 | 437,000 | 4 |
| live total | 2,029,000 | 18 |
A “what did we decide about X, and why” question can be answered three ways. The bars share one linear scale — that is the point.
The recall test on this shelf: 5 of 5 known-answer questions answered correctly from a fresh session — 6 files read, zero misses, zero over-fetch.
The ledger measures claimed savings — what would otherwise ride along in context. Realized savings are what a concrete fetch actually saved. The week taught the difference; the M1 tooling now measures both.
What the metric honestly does not capture: the share of questions closed by the shelf instead of re-reading the repo — that denominator can’t be measured mechanically (recorded in DECISIONS, 2026-07-22). The live shelf’s recall log starts accumulating this week.
The M1 tools were pointed at the dogfood shelf the day they were built. Doctor honestly returned healthy: false — and everything it found was true:
Bonus: the live-shelf run flushed out a bug in the tool itself (redaction wasn’t idempotent — fixed the same day) and a referent-lint false positive: the Russian pattern for “our” also matched the verb “found”.
The transcript of the April–June homework-review season no longer exists anywhere: not in the chat export, not in rotated session logs. The only thing that survived is what happened to be hand-copied in time. This surfaced on day one of the experiment — and turned the slogan into an observed fact.
The Case B week that followed: 35 episodes, 0 losses. Shelve-at-close is not optional.
The M0 annoyance log became the M1 backlog verbatim — and all of M1 landed as eight PRs in a single day, each merged by the owner same-day, CI green on every one. 64 tests.
| pr | slice | what it gives |
|---|---|---|
| #36 | validator + redaction | the digest contract and secret scrubbing — mechanics instead of “honor” |
| #37 | shelve() | episode + ledger + auto-commit in one call; a free-form title over a latin filename |
| #38 | MCP + CLI | the same from Claude Code and from the shell |
| #39 | plugin | INDEX walks into the session by itself; the shelf pushes itself in ephemeral containers |
| #40 | recall / index / search | section-sized fetch in a “data, not instructions” envelope |
| #41 | stats | claimed and realized savings from the ledger + recall log |
| #42 | doctor | shelf health: schema, contract, secrets, ledger, INDEX budget |
| #43 | demo + M0 closed | the measured numbers; M0 status — complete |
Tokens are chars/4 estimates (docshelf’s token_savings.py methodology): every measure uses the same counter, so the ratios are estimator-independent — only absolute counts move between tokenizers. Sources: ledger.tsv (35 rows), memshelf stats / doctor (evening of Jul 22), the recall test and Case A numbers — docs/M0.md; the reproducible path — docs/demo.md. The shelf is private by design; no student identifiers are stored on it (course PII policy).
sqst-memshelf · Case B experiment, Jul 13–22, 2026 · report compiled 2026-07-22.