# MEM-1 — the `memory/` directory does not exist in the repo, and the C0 kill list is one of the files that is missing

status: open · raised panel run 1 (2026-08-06) · migrated 2026-08-24 from the frozen RESEARCH_QUEUE.md archive (body verbatim below) · class: hygiene / loop-integrity · judgement: **YES** · effort 0.25 pd

---

**1. MEM-1 — the `memory/` directory does not exist in the repo, and the C0
kill list is one of the files that is missing.** · judgement: **YES** ·
effort 0.25 pd · horizon: immediate

*Mechanism.* `git log --all --diff-filter=A -- 'memory/*'` is empty: `memory/`
was never committed, and it is not in `.gitignore` either — it lives only on
the owner's Mac. Meanwhile 22+ references to 11 distinct `memory/*.md` files
appear across committed docs. Two of them are load-bearing for the autonomous
loop: `ops/RESEARCH_PANEL.md` §2 instructs this panel to check
`memory/strategic-posture.md` (the kill list enforcing the C0
anti-relitigation rule), and `ops/WEEKLY_AUDIT.md` check #8 instructs comparing
"the memory index" against RESEARCH.md/CLAUDE.md — a check that has been
reporting green while structurally unable to read one of its three inputs.
`tests/test_docs_consistency.py` verifies that `ops/*.md` referenced files
exist; nothing checks `memory/*.md`, so the dangling references are invisible
to the suite whose stated purpose (line 5) is that "an agent acts on what is
written".

*Not fatal today, and say so:* `ops/RESEARCH_PANEL.md` §2 enumerates the kill
list inline and `web/public/data/killlist.json` carries 13 entries, so cloud
routines are degraded, not blind. This panel used both.

*Test design / kill criterion.* Extend `tests/test_docs_consistency.py` to
assert every referenced `memory/*.md` path resolves. **It reds today.** The
owner must then either commit `memory/` or strip the references; doing nothing
does not satisfy it, and "it works on my machine" is unavailable because CI's
checkout is the one that matters. **If the owner's intent is that `memory/`
stay private and local, the correct resolution is to strip the references and
inline what the routines need — not to weaken the test.**

*Owner judgement required:* commit vs de-reference is a policy call.

## Triage note — 2026-08-24 (annotation only; the body above is untouched)

Premise re-verified on `origin/main` @ `3e0161a`: `memory/` still does not
exist in the checkout, and `git log --all --diff-filter=A -- 'memory/*'` is
still empty. Eighteen days open, unchanged. Still the owner's policy call
(commit the directory vs strip the references).

---

## Triage note — 2026-08-31 (annotation only; the body above is untouched)

**Premise intact, scope materially NARROWED — the policy call is now worth
about a tenth of what it was.** Verified at HEAD `528793d`: `memory/` is still
absent from the checkout, `git log --all --diff-filter=A -- 'memory/*'` is
still empty, it is still not in `.gitignore`, and
`tests/test_docs_consistency.py` still contains **zero** `memory/` checks.

But the two load-bearing references this row named have been **annotated in
place** rather than left dangling: `ops/RESEARCH_PANEL.md` now reads "sources
IN THE REPO (the `memory/` dir is owner-side and absent from cloud checkouts)"
and inlines the 13-entry kill list, and `ops/DAILY_AUDIT.md` twice says
"owner-side … NOT in the repo; cloud sessions: context pointer only, do not
try to read it". A cloud routine that reads either file now knows what it
cannot see. That is de-referencing by annotation — one of the two resolutions
this row asked for — applied to the two files that mattered most.

**Still bare, and still the reason this stays open:**
`ops/WEEKLY_AUDIT.md` check #8 ("the memory index") and
`ops/RESEARCH_AUDIT.md`. Check #8 is the row's second load-bearing claim and
the one that offends this shop's cardinal rule — **a check that reports green
while structurally unable to read one of its three inputs**. Two files, two
sentences, or one committed directory.

Also found: `CLAUDE.md` cites a twelfth file, `memory/MEMORY.md`, which is not
in this row's list of eleven.

Twenty-five days open. Still the owner's policy call (commit vs strip), but it
is now a five-minute call, not a half-day one.

---

## Triage note — 2026-09-07 (annotation only; the body above is untouched)

**Premise unchanged; one factual correction to the 08-31 note.** Re-verified
at HEAD `e25f80b`: `memory/` still absent from the checkout,
`git log --all --diff-filter=A -- 'memory/*'` still empty, still not in
`.gitignore`, and `tests/test_docs_consistency.py` still carries zero
`memory/` checks. The two bare references are unchanged:
`ops/WEEKLY_AUDIT.md:70` ("the memory index") and `ops/RESEARCH_AUDIT.md:60`.

**Correction:** the 08-31 note said the twelfth file `memory/MEMORY.md` is
cited by `CLAUDE.md`. It is not — it is cited by **`RESEARCH.md:4`** ("when
this file disagrees with `memory/MEMORY.md`, this file wins") and
`RESEARCH.md:1159`. CLAUDE.md's memory references are a different set
(`:278-282, :299, :312, :353, :361, :363, :401, :413, :414`) and all resolve
to files in the row's original eleven. The consequence is slightly worse than
recorded: the dangling reference sits in the canonical research notebook's
precedence clause, i.e. in the sentence that tells a reader which of two
sources wins when one of them is unreadable.

Thirty-two days open. Still a five-minute owner policy call (commit the
directory, or strip two sentences).
