Documentation / VFX-D-1210

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_topology tool 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.