Gate: route-exists
The route the spec declares is registered where the app registers its routes.
| Property | Value |
|---|---|
| Checker | route-exists |
| Confronts | spec |
| Blocking by default — new project | yes |
| Blocking by default — existing project | no — informs |
| Presupposes | route_registry — until these are declared in anchors.yaml, the gate is pending and asks nothing |
How it measures
Section titled “How it measures”Confronts the route declared by a specification against actual application code: the route that the specification declares must exist where the application registers its routes.
The neighbouring route-declared gate confronts a specification against itself — does the specification
declare a route? This gate confronts the specification against the CODE: does that route actually exist
where the application registers its routes?
The critical distinction emerged in a real end-to-end delivery defect. A specification for a new screen
declared > **Rota**: MetadataEdit (or route: MetadataEdit), and another specification promised navigation
to it. The blocking route-declared gate gave a green checkmark to both specifications because both declared
routes. Yet the route existed nowhere in the application code. Both specifications described a path leading to
an unreachable screen, and the entire verification pipeline remained green.
This represents an anchor that lies in the most elusive way possible: nothing is missing and every document references each other, but nobody asked whether the destination actually exists in the code.
Measured across 96 screen specifications in a real project prior to enabling this gate: 2 findings, both true defects (the aforementioned unreachable end-to-end route, and another specification whose screen the application registered under a different name). Zero false positives.
When a specification declares no route, this gate skips confrontation, as enforcing route declaration is the
exclusive responsibility of route-declared. Furthermore, when project configuration does not specify where
routes are registered (route_registry), or when zero routes can be extracted, the gate returns Pending
rather than falsely approving uninspected routes.
Declaring it
Section titled “Declaring it”gates: - name: route-exists on: [spec] check: route-exists