Gate: test-traceable
The test cites the code of what it proves (visible to the relational gates).
| Property | Value |
|---|---|
| Checker | test-traceable |
| Confronts | test |
| Blocking by default — new project | yes |
| Blocking by default — existing project | no — informs |
How it measures
Section titled “How it measures”Confronts a test artifact against its linked feature: a test connected to a feature must state what scenario it proves.
The blind spot this gate closes is subtle and occurred twice in a real production project: the test EXISTS, PASSES, and covers the correct behavior — yet cites no scenario identity code whatsoever. To every relational gate, such a test is invisible:
feature-test-matchchecks scenario-to-test alignment by scenario code: without a code in the test, it reports the scenarios as unimplemented, mistakenly blaming the feature rather than identifying the untraceable test;unit-completeverifies file presence on disk and marks the test piece satisfied;tests-greenexecutes the test suite and verifies assertions pass.
The outcome is the worst of both worlds: the engineering work was completed and verified, yet the pipeline claims it was not. When another developer attempts to fix the reported deficit, they write a redundant duplicate test for the exact same behavior, having no automated way to discover that the existing test already exercised it.
Measured in doctrine: in a real project, a shared test exercised across 6 screens used inverted digit and letter identifiers (such as transposed tokens where specs declared proper codes). Three screens had tests and none was tracked because code search could not reach them. In the same project, a store test covered 5 distinct behaviors without citing a single scenario code.
What separates this gate from neighbouring gates:
feature-test-match: enforces granular 1:1 matching between each scenario and a dedicated test case. In contrast,test-traceableapplies the weakest possible threshold: finding at least ONE valid scenario code anywhere in the test file satisfies the gate. The question here is simply: “does this test declare itself?”unit-complete: checks only that the four unit files exist on disk, regardless of whether their internal contents establish traceability.tests-green: compiles and executes test suites to ensure zero failures, but remains completely agnostic to requirement traceability codes.
Finally, tests without a linked feature (such as unit tests for internal utilities) are not charged: demanding scenario codes from unlinked tests would require referencing nonexistent features.
Declaring it
Section titled “Declaring it”gates: - name: test-traceable on: [test] check: test-traceable