Advisory review: "Opening the Door" — field log corrections, retitle, and portable enforcement - #9
Advisory review: "Opening the Door" — field log corrections, retitle, and portable enforcement#9mparrett wants to merge 6 commits into
Conversation
Norman Nunley opened nnunley#1 against the published rehab log to correct two factual claims. Both are applied here, in his framing: - §2: the archive triage was days ago, not months — and agent-era feature work off the same lineage (the ITER-0005 persistence arc) has since been grafted onto main. The scaffolding was disposable; the code beneath it was not. - §7: the loop's review and roadmap lived inside its own process layer — PAR adversarial audits, an iteration log, a behavior-scenario corpus — so the "never had a reviewer" line was wrong. The surface-legibility point survives; the claim doesn't. A field note records the correction and credits him for making it in the open. The log is retitled "Opening the Door" and re-toned (the rehab framing read as a verdict on someone else's project, which was never the point). The file moves to docs/fmpl-revival-log.html; the old path stays as a redirect stub so the published URL keeps working. Cross-links updated in index.html, the tour, field log 2, and README. Also from Nunley's note: ColdStore, not cool++/CoolMUD, is the right reference for the MUD lineage bio. Research docs citing ColdMUD as an architectural influence are untouched — that part was never wrong. Stale counts corrected while in here: 74 ignored tests (not ~185/~75), seven workspace crates (fmpl-wasm was missing), pattern bucket 54. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sidelining the ralph harness (§2 of the revival log) did more than swap tooling: several invariants the loop enforced in code — full suite green before commit, design docs read before the first write, filtered cargo output — survive here only as prose in AGENTS.md that an agent is trusted to remember. This spec audits what is actually enforced today and finds the baseline much stronger than AGENTS.md implies. CI plus fmpl-core/build.rs already cover most of it; repo-resident assertion tests are the house idiom for the rest. The conclusion is deliberately small: one conversion worth doing (parser-epoch bump detection), two one-line consistency fixes, and an explicit list of invariants no repo-resident mechanism can enforce. Git hooks are rejected as a tier — jj skips them, and this repo is driven with jj. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…the archive FMPL's implementation was written by an autonomous loop, and the loop carried a process layer that never showed on the surface of the repo: a five-level requirement lattice, a hook-enforced state machine, PAR adversarial review, an iteration log, and a memory system. Sidelining the harness to archive/agent-harness made that layer invisible rather than merely unfamiliar. This page opens it. Everything is quoted from primary sources on the archive branch, which is the pre-cleanup snapshot — PROMPT.md, the requirement documents, the iteration log, the memory store — plus the gate hooks from history at 2a6db48, since at the branch tip they are symlinks into a path that existed only on the author's machine. The page says so rather than inviting readers to open files that aren't there. Counts verified against the tree: 31 epic documents, 100 stories, 331 acceptance criteria (246 tagged seam:integration), 88 scenarios, 22 logged iterations over six days, 253 commits from 2025-12-21, 1,648 episodic entries yielding 4 graduated lessons. Two things it declines to flatter: the memory system's ratio of machinery to insight, and the review queue, which graduates lessons and not code. Linked from the landing page, both field logs, the tour, and README. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Added a sixth item to this phase: The §7 correction in the field log names the loop's process layer but doesn't show it. This page does, from primary sources on Gate hooks are quoted from Counts verified against the tree: 31 epic documents, 100 stories, 331 acceptance criteria (246 tagged Linked from the landing page, both field logs, the tour, and README. Validated in-browser: no horizontal overflow at 1200px or 390px, every TOC anchor resolves, zero console errors, light and dark both checked. |
The first draft credited Nunley with building the whole apparatus. The archive says otherwise for a large part of it, and the distinction is exactly the kind this page exists to get right. `.agent/install.json` records the memory system as an installed stack — `agentic_stack_version 0.15.0`, written into the project 2026-05-09, with adapters for both Claude Code and Codex, carrying generic skills (deploy-checklist, tldraw, data-flywheel) that have nothing to do with FMPL. `ralph.sh` and the gate hooks are symlinks into a `ralph-loop/` directory shared across the author's projects. `docs/superpowers/` takes its name and its EPIC/STORY/AC/SCENARIO shape from an existing methodology. What is unambiguously this project's: PROMPT.md, written against this cargo workspace and its jj usage; the roadmap and requirement documents; the behavior corpus; the iteration log and its corrections; and five months of aiming the thing at a language implementation. A field note in §2 draws that line. §7 gains the install date, which also supplies the fair defense of the memory system's thin yield — it had four days on the project, not five months. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The forensic adopted-vs-authored split was more hair-splitting than the subject warrants. One paragraph now: some tooling is off-the-shelf, some is written for FMPL, Nunley assembled it and aimed it for five months. The install date stays in §7, where it earns its keep as the fair defense of the memory system's thin yield. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
"A pile of files to triage" read as clutter-in-the-way. It was thirty thousand lines we triaged before we had read enough to understand them, which is the honest version and puts the deficiency on the reader. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The arc
Norman Nunley opened nnunley/fmpl#1 against the published field log, correcting two factual claims — as a PR against our words rather than a note asking us to change them. This phase applies both, and takes the log apart to find out what else was wrong with it.
The two corrections (9bc8959), in his framing.
Retitle and re-tone. "The Revival, Revived" → "Opening the Door." The rehab framing read as a verdict on someone else's project, which was never the point — a fork arriving at a working repo isn't a rescue. The file moves to
docs/fmpl-revival-log.html;fmpl-rehab-log.htmlstays as a redirect stub so the published URL keeps working. Cross-links updated inindex.html, the tour, field log 2, and README.A field note on the correction (§7). The §7 mistake is the most generalizable thing in the log, so it stays visible rather than being quietly patched: we read the absence of our process as the absence of a process, while holding the evidence — §2 moved those files with our own hands.
Lineage fix. ColdStore, not cool++/CoolMUD, is the reference for the MUD-era bio (tour §1, README). Research docs citing ColdMUD as an architectural influence are untouched — that part was never wrong.
Portable invariant enforcement (10c733c,
specs/portable-invariant-enforcement.md). The archaeology behind the §7 correction surfaced a real forward-looking cost: invariants the loop enforced in code survive here as prose inAGENTS.md. The spec audits what is actually enforced and concludes the baseline is much stronger thanAGENTS.mdimplies — CI plusbuild.rscover most of it. One conversion worth doing (parser-epoch bump detection), two one-line fixes, and an explicit list of what no repo-resident mechanism can enforce. Git hooks are rejected as a tier: jj skips them.Verification
known-gaps.mdstill said ~185/~75), seven workspace crates (fmpl-wasmwas missing fromDEV.mdand the tour), pattern bucket 54hrefacrossdocs/*.htmlresolves; no reference to the old filename survives anywhere in the repojust testgreen; the only Rust changes are two comments