Skip to content

Commit 9e80ec3

Browse files
committed
Define targeted validation execution templates and standardized PR evidence expectations for stabilization workflow execution - PR_26146_013-targeted-validation-execution-templates
1 parent 044ad32 commit 9e80ec3

1 file changed

Lines changed: 85 additions & 0 deletions

File tree

docs/dev/PROJECT_INSTRUCTIONS.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
662747
Every PR must document:
663748
- whether full samples test was skipped or run
664749
- reason for decision

0 commit comments

Comments
 (0)