QuizWizz UX Atlas execution ledger
Historical record β 2026-07-28
Preserved as observed. Current truth: Program Masterplan.
This ledger now has two layers: the 2026-07-28 capture remains the visual baseline, while the 2026-07-29 reconciliation below records the implemented source and runtime evidence. A remap names the required destination and state; implementation evidence does not imply that a replacement screenshot was captured unless the reconciliation explicitly says browser-verified. reproduce-as-is retains the integration/surface while addressing its listed findings.
Evidence basis and disposition vocabulary
- Source atlas: QuizWizz Admin UI Atlas, captured at 1600 Γ 1000, scale 1, cache disabled, with animations suppressed. Image dimensions below may be crops or tall full-page captures; the viewport remains 1600 Γ 1000 unless the atlas says otherwise.
reproduce-as-is: retain the named destination at the displayed URL and reproduce its relevant state for comparison.remap: replace the legacy surface with the exact target URL, fragment, and stated control state below.retired-by-design: remove the legacy surface; the target is the required redirect or replacement evidence location.- Target navigation is exactly Dashboard, Quizzes, Questions, Subjects, Settings. Legacy
qw-get-startedGET navigation targetsadmin.php?page=qw-dashboard#help; legacyqw-importGET navigation targetsadmin.php?page=qw-settings#advanced-portability. Settings legacy fragments map to#general,#builder,#player,#appearance,#pdf-print,#ai, and#advancedas specified in the approved plan. - βRole/capabilityβ reports the capture gate first and, where it differs, the planned target gate in parentheses. It is not evidence of a future role grant.
Surface ledger
| # | Named surface | Capture URL Β· role/capability | Viewport / selected or expanded state | Source image / caption | Disposition and exact evidence target | Findings |
|---|---|---|---|---|---|---|
| 01 | QuizWizz menu | admin.php?page=qw-dashboard Β· edit_qw_quizzes | 1600Γ1000; stored navigation | menu-quizwizz.png β top-level menu and all QuizWizz submenus | remap β admin.php?page=qw-dashboard; native Qwizz submenu is exactly Dashboard, Quizzes, Questions, Subjects, Settings, Dashboard selected | U-12, U-13 |
| 02 | Dashboard | admin.php?page=qw-dashboard Β· edit_qw_quizzes | 1600Γ1000; stored dashboard; details opened | dashboard-full.png β status cards, quick links and Tools & status | reproduce-as-is β admin.php?page=qw-dashboard; Dashboard selected, operational rail and ordered document visible | U-14, U-15 |
| 03 | Dashboard β tools & status | admin.php?page=qw-dashboard Β· edit_qw_quizzes | 1600Γ1000; <details> opened, not saved | dashboard-tools.png β Tools & status contents | remap β admin.php?page=qw-dashboard#help; Help/system <details> opened | U-16 |
| 04 | Dashboard β compact density | admin.php?page=qw-dashboard Β· edit_qw_quizzes | 1600Γ1000; density toggle, not saved | dashboard-density-compact.png β compact density rendering | retired-by-design β Dashboardβs normal responsive native layout at admin.php?page=qw-dashboard; no admin density control or storage | U-07, U-08 |
| 05 | Get Started | admin.php?page=qw-get-started Β· publish_qw_questions | 1600Γ1000; stored page | get-started-full.png β starter-library explanation and install action | retired-by-design β GET redirect to admin.php?page=qw-dashboard#help; Help onboarding Content step is expanded | U-17, U-18 |
| 06 | Import | admin.php?page=qw-import Β· publish_qw_questions | 1600Γ1000; stored page | import-full.png β quiz import and bundled-pack workflows | retired-by-design β GET redirect to admin.php?page=qw-settings#advanced-portability; Import mode selected | U-19, U-20 |
| 07 | Import β question pack | admin.php?page=qw-import Β· publish_qw_questions | 1600Γ1000; no file selected; preflight conditional | import-question-pack.png β Question Pack drop zone and preflight area | retired-by-design β admin.php?page=qw-settings#advanced-portability; Import mode selected, Select/Upload state before file selection | U-21, U-22 |
| 08 | Settings chrome | admin.php?page=qw-settings Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; stored page | settings-chrome.png β search, workspace navigation and save-status chrome | remap β admin.php?page=qw-settings; single-document toolbar, no search query, clean state | U-04, U-23 |
| 09 | Settings β General | admin.php?page=qw-settings#qw-essential Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; stored; initial workspace | settings-general.png β experiences, quiz size, languages, interface, difficulties | remap β admin.php?page=qw-settings#general; General heading focused and visible | U-04, U-24 |
| 10 | Settings β Builder | admin.php?page=qw-settings#qw-builder Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; stored; category list JS-populated | settings-builder.png β Builder matrix, formats, category availability | remap β admin.php?page=qw-settings#builder; Builder heading focused and pool controls visible | U-05, U-25 |
| 11 | Settings β Player | admin.php?page=qw-settings#qw-player Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; automatic advance enabled, not saved | settings-player.png β feedback, completion actions, automatic-delay field | remap β admin.php?page=qw-settings#player; automatic advance enabled and delay field visible | U-26, U-27 |
| 12 | Settings β Appearance | admin.php?page=qw-settings#qw-presentation Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; stored | settings-appearance.png β presentation controls and six PDF theme cards | remap β admin.php?page=qw-settings#appearance; Appearance heading focused, enabled-theme/default controls visible | U-28, U-29 |
| 13 | Settings β PDF & Print | admin.php?page=qw-settings#qw-pdf Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; banner forced on / Built-in icon selected, not saved | settings-print.png β paper, footer, matrix rows, built-in icon choices | remap β admin.php?page=qw-settings#pdf-print; banner enabled and Built-in source selected | U-05, U-30 |
| 14 | Settings β banner: site identity | admin.php?page=qw-settings#qw-pdf Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; Site identity selected, not saved | settings-print-banner-site.png β site-identity banner panel | remap β admin.php?page=qw-settings#pdf-print; banner enabled, Site identity source selected | U-31, U-75 |
| 15 | Settings β banner: upload | admin.php?page=qw-settings#qw-pdf Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; Upload selected, no file selected | settings-print-banner-upload.png β upload banner panel and validation affordance | remap β admin.php?page=qw-settings#pdf-print; banner enabled, Upload source selected, no upload in progress | U-02, U-32 |
| 16 | Settings β AI | admin.php?page=qw-settings#qw-ai Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; AI enabled, not saved | settings-ai.png β privacy, budget, hard-limit, provider-price details | remap β admin.php?page=qw-settings#ai; AI enabled and consequence details expanded | U-33, U-34 |
| 17 | Settings β Advanced | admin.php?page=qw-settings#qw-data Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; stored; older backups opened where present | settings-advanced.png β retention, portability, imports, backups, hierarchy, diagnostics | remap β admin.php?page=qw-settings#advanced; Advanced heading focused, controls collapsed except stated detail | U-02, U-35 |
| 18 | Settings β exposure matrix | admin.php?page=qw-settings#qw-data Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; stored; local-until-save matrix | settings-exposure-matrix.png β hidden / always applied / visitor choices | remap β admin.php?page=qw-settings#advanced; exposure controls visible with their current selected states | U-36, U-37 |
| 19 | Settings β search | admin.php?page=qw-settings Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; query theme, not saved | settings-search.png β search-result list and workspace breadcrumbs | remap β admin.php?page=qw-settings; search query theme, result list open | U-38, U-39 |
| 20 | Settings β preview | admin.php?page=qw-settings Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; Preview opened, not saved | settings-preview.png β modal and Builder / Player / PDF tabs | remap β admin.php?page=qw-settings#appearance; production preview open in Player mode (Sheet and Key are alternate modes) | U-40, U-41 |
| 21 | Settings β no-script fallback | admin.php?page=qw-settings Β· manage_options (target access_quizwizz_settings) | 1600Γ1000; JavaScript disabled in separate tab | settings-noscript-fallback.png β server-rendered fallback form | reproduce-as-is β admin.php?page=qw-settings; JavaScript disabled, server fallback visible | U-42, U-43 |
| 22 | Quizzes list | edit.php?post_type=qw_quiz Β· edit_qw_quizzes | 1600Γ1000; stored list | list-quizzes.png β Details, Questions, readiness, Source columns | reproduce-as-is β edit.php?post_type=qw_quiz; Quizzes child selected | U-44, U-45 |
| 23 | Quizzes list β filters | edit.php?post_type=qw_quiz Β· edit_qw_quizzes | 1600Γ1000; stored list | list-quizzes-filters.png β saved-view and top filter controls | reproduce-as-is β edit.php?post_type=qw_quiz; native filters visible, no active filter | U-46, U-47 |
| 24 | Questions list | edit.php?post_type=qw_question Β· edit_qw_questions | 1600Γ1000; stored list | list-questions.png β question columns, saved views, taxonomy filters | reproduce-as-is β edit.php?post_type=qw_question; Questions child selected | U-48, U-49 |
| 25 | Questions list β active filter | edit.php?post_type=qw_question&qw_lang=de Β· edit_qw_questions | 1600Γ1000; German selected | list-questions-active-filters.png β Active filters badge and Clear all | reproduce-as-is β edit.php?post_type=qw_question&qw_lang=de; German filter active | U-50, U-51 |
| 26 | Quiz editor | post.php?post=413&action=edit Β· edit_qw_quizzes | 1600Γ1000; existing draft 413 | editor-quiz.png β Quiz questions meta box and linked rows | reproduce-as-is β object-specific quiz edit URL; question manager visible | U-52, U-53 |
| 27 | Quiz editor β question search | post.php?post=413&action=edit Β· edit_qw_quizzes | 1600Γ1000; two-character query, not saved | editor-quiz-search.png β question-search combobox results | reproduce-as-is β object-specific quiz edit URL; question-search results open | U-54, U-55 |
| 28 | New quiz editor | post-new.php?post_type=qw_quiz Β· edit_qw_quizzes | 1600Γ1000; new editor | editor-quiz-new.png β empty Quiz questions meta box | reproduce-as-is β post-new.php?post_type=qw_quiz; empty manager state | U-56, U-57 |
| 29 | Question editor | post.php?post=583&action=edit Β· edit_qw_questions | 1600Γ1000; existing question 583 | editor-question.png β Question details and subject sidebar | reproduce-as-is β object-specific question edit URL; selected type visible | U-06, U-58 |
| 30 | New question editor | post-new.php?post_type=qw_question Β· edit_qw_questions | 1600Γ1000; new editor | editor-question-new.png β empty Question details meta box | reproduce-as-is β post-new.php?post_type=qw_question; blank form | U-06, U-59 |
| 31 | Subjects list | edit-tags.php?taxonomy=qw_subject&post_type=qw_question Β· manage_categories (target manage_qw_taxonomies) | 1600Γ1000; stored list | subjects-list.png β subject rows and qwizz_icon column | reproduce-as-is β edit-tags.php?taxonomy=qw_subject&post_type=qw_question; Subjects child selected | U-60, U-61 |
| 32 | Subjects β add form | edit-tags.php?taxonomy=qw_subject&post_type=qw_question Β· manage_categories (target manage_qw_taxonomies) | 1600Γ1000; Add Subject expanded, not saved | subjects-create-form.png β expanded create form | reproduce-as-is β edit-tags.php?taxonomy=qw_subject&post_type=qw_question; add form expanded | U-62, U-63 |
| 33 | Subjects β icon picker | term.php?taxonomy=qw_subject&tag_ID=380 Β· manage_categories (target manage_qw_taxonomies) | 1600Γ1000; picker opened, not saved | subjects-icon-picker.png β icon choices and advanced details | remap β object-specific subject edit URL; native icon modal open, current selection shown | U-64, U-65 |
| 34 | Block inserter | post-new.php?post_type=post Β· edit_posts | 1600Γ1000; unsaved scratch post | block-inserter.png β four QuizWizz blocks under Widgets | remap β post-new.php?post_type=post; Qwizz category open, onboarding dismissed, four blocks visible | U-03, U-66 |
| 35 | Quiz block inspector | post-new.php?post_type=post Β· edit_posts | 1600Γ1000; unsaved scratch post | block-quiz-inspector.png β Quiz settings panel and quiz combobox | reproduce-as-is β post-new.php?post_type=post; Quiz block selected, Block inspector open, inserter closed | U-01, U-03 |
| 36 | Quiz Library block inspector | post.php?post=600&action=edit Β· edit_posts | 1600Γ1000; scratch post | block-library-inspector.png β library settings | reproduce-as-is β disposable post edit URL; Library block selected, Block inspector open | U-01 |
| 37 | Subjects block inspector | post.php?post=600&action=edit Β· edit_posts | 1600Γ1000; scratch post | block-subjects-inspector.png β Subject explorer settings | reproduce-as-is β disposable post edit URL; Subjects block selected, Block inspector open | U-09 |
| 38 | Builder block placeholder | post.php?post=600&action=edit Β· edit_posts | 1600Γ1000; scratch post | block-craft-placeholder.png β Builder canvas placeholder | reproduce-as-is β disposable post edit URL; Builder block selected, placeholder and inspector state visible | U-10, U-11 |
| 39 | Site Health tests | site-health.php Β· view_site_health_checks | 1600Γ1000; accordions expanded | site-health-tests.png β database-schema and PDF-runtime tests | reproduce-as-is β site-health.php; QuizWizz test group/result expanded | U-67, U-68 |
| 40 | Site Health debug | site-health.php?tab=debug Β· view_site_health_checks | 1600Γ1000; accordion opened | site-health-debug.png β QuizWizz debug-information panel | reproduce-as-is β site-health.php?tab=debug; QuizWizz debug panel expanded | U-69, U-70 |
| 41 | Plugins row | plugins.php Β· activate_plugins | 1600Γ1000; stored plugins page | plugins-row.png β QuizWizz row action Get Started | remap β plugins.php; QuizWizz row exposes Dashboard action to admin.php?page=qw-dashboard | U-71, U-72 |
| 42 | Privacy policy guide | options-privacy.php?tab=policyguide Β· manage_privacy_options | 1600Γ1000; accordion opened | privacy-policy-guide.png β QuizWizz suggested privacy text | reproduce-as-is β options-privacy.php?tab=policyguide; QuizWizz policy panel expanded | U-73, U-74 |
2026-07-29 implementation reconciliation
The 42 atlas rows remain the exhaustive visual recapture checklist. The implementation is reconciled below by subsystem rather than by replacing the source images. browser-verified means the changed live state was exercised in cache-disabled Chromium. probe-verified means the standing harness exercised the contract. source-verified means the implementation and registration path were inspected and linted, but this ledger does not claim a new screenshot.
| Atlas rows | Implemented target | Evidence | Verification status |
|---|---|---|---|
| 01β07 | Native five-item Qwizz navigation; Dashboard document; Help onboarding; legacy Get Started and Import redirects | includes/Admin/AdminMenu.php, DashboardPage.php, Onboarding.php, StarterPage.php, ImportPage.php, includes/PostTypes.php | source-verified; Dashboard/onboarding browser-verified |
| 08β21 | One semantic Settings document with workspace fragments, search, dependencies, no-script fallback, production Player preview, private resumable portability jobs, owner-scoped backups, and import-only capability split | includes/Admin/SettingsPage.php, includes/Admin/views/settings-page.php, includes/Admin/PortabilityJob.php, assets/js/qwizz-admin-settings.js, assets/css/qwizz-admin-settings-visual.css | browser-verified for workspace navigation, Player preview, export progress, nonce-authenticated download, and 5 MiB client limit; REST contracts verified for strict bodies, deduplication, cancellation, ownership, round-trip import, and size rejection |
| 22β30 | Native quiz/question list filters and editors with scoped controls and shared SVG icon rendering | includes/Admin/ListTables.php, MetaBoxes.php, assets/js/qwizz-admin-editor.js, assets/css/qwizz-admin-shell.css | source-verified; question editor and filter states browser-verified |
| 31β33 | Native Subjects list/add flow and body-level accessible icon-picker dialog | includes/Taxonomies.php, assets/js/qwizz-admin-subjects.js, assets/css/qwizz-admin-subjects.css | browser-verified for 62-icon dialog, inert background, focus entry, Escape close, and focus restoration |
| 34β38 | Four existing dynamic blocks retained under the Qwizz category without hand-editing compiled block assets | includes/Plugin.php; existing build/quiz/block.json registrations | source-verified; runtime registration returned quizwizz/{quiz,craft,library,subjects} in category qwizz |
| 39β42 | Site Health/debug integrations retained; plugin-row destination follows Dashboard; privacy policy and exporter/eraser include portability jobs and private artifacts | includes/Plugin.php, includes/Admin/Privacy.php, uninstall.php | source-verified; privacy export/erasure runtime-verified with six jobs removed and all referenced artifacts deleted |
| all | Cumulative authorization, player/template, SVG, import, cleanup, and banner boundaries | standing probe harness | probe-verified: ./scripts/quizwizz-probe.sh --wave all passed 30/30 shell assertions, including 34/34 Wave 2, 12/12 Wave 3, and 12/12 Wave 4 |
Portability-specific runtime evidence:
- schema option
1.6.4andwp_qwizz_portability_jobswith the expected 16 columns; - completed export artifact stored as a 36-character private-file identifier with checksum equality;
- closed export body, query-only import, and malformed nested import rejected with 400;
- valid sanitized-settings round trip completed; foreign-owner read rejected with 403; queued export cancellation completed;
- authenticated browser download returned JSON format
quizwizz.portability, version1, withterms,questions,quizzes, andsettings; - privacy erasure removed all six probe jobs and their three referenced artifacts; 195 artifacts leaked by the pre-fix failed-persistence reproduction were identified as unreferenced and removed before handoff;
- a valid JSON request larger than 5 MiB was rejected with 413
qw_request_too_large.
No replacement atlas image set is claimed here. The original 42 images remain the before-state and exact recapture manifest for a future release-owner visual comparison.
Finding coverage ledger
Each finding has one primary surface. Repeated finding IDs in the surface ledger intentionally identify the same issue in more than one captured state; they are not duplicate findings. This compact index makes the issue-to-surface relationship mechanically auditable without claiming a fix.
| Findings | Primary surface(s) |
|---|---|
| U-01βU-03 | 35 Quiz block inspector; 34 Block inserter |
| U-04βU-05 | 08 Settings chrome; 10 Settings β Builder |
| U-06βU-08 | 29 Question editor; 04 Dashboard β compact density |
| U-09βU-11 | 37 Subjects block inspector; 38 Builder block placeholder |
| U-12βU-16 | 01 QuizWizz menu; 02 Dashboard; 03 Dashboard β tools & status |
| U-17βU-18 | 05 Get Started |
| U-19βU-22 | 06 Import; 07 Import β question pack |
| U-23βU-25 | 08 Settings chrome; 09 Settings β General; 10 Settings β Builder |
| U-26βU-27 | 11 Settings β Player |
| U-28βU-30 | 12 Settings β Appearance; 13 Settings β PDF & Print |
| U-31βU-32 | 14 Settings β banner: site identity; 15 Settings β banner: upload |
| U-33βU-35 | 16 Settings β AI; 17 Settings β Advanced |
| U-36βU-37 | 18 Settings β exposure matrix |
| U-38βU-39 | 19 Settings β search |
| U-40βU-41 | 20 Settings β preview |
| U-42βU-43 | 21 Settings β no-script fallback |
| U-44βU-47 | 22 Quizzes list; 23 Quizzes list β filters |
| U-48βU-51 | 24 Questions list; 25 Questions list β active filter |
| U-52βU-55 | 26 Quiz editor; 27 Quiz editor β question search |
| U-56βU-59 | 28 New quiz editor; 29 Question editor; 30 New question editor |
| U-60βU-65 | 31 Subjects list; 32 Subjects β add form; 33 Subjects β icon picker |
| U-66βU-68 | 34 Block inserter; 39 Site Health tests |
| U-69βU-70 | 40 Site Health debug |
| U-71βU-72 | 41 Plugins row |
| U-73βU-75 | 42 Privacy policy guide; 14 Settings β banner: site identity |
Mechanical accounting check
Declared counts: 42 named surface rows; 75 distinct finding identifiers, exactly U-01 through U-75; no finding identifier is absent. Surface-ledger repeats are permitted only for the documented multi-state occurrences (U-01, U-02, U-03, U-04, U-05, U-06).
The following command is the ledgerβs mechanical check. It reads this file, counts only rows in ## Surface ledger, verifies the 42 unique names and required disposition vocabulary, then verifies the primary finding coverage range has no gap or duplicate. It does not build Quartz or inspect plugin code.
python3 - <<'PY'
from pathlib import Path
import re
p = Path('q5vault/audits/qwizz/ux-atlas-audit.md')
s = p.read_text()
surfaces = s.split('## Surface ledger\n', 1)[1].split('\n## Finding coverage ledger', 1)[0]
rows = [line for line in surfaces.splitlines() if re.match(r'^\| \d{2} \|', line)]
names = [line.split('|')[2].strip() for line in rows]
assert len(rows) == 42, len(rows)
assert len(set(names)) == 42, len(set(names))
assert all(len(re.findall(r'\*\*(?:reproduce-as-is|remap|retired-by-design)\*\*', line)) == 1 for line in rows)
coverage = s.split('## Finding coverage ledger\n', 1)[1].split('\n## Mechanical accounting check', 1)[0]
ids = re.findall(r'U-(\d{2})(?:βU-(\d{2}))?', coverage)
expanded = [n for a, b in ids for n in range(int(a), int(b or a) + 1)]
assert expanded == list(range(1, 76)), expanded
print('42 surfaces; U-01..U-75 exactly once in primary coverage')
PYThe mechanical check validates ledger accounting only. Runtime and implementation claims are limited to the dated reconciliation evidence above; no replacement-image or pixel-parity claim is made.