## Change contract The CI `scope` path-gating must not allow changes to files that other lanes pin by value to merge without running those lanes. ## Evidence (two production incidents in one day) 1. #550 changed `deployment/aliyun/polymarket-market-tape.toml` `include_kinds`; #548 changed `quote_sample_ms` to 0. Both merged with `Rust integration regressions` skipped by scope gating. The ploy `workspace_runtime_retirement` test pins both values and broke on main (fixed in #560). 2. Any deployment/aliyun file pinned by Rust tests or by other workflows (gates, units, env files) is a potential repeat. ## Acceptance - [ ] An inventory of cross-lane value pins (test asserts on deployment files) exists (mechanical: grep test suites for deployment/ paths) - [ ] Scope rules route changes to such files into the lanes that pin them (or pins are co-located with the files they assert) - [ ] A contract test prevents new unpinned-value escapes ## Out of scope - The specific pin fixes (done in #560)
Change contract
The CI
scopepath-gating must not allow changes to files that other lanes pin by value to merge without running those lanes.Evidence (two production incidents in one day)
deployment/aliyun/polymarket-market-tape.tomlinclude_kinds; feat(deploy): tick-level Polymarket tape recording + faster trade backfill #548 changedquote_sample_msto 0. Both merged withRust integration regressionsskipped by scope gating. The ployworkspace_runtime_retirementtest pins both values and broke on main (fixed in test(ploy): update tape config pins for Binance kinds and tick-level sampling #560).Acceptance
Out of scope