Skip to content
EN · PT

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

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.

gates:
- name: route-exists
on: [spec]
check: route-exists

Source: checker · its spec