Context
warp-benches was promoted from DET_NONCRITICAL to DET_IMPORTANT in PR #283 as a pragmatic compromise. Ideally, the classification system should support per-crate gate overrides so a crate can declare which specific gates it requires (e.g., required_gates: [G3]) without needing to change its entire classification tier.
Current Behavior
Desired Behavior
det-policy.yaml supports optional crate-level required_gates that augments the class-level gates
classify_changes.cjs merges class gates + crate-level overrides
- Example:
warp-benches could be DET_NONCRITICAL with required_gates: [G3], triggering G3 when benchmarks change without triggering G1/G2/G4
Acceptance Criteria
Context
warp-bencheswas promoted fromDET_NONCRITICALtoDET_IMPORTANTin PR #283 as a pragmatic compromise. Ideally, the classification system should support per-crate gate overrides so a crate can declare which specific gates it requires (e.g.,required_gates: [G3]) without needing to change its entire classification tier.Current Behavior
classify_changes.cjsonly readscrateInfo.classto determine gatesrequired_gatesfield (removed in feat: TTD Hardening Sprint S1 — Gates and Evidence Integrity #283 as dead config) was never consumedDesired Behavior
det-policy.yamlsupports optional crate-levelrequired_gatesthat augments the class-level gatesclassify_changes.cjsmerges class gates + crate-level overrideswarp-benchescould beDET_NONCRITICALwithrequired_gates: [G3], triggering G3 when benchmarks change without triggering G1/G2/G4Acceptance Criteria
classify_changes.cjsreads and merges crate-levelrequired_gatesvalidate_det_policy.cjsvalidates crate-level gates againstALLOWED_GATES