@@ -480,6 +480,57 @@ Engine validation expands lane scope when a shared runtime API, shared parser, t
480480
481481Tool validation alone is insufficient when the changed behavior lives in engine/shared runtime code, changes a shared runtime contract, or could affect more than one tool, game, or sample through a shared dependency.
482482
483+ ### Engine Runtime And Shared Infrastructure Governance
484+
485+ This section is authoritative for engine/runtime/shared infrastructure ownership, boundaries, escalation, and validation routing.
486+
487+ Engine ownership:
488+ - renderer: owns rendering pipeline setup, frame output, render lifecycle behavior, and render failure handling
489+ - audio runtime: owns playback/runtime paths, audio graph behavior, runtime audio state, and audio failure handling
490+ - input system: owns input dispatch, normalized input state, focus routing, and invalid input rejection
491+ - timing/frame scheduler: owns frame cadence, pause/step behavior, deterministic timing, and runtime tick boundaries
492+ - collision/runtime math: owns collision helpers, spatial/runtime math, deterministic math utilities, and edge-case math behavior
493+ - asset loading: owns asset path resolution, loading behavior, missing asset handling, and no-silent-fallback behavior
494+ - manifest/shared parser: owns shared manifest/runtime parser contracts, valid payload acceptance, and invalid payload rejection
495+ - shared runtime utility: owns reusable runtime helpers consumed by multiple tools, games, samples, or engine surfaces
496+
497+ Boundary rules:
498+ - engine/runtime services flow from engine/shared infrastructure to tools
499+ - tools consume engine/runtime services but do not reimplement them
500+ - tools must not duplicate engine logic locally
501+ - tools must not create hidden runtime coupling with other tools
502+ - shared runtime behavior must not leak through tool-specific abstractions
503+ - tool-specific adapters may wrap stable engine contracts only when the adapter does not own engine behavior
504+
505+ Shared infrastructure rules:
506+ - allowed shared infrastructure layers are engine/runtime services, shared manifest/runtime parsers, shared asset/input/audio/rendering helpers, shared validation helpers, and reusable non-tool-specific utilities
507+ - circular dependencies between engine/shared infrastructure and tools are prohibited
508+ - tool-to-tool runtime dependencies are prohibited unless an explicit integration contract names the handoff
509+ - shared infrastructure must not depend on tool-specific UI, toolState payload shape, or tool-local diagnostics
510+ - engine/runtime escalation is required when a change modifies shared infrastructure behavior or changes a shared runtime contract
511+ - validation expands into engine lanes when changed shared infrastructure can affect more than one runtime, tool, game, sample, or parser consumer
512+
513+ Engine-impact classification expectations:
514+ - classify a PR as engine-impacting when it changes renderer, audio runtime, input system, timing/frame scheduler, collision/runtime math, asset loading, manifest/shared parser, or shared runtime utility behavior
515+ - name the affected engine surface and dependent lanes in the validation report
516+ - run engine validation before dependent tool, integration, or samples validation when an engine surface changes
517+
518+ Required engine validation examples:
519+ - renderer: render setup, visible output, render lifecycle behavior, and render failure handling
520+ - audio runtime: playback/runtime path, audio graph behavior, runtime audio state, and failure handling
521+ - input system: input dispatch, focus routing, normalized input state, and invalid input rejection
522+ - timing/frame scheduler: deterministic timing, pause/step behavior, frame cadence, and tick boundary behavior
523+ - collision/runtime math: deterministic collision/math output, spatial helper behavior, and edge-case handling
524+ - asset loading: resolved asset paths, loading behavior, missing asset handling, and no silent fallback
525+ - manifest/shared parser: valid payload acceptance, invalid payload rejection, and shared parser contract behavior
526+ - shared runtime utility: utility behavior, failure handling, and dependent consumer expectations
527+
528+ Engine vs integration escalation rules:
529+ - engine escalation is required when the changed behavior belongs to engine/shared runtime ownership
530+ - integration escalation is required when the changed behavior is an explicit handoff between workspace, tools, manifest, palette, or toolState flows
531+ - when both apply, run engine validation first, then targeted integration validation for affected handoffs
532+ - targeted tool validation is insufficient when the changed behavior is shared, reused by multiple consumers, or changes engine/runtime contracts
533+
483534### Workspace Contract Test Boundaries
484535
485536Workspace V2 tests validate contract and lifecycle only.
0 commit comments