QuizWizz Wave 6A classmap delta
Historical record — 2026-08-11
Preserved as observed. Every present-tense statement below dates to 2026-08-11, including the failure-mode claim that no executable first-party source references the four stale keys. Current truth: Program Masterplan.
Release boundary:
releaseEligible: false. This is bench-local, noncanonical evidence for the canonical release owner. It does not establish release readiness, provenance, a releasable package, or authorization to ship.
Mechanical finding
The reproducible check is deliberately narrower than a source-class inventory:
- Load
vendor/composer/autoload_classmap.php. - Retain only map keys beginning with
QuizWizz\\. - Resolve each mapped value relative to the plugin root exactly as
vendor/composer/autoload_real.phpdoes:$root = dirname(__DIR__, 2), then$root . '/' . $map[$class]. - Assert
is_file($target)for every resolved target.
Result: 59 QuizWizz\\* classmap entries, 55 targets present, and 4 targets missing. Wave 6A records only this deleted/moved mapped-target delta; new source classes are not stale vendor entries and therefore do not belong in the miss list.
Exact stale entries and active responsibilities
| Stale classmap key | Missing mapped target | Source-grounded active replacement paths and responsibilities |
|---|---|---|
QuizWizz\EffectState | includes/EffectState.php | No PHP class replacement is required: the deleted class’s only external caller fed an unenqueued client script. The live settings effect sentence remains owned by assets/js/qwizz-admin-settings.js. |
QuizWizz\Frontend\CraftHandler | includes/Frontend/CraftHandler.php | includes/Frontend/Craft/CraftResponseHandler.php registers and handles the Craft/PDF request boundary; includes/Frontend/Craft/CraftService.php executes the Craft application flow and returns the result consumed by the response handler. |
QuizWizz\Frontend\Embeds | includes/Frontend/Embeds.php | includes/Frontend/Shortcodes/LibraryShortcode.php, specifically LibraryShortcode::enqueue_catalog(), owns the embed/catalog stylesheet enqueue. The corrected unavailable branch in includes/Frontend/QuizEmbed.php now calls LibraryShortcode::enqueue_catalog(), so no executable PHP source references the stale QuizWizz\Frontend\Embeds class. |
QuizWizz\Frontend\Shortcode | includes/Frontend/Shortcode.php | The plural includes/Frontend/Shortcodes/ShortcodeRegistry.php owns registration and dispatch to the concrete CraftShortcode.php, QuizShortcode.php, LibraryShortcode.php, and SubjectsShortcode.php renderers; ShortcodeAttributes.php and ShortcodeRenderer.php provide the shared attribute and renderer contracts. |
These are exactly the four mechanically missing mapped targets; no other class is asserted stale by this handoff.
Failure mode if a stale entry is referenced
vendor/composer/autoload_real.php:1-12 is a hand-written map loader: it registers with prepend = true and performs an unguarded require_once $root . '/' . $map[$class] for any key present in the map. A stale key therefore raises an immediate fatal on first reference, and the plugin’s own is_readable-guarded fallback (quizwizz.php:32-46) is registered afterwards and never runs for a mapped class. Today no executable first-party source references the four stale keys, which is the only reason this is latent rather than fatal. The bench has no safe mitigation: vendor/ must not be hand-edited, so the regeneration and re-check belong to the canonical pipeline.
Canonical release-pipeline action
vendor/ was not edited on the bench. Do not hand-patch vendor/composer/autoload_classmap.php: the canonical release pipeline must regenerate the classmap from canonical source, then repeat this mapped-target existence check and require every regenerated QuizWizz\\* target to satisfy is_file. Any regenerated totals are canonical-pipeline evidence, not a release claim from this bench artifact.