Skip to content

Bounded report gate rejects the promoted-row severity fields the prompt instructs the agent to author #931

Closed

Description

@aviggiano

What happened

Smoke run 32914329945 (candidate 8fe49f0, with #919 in) got further again: very-liquid-vaults reached final-report and failed only on:

Bounded report did not preserve dedupe field "impact_rationale" at $.issues[1].impact_rationale;
Bounded report did not preserve dedupe field "likelihood_rationale" at $.issues[1].likelihood_rationale

The other two rows never finished: the retry churn from this deterministic final-report failure ran the 15000-second watch window out (workflow_nonterminal: 2 after 4h22m).

Root cause

Same contradiction class as #918, for the promoted-row severity fields. In bounded classification mode the final-report prompt instructs, for every promoted finding: "author source-backed impact, likelihood, and their rationales, compute severity from the matrix, and set a concise severity_rationale". A dedupe row that already carries any of those fields (schema-legal — strategy findings may include preliminary severity data) can therefore never byte-equal its promoted report row: the agent is required to re-author them. #919 excluded only lifecycle and triage_classification; the generic loop still demands byte-equality for the authored severity fields.

severity itself remains independently validated — the gate requires lifecycle.canonical_severity to equal the report row's severity and enforces High→Medium→Low stable ordering — and the report schema bounds the authored prose.

Fix

For promoted rows, extend the generic preservation loop's skip set from id/title to the full prompt-authored set: impact, likelihood, impact_rationale, likelihood_rationale, severity, severity_rationale. Non-promoted rows keep full byte-preservation for these fields, and every evidence field (description, proof_of_concept, summary, spans, provenance) stays strictly preserved for all rows.

Activity

  1. added this to the v0.1.0 milestone on Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions