Skip to content

Advisory review: "Opening the Door" — field log corrections, retitle, and portable enforcement - #9

Open
mparrett wants to merge 6 commits into
pre-revival-logfrom
revival-log-tip
Open

Advisory review: "Opening the Door" — field log corrections, retitle, and portable enforcement#9
mparrett wants to merge 6 commits into
pre-revival-logfrom
revival-log-tip

Conversation

@mparrett

Copy link
Copy Markdown
Owner

Advisory PR — review only, do not merge. Per the convention from #1/#5/#6/#7/#8, the base branch pre-revival-log is deliberately frozen at the prior phase's tip (bf3c4e5) so this phase reads as one diff. Merging would fast-forward the pin and destroy the "before" snapshot. Close after review.

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.

  1. The two corrections (9bc8959), in his framing.

    • §2 said "months later, nobody has needed anything back from the archive." It was days — and agent-era feature work off the same lineage (the ITER-0005 persistence arc: durable TupleSpace, content-addressed recovery, bytecode persistence) has since been grafted onto main. The scaffolding was disposable; the code beneath it was not.
    • §7 said the loop "never had a reviewer, so nothing distinguished roadmap from rot." Wrong: review and roadmap lived inside the loop's own process layer — PAR adversarial audits, a dated iteration log, a behavior-scenario corpus — illegible to a reader who never opened it. The surface-legibility point survives; the claim doesn't.
  2. 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.html stays as a redirect stub so the published URL keeps working. Cross-links updated in index.html, the tour, field log 2, and README.

  3. 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.

  4. 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.

  5. 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 in AGENTS.md. The spec audits what is actually enforced and concludes the baseline is much stronger than AGENTS.md implies — CI plus build.rs cover 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

  • Stale counts corrected against the tree: 74 ignored tests (the log and known-gaps.md still said ~185/~75), seven workspace crates (fmpl-wasm was missing from DEV.md and the tour), pattern bucket 54
  • Every internal href across docs/*.html resolves; no reference to the old filename survives anywhere in the repo
  • just test green; the only Rust changes are two comments

mparrett and others added 2 commits July 24, 2026 17:22
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>
@mparrett

Copy link
Copy Markdown
Owner Author

Added a sixth item to this phase: docs/fmpl-process.html — "The Layer Underneath" (8f878ed).

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 archive/agent-harness: the requirement lattice (EPIC → STORY → AC → SCENARIO → ITER), the hook-enforced state machine and what each state blocks, PAR as the reviewer of record, the ITER-0004b reconciliation where a "final step of X" commit is checked against X's acceptance criteria and found wanting, and the memory system.

Gate hooks are quoted from 2a6db48 rather than the branch tip, where they are symlinks into /Users/ndn/development/ralph-loop/ — the page says so instead of 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 across 2026-05-08–13, 253 commits from 2025-12-21, 1,648 episodic entries yielding 4 graduated lessons.

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant