Program memory-plane-completion · live state from memory_control · 19 Aug 2026
Nodes N001–N004 (A–D) are passed. N005 onward are all pending. Live cursors: chatgpt 2,019 packages / 2,011 raw-only / 0 turn-expanded; claude 1,206 packages / 902 raw-only / 137 turn-expanded. That is the real denominator — 2,913 packages have never been normalized. ChatGPT high-watermark is 21 Oct 2025, Claude is 9 Aug 2026: the ChatGPT side is ten months stale.
CP2 in_progresshuman_review to clearCP2 has no reached_at. Nothing downstream may legally start. Write the review decision into
program_checkpoints with the census numbers above as the evidence payload.
Snapshot v_provider_cursors into a dated census record. Every later "% complete" claim
divides by this number. Without a frozen denominator, backlog percentages are unfalsifiable.
Classify all 3,225 packages. Raw provider sessions stay immutable provenance (rule 4). Blocks CP3; AUDITOR owns it.
CP3AUDITORRule 1: audit before build. chat_stage_expand and memory_ingest_batch exist.
Classify each EXISTS / PARTIAL / BROKEN / OBSOLETE / MISSING and repair rather than replace.
One envelope both providers normalize into. Do this before mass normalization or 2,913 packages get re-processed twice.
CP3CORPUS_ENGINEERTen months of ChatGPT sessions sit behind a stale high-watermark. Advance the cursor before normalizing, or the run completes against a denominator that is already wrong.
CP3deterministicClaude is already 137 turn-expanded and 165 canonical-partial — the shortest path to a proven pipeline. Prove on Claude, then run ChatGPT's 2,011.
CP3CORPUS_ENGINEERCP3 is an automatic gate. Encode the pass criteria as a query, not a judgement call, so it self-clears and cannot be talked past.
CP3automaticEvery session gets one durable identity before any compiler writes against it. This is what stops the cleanup problem recurring (objective, §1).
CP4SUPABASE_ENGINEERPull this ahead of the collector and compiler. Backfilling 2,913 packages without leases is how you get double-compiled memory and a corrupt corpus.
CP4SUPABASE_ENGINEERRuns on the machine, not in a model. Hashes, inventories, cursor math and Git deltas are code-owned per §4 — no LLM judgement in the collector.
CP4GITHUB_RUNTIME_ENGINEERCheckpoint-driven /closeout. Consumes the collector's manifest; never re-derives what the
collector already proved.
Run V4 end-to-end on synthetic input. CP4 is human-review and cannot be self-approved by a coding agent (rule 17).
CP4human reviewCREATE is not the default reconciliation outcome (rule 6). Reconciliation must be able to return MERGE, SUPERSEDE and REJECT — and the 880 already-rejected records prove it does.
CP5MEMORY_DOMAIN_ENGINEEROne logical artifact, one current identity (rule 7). Protected finals cannot be silently replaced (rule 8); every revision carries a change reason and predecessor link (rule 9).
CP5ARTIFACT_CONTROL_ENGINEEREnforced in the database, not in prose. An invariant a client can skip is not an invariant.
CP5ARTIFACT_CONTROL_ENGINEERNot a clean fixture. A genuinely messy live session, adversarially reviewed for false completion, provenance breaks and duplicate architecture. Clears CP5.
CP5human reviewCorpus history is immutable; current truth may supersede prior truth when facts change (rule 13). CP6 is human approval, the strictest gate in the program.
CP6human approvalAgents reference corpus brains, never copy them (rule 14). With CP6 approved, N024 / X backfill runs CP7 → CP11 against the frozen denominator from step 2.
CP6 → CP7GITHUB_RUNTIME_ENGINEER