🧭 QuizWizz v1.10.0 — Program Masterplan

QuizWizz is a WordPress quiz plugin under audit on an isolated bench at wrdp.loca.zone. This page is where you find out what state it is really in: what is proven, what is still broken, and what nobody may ship yet. It stays short on purpose — every dated audit keeps its own findings, and everything still open is listed once in the open work ledger. If you only want the shape of the recent repair work, read the diagram below and stop there.

Authority

This page is the current QuizWizz SSOT. ACCEPT with waived residuals — all four review P1s resolved; residuals: Gitea #13 (endpoint non-atomic response revision, pre-existing product defect, out of drive scope), external process kill bypasses in-process harness cleanup, benign per-run operator session tokens (never prune blindly), content-identical foreign saves indistinguishable by construction. Plugin scope is accepted at clean HEAD 2da4b577; public launch independently remains NO-GO and releaseEligible: false.

The cluster series and its ordering

Four bench-local repair clusters landed on 2026-08-26 and 2026-08-27 and are applied as one ordered series. There is no Cluster 3 in that series: Cluster 3 was the performance audit, and Cluster 4 is its implementation. Ordering is enforced by digests rather than by documentation — for every file two clusters both touch, the later cluster’s preimage digest equals the earlier cluster’s postimage digest, so applying them out of order fails the preimage check instead of quietly producing a wrong tree.

graph LR
  C1["Cluster 1 · 2026-08-26<br/>play surface repair<br/>Wave 7 · 5 files · gate 1..51"]
  C2["Cluster 2 · 2026-08-26<br/>playable quiz repair<br/>Wave 8 · 3 files · gate 1..55"]
  C4["Cluster 4 · 2026-08-27<br/>performance remediation<br/>Wave 9 · gate 1..72"]
  C5["Cluster 5 · 2026-08-27<br/>not-found and token scope<br/>Wave 10 · gate 1..76 at the time"]
  C1 -->|QuizEmbed.php| C2
  C1 -->|QuizQueryViewer.php| C2
  C2 -->|DashboardPresenter.php| C4
  C2 -->|QuizEmbed.php| C4
  C1 -->|qwizz-tokens.css| C5
  C2 -->|QuizQueryViewer.php| C5

Apply order is cluster 1, then 2, then 4, then 5 (audits/qwizz/2026-08-27-apply-clusters.sh:56); node figures are dated. Current plugin authority is clean HEAD 2da4b577; shell 94/94, bounded browser 60/60 as 46+8+12, mutations 2/10/11 and the 95-row recovery are accepted. All four review P1s are resolved. Final harness bytes refuse stale predecessors and foreign-head restoration (scripts/quizwizz-browser-smoke.js:887-907,991-1015,1094-1140,1180-1220); endpoint atomicity remains pre-existing out-of-scope issue #13. Evidence: 2026-09-01 polish drive.

Current state

  • subject: QuizWizz v1.10.0, schema 1.6.8, on the isolated WRDP bench
  • current execution authority: this page, with the current evidence contract in probe harness, launch readiness, owner decision intake, and current source preservation
  • launch gate: NO-GO, so no local bench proof here implies production release eligibility
  • release boundary: WRDP is the QuizWizz SSOT archive; git history, lockfiles, the tools/ pipeline, CI, provenance approvals, and signing inputs are absent here — see the open work ledger section 3
  • open work: every baseline item, owner decision, absent release input and UI finding is classified once in the open work ledger. PW-02 is closed; PW-01 is owner-decidable until the policy choice is recorded
  • historical evidence set: 2026-07-27 Full Plugin Audit, 2026-07-29 Post-Remediation Visual Audit, probe harness, architecture map, design remediation record
  • newest operator feedback: 2026-08-25 TNDM UI review — fixes — direct bench fixes applied (releaseEligible: false); canonical delivery pending
  • 2026-08-25 performance repair: settings memoization — bench performance fix — per-request settings re-normalization removed (init 1919.9ms → 51.0ms); bench-local, releaseEligible: false, canonical memoization pending
  • newest performance remediation: 2026-08-27 performance remediation — Cluster 4 — the Cluster 3 audit implemented across 14 bench-local files: settings pools 48q → 2q, play start 33q → 5q, dashboard TTL lapse 134.1ms → 2.23ms behind a bounded stale mirror, −5,160 stylesheet bytes on every player surface, and the two proven-missing indexes live at schema 1.6.8. Gate at the time of this cluster 1..72 failures=0, superseded the same day by Cluster 5 (audits/qwizz/2026-08-27-performance-remediation.md:147-149). Wave 9 mutation-proved across four subsystems, three output digests byte-identical. Two millisecond targets were missed for a measured reason, and this cluster raised one new defect — the play-route unavailable card had no token-scope ancestor and never painted its border — closed the same day by Cluster 5 in the next row, which declares .qwizz-library__empty a token root at assets/css/qwizz-tokens.css:153, :238 and :376. Bench-local, releaseEligible: false, canonical application pending
  • cluster defect closure: 2026-08-27 not-found contract and empty-card token scope — Cluster 5 — the oldest open Cluster 1 finding and the newest Cluster 4 finding both closed: every not-found condition serves a real 404 (−65,630 bytes, and two conditions stopped answering HTTP 200), and the shared unavailable card paints on the standalone play route. Gate at the time of this cluster 1..76 failures=0, Wave 10 mutation-proved, superseded by the standing 1..93 failures=0 on 2026-08-31. The 37ms dashboard aggregate is a recorded closed decision, not an open item
  • canonical delivery: 2026-08-27 canonical handoff — Clusters 1, 2, 4 and 5 are now an ordered, digest-enforced, transactionally applied series (18 files) with an executed end-to-end proof against the live bench. Bench-local remains releaseEligible: false; the locked BUILDING.md pipeline is still the release owner’s step
  • 2026-08-30 defect closure: 2026-08-30 choice-card prepend fix — issue #6 — open-work row 3.2.7 closed on its own measured evidence. .qwizz-choice-cards had no base CSS rule at mirror baseline 7ec58f4, only two co-tenant slots at assets/css/qwizz-admin-settings-layout.css:219,233, so both the Prefix and Print columns fieldsets (includes/Admin/views/settings-page.php:462, :516) painted native radios. One CSS-only commit cf07530 (1 file changed, 80 insertions(+)) defines the cards and their selected, hover, focus and forced-colors states at :243-305 and :971-985. Proved by a matched mutation pair on the pristine issue state, wave 6 1..14 failures=0, the then-standing 1..76 failures=0, and a 30/30 browser smoke with zero console and zero page errors; a first forced-colors attempt was rejected in review for a white-on-white focus outline. First live pass of .omp/skills/qwizz-fix-loop/SKILL.md. Bench-local, releaseEligible: false; the release owner still carries the source change through the locked pipeline
  • 2026-09-01 mega-polish execution: S0a–S10 evidence receiptACCEPT with waived residuals; all four review P1s resolved. Plugin fixes accepted at clean HEAD 2da4b577; shell 94/94; bounded browser 60/60; mutations 2/10/11; recovered 95-row baseline. Residuals: pre-existing endpoint issue #13, external-kill cleanup, benign operator tokens and content-identical saves. S5 stays fixed-step; releaseEligible: false.
  • completion-drive execution: 2026-08-31 corpus repair — ordered, mutation-proved slices closed the shell/browser-proved rows and installed source repairs for TOUR-19 and TOUR-20, whose rendered acceptance remains open for missing fixtures, plus the 3.2.1 label rows. Final shell gate: 1..93, assertions=93 failures=0 across waves 1-11; wave 6 stays 1..14 failures=0; wave 9 stays 1..17 failures=0 with its canonical subject-tree digest unchanged. Authenticated browser smoke: 37/37, overallPass=true, settings and editor restoration green, zero console and zero page errors. FL-001 was refuted/not reproduced and received no code change. The first block-editor implementation 8494823 was rejected and superseded by accepted 33989f9; catalogs closed the sequence at f79feb6. Mirror main is pushed through f79feb6. Bench-local, releaseEligible: false; none of this is a canonical release
  • HOLD-remediation execution: 2026-08-31 HOLD remediation — F1–F5 were mutation-proved red then restored green across commits 464fb78, c8d7c10, dcdb1a2, d66f1a9 and catalog close 87a0e61; final mirror HEAD for that drive was 87a0e612c358c36e1359e7324ee4f77f09cc0d39. Shell was 93/93, browser was 45/45 with both restoration paths true and zero console/page errors, catalog truth was 1,651 active entries / 1,649 distinct bare msgid strings, and the then-accepted residue reading was 0 jobs, 0 cron hooks and a 0-byte debug-log delta. Issues #4 and #9 closed with evidence; lifecycle issue #10 stays open for reload rehydration and ceiling resume/messaging. The preceding completion-drive 37/37 figure is explicitly historical to that drive. The dated receipt records the later Phase 7 fresh adversarial ACCEPT; all its totals and residue claims are now historical beneath the 2026-09-01 authority above. Bench-only, releaseEligible: false.
  • newest owner-decision intake: 2026-08-31 corpus triage — the 25 measured verdicts behind that repair plus one batched owner-decision sheet: TOUR-03, TOUR-09, TOUR-24a and the canonical product name in Sheet A, PW-01 and FL-003 in Sheet B, launch and operations in Sheet C, the tandem design branches in Sheet D, the interface-language and archive decisions in Sheet E, browser tooling in Sheet F, and the 2026-08-31 designer pass in Sheet G. No row on that sheet is implemented without a recorded owner answer
  • completion-drive traceability: Gitea #1, #3, #4, #7 and #8 are closed; #2 stays open as deferred — corpus replacement inbound; #5 stays open because provider intent needs an owner answer and this bench has no OpenRouter key. Issue #6 was already closed by the 2026-08-30 choice-card repair. Both vault gates passed with 79 files parsed, 840 emitted, exit 0 — W5 and end-of-W6. The first approved production build swapped current to dist-1788151241.661169809-3726447, mode -rw-r--r--, with all 72 audits/qwizz/ routes at HTTP 200 and every named needle present, yet it failed the live no-leak assertion because this page’s own W9-07 row served one genuine unresolved table-cell wikilink; current was rolled back to the pre-drive dist-1788129513.061920758-1839651 and the row was repaired in source as a Markdown link. That attempt stays on the record as history. The owner then approved exactly one second production build, which has run and succeeded: after a clean pre-build --check-only, 79 Markdown inputs built to 840 emitted files and current now names dist-1788153309.461633591-3913543 at mode -rw-r--r--, with 72 of 72 enumerated audits/qwizz/ routes at HTTP 200, all ten named needle routes passing, the five table-cell pages at HTTP 200 with a literal double-bracket marker count of 0, zero unresolved wikilink syntax outside code, pre, script and style, and logs/debug.log unchanged at 7042962 bytes. No third build ran, so this bullet is itself a source-only receipt written after the swap and not republished, while every figure in it was observed live on the final current dist. Full receipts on the dated repair record
  • 2026-09-14 UI/UX repair round: round F receipt — six reviewer rows installed on the bench plus one measured regression found and repaired inside the same round. In the open work ledger, UIUX-REV-01, -03, -04, -05, -07 and -08 are now implementation shipped; UIUX-REV-02 and UIUX-REV-06 closed on their own measurement because both preconditions were already gone; UIUX-METRIC-01 and UIUX-METRIC-02 closed by re-scoping the two stale pixel targets to a plugin-owned counter set. Gates: shell 1..98 failures=0 on an idle bench, eight bounded browser chunks at 47/47, 9/9, 13/13, 7/7, 5/5, 5/5, 5/5 and 7/7, plus a post-chip re-gate at 13/13 and 7/7. Identical-driver owned metrics improved on eleven rows, with one real regression (L1-desktop small targets 8 → 17, repaired and re-measured at 8) and two disclosed measurement artifacts. The re-run vision critique moved 172 → 170 findings with 0 new P1 and 6 new P2, recorded as UIUX-VIS-01 through UIUX-VIS-06 plus a UIUX-P1 group for the four retained design-accepted P1 symptoms; those are model judgements, not measurements. Mirror HEAD unchanged at 715474f, tracked-modified rows 41 → 49; releaseEligible: false, no human acceptance
  • 2026-09-14 Settings premium restyle (phase G): phase G receipt — the Settings panel restyled to one Apple inset-grouped visual language, shipped as vision round 6 plus a CSS-only focus amendment after the loop hit its six-round cap without converging (verdict.json records qualifiedRounds: []; rounds 5 and 6 tie at minimum axis 4). Six owned files: five sheets plus includes/Admin/views/settings-page.php, which carries class attributes only — stripping every class="…" attribute from the pre-round copy and the live file leaves zero differing lines — and assets/js/qwizz-admin-settings.js is byte-identical to its pre-round copy, so both JavaScript residuals are recorded rather than half-made. Gates on an idle bench as the disposable admin qwvisual-20260914 (1171): shell --wave all 1..98/0 and four bounded browser chunks at 47/47, 7/7, 7/7 and 10/10, zero console and page errors, restoration complete. The keyboard walk repaired 3 missing indicators and 8 raw clipped rings to 0 on desktop Settings and 3 missing to 0 on mobile, leaving two mobile strip clips that need JavaScript; its overall verdict stays FAIL and the interim row-decrease search assertion is recorded as mis-specified. Zero Settings saves, option SHA 89877cf6… and 94 rows / 10 owner-1 throughout, and the disposable admin was deleted afterwards. Eight new ledger ids UIUX-SET-01 through UIUX-SET-08; tracked-modified rows 49 → 51 at unchanged mirror HEAD 715474f. No human acceptance, no convergence, releaseEligible: false

Full narrative record (dated execution sections, delivery lists, runtime/release-input tables, historical ledger rows): full narrative record

Ordered waves

WaveScopeOwnerDone when
W0 — truth and fixturesReconcile dated visual-ledger rows with their later repair measurements; keep A48, A59, A64, A75, and A78 as fixture/contract gaps rather than defects. Establish fixtures and capture recipes before another sweep.bench maintainerThe authority distinguishes historical lead, current defect, evidence gap, and fixture gap; every planned route has a reproducible state and cache-disabled capture recipe.
W1 — public shellResolve UX-01, FE-5, and the UI portion of PL-17 through approved theme/content configuration; retain QuizWizz token inheritance rather than hard-coding a theme in the plugin.site/theme ownerPartially complete: landing, static front page, and verified footer links now work at desktop and 390 px. Operator-policy destinations remain deliberately open under PL-17/PL-18. UX-01, PL-17 and PL-18 are terminal-blocked in the completion ledger behind LEGAL-01, LEGAL-02 and LEGAL-03, which need real legal data the bench may not synthesize.
W2 — released block authoringA71 and A77 now use a pre-bundle companion editor filter for chooser placeholder/help; A73 uses the editor stylesheet/token route; A70 is measured and closed as WordPress-core three-column inserter geometry. A72 is implemented in source under the owner-approved full-experience Craft contract and browser-verified for the Builder inspector profile/Advanced controls, Study default option list, canvas summary, token-derived Craft preview styling, live Builder category-first behavior, Player result behavior, and server-clamped action_new=false. A reproducible block-bundle rebuild additionally needs src/ and the Node lock/toolchain, all absent from this SSOT tree. build/ stays unedited.bench maintainerBrowser-verified for A72 in W8 SSOT capability pass; reproducible rebuild inputs remain missing. Downgraded to open on 2026-08-31: the dated browser proof stands as a record, but no command re-proves it, because neither the probe harness nor the browser smoke has a block-editor step.
W3 — localization proofThe 2026-07-31 1,563 result was catalog-versus-catalog and was retracted on 2026-08-19. Installed-source parity was restored that day and has moved with source. Catalog commit d61d98c records 1,697 translated entries, zero fuzzy and zero untranslated after 51 additions and five stale removals; 11 named-handle plus three hashed JSON catalogs accompany the MO. Current mirror HEAD is 2da4b577. These are catalog-integrity figures, not proof that every string rendered. French and Spanish interface exposure remains dormant and owner-decidable.bench maintainer + product ownerGerman parity verified; French/Spanish blocked(owner decision)
W4 — cache proofRe-derived 2026-08-31: 52 source enqueue or register calls across 11 files carry mtime-derived versions, 50 passing Plugin::asset_version() directly and 2 inheriting it from their own registration (includes/Frontend/QuizEmbed.php:104 from :102, includes/Frontend/UserSurfaces.php:224 from :223). The 34 figure was the 2026-07-31 count. No CDN/response-cache component exists; static responses provide Last-Modified, ETag, Vary, and Accept-Ranges without Cache-Control or Expires. The prior warm-cache transfer captures remain dated evidence, not a repeatable gate.bench maintainerSource and response-tier proof is verified by the 2026-08-31 re-derivation. Warm-cache transfer proof is open: the W0 fixture-discipline row must gain a repeatable mtime-only reinstall path that checks both ?ver= and transferred bytes before this whole wave closes.
W5 — integration evidenceCapture settled Site Health and Privacy Guide states that visibly include QuizWizz-specific checks/guidance, using the expanded core accordions.bench maintainerClosed 2026-07-31: Privacy Guide’s expanded QuizWizz panel displayed its suggested policy guidance; Site Health displayed its two passing checks and expanded Info section. The generic log-location recommendation remains WordPress core copy, not a failed plugin integration. Corrected 2026-08-31: installed source registers three direct QuizWizz tests, so two is the 2026-07-31 count (includes/Admin/SiteHealth.php:71-82).
W6 — standing discoveryRun PL-05 as a dated browser-led regression sweep after each substantive change: anonymous/authenticated public journeys, native admin, Gutenberg authoring, desktop/mobile, keyboard/focus, reduced motion, forced language, empty/loading/error states.bench maintainerEach finding receives a stable ID, source/config/compiled/core owner, measured evidence, acceptance test, and disposition in this authority; no repair is silently merged. Latest sweep: 2026-08-31 corpus triage, 25 measured verdicts; the previous sweep is 2026-08-15 visual and IA remediation. Its corpus-content findings TOUR-21 and TOUR-22 are deferred pending the inbound corpus replacement.

Non-negotiable verification and handoff contract

  1. Use 1600×1000 desktop and 390×844 mobile with device scale factor 2; collect geometry and accessibility-tree evidence before visual claims. Cache must be enabled for a W4 warm-cache experiment and may be disabled for unrelated CSS/UI inspection.
  2. Re-test hash-driven Settings routes with a reload or cross-page navigation; same-document #hash navigation alone is not evidence.
  3. For a source-editable repair, stage/install through the WRDP ownership protocol, lint changed PHP in-container, inspect the configured WordPress debug log when enabled, run the narrow applicable probe wave, then run ./scripts/quizwizz-probe.sh --wave all before handoff.
  4. For a block-editor repair, build/ stays unedited: build/quiz/index.js is readable unminified source, and the sanctioned route to change editor behaviour is a companion editor script filtered onto the registered blocks plus an editor stylesheet. The bench never edits build/, vendor, release ZIPs, or provenance output.
  5. Every completed runtime repair remains bench-verified with release-input remainder until the named release inputs absent from this SSOT tree are restored and exercised. WRDP evidence cannot invent authentic build, provenance, history, approval, or release-policy records. (vocabulary retired 2026-08-19; see Orientation & glossary)

Retained defects and evidence gaps

TypeCurrent truthWhy it stays open
PW-01 subscriber publication lifecycleOwner-blocked. The authenticated user surface exposes no unpublish/re-publish control for subscriber-owned quizzes, and direct editing is denied; the next action is owner policy choice, not silent implementation.2026-08-17-owner-decision-intake requires subscriber_self_service or admin_only plus rationale before this branch can move; the question is restated with its options in Sheet B of 2026-08-31 corpus triage.
PW-02 Builder semantic headingClosed. The public Builder now renders h1#qwizz-builder-title; two consecutive 2026-08-17 browser-loader passes returned overallPass=true, 30/30, zero console errors, and zero page errors.2026-08-17-launch-readiness and evidence/2026-08-17-option-f/verify.json carry the current rendered proof; the original no-H1 finding remains historical in 2026-08-16-pl05-sweep.
Gutenberg block defectsA70 is measured: all four 105.984×90 px one-line tiles are equal, while WordPress core’s three-column grid leaves Subjects alone on row two. A71/A73/A77 are repaired and browser-verified through the companion editor script and editor stylesheet with build/ unedited. A72 is implemented under the owner-approved full-experience contract and browser-verified: Gutenberg selected Builder; the Block sidebar exposed Profiles + Advanced with Study, Quick play, Game night, Assessment, and Custom; Advanced exposed Content, Generation, Presentation, Player, and Completion groups with 25 controls; the canvas summary showed Study/Any/Mixed/Site default; Craft token styling and wand geometry were measured; live Builder and Player behavior were observed; server policy clamped action_new=false; and disposable evidence artifacts were removed.Closed in W8 evidence; reproducible block-bundle rebuild still needs the missing src/ and Node lock/toolchain inputs. Downgraded to open on 2026-08-31 for the same reason as W2: no standing command re-proves A70, A71, A72, A73 or A77.
Site Health / Privacy screenshotsThe initial 2026-07-31 captures stopped at generic core states. A same-day authenticated expanded-state capture then displayed Privacy Guide’s QuizWizz suggested-policy panel; Site Health’s two passing QuizWizz checks (“database tables are current” and “PDF generation is available”); and its Info section (version, schema 1.6.5, readiness values, and healthy background jobs). The generic Site Health log-location recommendation is WordPress core copy even though the active log is outside the document root. Corrected 2026-08-31: installed source registers three direct QuizWizz tests, not two — quizwizz_database, quizwizz_pdf and quizwizz_guest_ai (includes/Admin/SiteHealth.php:71-82).Closed as an integration-evidence gap. Preserve the exact expanded routes/states in the capture protocol; an absence after those states would be a distinct runtime/source investigation.
Warm-cache asset evidenceRe-derived 2026-08-31: 52 enqueue or register calls across 11 source files, 50 direct Plugin::asset_version() callsites and 2 inherited, resolving to 40 unique asset paths (22 CSS, 18 JS); the 48, 39 and 21 figures were the 2026-07-31 state. The block editor and style assets declared in build/quiz/block.json are versioned by WordPress block registration from that file’s own version: 1.10.0 instead of by Plugin::asset_version(). Historical Dashboard, question-editor, Builder CSS and Player JS captures showed ?ver= changing after byte-identical mtime-only reinstalls.Source coverage and the no-edge response tier are verified. Warm-cache transfer proof is open because no standing command reproduces the reinstall and transfer measurement; its acceptance path remains under W0 fixture discipline.
German rendered-string freshnessHistorical rendered proof remains dated to its own forced-DE matrix. Current catalog truth at d61d98c is 1,697 translated, zero fuzzy and zero untranslated after 51 additions and five stale removals. The 1,563, 1,644, 1,650/1,648, 1,655 and 1,651/1,649 totals remain dated stages. The live German spot-check included “Absolut alles — du wurdest gewarnt”; that named observation does not prove every catalog entry rendered.Closed for German source parity and the named live spot-check by the 2026-09-01 polish-drive receipt. Whether fr/es ship remains an open owner decision.
Historical visual claimsIt remains false that every product/operations question is closed.A70/A71/A72/A73/A77 were closed on dated browser evidence and were downgraded to open on 2026-08-31 for want of a standing re-proof. W3 catalog parity and W4 source/response subclaims stay verified on named methods; W4 warm-cache transfer stays open. The explicit Tier 2–4 decision, artifact and infrastructure boundaries remain.
2026-08-14 audit coverageAt the 2026-08-14 audit, no mounted public Library instance existed; user-facing unpublish/delete, mutation-error and true zero-content states were source-read only; portability export/import jobs were not enqueued; AI-enabled panels were not exercised because AI was off; and quiz password protection was not applied. Later dated records close the durable Library fixture, portability, password/access, and PW-02 coverage named above; PW-01 remains owner-blocked.This row preserves the historical coverage limitation without relabeling it as current truth; see the dated record, probes, and 2026-08-17-launch-readiness.

Closed-row reverification — 2026-08-31

Every closed row above was re-checked on 2026-08-31 against installed source, the probe harness and the browser smoke. A row keeps a closed status only where a named command with a named expected output re-proves it on demand; the rest were downgraded, and the dated evidence behind them stays cited where it was made. Statuses use the program’s five-token vocabulary, so an owner branch reads blocked(owner decision); deferred has no token of its own, and a finding held back for the inbound corpus replacement is named as deferred in the re-proof column instead.

Two standing commands carry most of the table. Run both from /home/loca/dev/wrdp.

  • shell gate./scripts/quizwizz-probe.sh --wave all → 94/94: TAP 1..94 and # assertions=94 failures=0 across waves 1–11. The plan derives from the live assertion count at scripts/quizwizz-probe.sh:3238-3257; Wave 7’s six stored-autostart/passive/play-route assertions are at :2303-2322, and Wave 11 remains 17/17. Current machine result: /tmp/s10-post-review-wave-all.tap. Operator-approved recovery established the current 95-row Settings-backup baseline at ordered-JSON SHA 86100bbc… and identity SHA 270478b9… (/tmp/s10-post-recovery-baseline.json); the earlier 94-row artifacts are dated, superseded evidence.
  • browser smoke — run three selectors serially, never all: legacy → 46/46; player selectors → 8/8; admin/Trivia selectors → 12/12. Require 60/60 unique, zero failed assertions, zero console/page errors and restoration complete. Final harness bytes close the review P1 with exact accepted-head guards (scripts/quizwizz-browser-smoke.js:887-907,991-1015,1094-1140,1180-1220). External kill can still bypass cleanup; endpoint response atomicity remains open as pre-existing issue #13. Evidence and artifact names: probe harness and final receipt.
RowStatusRe-proof, or the path that is missing
Current state — schema 1.6.8verified — shell gate--wave 9 assertion schema carries the two new keys reads the live option and expects 1.6.8 (scripts/quizwizz-probe.sh:2916-2917).
W0 — truth and fixturesopen — never claimed closedFixtures and cache-disabled capture recipes are still owed, and A48, A59, A64, A75 and A78 stay fixture or contract gaps rather than defects.
W1 — public shellopen — partly re-provenThe durable smoke partly re-proves the Builder route only: at /?page_id=57 it checks exactly one page H1, a visible #qwizz-builder-title H1, resolved aria-labelledby, and no horizontal overflow at 1280×900 DPR1 and 390×900 DPR1. It does not re-prove the root/static-front route, account and footer destinations, or Privacy/Terms/Operator-Contact routes required by UX-01. UX-01, PL-17 and PL-18 are terminal-blocked behind LEGAL-01/02/03.
W2 — released block authoringopen — downgraded, no reproduction pathThe 2026-07-31 browser proof is a dated record, not a command. Neither harness opens Gutenberg: the current smoke’s legacy step list stops at the quiz editor and contrast check (scripts/quizwizz-browser-smoke.js:1888-1896). A reproduction path needs a smoke step asserting the Craft inspector groups, the canvas summary and the server clamp on action_new.
W3 — localization proofverified — catalog-derived method, last observed 2026-09-01Regenerate POT from installed source with the bench’s containerized WP-CLI i18n make-pot, reconcile shipped PO records, and require zero fuzzy and untranslated entries. Commit d61d98c records 1,697 translated entries after 51 additions and five stale removals, plus 11 named and three hashed JSON catalogs. This is catalog truth, not blanket rendered-UI truth; the exact refresh and one named German live spot-check are on the 2026-09-01 polish drive.
W4 — cache proof, source and response tierverified — re-derived 2026-08-31Source coverage: Appendix B finding_6_asset_version_coverage, re-run 2026-08-31 → total=52 asset_version=50 inherited=2 across 11 files; the appendix now carries the same current expectation and source anchors. Response tier: curl -sS -o /dev/null -D - https://wrdp.loca.zone/wp-content/plugins/quizwizz/assets/css/qwizz-player.css200 with Last-Modified, ETag, Vary and Accept-Ranges and no Cache-Control or Expires.
W4 — cache proof, warm-cache transferopen — downgraded, no reproduction pathThe ?ver= advance after a byte-identical mtime-only reinstall was a one-off browser experiment; nothing automates the reinstall, so nothing re-proves it. A reproduction path needs a probe step that touches an asset mtime, refetches the enqueued URL and compares ?ver= and transferred bytes.
W5 — integration evidenceverified — browser recipe, rendered state last observed 2026-08-20/wp-admin/site-health.php with the QuizWizz group expanded, /wp-admin/site-health.php?tab=debug, /wp-admin/options-privacy.php?tab=policyguide. Expected labels come from installed source, re-read 2026-08-31: QuizWizz database tables are current (includes/Admin/SiteHealth.php:90), QuizWizz PDF generation is available (:103), QuizWizz guest assistant is safely disabled (:122, the state while OpenRouter is unconfigured), the QuizWizz debug section (:44-45), and the QuizWizz suggested privacy text (includes/Admin/Privacy.php:53).
W6 — standing discoveryopen — recurring by designNever closed. Latest sweep is the 2026-08-31 corpus triage with 25 measured verdicts; its corpus-content findings TOUR-21 and TOUR-22 are deferred, because measuring a corpus about to be replaced produces figures that are stale on arrival.
PW-01 subscriber publication lifecycleblocked(owner decision) — Sheet B of the 2026-08-31 triageNot an evidence gap. The intake still needs subscriber_self_service or admin_only plus rationale; no measurement can supply it.
PW-02 Builder semantic headingverified — browser smokepublic Builder desktop: exactly one page H1 and public Builder desktop: #qwizz-builder-title is the visible H1, plus the mobile pair (scripts/quizwizz-browser-smoke.js:539-542). The row’s 30/30 is the 2026-08-17 figure; the standing post-review browser authority is bounded 60/60 as 46+8+12, recorded in the amended 2026-09-01 polish drive.
Gutenberg block defectsopen — downgraded, no reproduction pathThe same missing path as W2. A70’s measured core-inserter geometry needs no re-proof; A71, A72, A73 and A77 have none.
Site Health / Privacy screenshotsverified — browser recipe, rendered state last observed 2026-08-20The W5 recipe. Corrected 2026-08-31: three direct QuizWizz tests are registered, not two (includes/Admin/SiteHealth.php:71-82).
Warm-cache asset evidence, source coverageverified — re-derived 2026-08-31The W4 source recipe, with the row’s figures corrected to 52 calls, 50 direct, 2 inherited across 11 files, and 40 unique asset paths (22 CSS, 18 JS).
Warm-cache asset evidence, transfer proofopen — downgraded, no reproduction pathThe same missing path as the W4 warm-cache row.
German rendered-string freshnessverified — named method, last observed 2026-08-27The W3 method. The 1,563 figure in that row is the retracted 2026-07-31 catalog-versus-catalog measurement and stays marked as such.
Historical visual claimsopen — the statement stays trueNothing to re-prove: the row asserts that not every product or operations question is closed. Its list of closures is corrected in place, because A70 through A77 lost their closed status here.
2026-08-14 audit coveragedone — historical record, four later closures re-provenThe coverage limitation is preserved as history. Its four later closures are re-proven by the shell gate: the Library fixture by --wave 6 assertions library fixture page, library alpha columns and library alpha marker (scripts/quizwizz-probe.sh:2105-2109); portability and user surfaces by --wave 5 assertions Wave 5 portability contract and Wave 5 user-surface contract (:2160-2170); password access by the Wave 6 packet’s first two checks (direct and embedded) in the final 18-check diagnostic; the pseudonymous AI disclosure by Wave 5’s privacy policy exposes pseudonymous AI disclosure assertion.
FE-5, BE-1, BE-2, BE-4, BE-5, BE-6, BE-8, BE-9, W9-07blocked(release inputs) — reverified 2026-08-31Every named release input is still absent; see the receipt under the resolution ledger.

Two closed claims lost their status on 2026-08-31, each recorded on two rows: released block authoring, on W2 and the Gutenberg block-defects row, and the warm-cache transfer proof, on W4 and the warm-cache asset-evidence row. Nothing about the underlying fixes changed — what changed is that this page no longer presents a one-off capture as repeatable proof. Their missing Gutenberg selected-block and mtime-only reinstall reproductions remain acceptance paths under the existing W0 fixture-discipline row in the open-work ledger; they are not new ledger ids. Standing figures were corrected in place for Site Health, asset-version coverage and the final catalog refresh.

Any rewrite of the ordered-wave table carries these statuses forward. A wave row without a status and a named re-proof is not closed.

Resolution ledger

Status vocabulary used by this program: done · verified · open · blocked(<what>) · retracted (the eight-token set used before 2026-08-19 is historical; see Orientation & glossary).

IDStatusCurrent note
FE-5blocked(release inputs)Studio shell/theme integration is gated on the release tooling absent from this archive (tools/, lockfiles), not on an external repository.
BE-1blocked(release inputs)mPDF/vendor pruning requires the absent Composer lock and scoping policy (composer.lock, tools/scope-dependencies.php, tools/scoping-policy.json).
BE-2blocked(release inputs)PHP floor and compatibility claims require CI configuration that is absent from this tree (.github/).
BE-4blocked(release inputs)GenerateController decomposition is source work gated on the absent quality gate and tests (tools/quality-gate.sh, tests/).
BE-5blocked(release inputs)PdfGenerator injection remains tied to BE-4 and the same absent gate.
BE-6blocked(release inputs)OpenRouter settle/release deduplication remains refactor work gated on the absent tests/ and quality gate.
BE-8blocked(release inputs)Tested up to must come from compat CI (.github/ absent) and release metadata.
BE-9blocked(release inputs)random_compat removal requires the absent composer.lock and dependency policy (tools/dependency-policy.json).
W9-07blocked(release inputs)The sole retained compiled-block wand fallback requires the absent uncompiled src/ and build inputs recorded as T3-23 in the open work ledger; build/ remains untouched.

Reverified 2026-08-31: no release input has appeared. From /home/loca/dev/wrdp, for p in tools composer.lock .github tests src package-lock.json; do [ -e wp/wp-content/plugins/quizwizz/$p ] && echo "PRESENT $p" || echo "absent $p"; done printed absent for all six, while build/ and vendor/ are present as always. All nine rows stay blocked(release inputs).

Historical done / verified / retracted ledger rows: full narrative record


  • release boundary of record: releaseEligible: false
  • supersedes as status authority: earlier remediation plans, status callouts, and landing-page summaries