@@ -659,6 +659,91 @@ Shared runtime boundary rules:
659659- shared parser changes require validation of valid and invalid payload handling before dependent tool validation
660660- shared runtime failures must identify the root shared dependency and every dependent lane that is blocked
661661
662+ ### Targeted Validation Execution Templates
663+
664+ Targeted execution is the default operating mode.
665+
666+ Validation scope should remain intentionally narrow unless lane expansion is justified in the report.
667+
668+ Broad validation requires explicit reasoning tied to changed files, changed runtime surfaces, or changed handoff contracts.
669+
670+ Future workflow additions should extend these templates instead of introducing parallel rule systems.
671+
672+ Required PR evidence expectations:
673+ - why a lane executed
674+ - why a lane was skipped
675+ - why samples validation was skipped or included
676+ - expected blocker scope
677+ - expected PASS/WARN behavior
678+
679+ Targeted validation report template:
680+ - lanes executed: ` <lane> - <reason> `
681+ - lanes skipped: ` <lane> - <reason> `
682+ - samples decision: ` RUN ` or ` SKIP ` with reason
683+ - blocker scope: targeted lane, dependent lanes, integration lane, samples lane when active, or recovery/UAT lane
684+ - expected PASS behavior: exact behavior or document state that must pass
685+ - expected WARN behavior: unrelated, advisory, skipped, or pre-existing behavior that must not block the targeted lane
686+
687+ Docs-only validation example:
688+ - lanes executed: contract documentation/static validation because only workflow docs changed
689+ - lanes skipped: runtime, integration, engine, samples, recovery/UAT because no runtime, handoff, engine, samples, or recovery behavior changed
690+ - commands: ` git diff --check ` ; required text or anchor checks; ` npm run codex:review-artifacts `
691+ - samples decision: ` SKIP ` because docs/workflow changes do not affect samples
692+ - blocker scope: docs/static validation only
693+ - expected PASS/WARN behavior: PASS when docs diff and required anchors validate; WARN only for unrelated line-ending or pre-existing repository state
694+
695+ Targeted tool PR reporting example:
696+ - lanes executed: runtime for the affected tool; contract only when manifest or toolState behavior changed
697+ - lanes skipped: engine, integration, samples, recovery/UAT unless the PR changes those surfaces
698+ - commands: changed-file syntax checks; affected tool-specific Playwright or validation command named by the PR
699+ - samples decision: ` SKIP ` unless affected samples are explicitly in scope
700+ - blocker scope: affected tool runtime lane only unless shared dependencies are identified
701+ - expected PASS/WARN behavior: PASS when affected tool behavior matches expected outcomes; WARN for unrelated tool failures outside scope
702+
703+ Affected-tool validation example:
704+ - use the smallest fixture set that exercises the changed tool behavior
705+ - include valid payload behavior and failure behavior when applicable
706+ - preserve fixture ownership and version expectations
707+ - report selected fixture names and manifest/toolState sources
708+
709+ Engine/runtime PR reporting example:
710+ - lanes executed: engine first, then dependent runtime or integration lanes only when named
711+ - lanes skipped: unrelated tool and samples lanes unless affected by the changed engine surface
712+ - commands: engine-specific tests or checks named by the PR, followed by dependent targeted validation when justified
713+ - samples decision: ` SKIP ` unless the engine change broadly affects samples or affected samples are named
714+ - blocker scope: engine lane plus dependent lanes identified in the report
715+ - expected PASS/WARN behavior: PASS when engine surface validation and named dependent lanes pass; WARN for unrelated tool failures outside dependent scope
716+
717+ Engine-impact validation examples:
718+ - rendering pipeline: validate render setup, visible output, and render failure handling for the affected surface
719+ - asset loading: validate resolved asset paths, missing asset handling, and no silent fallback
720+ - input systems: validate expected input dispatch, invalid input rejection, and focus or routing behavior
721+ - audio runtime: validate playback/runtime path, failure handling, and no unrelated UI assertions
722+ - physics/runtime timing: validate deterministic timing, pause/step behavior, and failure reporting
723+ - shared manifest/runtime parsers: validate valid payload acceptance and invalid payload rejection before dependent tool validation
724+
725+ Integration PR reporting example:
726+ - lanes executed: integration for explicit handoff contract; contract or runtime lanes only when changed
727+ - lanes skipped: engine and samples unless the integration change depends on those surfaces
728+ - commands: targeted integration check for workspace launch, manifest handoff, palette propagation, or toolState open/save contract
729+ - samples decision: ` SKIP ` unless samples are explicitly named as integration fixtures
730+ - blocker scope: integration lane only unless a root shared dependency is identified
731+ - expected PASS/WARN behavior: PASS when the handoff contract succeeds and invalid handoff cases fail visibly; WARN for unrelated tool runtime failures
732+
733+ Integration-lane validation examples:
734+ - workspace launch into tool: validate selected tool opens with declared manifest/toolState inputs
735+ - manifest handoff: validate exact manifest fields consumed and invalid payload rejection
736+ - palette propagation: validate active palette source and no hidden persisted workspace state
737+ - toolState open/save contracts: validate saved payload shape, open behavior, and invalid payload rejection
738+
739+ Recovery-lane stabilization reporting example:
740+ - lanes executed: recovery/UAT plus targeted contract/runtime/integration lanes named by the stabilization scope
741+ - lanes skipped: engine or samples unless the recovery scope names affected engine surfaces or samples
742+ - commands: targeted recovery validation commands named by the PR, plus required static checks for changed files
743+ - samples decision: ` SKIP ` until sample-alignment scope is active or affected samples are named
744+ - blocker scope: recovery/UAT lane and explicitly named dependent lanes
745+ - expected PASS/WARN behavior: PASS when recovery checklist items pass; WARN for unrelated failures that are classified outside recovery scope
746+
662747Every PR must document:
663748- whether full samples test was skipped or run
664749- reason for decision
0 commit comments