✅ Task log completed record

Historical record — preserved from the deleted task log

Permanent append-only history, preserved as observed. This is the completed log of the retired root tasklist.md, carried over verbatim: dates, wording, figures and evidence citations are unchanged, and rows stay newest first. Two mechanical repairs were needed and nothing else was touched — one unescaped | inside inline code in the 2026-08-19 ledger close-out row was escaped so the Evidence cell renders, and the four lifted task bodies in the second section were dedented by one level because their parent list no longer exists. Nothing here is current state. Current truth: Program Masterplan. Open work: Open work ledger.

✅ Completed log

Finished work stays here permanently, newest first, with its evidence.

DateItemWhat changedEvidence
2026-08-30Corpus x-ray, canonical SSOT and TTS splitFresh 9,073-row full export; canonical qid ledger; frozen bundle measured 3 live / 5,244 pending; deterministic 18,146-asset prompt/reveal queue; 24-clip voice auditioncorpus x-ray and SSOT; builder verify PASS; manifest SHA-256 stable
2026-08-19Legacy WXR corpus import8,401-item legacy export mined as data: 8,379 extracted, 42 already live, 8,337 imported via 84 QuestionPackImporter packs; published 732 -> 9,069, index 9,069, drift 0; probe 46/0; two Wave 6 probe fixtures made content-independentaudit
2026-08-19D005 per-quiz answer sheet under ForcedGenerationService::pdf_args() applies the per-quiz rule; quiz 413 meta 0 renders 4 pages with no key, meta 1 renders 5 pages with key and explanations; editor checkbox enabled under Forcedplay and print answers; probe 1..46 46/0 incl. new Wave 6 assertion 15
2026-08-19Q11 instant feedback and explanationsSite ceilings opened through the revision handshake; quiz 1284 returns is_correct + explanation on 3/3, quiz 413 returns is_correct on 58/58 with its own per-quiz explanation opt-out honouredreceipts in 03 EVIDENCE/2026-08-19-q11-feedback/
2026-08-19Corpus forensics correctionDedupe ledger was wrong and provenance right: live dump had been built from truncated post titles, already-live 339 to 632, importable 353 to 60question corpus forensics correction section
2026-08-19Corpus import of the survivors53 of 60 imported across 5 packs, 7 multi-answer rows rejected, published 679 to 732 with index 732 and drift 0; question-store backslash defect found and fixedcorpus import; probe 1..46 46/0
2026-08-19Question-corpus forensics auditPublished deliverable (f): 11 banks, 12,271 rows / 1,841 stems, provenance verdicts, canonical schema, and balanced dedupe ledger closing at 60 importable (corrected 2026-08-19 from 353)question-corpus-forensics; build check-only passed; cache-busted leak grep 0
2026-08-193.2.6 Segmented controls fixedThree label-form segmented controls (player.final_cue, presentation.question_numbering, presentation.answer_marker) now share existing button segment rule blocks across four stylesheets; no markup or data-path changedComputed-style parity receipt ~/dev/qwizz/03 EVIDENCE/2026-08-19-segment-parity/computed-style-parity.json (14/14 properties identical selected and unselected), screenshot settings-full.png, probe 1..46 / 46 / 0
2026-08-19Ledger close-out remeasurementsUpdated now.md and changelog with today’s re-measured vault/page/log/check-only state while preserving earlier completed-log rows belowfind q5vault -name "*.md" | wc -l → 61; wc -l logs/debug.log → 38,434; build.sh wrdp --check-only emitted 392 files; probe receipt 1..46 / 46 / 0
2026-08-193.2.6 SegmentedControlMarkupMismatch retractionOriginal “three unstyled segmented controls” settings-page claim kept visible but retracted; all 12 .qwizz-segment controls render styled and expose selected state visuallyComputed style on /wp-admin/admin.php?page=qw-settings: container #fff, 0.625px solid rgb(195,196,199), radius 9px; pressed rgb(246,247,247) / rgb(33,69,230) vs unpressed transparent / rgb(100,105,112); grep found exactly one claim site
2026-08-19UX-ANS-01 measurementForced-vs-per-quiz sheet-off semantics measured; owner decision remains open as blocked(owner decision UX-ANS-01) rather than closedwp eval-file /tmp/qw-forced-matrix.php: REST/player sheet flag honours qw_include_answers='0', but direct PDF PresentationDocument::pdf_args() clamps include_answers=true; owner intake
2026-08-193.2.11 AnswersSplitUITwo operator-visible answers controls; sheet bit independent; Forced policy shown as stateMetabox on draft 1657; quiz 413 meta untouched; probe 1..46 / 46 / 0; play and print answers
2026-08-192.1.1 RegenerateCatalogGerman catalog at source parity, then topped up after 3.2.11POT=PO=1650, missing 0 / obsolete 0; forced-DE Nächste Frage / Lösungsblatt im PDF
2026-08-19B001 browser proof + corpus auditQuiz 413 guest playthrough 58 review items / 0 console errors; full published-corpus validator pass 0 violationsplay and print answers · corpus audit
2026-08-191.2.3 MasterplanDiet + 1.3.3 LinkAndClaimCheckMasterplan slimmed 307 → 84 lines with all narrative relocated verbatim to an archived record; five inbound anchors repointed; the wrdp wiki-lint gate wired into the pre-build pathMasterplan · Narrative record · wc -l 84; wiki-lint.py exit 0; sabotage run exited 1 at the gate; build.sh wrdp --check-only 60 inputs / 390 emitted
2026-08-19Wiki SSOT audit remediationParity claim retracted at 8 sites with the measured method; now.md counts corrected (59 pages, 38,433-line log, fresh drift 153/76); codename glossary and 5-token status vocabulary added to orientation; ledger status cells normalised; dated records archived via archive: true + restructured audits index; scripts/wiki-lint.py added; build.sh python3.11 pin removed; manifest decision recordedwp i18n make-pot + comm → 153/76; probe 1..46, assertions=46 failures=0; wiki-lint.py exit 0; no-shim build.sh wrdp|stmx --check-only pass; cache-busted curls on the published pages
2026-08-183.2.10 SubjectSufficiencyGateGuest builder cards gate on can_satisfy(subject, request) instead of term existence; eleven advertised subjects became the three that can actually be played, and the admin tree kept all of themCards 11 -> 3 (any general-knowledge geography); rendered shortcode contains no animals while admin_tree() does; Wave 6 PHP assertion 14; probe 1..46, assertions=46 failures=0
2026-08-18Wiki authentication removedOwner asked for the login to be dropped; HTTP basic auth taken off the wiki host and anonymous access restored. The exposure closed by 1.4.3 is open againCache-busted anonymous root, now, tasklist and the decision page each 200; setup and operations again publish operator detail — see task 1.4.6
2026-08-183.2.9 PlayPrintDecouplePlayer reveal no longer reads qw_include_answers; print still owns that meta. Quiz 413 finish now returns review length 58Play and print answers; ./scripts/quizwizz-probe.sh --wave all = 1..46, assertions=46 failures=0; debug log unchanged
2026-08-18Play vs print answers decidedOwner: player can reveal instantly, at the end, or never; PDF answer sheet stays independently includable; default UI stays one Answers switch; mechanism must split. Owner wording echoed on the decision pagePlay and print answers; 413 finish measured 13/58 with no review before the repair; 8 of 13 published quizzes failed key_allowed
2026-08-18Tandem showcase contractPublished the browser-only one-stop protocol, failure lessons, evidence model, scale requirements, QuizWizz route, and next-agent handoffTandem showcase guide; live walk measured 86 events and 52 highlighted captures; visible Sitar and Explanation stops verified the loop
2026-08-18Question-pack import blockerincludes/QuestionService.php persist() resolves each subject as slug → numeric term id → exact name and stores the canonical slug; unknown subjects now fail early with a named errorAcceptance matrix: canonical slug, term name, bare slug and numeric id all store games-chess; php -l clean; ./scripts/quizwizz-probe.sh --wave all = 1..46, assertions=46 failures=0; logs/debug.log steady at 38,425 lines
2026-08-18English content baselineFive curated English packs importedPublished questions 269 → 679, index 679, 508 rows lang=en, 456 qw_subject terms, draft quizzes 1556, 1657, 1758, 1859, 1960
2026-08-18English interface baselineqw_exposure_settings.iface_lang set from auto to en; content languages reduced to EnglishVerified in the database and after a hard reload; admin rail renders English
2026-08-18Catalog drift measuredProved the shipped catalog trails the installed sourceShipped POT and PO both 1568 msgids; POT regenerated from source 1645 → 152 missing, 75 obsolete
2026-08-18Forward strategy publishedAdded admin IA strategy and question corpus strategyBoth published and linked from QuizWizz audits; changelog entry dated 2026-08-18
2026-08-18Archive-versus-live provenEstablished that the local release zip is not the deployed buildDeployed qwizz-admin-settings.js 66,288 bytes against 47,344 in the zip; qwizz-admin-dashboard.js, qwizz-admin-starter.js, qwizz-effect-state.js, css/print.css, css/qwizz-admin.css return 404 live
2026-08-18Three claims retractedCorrected earlier findings that were archive-derived or mis-measuredtheme_default = cyber with themes.cyber.def = true; accessible-name audit found 0 of 140 controls unnamed; assets/js/qwizz-admin-settings.js:1024-1033 unhides every section by design
2026-08-18ego lite installedChromium-based agent browser installed clean on the author’s machine, helper registered, runtime verifiedego-browser responds from ~/.local/bin; app at /Applications/ego lite.app

Completed items the log table does not carry

Three [x] tasks from the retired task log recorded detail that the table above never summarised. Preserved verbatim, dedented one level.

  • 1.1.3 StripLocalPaths:

    • Removed author-machine paths from published pages; artifacts held outside the vault are now described rather than pathed.
    • Standing rule: a published page cites bench paths, plugin-relative paths, or URLs — never an author’s local filesystem.
  • 3.2.12 VisualTandemPlaythrough — done 2026-08-19:

    • Clicked through in the owner’s own browser over the relay, not headless. Quiz 413: Not quite + Correct answer: Antoni Gaudí on a deliberate wrong pick, finished 13 / 58 (22%) with 58 review items. Quiz 1284 renders the explanation text under the verdict. Guest builder Geography reported 15 questions match, created quiz 2341, finished 3 / 10 (30%) with 10 review items.
    • Evidence: ~/dev/qwizz/03 EVIDENCE/2026-08-19-tandem-playthrough/ (5 screenshots); ledger entry L009. Operator lesson: Play is disabled while the panel says Checking availability…; clicking early submits with no criteria and the page answers Only 6 questions match.
  • 4.1.2 EgoWikiPass:

    • Drove the wiki through an ego task space and measured the rendered pages: index 0 broken links, now 18 links, tasklist 20 links, orientation 23 links, audits/qwizz/ 49 links, 0 broken and 0 raw link artifacts anywhere after the table-link repair.
    • Page weight measured live: masterplan 6,651 words against now 402 and orientation 2,659 — the evidence behind tasks 1.1 and 1.2.3.
    • Found and fixed a real publishing defect in the process: aliased wikilinks inside Markdown table cells render as raw unresolved-wikilink text in Quartz, even when the pipe is escaped; table cells now use ordinary Markdown links.