Classification · Internal Research Build · Covert Cubicles M26
PENDING
M26 · Phase 6 · Layer 7 (UI & Presentation)

UI_Scene — Scene Shell Renderer

Persistent five-region scene shell consuming installed Phase 1-4 narrative corpus.
Module of
31 (Module 26)
Dependencies
SM_Game · PM_Phase · DATA_Peers · DATA_Context
ADRs recorded
ADR-085 to ADR-092 (eight)
Test strategy
Hybrid per ADR-092: API assertions + four-phase preview panels
Stub source
Inline; mirrors mockups/m26_mockup.html prose verbatim
Generated
5 May 2026 · Build state v1.8 (Phase 1-4 corpus installed)
Contract banner — M27 / M31 forward dependency M26 exposes getDecisionAreaTarget() returning the DOM element M27 UI_Branch will populate at runtime (per ADR-090). The decision-area placeholder is rendered by M26 in test/preview contexts where M27 has not yet been wired in. M31 GM_Game (when built) is responsible for invoking M26.render(target) on each state change; M26 itself does not subscribe to state events (per ADR-088 re-render policy).
Stub session state · ADR-092 hybrid test pattern The four preview panels below are driven by inline stub implementations of SM_Game, PM_Phase, DATA_Peers, and DATA_Context. Stub prose mirrors mockups/m26_mockup.html verbatim so the rendered output is one-to-one comparable against the canonical mockup. Real-module integration verification is deferred to the next regression sweep against the staged build at /js/data/.
§1 · Public API surface
// M26's public API. All calls are synchronous; render() throws on bad input.

window.CovertCubicles.UI_Scene.render(target);
// Full re-render to the given DOM element. Idempotent.
// Optional second arg: { forcePhase: 1|2|3|4 } for snapshot testing.

window.CovertCubicles.UI_Scene.getDecisionAreaTarget();
// Returns the element M27 should render into. Null before first render.

window.CovertCubicles.UI_Scene.getApi();
// Diagnostic surface: { moduleId, moduleName, stylesInjected, lastRender, decisionArea }
§2 · Automated assertions
IDAssertionVerdict
Assertions pending execution.
§3 · Phase preview panels
Each panel renders the full scene shell for the indicated phase, driven by the stub session state. Compare side-by-side against mockups/m26_mockup.html. The "Re-render all" button verifies render idempotency by triggering a second render on each panel.
Preview · Phase 1 · Months 1-3
Preview · Phase 2 · Months 4-6
Preview · Phase 3 · Months 7-9
Preview · Phase 4 · Months 10-12