Gate: contract-impact
A field changed since the last commit names the rules that use it, and their tests.
| Property | Value |
|---|---|
| Checker | contract-impact |
| Confronts | spec |
| Blocking by default — new project | yes |
| Blocking by default — existing project | no — informs |
How it measures
Section titled “How it measures”A spec’s file revision says the spec changed, not WHAT changed: editing one field made every relation of the spec stale, and nothing told which rules read that field. The rule-use sections say what each rule reads, so a field whose row differs from the last commit names its rules — those of this spec that use it, and those of the specs that depend on this unit’s code and use a field of that name —, and the tests that cite those rules. The change is read from git, so nothing new is kept in the map. The same answer feeds the test selection: a test of an affected rule runs even when its own file did not move.
Declaring it
Section titled “Declaring it”gates: - name: contract-impact on: [spec] check: contract-impact