Crux
GuidesObservability

Catalog runtime evidence

Open a prompt in Catalog and see which runs actually used it, with honest empty states when identity cannot be proven.

You authored a prompt three weeks ago. Is anything still calling it? Open it in Catalog and the Observability section shows exactly which runs referenced it, joined by real runtime identity instead of name matching, so the count you see is one you can trust.

See the runs behind a definition

  1. Run crux dev and open the definition in Catalog.
  2. Scroll to its Observability section: latest run status, timestamp, and delivery-health badge.
  3. Click View N runs to open Runs pre-filtered to that definition.

Zero activity is a real state, not a broken link: View N runs appears only when the server rollup reports at least one run, and a definition that has never been referenced says so plainly (No runs have referenced this definition yet.).

What you'll see

The section adapts to what Crux can truthfully prove for the definition's kind:

  • Direct activity: the runtime recorded this definition's exact authored id on runs. You get status, timing, delivery health, and View N runs.
  • Contributor: the definition (a knowledge base, tool policy, or structural child) contributed to runs it does not own. Catalog shows Referenced by N runs, or reports the indexed parent's activity while stating the child was not independently observed.
  • Runtime-observed, unjoined: the kind's primitives appear in Runs (deferred work, media operations, ingest sources), but records do not carry this authored definition's id. Catalog names the relevant primitives and withholds per-definition counts rather than guessing.
  • Eval-primary: scorers correlate through the Eval join; a live scoring.judge span still surfaces when an authored judge({ id }) ran.
  • No runtime: static or declarative definitions show no fabricated counts and no dead links.

Run Detail lists every definition reference on the run or span. When the run's exact (projectId, manifestId) artifact is available, ids resolve against that historical Catalog even if the current source was renamed or deleted. A missing manifest or missing definition remains explicitly unresolved; Crux never substitutes the current checkout. Current-Catalog comparison is shown separately, and historical ids still filter the Runs list.

Honest gaps

Crux only joins when the runtime already holds a real compiled definition handle; it never invents an id from a stack trace, so a few kinds stay truthfully uncounted:

  • Anonymous or non-literal definitions simply omit the ref.
  • Injectables and storage ports have no canonical runtime identity, so Catalog never selects an arbitrary owner for them.
  • File-loaded skills without a registry composite id do not invent a join key; registry-loaded skills do join.
  • Compositions (parallel / pipeline / swarm / consensus) need an authored id so runtime and index share the same identity.

The join envelope (DefinitionRef), the coverage manifest, runtimeIdentity treatments, and the plane-ownership model live in the Observability reference.

For status vocabulary and delivery health on those runs, see Runs and delivery health.

On this page