Skip to content

rivet validate has no 'new diagnostics since <ref>' view — the edit→verify loop must diff 250+ warnings by hand #488

@avrabe

Description

@avrabe

Friction (hit repeatedly in the dogfooding loop)

After editing/adding an artifact, the question an agent (or human) actually has is "did my change introduce any new diagnostics?" — not "what are all 257 warnings in the repo?". Today there's no way to ask that:

  • rivet validate prints the full set (257 warnings here); you must --format json | jq/grep for your artifact to tell if you added anything. I hit this twice — most recently checking whether a new REQ added an allowed-values warning.
  • --explain <ID> is great but needs you to already know the id, and only covers one artifact — it can't answer "did my edit add a warning anywhere (e.g. a backlink/coverage rule firing on a different artifact)?".
  • --baseline <name> is a named, cumulative baseline (different concept); --track-convergence is retry-loop detection; rivet impact --since is artifact-change impact, not diagnostics. None give "diagnostics introduced relative to a git ref".

Suggested fix

A diagnostics-diff against a git ref:

rivet validate --new-since <ref>     # show ONLY diagnostics absent at <ref> (default origin/main or HEAD)

Implementation: validate at <ref> (or read a cached baseline), validate now, set-difference the diagnostics by (rule, artifact_id, message). Exit non-zero only if the new set is non-empty (a natural CI gate: "this PR must not add diagnostics"). This is the same diff-vs-base shape as the schema-version-bump gate (#485/PR #487) and would make the edit→verify loop — and "no new warnings" CI gating — a one-liner instead of a jq pipeline.

Found in the hourly dogfooding loop. Related: --explain (#?, single-artifact), --baseline (named baseline).

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