M11 closeout: accept v1 release validation
CI / Backend tests (push) Canceled after 0s
CI / Frontend lint + build (push) Canceled after 0s
CI / Docker image builds (push) Canceled after 0s

The browser, offline and identity runs had last been taken on ef25b0a. The
closeout repeated them on the exact release-candidate tree, 3652dc6, whose
product code is identical to 96c1bf5, where the 100-turn evidence was run. No
product code changed, so the long-run evidence stands.

On 3652dc6:
- backend suite: 1421 passed, 17 skipped, 0 failed
- frontend suite: 161 of 161; lint clean
- production build clean
- docker build --no-cache: image SPA byte-identical to the local build
- browser regression: 38 of 38
- no-network container: 23 of 23
- identity diagnostic: 0 signals; the scripted self-test's detectors fire
- release-shaped smoke test from the image: 14 of 14

- M11 report: new S (exact-tree verification, including the identity
  results the report never carried) and T (acceptance record). Corrections:
  the REQUIRED FOR V1 count is 82, not 85, and L's browser narrator was
  qwen2.5:3b-instruct. P gains risks 16 and 17; risk 6 is widened.
- BUILD-MILESTONES.md: M11 COMPLETE / ACCEPTED, and a post-v1 backlog.
- V1-ACCEPTANCE-TESTS.md: the P release gate's result, and the P3
  disposition's run.
- planning/README.md, VERSION.md (v4.0), README.md: status, map, stop rule.
- tools/m11_browser.py: the G01 import wait could not fail, because the
  scenario's campaign is titled "Hidden Knowledge". It now waits for the
  imported source's row.

Found and carried, not fixed. The identity run stored protocol shapes the
extractor leaves, on 4 of 10 turns at a 4,096 window: event-call syntax and a
parroted length hint. The owner chose residual risk. The state rule's example
is fantasy, and the state lagged the narration. None occurs in the 100-turn
evidence.

No requirement changes. No release tag.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBTT3qbkGoemWD7BRvvxpT
This commit is contained in:
JesseMarkowitz
2026-09-14 06:07:16 -04:00
co-authored by Claude Opus 5
parent 3652dc6fae
commit 432f04100b
7 changed files with 540 additions and 91 deletions
+53 -33
View File
@@ -3,9 +3,10 @@
**This file is the index. Start here.**
**Current state:** Phase 0 complete; AI-DnD forked as the production base;
milestones **M1 through M8 implemented and accepted**; **M9 and M10 implemented,
committed and signed**; **M11 implemented and verified, awaiting independent
review and v1 acceptance**, with its long-run evidence complete (2026-09-13). M11 is the last planned milestone. M1-M6 were accepted on the dates below (M3 and M4: 2026-09-03;
**milestones M1 through M11 complete**. **M11 was accepted at its closeout
(2026-09-14), and the v1 release gate passed** on the release-candidate tree.
There is no further planned milestone. The signed closeout commit and any
`v1.0.0` tag are separate events and the repository owner's to perform. M1-M6 were accepted on the dates below (M3 and M4: 2026-09-03;
M5: 2026-09-04; M6: 2026-09-06). M5 and M6 were each accepted only after an
independent review found a real defect and a corrective pass fixed it.
@@ -33,21 +34,25 @@ scene packet derived on read, provider contracts with an empty registry, and no
dependency added. Its central finding was that the scene snapshot the media
contract asks for **already existed**, built by M5.
**M11 — v1 Security, Long-Run, and Release Validation — is implemented and
verified, and awaits independent review** (2026-09-07).
`reports/M11-IMPLEMENTATION-REPORT.md` is the evidence package. It closed the
context-window release blocker M8 found, fixed two defects the validation itself
surfaced, and disposed of all four post-M8 playtest findings. **It is not
accepted**, and there is no release tag. **M01-M04 now pass on a complete
100-turn run** (2026-09-13, commit `96c1bf5`). That run found two more product
defects, both fixed: a turn locking out its own memory bank, and the narrator's
protocol stored as story. The report was revised to match (`d198806`). All of it
is committed and signed on `m11-release-validation`; `main` remains M10, the last
*accepted* milestone.
**M11 — v1 Security, Long-Run, and Release Validation — is complete and
accepted** (implemented 2026-09-07; accepted at closeout 2026-09-14).
`reports/M11-IMPLEMENTATION-REPORT.md` is the evidence package. M11:
- closed the context-window release blocker M8 found;
- fixed the defects the validation itself surfaced;
- disposed of all four post-M8 playtest findings;
- passed M01-M04 on a complete 100-turn run (2026-09-13, commit `96c1bf5`).
**After M11 there is no further planned milestone.** What follows is
independent review and the v1 acceptance decision, which is the repository
owner's.
The closeout repeated the browser, offline and identity runs on the exact
release-candidate tree (`3652dc6`), and recorded the acceptance (report §S and
§T). **The v1 release gate passed.**
**Not yet happened**, and each a separate event:
- the owner signing the closeout commit;
- merging to `main`, which still points at M10;
- any `v1.0.0` tag.
**There is no further planned milestone and no M12.** Post-v1 work is backlog
(`BUILD-MILESTONES.md`, *Post-v1 backlog*).
**Package version:** see `VERSION.md`, which records what each revision changed
and why.
@@ -138,8 +143,9 @@ Two standing qualifications:
11. `V1-ACCEPTANCE-TESTS.md`
12. `DECISIONS/` — all of them; they are short.
13. `reports/M11-IMPLEMENTATION-REPORT.md`, for what the release validation
actually found — read as claims to check, not a record, until it is
reviewed. Nothing in `planning/archive/` unless sent there.
actually found. §S is the closeout's verification on the release candidate,
and §T is the acceptance record. Nothing in `planning/archive/` unless sent
there.
## Architectural decisions
@@ -172,9 +178,14 @@ that is the one the next milestone's planning has to consult:
- `reports/M11-IMPLEMENTATION-REPORT.md` — the release validation: the
acceptance matrix run end to end, the 100-turn campaign, the offline and
browser evidence, and every defect the run found. Written by the implementer
for an independent reviewer, so it is a set of claims with the measurements
attached and **not** a record of acceptance.
browser evidence, and every defect the run found. §A-§R are the implementer's
claims with the measurements attached. §S is the closeout's re-verification on
the release candidate, and §T is the acceptance record.
It stays in `reports/` after acceptance. The rotation moves a report to the
archive when the next milestone's report is written, and after M11 there is no
next milestone. Nothing here calls for moving it, so no new convention was
invented to do so.
M9's and M10's reports both moved to `archive/milestone-reports/` when this one
was written. M9's had been kept here past its turn because M9 was unaccepted;
@@ -310,34 +321,43 @@ Milestone M8 COMPLETE / ACCEPTED (2026-09-06)
story operations review + closeout, in sequence
|
v
Milestone M9 COMPLETE — awaiting review (2026-09-07)
Milestone M9 COMPLETE — committed and signed (44edece)
export, backup, recovery, archive/milestone-reports/
migration hardening bundle format v3; SQLite online backup
|
v
Milestone M10 COMMITTED AND SIGNED (1013c94)
Milestone M10 COMPLETE — committed and signed (1013c94)
future media extension hooks archive/milestone-reports/
scene packet derived, not stored; no media
|
v
Milestone M11 IMPLEMENTED AND VERIFIED (2026-09-07)
Milestone M11 COMPLETE / ACCEPTED (2026-09-14)
v1 security, long-run, release reports/M11-IMPLEMENTATION-REPORT.md
validation M01-M04 evidence complete (2026-09-13);
awaiting independent review; no release tag
validation M01-M04 on 96c1bf5; closeout on 3652dc6
|
v
v1 acceptance the repository owner's decision
v1 release gate PASSED (2026-09-14)
signed release commit and v1.0.0 tag:
the repository owner's, not yet done
|
v
Post-v1 backlog only; no milestone planned
```
## Stop Rule
**One milestone at a time. Do not begin a milestone before its brief exists.**
**Every planned milestone is now implemented.** M11 is verified and committed,
its long-run evidence is complete, and the next action is not another milestone: it is an independent review of
`reports/M11-IMPLEMENTATION-REPORT.md` against the acceptance contract, and then
the owner's v1 acceptance decision. **Do not begin post-v1 work before that
decision**, and do not treat M11's own report as the acceptance record.
**Every planned milestone is complete, and M11 is accepted.** The v1 release gate
passed on 2026-09-14 (M11 report §T).
The next actions are the owner's:
1. sign the closeout commit;
2. decide on the `v1.0.0` tag, pointed at that signed commit.
Neither is a milestone. **Do not begin post-v1 work as though it were a v1
milestone.** Anything after v1 starts from the *Post-v1 backlog* in
`BUILD-MILESTONES.md`, with a brief of its own.
All three questions the M8 debt raised against M9 are settled and recorded:
the bundle carries historical context snapshots (`DATA-MODEL.md` §29); story