Skip to content

rivet validate: actionable errors are drowned by high-volume low-signal warnings — add severity filtering / noise controls #357

@avrabe

Description

@avrabe

Context

Found while dogfooding (triaging agent reports + marking artifacts implemented on rivet's own repo, 0.14.0-track). Same friction class an agent independently reported in #350 (37+ INFO: field 'crate' is not defined drowning the actionable errors).

The friction

rivet validate on rivet's own repo currently prints ~158 warnings for 0 errors. The vast majority are low-signal:

  • WARN: [X] Every requirement should be satisfied by at least one design decision or feature — lifecycle aspiration, fires on nearly every draft/roadmap REQ.
  • WARN: [X] prose mentions 'REQ-124' but no typed link to it — fires whenever a REQ description references another REQ id narratively (e.g. "addressed by REQ-124/REQ-125"), which is legitimate prose, not a missing dependency.
  • per-rule lifecycle-coverage gaps.

When there IS an actionable error (a broken link, a real cardinality violation), it scrolls past in the wall of warnings. There's no easy way to say "show me only what I must act on."

Why it matters

For an AI agent or a human doing mark-implemented / bring-to-green work, the cost is real: you can't tell at a glance whether validate is clean-modulo-aspirations or genuinely broken. It also trains people to ignore validate output — the opposite of what a gate should do.

Suggestions (smallest first)

  1. rivet validate --severity error (and --min-severity warn) — filter output to a floor. Quickest win.
  2. A summary line that separates signal from aspiration: e.g. 0 errors · 12 actionable warnings · 146 advisory (lifecycle/prose), with advisory collapsed by default.
  3. Make prose-mention-without-typed-link smarter or opt-in: a REQ description that mentions another REQ id narratively shouldn't warn unless the mention looks like an intended dependency. At minimum let it be disabled per-rule.
  4. Relatedly: the unknown-field noise from Marking a sw-req 'implemented' + verified requires the full ASPICE design chain — no direct test→sw-req link, and the completeness error doesn't guide you there #350 (REQ-134) and these advisory warnings share a root cause — validate has no notion of "advisory vs actionable" tiers below error/warning/info.

What I used / what would have helped

I read the full rivet validate output and visually filtered for ERROR: — a --severity error flag would have replaced that. Counting warnings by rule (rivet validate | grep WARN | sed ... | sort | uniq -c) revealed that 2 rules produce the bulk of the noise; a built-in validate --by-rule summary would surface that directly.

Environment: rivet 0.14.0-track (089ec6f), rivet's own repo (dev schema).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions