VFX-D-1210¶
Title¶
TopologyCrossCheck
Explanation¶
A step names a topic, path, or table that appears in no contract extracted from the workspace's source code — either the producer lives outside the analysed sources, or the name is a typo.
This code is reserved and implemented, but nothing emits it today. It is documented here because
the code is real, its number is fixed, and its meaning will not change when it goes live; reserving
it now is what keeps the eventual landing additive — no renumbering, no second page, no change to
validate_suite's wire shape beyond findings starting to arrive.
The rule needs a topology extracted from the workspace's sources, and the only source of one is the
engine subcommand tracked as upstream ask U1 (vouchfx topology --json), which has not landed.
Until it does, validate_suite at every level — schema, semantic, and full — reports nothing
under this code, and there is no configuration flag, environment variable, or tool argument that
changes that. A verdict derived from a topology this server cannot see would be a fabricated answer,
and silence is the honest shape.
When it does go live it will check the step fields whose values are contract names — a broker
step's topic and a store assertion's table — and report a warning. HTTP paths are deliberately
out of scope: a suite's path routinely carries interpolation (/orders/{orderId}), and matching a
templated path against an extracted route needs the route-pattern semantics that U1's own output
shape will define.
Common causes¶
- A topic name that does not match what the producing service actually publishes to (a typo, or an environment prefix the suite omits).
- A table or collection renamed in a migration without the assertion being updated.
- A producer that genuinely lives outside the analysed sources — a third-party system, or a repository not included in the topology scan.
Fixes¶
- Nothing to do today: this code cannot be reported by the current release — the topology cross-check is gated on upstream engine work (ask U1) this server does not yet have, and there is no
get_topologytool in this release. - When it does go live (once U1 lands and a topology surface exists): compare the name against the topology that surface reports for the workspace, and either correct the step or widen the analysed sources to include the producer.