QuizWizz UI/UX review — TNDM tandem session harvest
Historical record — 2026-08-25
Preserved as observed, and not superseded by the newer pixel corpus: this is the resolution record for the 36 harvested notes, and it holds the verbatim operator wording that exists nowhere else in the vault. Four of its branches are still open owner decisions — item 02 taxonomy shape, item 15 logged-out navigation, item 09 reachability and the mobile statistics rail height — each listed under
Needs user decisionbelow. Current truth: Program Masterplan.
- source session:
46937fb4893da860 - source deck:
qwizz-2026-08-20(🎞️ QuizWizz UI/UX Feedback Tour — Complete Shot Gallery, 324 frames) - event seq range: 37–134 (kinds: note, scribble; reviewed 2026-08-24)
- bus tail at harvest close (2026-08-25): seq 135–146 = 11 nav + 1 route_done(tour-yamlsum); no reviewable events beyond 134
- items: 36 (35 notes + 1 scribble-only)
Each item is verbatim reviewer input joined to its screenshot. Triage into FIX-NOW or DECIDE;
record outcomes in ## Resolution summary and ## Needs user decision at the bottom.
g01 — landing/front page g01--landingfront-page
01. g01—landingfront-page/1 — g01 — landing/front page
- status: fixed — front page (id 2) now embeds
[quizwizz_craft]and[quizwizz_my_library]as content elements, so the category grid is the first thing a visitor sees (the intermediate CTA click is gone); the admin Shortcodes grid now advertises all six registered tags. No new shortcode was registered —[quizwizz_my_library]and[quizwizz_my_stats]already existed — files: includes/Admin/views/dashboard-page.php, plus WordPress content of front page id 2 (not a plugin file) - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g01-d.png (alt: Guest homepage fold: nav, hero heading, tagline, CTA buttons.)
- event seq: 37
- note (verbatim, multiline preserved):
Create Quiz and My Quizzes should both be a [shortcode] content element. Create quiz is just the next category step saving one click.
g02 — Builder (craft) g02--builder-craft
02. g02—builder-craft/1 — g02 — Builder (craft)
- status: verified-correct — no change needed.
Surprise meposts theanysentinel, which removes the subject filter entirely (includes/GenerationCriteria.php:84-86), and the sampler draws a uniform random window over the whole enabled pool (includes/QuestionIndex.php:604-641). Replaying the sampler’s exact ORDER BY/LIMIT/OFFSET on the live pool (4711 rows, 477 subject slugs) returned 6–10 distinct subjects per 10-question draw. See Needs user decision for the taxonomy-shape caveat - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g02-d.png (alt: Builder page desktop fold: nav, ‘Create a quiz’ hero, 10 category cards)
- event seq: 39
- note (verbatim, multiline preserved):
surprise me should be random, and then use random category questions (from several different cats if not allready)
03. g02—builder-craft/7 — g02 — Builder (craft)
- status: fixed — the detached white disc on selected category cards was
.qwizz-category__checkpaintingbackground: var(--qw-v)(collapses tocurrentColorunder Twenty Twenty-Five) behind a white glyph. It now uses the action tokens: measured live atbackground rgb(17,17,17)with argb(255,255,255)glyph — files: assets/css/qwizz-builder.css:781-790 (applied by the earlier 2026-08-25 02:15 pass; verified intact and live in this run) - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g02-d-p03-categories-multi.png (alt: Category grid, two categories (Science + History) selected.)
- scribble: /home/loca/tndm/sessions/46937fb4893da860/scribbles/g02—builder-craft-7—40.png
- event seq: 41
- note (verbatim, multiline preserved):
top right strange white circle?
04. g02—builder-craft/12 — g02 — Builder (craft)
- status: fixed — the two Customize-panel
<select>s (auto-advance delay, final countdown cue) are now Difficulty-style.qwizz-challenge-gridtile rows with the same value/label pairs; the submittedauto_advance_ms/final_cuehidden inputs are unchanged and the three noscript selects are untouched. Live check: zero<select>elements remain in the builder JS UI — files: includes/Frontend/views/builder-view.php, assets/js/qwizz-builder-controls.js, assets/js/qwizz-builder-state.js - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g02-d-p05-advanced-open.png (alt: Expanded Customize panel: Difficulty, Questions, Shared exp, Print, Player, Completion)
- event seq: 42
- note (verbatim, multiline preserved):
if the drop down select are just a few they should also be pretty buttons like difficulty
05. g02—builder-craft/20 — g02 — Builder (craft)
- status: fixed — the ring around selected items had three painters sharing one root cause (the
--qw-v/--qw-ringaccent collapse): the switch halo, the pressed banner-source border and the pressed pill. All three now use flat token treatments; measured live.qwizz-switch[aria-checked=true]::beforebox-shadownone— files: assets/css/qwizz-builder.css:792-829 (applied by the earlier 2026-08-25 02:15 pass; verified intact and live in this run) - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g02-d-p12-group-shared-on.png (alt: Shared exp group: Banner on, revealing Icon/Site/Upload picker, ‘Banner ready’)
- scribble: /home/loca/tndm/sessions/46937fb4893da860/scribbles/g02—builder-craft-20—43.png
- event seq: 44
- note (verbatim, multiline preserved):
strange confusing circle around selected stuff
06. g02—builder-craft/26 — g02 — Builder (craft)
- status: fixed — the four Completion rows (Retry / New quiz / Print / Share) are one row of toggle tiles instead of full-width switch rows;
action_retry|new|print|shareand the noscript hidden inputs are byte-identical. Live check: four[data-action-toggle]tiles, allaria-pressed=true— files: includes/Frontend/views/builder-view.php, assets/js/qwizz-builder-controls.js, assets/js/qwizz-builder-state.js - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g02-d-p16-group-completion.png (alt: Completion group: Retry, New quiz, Print, Share toggles all ON)
- event seq: 45
- note (verbatim, multiline preserved):
this can simply be a row of buttons/tiny-cards to be toggled on and off, like difficulty for example
07. g02—builder-craft/31 — g02 — Builder (craft)
- status: fixed — the draft-resume banner is now a quiet inline chip (
Resume draft · Discard, measured live: 24px tall, transparent background, 0px border, borderless text buttons), and Discard persists a dismissal so it does not come back: after Discard plus further edits plus a reload the host stayed hidden — files: assets/js/qwizz-builder-state.js, assets/css/qwizz-builder.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g02-d-p21-draft-resume.png (alt: Draft-resume banner: ‘unfinished quiz’ with Resume draft / Discard)
- event seq: 46
- note (verbatim, multiline preserved):
this is some-what unintuitive and annoying at times
08. g02—builder-craft/32 — g02 — Builder (craft)
- status: fixed — the builder toast was
background: var(--qw-ink)(i.e.currentColor) withcolor: var(--qw-card), so text and background resolved to the same near-white. It now uses the action-token pair; measured live:rgb(255,255,255)text onrgb(17,17,17)at opacity 1 — files: assets/css/qwizz-builder.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g02-d-p22-toast.png (alt: Builder toast panel renders with invisible (light-on-light) text at bottom center)
- scribble: /home/loca/tndm/sessions/46937fb4893da860/scribbles/g02—builder-craft-32—47.png
- event seq: 47
- note (verbatim, multiline preserved):
(scribble only — see overlay)
g02f — Fine-tune print studio modal g02f--fine-tune-print-studio-modal
09. g02f—fine-tune-print-studio-modal/1 — g02f — Fine-tune print studio modal
- status: fixed — all four defects in the note delivered: the broken top bar rebuilt as one CSS layer (its own
.qwizz-editor button{font:inherit}had been beating.qwizz-btn{font-weight:800}, so Undo/Redo rendered at the theme’s 22px/300 body font), clutter cut to step title + one guidance line + counts + Undo/Redo on one row, export/print/cancel moved into one bottom.qwizz-actionsrow in the builder’s own button vocabulary, the step converted from aposition:fixedoverlay reparented todocument.bodyinto an in-flow section of the builder page, and the editable sheet converged ontoPdfGenerator’s screen contract so what you edit matches what prints. Verified live: bar 832×72 on one row, Cancel/Print 50px at the end of the step,position: staticunderentry-content, site header visible, no overflow, Print still returns200 application/pdf— files: includes/Frontend/views/finetune-editor.php, assets/css/qwizz-finetune.css, assets/js/qwizz-finetune.js, includes/Pdf/PdfGenerator.php, includes/Frontend/Shortcodes/CraftShortcode.php - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g02f-d-p01-modal.png (alt: Fine-tune modal: toolbar (Undo/Redo/Cancel/Print) over editable Science quiz sheet)
- scribble: /home/loca/tndm/sessions/46937fb4893da860/scribbles/g02f—fine-tune-print-studio-modal-1—49.png
- event seq: 50
- note (verbatim, multiline preserved):
this is simply trash. broken css top bar and clutter, inconsitent export/print buttons… belong to bottom as in other step. also cant this be on the site instead on new? since the pdf also not even slightly looks alike… ask user to provide reference or files to a previous solved fine-tune editor version
g05 — Single quiz + full player flow g05--single-quiz--full-player-flow
10. g05—single-quiz—full-player-flow/20 — g05 — Single quiz + full player flow
- status: fixed — the more-panel actions are one line each with one correct icon:
newno longer reuses the celebration sparkles glyph, the missingprintScore/printUnsolvedQuizicon keys were added (they resolved to nothing before), the<small>sub-labels are gone and non-primary buttons render as a row. Live check: five secondary actions, each one client rect, each with an SVG — files: includes/Frontend/QuizEmbed.php, assets/js/qwizz-player-renderer.js, assets/js/qwizz-player.js, assets/css/qwizz-player.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g05-d-p14-more-open.png (alt: Expanded ‘more’ details panel showing only a purple ‘Retry’ button.)
- event seq: 54
- note (verbatim, multiline preserved):
new icon missleading, find better one. rest only single line but two word max and proper icons each.
11. g05—single-quiz—full-player-flow/24 — g05 — Single quiz + full player flow
- status: fixed — nested card-in-card chrome removed (
.qwizz-player__cardborder and shadow, banner border, the whole.qwizz-player__moredisclosure box) and the 320–520px title/meta overlap fixed by replacing thewhite-space: nowrapcounter rule with wrapping. Measured live at 390px: card border 0px, shadow none, no horizontal document overflow — files: assets/css/qwizz-player.css, assets/css/qwizz-responsive.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g05-x-full.png (alt: 320px reflow: title/meta row overlaps progress bar and question number)
- event seq: 57
- note (verbatim, multiline preserved):
too much borders and frames and stuff … should be clan and simple full with
g06 — DE-content single quiz g06--de-content-single-quiz
12. g06—de-content-single-quiz/1 — g06 — DE-content single quiz
- status: fixed — the player runs the full width of its container (the 880px and 920px caps and the big top-margin clamp are gone; measured 1488px of 1600px viewport, 370px of 390px on mobile) and gets usable height through a new rule scoped to the pre-existing zero-consumer hook
body.qwizz-has-player, so shortcode/block embeds are unaffected — files: assets/css/qwizz-player.css, assets/css/qwizz-responsive.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g06-d.png (alt: Desktop fold of Allgemeinwissen kompakt Q1/10, sound icon + Check answer)
- event seq: 59
- note (verbatim, multiline preserved):
again, simpler and full hight and width
13. g06—de-content-single-quiz/3 — g06 — DE-content single quiz
- status: fixed — the standalone quiz page printed the title twice (template
<h1>plus an unconditional player header span); the template now signalsdata-heading="1"and the renderer omits its own title there, while embeds keep theirs. Measured live desktop and 390px mobile: exactly one occurrence ofAllgemeinwissen kompakt— files: includes/Frontend/QuizEmbed.php, templates/single-qw_quiz.php, assets/js/qwizz-player.js, assets/js/qwizz-player-renderer.js; status: content-data for the second clause — evidence: quiz 77 carriesqw_lang = enand all ten stored questions are English (What does a milliner make and sell?,What does the F stand for in the FBI?,What is Tasmania?) under a German title, so the mixture is corpus content, not a locale-rendering defect - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g06-m.png (alt: Mobile fold of Allgemeinwissen kompakt Q1/10 player card)
- event seq: 60
- note (verbatim, multiline preserved):
again strange look with the white and double “Allgemeinwissen kompakt” Also strange question in english and Quiztitle in german but i guess this is quiz issue not software?!
14. g06—de-content-single-quiz/4 — g06 — DE-content single quiz
- status: fixed — the always-on three-line auto-advance hint paragraph no longer renders (its string and CSS rule are gone with it) and the header row is omitted when empty; the progress bar and the question counter stay. Measured live at 390px: no
.qwizz-player__auto-hint, single-column answers, no overflow — files: assets/js/qwizz-player-renderer.js, includes/Frontend/QuizEmbed.php, assets/css/qwizz-player.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g06-m-full.png (alt: Mobile fullpage of Allgemeinwissen kompakt player, stacked card layout)
- event seq: 61
- note (verbatim, multiline preserved):
too much information. the quiz itself is all that matters, especially in this view
g07 — user surfaces anonymous → sign-in prompt g07--user-surfaces-anonymous--sign-in-prompt
15. g07—user-surfaces-anonymous—sign-in-prompt/1 — g07 — user surfaces anonymous → sign-in prompt
- status: fixed — the two byte-identical sign-in cards came from one helper reached by both member shortcodes; a per-request guard makes only the first render. Live check on
?page_id=865: occurrences ofqwizz-user--sign-inwent 2 → 1, logged-in library and stats still render — files: includes/Frontend/UserSurfaces.php - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g07-d.png (alt: Mein QuizWizz page shows two identical sign-in cards side by side, no distinction)
- event seq: 63
- note (verbatim, multiline preserved):
couldnt it be just the page or hidden element instead. so it would not even be offered if not logged in but show if user has… if not easy then leave it as is for now
g15 — denied share-play 404 g15--denied-share-play-404
16. g15—denied-share-play-404/4 — g15 — denied share-play 404
- status: content-data — evidence: the captured URL is
/?qwizz_play=999999, which has noqw_quizpost, soincludes/Frontend/QuizQueryViewer.php:14-17renders nothing and the normal front page is shown. The mixed-language strings in that screenshot are the page’s own stored content (EnglishBuild a quiz, play it online, or print the same prepared questions.plus an EnglishCreate a quizCTA next to a GermanMein QuizWizzCTA), not plugin output. The real denial renderer uses translation calls throughout (includes/Frontend/QuizEmbed.php:43-55) andiface_langisen; no hardcoded English plugin string renders inside a German plugin surface - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g15-m-full.png (alt: Mobile denied share-play: homepage renders instead of a 404/denied notice)
- event seq: 75
- note (verbatim, multiline preserved):
again strange english german
g16 — locked single (core password form) g16--locked-single-core-password-form
17. g16—locked-single-core-password-form/1 — g16 — locked single (core password form)
- status: done on bench — recorded in creds.md. A
## Locked quizzessection now states the standing requirement and the verified current state: no password-protected post of any type exists in this database, and theTour Locked Quizg16 fixture was deleted after the 2026-08-19/20 capture with no recoverable plaintext in the harness or capture log - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g16-d.png (alt: Locked quiz fold: ‘Geschützt: Tour Locked Quiz’ heading with password entry form)
- event seq: 77
- note (verbatim, multiline preserved):
assure those are always shared in creds.md for user to be aware of
g18 — PDF inline artifact in browser viewer g18--pdf-inline-artifact-in-browser-viewer
18. g18—pdf-inline-artifact-in-browser-viewer/1 — g18 — PDF inline artifact in browser viewer
- status: fixed — worksheet answers are 2 per row (odd counts padded with a borderless cell), verified in the actual generated PDF opened in a viewer: every question renders 2×2. Also proved at markup level for 2, 3, 4, 5 and true/false choice counts — files: includes/Pdf/PdfGenerator.php
- screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/g18-d-full.png (alt: PDF worksheet: title, name/date/class fields, 4 MC questions, footer ‘1/4 · Balli’)
- event seq: 80
- note (verbatim, multiline preserved):
by default the answers always should be 2x2 (two rows 2 coulomns)
s04 — player logged-in (nonce present) s04--player-logged-in-nonce-present
19. s04—player-logged-in-nonce-present/1 — s04 — player logged-in (nonce present)
- status: fixed — the 2-column answer grid was already the default but had no narrow fallback and
presentation.layout_colswas a dead player contract. A single-column rule now applies below 620px (measured:repeat(2,...)at 1600px, one column at 390px) and the deaddata-layoutwrite is gone — files: assets/css/qwizz-player.css, assets/js/qwizz-player.js - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/s04-d.png (alt: Player Q1/10 True/False question, admin bar shows ‘Willkommen, qwtour_sub’)
- event seq: 86
- note (verbatim, multiline preserved):
Also by default next to each other
a02 — Settings (full admin, 9 always-visible panels) a02--settings-full-admin-9-always-visible-panels
20. a02—settings-full-admin-9-always-visible-panels/9 — a02 — Settings (full admin, 9 always-visible panels)
- status: fixed — redundant helper copy cut (the four
<small>s restating their own card titles,Used when a visitor does not choose.,Example: 5, 10, 20which duplicated the field’s rendered value, the second interface-language paragraph) with tooltips kept via the existing$info()helper, and the squeezed.qwizz-default-countlabel givenflex:1 1 auto; min-width:0— files: includes/Admin/views/settings-page.php, assets/css/qwizz-admin-settings-core.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/a02-d-p05-qw-essential.png (alt: General defaults panel: sources, outcomes, size, languages, difficulty)
- event seq: 89
- note (verbatim, multiline preserved):
broken beyond comprehension xD this ui ux has too much useless bloat text and arranged like improvable
21. a02—settings-full-admin-9-always-visible-panels/11 — a02 — Settings (full admin, 9 always-visible panels)
- status: fixed —
.qwizz-flow-policy > label > spanhad no base rule at all: it received onlyborder-width/border-style, stayeddisplay:inlineand painted one border fragment per line box, so the radio rows overlapped. Measured before:display:inline, 2 client rects, rows overlapping at y=99. After:display:grid, 1 rect each, y=96/y=182, no overlap. The unstyled siblings.qwizz-segmented-settingand.qwizz-auto-delaywere styled too — files: includes/Admin/views/settings-page.php, assets/css/qwizz-admin-settings-core.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/a02-d-p07-qw-player.png (alt: Online Player Feedback panel — stray outline boxes on radio labels)
- event seq: 90
- note (verbatim, multiline preserved):
hellish broken feedback thingy
22. a02—settings-full-admin-9-always-visible-panels/11 — a02 — Settings (full admin, 9 always-visible panels)
- status: fixed — the box that persisted after a click was a
:focus(not:focus-visible) outline with!important, duplicated in three places, fighting two different:checkedrings across two sheets. Now focus-visible only, one selection treatment. Measured live: mouse click leaves0px noneoutline (just the 1px inset selection ring); keyboard Tab still gets a 3px solid ring — files: assets/css/qwizz-admin-responsive.css, assets/css/qwizz-admin-settings-search-preview.css, assets/css/qwizz-admin-settings-core.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/a02-d-p07-qw-player.png (alt: Online Player Feedback panel — stray outline boxes on radio labels)
- event seq: 91
- note (verbatim, multiline preserved):
again broken-ish styles and strange borders around chosen/clicked stuff
23. a02—settings-full-admin-9-always-visible-panels/16 — a02 — Settings (full admin, 9 always-visible panels)
- status: fixed — all four Data & Lifecycle headings were missing the
$icon()prefix every other panel uses (Feedback, Completion actions, Category hierarchy and Support diagnostics had the same omission); icons added and the ad-hoc 36px icon-only button box replaced by one shared icon-button rule sized with its 44px neighbours. Live check: all four Data headings now carry an SVG. Also retargeted four heading slugs absent from IconPaths that silently rendered a book glyph — files: includes/Admin/views/settings-page.php, assets/css/qwizz-admin-settings-core.css, assets/css/qwizz-admin-settings-layout.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/a02-d-p12-qw-data.png (alt: Data & Lifecycle panel: retention, portability, imports, backups card)
- event seq: 92
- note (verbatim, multiline preserved):
strange icon padding in portability and some icons missing
24. a02—settings-full-admin-9-always-visible-panels/17 — a02 — Settings (full admin, 9 always-visible panels)
- status: fixed — root cause was a positional grid (
#qw-advanced … .qwizz-subcard:nth-child(2)) that pinned the heading to column 1 and auto-placed the two unplaced icon links into columns 2 and 3, i.e. flush against the card’s right edge. The positional grid is gone and both icon links now sit in the shared portability container. Measured live: buttons at x=507/559 with the heading at x=507 and the card’s right edge at 758 — files: includes/Admin/views/settings-page.php, assets/css/qwizz-admin-settings-layout.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/a02-d-p13-qw-advanced.png (alt: Advanced settings panel: category-hierarchy toggles and support-diagnostics JSON download)
- event seq: 93
- note (verbatim, multiline preserved):
again icons pushed to right somehow
a02x — editor-role import-only variant (qwtour_editor) a02x--editor-role-import-only-variant-qwtour_editor
25. a02x—editor-role-import-only-variant-qwtour_editor/1 — a02x — editor-role import-only variant (qwtour_editor)
- status: fixed — the nag suppression existed but covered only the Settings screen id; it now runs from the class that already owns admin-screen ownership and covers all eight QuizWizz screen ids, removing
update_nagandmaintenance_nagby name at their core priorities. Deliberately not removed: recovery-mode, paused-plugin/theme and account-security notices. Live check: zero foreign notices on Settings, on the quiz list and on the quiz editor. Note the bench core is current, so the nag itself cannot be made to render for a visual before/after — files: includes/Bootstrap/SurfaceProvider.php, includes/Admin/SettingsPage.php - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/a02x-d.png (alt: Editor-role Settings desktop fold: same import-only Portability card above the fold)
- event seq: 95
- note (verbatim, multiline preserved):
is the Wordpress update notice relevant in here? if not get rid of it.
a03 — quiz list table a03--quiz-list-table
26. a03—quiz-list-table/1 — a03 — quiz list table
- status: fixed — the column was already flag-only; the residuals are closed: a
titlewith the language name (hover affordance), the vestigialgap: 7pxremoved, and the readiness/source column widths rebalanced with a wrapping badge row so translated status labels no longer overlap. Live check: visible text empty,title="English", no readiness overflow — files: includes/Admin/ListTables.php, assets/css/qwizz-admin-shell.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/a03-d.png (alt: Quiz list table default view, full page — same ‘Ready’/‘Prepared’ badge overlap visible)
- event seq: 97
- note (verbatim, multiline preserved):
language flag only is enough rather then flag + english. and what ever else can be prttified
a05 — quiz editor (58 questions) a05--quiz-editor-58-questions
27. a05—quiz-editor-58-questions/1 — a05 — quiz editor (58 questions)
- status: fixed — the site-statistics rail no longer eats the fold of a record editor (removed on
qw_quiz/qw_questioneditors only, untouched on dashboard, lists, settings and subjects), and a@media(max-width:782px)order:-1rule that pushed the quiz title below the entire 6501px question list on mobile now orders title → questions → sidebar. Verified live on fixture 99: rail absent,#wpbodytop 42 → 32px, no console or page errors — files: includes/Admin/views/statistics-rail.php, includes/Admin/MetaBoxes.php, assets/css/qwizz-admin-editor.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/a05-d.png (alt: Quiz editor fold: admin bar, dashboard stats, ‘World Quiz — English’ title, question list)
- event seq: 100
- note (verbatim, multiline preserved):
this is just bade (much worse then we used to have) ask user to provide references
28. a05—quiz-editor-58-questions/1 — a05 — quiz editor (58 questions)
- status: fixed — question rows are one dense wp-admin-native line (49px, uniform 4-glyph control strip, flat separators) and three measured glitches are gone: an invalid
background:var(--qw-card)1f1declaration that silently dropped the delete button’s hover affordance, two dead rule groups targeting[data-move-up]/[data-move-down]while the markup emitsdata-qwizz-move-*(0 matches against 58 rows), and an undo control with no glyph because the localized icon map had noundokey. Verified live: 10 rows at 49px with 44×44 controls, rovingtabindexintact, zero console errors — files: assets/css/qwizz-admin-editor.css, assets/js/qwizz-admin-editor.js, includes/Admin/MetaBoxes.php - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/a05-d.png (alt: Quiz editor fold: admin bar, dashboard stats, ‘World Quiz — English’ title, question list)
- event seq: 104
- note (verbatim, multiline preserved):
nbloat, cluttery, glitchi … dunno what to say xD
a07 — subjects taxonomy screen a07--subjects-taxonomy-screen
29. a07—subjects-taxonomy-screen/8 — a07 — subjects taxonomy screen
- status: fixed — the 451-entry surface is the subjects list table under
?qw_supply=under, and hierarchy-aware ordering already existed but interleaved each parent with its own children. The comparator now puts every parent subject first as one block, then their children grouped by parent name, with the ungrouped bucket last. Live check: the first five rows are top-level subjects, children follow — files: includes/Subject/SubjectSupplyFilter.php - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/a07-d-x01-supply-under.png (alt: Notice: subjects with <10 usable questions — 451 entries listed)
- event seq: 106
- note (verbatim, multiline preserved):
wtf are those categories xD should be somehow simply sort parent categories first
v02 — AI ON — settings v02--ai-on--settings
30. v02—ai-on—settings/1 — v02 — AI ON — settings
- status: fixed — three measurable faults, not taste: the money input overflowed its card at ordinary desktop widths (its stacking rescue only existed below 782px), the Block/Allow privacy cards truncated their copy in a two-column grid, and the whole limits body sat inside a collapsed
<details>above a panel-height void. Measured after: no overflow of the money control, policy cardsminmax(0px, 1fr), no<details>wrapper — files: includes/Admin/views/settings-page.php, assets/css/qwizz-admin-settings-core.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/v02-d-p01-ai-expanded.png (alt: AI panel expanded: Enable AI on, access/privacy + budget fields)
- event seq: 123
- note (verbatim, multiline preserved):
just ugly
31. v02—ai-on—settings/2 — v02 — AI ON — settings
- status: fixed —
.qwizz-guest-aihad no CSS outside amax-width: 782pxquery: the help text inheritedfont-weight: 800and read as a heading, and stretched two-row label grids left a dead gap above the requests/hour input. Measured after:<small>weight 400, labelalign-content: start— files: includes/Admin/views/settings-page.php, assets/css/qwizz-admin-settings-core.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/v02-d-p02-guest-wizard.png (alt: Quiz Wizzard for visitors: assistant toggle on, guest budget fields)
- event seq: 125
- note (verbatim, multiline preserved):
ugly and broken xD
v03 — auto-advance ceiling ON — builder player-options row + player countdown timer panel v03--auto-advance-ceiling-on--builder-player-options-row--player-countdown-timer-panel
32. v03—auto-advance-ceiling-on—builder-player-options-row—player-countdown-timer-panel/1 — v03 — auto-advance ceiling ON — builder player-options row + player countdown timer panel
- status: fixed — the player-options rows (Instant feedback, Explanations, Sound, Score animation) became one tile row like Difficulty, with the sound → final-cue dependency preserved and every
instant_feedback/player_explanations/sound_default/score_animationfield name unchanged; the stray switch halo was already neutralised and is verified intact. Live check: four toggle tiles present, zero selects left in the panel — files: includes/Frontend/views/builder-view.php, assets/js/qwizz-builder-controls.js, assets/js/qwizz-builder-state.js, assets/css/qwizz-builder.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/v03-d-p01-builder-player-options.png (alt: Player settings: Instant feedback on, Auto-advance Manual, Explanations on)
- event seq: 128
- note (verbatim, multiline preserved):
again, this could be much nicew
33. v03—auto-advance-ceiling-on—builder-player-options-row—player-countdown-timer-panel/2 — v03 — auto-advance ceiling ON — builder player-options row + player countdown timer panel
- status: fixed — the countdown was a banner because
.qwizz-player__countdownclaimed a full-width row (flex: 1 1 100%) and two 44px bordered buttons grew to fill it. It is now a subtle inline note with borderless controls; measured live: flex-basisauto, timing-button border0px, textNext question in 2 seconds.with Pause / Add 10 seconds inline. The feature itself is unchanged — see Needs user decision — files: assets/css/qwizz-player.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/v03-d-p02-player-timer.png (alt: Countdown banner ‘Next question in 2 seconds’ with Resume/Add 10s buttons)
- event seq: 129
- note (verbatim, multiline preserved):
i dont get why this is even a thing oO
v04 — reduced-motion player — Q1 manual-advance note + result (no score animation) v04--reduced-motion-player--q1-manual-advance-note--result-no-score-animation
34. v04—reduced-motion-player—q1-manual-advance-note—result-no-score-animation/1 — v04 — reduced-motion player — Q1 manual-advance note + result (no score animation)
- status: fixed — there was no click-to-check path at all: the only trigger was the form submit event, so every answer needed a second click on
Check answer. Clicking an answer now checks it immediately and the button only appears afterwards, asNext question. Verified live end to end: no visible button before answering, one click producedNot quite / Correct answer: Hatswith correct/incorrect marks, and the intro readsAnswers are checked as you go.Theplayer.instant_feedbacksetting is untouched — files: includes/Frontend/QuizEmbed.php, assets/js/qwizz-player.js, assets/js/qwizz-player-renderer.js, assets/css/qwizz-player.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/v04-d-p01-question-note.png (alt: Reduced-motion Q2/10 with manual-advance note instead of timer animation)
- event seq: 131
- note (verbatim, multiline preserved):
default must always be: click answer = check answer simple
35. v04—reduced-motion-player—q1-manual-advance-note—result-no-score-animation/2 — v04 — reduced-motion player — Q1 manual-advance note + result (no score animation)
- status: fixed — share/print/restart were buried in a bordered
<details>disclosure placed above the answer review, each button a three-line column tile. They are now one borderless icon+label row rendered after the review. Verified live DOM order: score → Retry → review → secondary actions, five single-line buttons of 44px with an icon each, no.qwizz-player__more— files: assets/js/qwizz-player-renderer.js, assets/js/qwizz-player.js, assets/css/qwizz-player.css, assets/css/qwizz-responsive.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/v04-d-p02-result.png (alt: Quiz complete: static 7/10 (70%) score, Retry button, answer review list)
- event seq: 132
- note (verbatim, multiline preserved):
share print restart bla shoul be below and simple buttons/icons
v05 — noscript — builder server form section.qwizz-no-js + settings fallback form.qwizz-settings-fallback v05--noscript--builder-server-form-sectionqwizz-no-js--settings-fallback-formqwizz-settings-fallback
36. v05—noscript—builder-server-form-sectionqwizz-no-js—settings-fallback-formqwizz-settings-fallback/1 — v05 — noscript — builder server form section.qwizz-no-js + settings fallback form.qwizz-settings-fallback
- status: fixed — the noscript topics form renders the topics as tiny cards in the category grid, reusing the JS-free
.qwizz-choice-cardpattern with the server-sanitised per-topic icon, and the:has(input:checked)state was given a visible filled treatment (it also relied on the collapsed accent token). Verified with JavaScript disabled: 12 cards, 12 icons, two-column grid,category[]names unchanged,Surprise mevisibly selected — files: includes/Frontend/views/builder-view.php, assets/css/qwizz-builder.css - screenshot: /home/loca/tndm/decks/qwizz-2026-08-20/assets/shots/v05-d-p01-builder-noscript.png (alt: Noscript builder fallback: JS-unavailable notice, topics, Print/Play)
- event seq: 134
- note (verbatim, multiline preserved):
this should be pretty tiny cards always
Resolution summary
All work is bench-local and releaseEligible: false. The canonical delivery vehicle is still open (see Needs user decision).
Counts
| status | items | count |
|---|---|---|
| fixed | 01, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36 | 33 |
| verified-correct (no change needed) | 02 | 1 |
| content-data (not a software defect) | 16, and the i18n clause of 13 | 1 |
| done on bench (recorded in creds.md) | 17 | 1 |
| blocked | — (09, 27, 28 were unblocked by the 2026-08-25 ruling and are fixed) | 0 |
| deferred(build-artifact) | — | 0 |
Nothing was deferred to the release pipeline: every located defect lived in editable includes/, assets/ or templates/ source. build/quiz/render.php is a two-line delegator and build/quiz/style-index.css carries no player rules, so no compiled artifact had to be touched.
Items 03, 05 and the switch-halo half of 32 were already fixed on disk by an earlier pass on 2026-08-25 at 02:10–02:15, before this run’s backup marker was created; they were verified live rather than re-fixed, and this run’s find -newer gate therefore does not list qwizz-builder.css as changed by those particular rules. Items 25, 26 and 29 were partially implemented by the same pass; only their residuals were closed here.
Root causes by cluster
| cluster | items | defect | fix | strongest evidence |
|---|---|---|---|---|
| Public accent-token collapse | 03, 05, 08, 36 | Twenty Twenty-Five defines no --wp--preset--color--primary and no --wp--style--color--link, so --qw-v and --qw-ink collapse to currentColor; any element using them as a background while setting its own color renders invisible | filled states switched to the --qw-action-bg / --qw-action-ink pair in the leaf sheet, never in qwizz-tokens.css | assets/css/qwizz-builder.css:781-790; measured live toast rgb(255,255,255) on rgb(17,17,17) |
| Builder controls that were not the Difficulty pattern | 04, 06, 32 | two native <select>s plus eight full-width switch rows, while the Difficulty row was the intended pattern | richChoice tile rows in .qwizz-challenge-grid with one delegated listener each; every submitted field name preserved | includes/Frontend/views/builder-view.php:244-266; live DOM shows zero selects and 4 action tiles |
| Nested player chrome | 10, 11, 12, 13, 14, 33, 35 | a card border plus a 55px shadow, per-element borders, a double width cap, a duplicated title, an always-on hint paragraph, a full-width countdown row and a bordered <details> above the review | chrome flattened, width caps removed, height scoped to body.qwizz-has-player, title emitted once, hint removed, actions moved below the review as an icon row | assets/css/qwizz-player.css:6,10,66,89; assets/js/qwizz-player-renderer.js:103-106,324-351 |
| Missing player interaction default | 34 | no click-to-check code path existed at all — the only trigger was form submit | change listener on the answer radios; Check answer only renders when click-to-check is off, then becomes Next question | assets/js/qwizz-player.js:415 (the sole pre-fix trigger) |
| Admin controls with no base CSS | 21, 30, 31 | .qwizz-flow-policy > label > span, .qwizz-segmented-setting, .qwizz-auto-delay and .qwizz-guest-ai received border fragments or media-query-only rules but had no base rule | real base blocks modelled on the working .qwizz-policy-cards treatment | measured display:inline with 2 client rects and overlapping rows before, display:grid with 1 rect and no overlap after |
| Selection chrome fighting itself in wp-admin | 22 | a :focus (not :focus-visible) outline with !important, duplicated three times, plus two competing :checked rings across two sheets | focus-visible only, one selection treatment | mouse click now leaves 0px none; keyboard Tab still yields 3px solid |
| Copy-paste icon-button twins | 23, 24 | a positional :nth-child(2) grid pushed icons to the card’s right edge, and two near-identical icon-button boxes (34px and 36px) fought a 44px minimum | one shared icon-button rule; positional grid deleted; icons flush-left | assets/css/qwizz-admin-settings-layout.css:433-462 before; buttons at x=507 beside a heading at x=507 after |
| Single-column answer sheet | 18 | answers were a one-cell-per-row <table>, independent of layout_cols (which controls question columns) | two <td> per <tr> with a padded trailing cell, .opt{width:50%}, table-layout:fixed | the generated PDF, opened in a viewer, renders every question 2×2 |
| Duplicate rendering | 15, 13 | one sign-in helper called by two shortcodes; one title printed by both template and renderer | per-request guard; data-heading signal from the template | qwizz-user--sign-in count 2 → 1; one title occurrence at 1600px and at 390px |
| Discoverability, not absence | 01, 02, 26, 29 | six shortcodes existed but four were advertised; the sampler already spanned categories; the language column was already flag-only; hierarchy ordering already existed | advertise all six, embed the craft shortcode on the front page, close the residuals (hover title, badge overlap, parents-first comparator) | runtime shortcode_tags enumeration; 6–10 distinct subjects per Surprise-me draw |
Changed files
First pass, 23 plugin files — none under vendor/, build/ or languages/, and that holds for all 33:
assets/css/qwizz-admin-responsive.cssassets/css/qwizz-admin-settings-core.cssassets/css/qwizz-admin-settings-layout.cssassets/css/qwizz-admin-settings-search-preview.cssassets/css/qwizz-admin-shell.cssassets/css/qwizz-builder.cssassets/css/qwizz-player.cssassets/css/qwizz-responsive.cssassets/js/qwizz-builder-controls.jsassets/js/qwizz-builder-state.jsassets/js/qwizz-player-renderer.jsassets/js/qwizz-player.jsincludes/Admin/ListTables.phpincludes/Admin/SettingsPage.phpincludes/Admin/views/dashboard-page.phpincludes/Admin/views/settings-page.phpincludes/Bootstrap/SurfaceProvider.phpincludes/Frontend/QuizEmbed.phpincludes/Frontend/UserSurfaces.phpincludes/Frontend/views/builder-view.phpincludes/Pdf/PdfGenerator.phpincludes/Subject/SubjectSupplyFilter.phptemplates/single-qw_quiz.php
Second pass added 10 more (PdfGenerator.php was touched in both), for 33 plugin files in total:
assets/css/qwizz-admin-stats.cssassets/css/qwizz-finetune.cssassets/js/qwizz-admin-editor.jsassets/css/qwizz-admin-editor.cssassets/js/qwizz-finetune.jsincludes/Admin/AdminMenu.phpincludes/Admin/MetaBoxes.phpincludes/Admin/views/statistics-rail.phpincludes/Frontend/views/finetune-editor.phpincludes/Frontend/Shortcodes/CraftShortcode.phpincludes/Pdf/PdfGenerator.php(second edit:localized_labelsmade public for the fine-tune sheet)
Outside the plugin: creds.md (item 17), evidence/2026-08-20-ui-tour/review-session.json (bus-tail truth pass), and the WordPress content of front page id 2 (item 01). No probe expectation needed editing — scripts/ is unchanged.
Gate results
php -lin-container: clean on all 11 changed PHP files.node --check: clean on all 4 changed JS files.- plugin reactivated through WP-CLI after the wiring change (
SurfaceProvidernow owns the notice hook):quizwizz active 1.10.0. ./scripts/quizwizz-probe.sh --wave all:1..46,# assertions=46 failures=0. Identical to the pre-fix baseline taken at the start of this run, so no contract regressed and no probe expectation had to be adjusted.scripts/quizwizz-browser-smoke.js: 19 of 19 behavioural assertions passed (Builder H1 semantics and overflow on both viewports, settings dirty → saving → saved with reversible restoration to the originalcount.defaultof 10, dirtybeforeunload), zero console errors, zero page errors,settingsRestored: true. The run then aborted on a ChromiumRuntime.callFunctionOnprotocol timeout before its editor-tabindex and contrast tail — an environment limit on this bench, not an assertion failure. Those tails were covered manually instead: mobile Settings at 390×844 has no horizontal overflow and a reachable 44px save control, the quiz editor loads with zero console and page errors, and the contrast-sensitive surfaces were measured directly (toast, selection badge, focus rings).logs/debug.log: 38522 lines before the fixes and 38522 after, i.e. no new notice, warning or fatal from any changed path.
Verification screenshots
Captured cache-disabled at desktop 1600×1000 and mobile 390×844. Relocated out of /tmp into evidence/2026-08-25-tndm-verify/ so these citations survive a reboot; digests.json there pins all 21 artifacts by sha256:
01-builder-tiles-toast-desktop.webp— items 03, 04, 06, 08, 3202-player-2x2-fullwidth-desktop.webp— items 11, 12, 13, 14, 1903-player-clicktocheck-countdown-inline.webp— items 33, 3404-player-result-icon-row-below-review.webp— items 10, 3505-player-mobile-390.png— items 11, 13, 14, 19 on mobile06-settings-general-desktop.webp— items 20, 21, 23, 24, 2507-settings-ai-data-panels.webp— items 30, 3108-subjects-parents-first.webp— item 2909-quiz-list-flag-only.webp— item 2610-noscript-topic-cards.webp— item 36 (JavaScript disabled)11-worksheet.pdf+12-pdf-2x2-answers.webp— item 1813-settings-mobile-390.webp— mobile settings reachabilitybrowser-smoke.json— the smoke gate’s machine-readable record
Second pass, 2026-08-25 — items 09/27/28 and the defaults
The operator lifted the reference block: proceed on best-practice reference and the patterns established in the first pass. Items 09, 27 and 28 are therefore closed, and the five decisions that were only recommendations are now applied or explicitly left open above.
| item | delivered | evidence |
|---|---|---|
| 09 fine-tune print studio | four named defects, all four fixed: the top bar rebuilt as one authored CSS layer (four override passes were fighting, and the file’s own .qwizz-editor button{font:inherit} beat .qwizz-btn{font-weight:800}, so Undo/Redo rendered at the theme’s 22px/300 body font); export/print/cancel moved into one bottom .qwizz-actions row using the builder’s own button vocabulary; the step converted from a position:fixed overlay reparented to document.body with every other body child inert into an in-flow section of the builder page; and the editable sheet converged onto PdfGenerator’s own screen contract | measured live: bar 832×72 on ONE row with Undo/Redo at 46px and font-weight 800, Cancel/Print 50px sharing y=3164 at the end of the step, position: static with parent entry-content, site header still visible, builder form display:none while open and back to block after Cancel, no horizontal overflow; the sheet renders the dark serif PDF look with 2-up bordered option cards, matching the generated PDF; Print still returns 200 application/pdf |
| 27 + 28 quiz editor | the five-card site-statistics rail no longer renders on the record editors (it is untouched on dashboard, quiz list, settings and subjects); a @media(max-width:782px) rule that set order:-1 on the sidebar had been pushing the quiz title below the entire 6501px question list on mobile, now explicitly ordered title → questions → sidebar; question rows are one dense wp-admin-native line with a uniform control strip | measured live on fixture 99: rail absent, #wpbody top 32px (was 42px), 10 rows at 49px each with 44×44 icon controls, roving tabindex intact, zero console and page errors, no horizontal overflow |
| 28 glitches, found by measurement | an invalid declaration background:var(--qw-card)1f1 (a mangled #fff1f1) that silently dropped every background longhand, leaving the delete button with no hover affordance; two dead rule groups targeting [data-move-up]/[data-move-down] while the markup emits data-qwizz-move-up/down (0 matches against 58 rows); an undo control with no glyph because the localized icon map had no undo key | CSSOM before/after captured per defect; the dead rules were removed rather than resurrected because their opacity:.62 dim computed to roughly 2.7:1 and would have failed WCAG 1.4.11’s 3:1 for non-text UI |
Three defects of the same class, found by the editor slice outside its own ownership and fixed in a follow-up slice:
Out of scope for the 36 review items — droppable independently
The three defects below were found by the quiz-editor slice’s own measurements, not by the operator, and they are not part of the 36 harvested items. The operator ruled on 2026-08-25 to keep them, tagged separately, so the release owner can accept or drop them without touching the in-scope work. Boundary for the handoff patch:
assets/css/qwizz-admin-stats.css(23 changed lines) andincludes/Admin/AdminMenu.php(13 changed lines) are touched by nothing else and revert cleanly fromhandoff/2026-08-25-tndm/baseline-quizwizz-pre.tar.gz; the.qwizz-choice-rowtrack-count change lives insideassets/css/qwizz-admin-editor.cssalongside in-scope item-28 work and needs a surgical ~3-line revert rather than a file restore.
- the statistics rail laid its five segments out as a 750px carousel inside a 366px container at 390px, so segments 3–5 were off-screen behind an intra-rail swipe on every remaining QuizWizz admin screen. Now wraps into the two-column template already present at the 1100px breakpoint, with the fifth segment spanning the row. Measured:
stats.scrollWidth == clientWidth(366) and worst segment overflow −1px on dashboard, quiz list, question list, settings and subjects; desktop unchanged at 5 × 279.19px in one row. AdminMenu::render_stats_rail()still echoed an empty<div class="wrap qwizz-admin-rail">on the record editors. Gated with a newis_record_editor()helper mirroring the guard in the view. Measured:#wpbodytop 42 → 32px on desktop, and at 390px core’s own 46px admin-bar clearance correctly returns (heading top 106px, admin bar bottom 46px), so nothing moved under the admin bar..qwizz-choice-rowin the question editor declared three grid tracks for five in-flow children, wrapping its three controls onto a second track. Track count corrected; row height 103 → 57px at both viewports, 38×38 controls deliberately preserved there.
Applied defaults: player.auto_advance_ms 2500 → 0 (item 33) and presentation.layout_cols 2 → 1 (item 18), both verified by re-reading qw_exposure_settings; quiz 77 retitled Allgemeinwissen kompakt → General Knowledge Compact with its slug intact (items 13/16). Live player re-check after those writes: title renders once in English, no countdown panel appears after answering, click-to-check still produces Not quite / Correct answer: Hats and the button becomes Next question.
Second-pass gates: php -l clean on all 6 changed PHP files, node --check clean on both changed JS files, ./scripts/quizwizz-probe.sh --wave all → 1..46, # assertions=46 failures=0, and one new logs/debug.log line — a Cron-Unschedule-Event-Fehler for qw_process_portability_job written during the probe run’s own portability packet. No changed file touches portability, and Wave 5 (which owns that surface, including its zero-residue assertions) passed, so it is a core cron-array write race under the harness’s concurrent requests, not a regression from this work.
Bench hygiene: the temp administrators created for verification were deleted (qwverify, qwv2, and the slices’ own), and a stray qwfix_css administrator left behind by the earlier 02:10 pass was removed after confirming it authored zero posts. wp user list --role=administrator now returns only admin.
Two disclosures. To browser-verify item 09 at all, matrix.editor.def had to be flipped from false to true for the duration of the check, because with the shipped default there is no visitor-facing control that reaches the fine-tune step — Print goes straight to PDF. It was restored to false and re-read to confirm. That missing opt-in is itself worth a ruling: the step is implemented and now good, but unreachable as configured. Separately, the mobile statistics rail is now 383px tall (previously 192px with three of five segments off-screen), which pushes list-screen content to y=473 in an 844px viewport — everything is on-screen and reachable, but whether the mobile rail should collapse is an operator design call, not a defect.
Needs user decision
- items 09, 27, 28 — RULED 2026-08-25: no reference material will be supplied; proceed on best-practice reference and the patterns established in this session. Implemented as two slices (fine-tune print studio; quiz editor) — see the 2026-08-25 second pass below.
- item 33 — RESOLVED 2026-08-25: countdown kept, shipped off by default.
player.auto_advance_msset from 2500 to0on the bench, verified by re-readingqw_exposure_settings. The inline-note styling stays for sites that switch it back on. - item 02 — OPEN (taxonomy shape, not a sampler bug). Surprise me already spans 6–10 distinct subjects per draw, but the
qw_subjecttaxonomy is nearly flat (398 top-level terms against 85 children), so most fine-grained subjects are not descendants of any of the 12 builder cards and are reachable only through Surprise me. If “several different cats” meant the 12 visible cards, the fix is a taxonomy re-parenting exercise, not a code change. Unblocker: confirm which reading you meant. - items 13 (second clause) and 16 — RESOLVED 2026-08-25: the fixture was retitled rather than re-imported. Quiz 77 is now
General Knowledge Compact, which matches itsqw_lang = enmetadata and its English question rows; the slugallgemeinwissen-kompaktwas deliberately left intact so existing evidence links and gallery routes keep resolving (verified: the route still returns the player, zero German title occurrences). - item 15 (second half) — OPEN by design, and the operator pre-approved leaving it (“if not easy then leave it as is for now”). Hiding “Mein QuizWizz” from navigation when logged out is not a plugin change: the bench navigation is Twenty Twenty-Five’s
core/page-listblock, which auto-lists every published page, and the footer additionally hardcodes a link to it. Not done here on purpose — overriding the theme’s header template part on the bench that produces the screenshot corpus would invalidate that corpus for a non-plugin reason, and making page 865privatewould lock out logged-in subscribers, who are exactly the audience. Recommendation: replace the page-list block with an explicit navigation menu as a site-content task. The visible defect the operator reported (two identical cards) is fixed. - item 18 — RESOLVED 2026-08-25:
presentation.layout_colsset from 2 to1, so a worksheet is one question column with a 2×2 answer block per question (the earlier two-column sheet squeezed each answer cell to roughly 42mm). The 2×2 answer structure itself is independent of this setting. - item 09 reachability — NEW, found while verifying: the fine-tune step is implemented and now good, but unreachable with the shipped configuration.
matrix.editoris{st: visitor, def: false}and no visitor-facing control offers the step, so Print goes straight to PDF; the step only opens withdef: true(flipped for the verification, then restored). Recommendation: either expose a visitor opt-in in the Customize panel or make the step the default for the print outcome. Unblocker: which of the two. - mobile statistics rail height — NEW, a consequence of fixing the off-screen carousel: the rail is now 383px tall on a 390px viewport (previously 192px with three of five segments unreachable), pushing list-screen content to y=473 in an 844px viewport. Everything is on-screen; whether it should collapse on mobile is a design call. Recommendation: collapse it behind a one-line summary on mobile. Unblocker: your say-so.
- delivery vehicle — RESOLVED 2026-08-25: prepared as two ordered no-index patches under
handoff/2026-08-25-tndm/. Patch 1quizwizz-tndm-remediation.patch(31 files, sha25686cf4620977276f64c40704ca6215ec0329e1156678c262aa41fa77b10bbd7ca) carries the in-scope work and applies standalone to the baseline. Patch 2quizwizz-tndm-adjacent-out-of-scope.patch(3 files, sha256f78126ac793ddd372539f6d70395d8da6abce240111a2383e3186551e4765b62) carries the three adjacent fixes and is droppable; because it sharesassets/css/qwizz-admin-editor.csswith patch 1 it fails against a bare baseline, so the ordering is enforced by the patch itself rather than by a note. Both were proved to reconstruct the live tree byte-for-byte from a pristine baseline extract, with a clean header audit and no forbidden paths. Seehandoff/2026-08-25-tndm/README.md. - standing gates, still closed as instructed:
publish— the live wiki still serves the 2026-08-21 build, so it lacks the Action-items table and now also this resolution record; andharden—tndm.servicehardening plus a nightlyDATA_DIRbackup timer. Both await the explicit words.