Skip to content

Cloud contract: blocker-scoped finding outcomes for reviewer evidence #736

Description

@jeffhuber

Problem

CodeMower.com can observe run-level PASS/BLOCKED transitions, but it cannot prove whether an individual blocking finding was fixed, rejected as a false positive, accepted as risk, or resolved by an owner decision. Run-level agreement is not blocker-level adjudication and cannot support confirmed-catch or reviewer-precision claims.

Outcome

Add a versioned, metadata-only finding-outcome contract that the CLI can emit from audit artifacts and code-mower decide records without uploading finding prose, source, diffs, transcripts, or file paths.

Scope

  • Define an additive reviewer_finding_outcome event schema with a stable opaque finding id, repository/PR/head/lane linkage, severity, disposition, timestamps, fix/decision linkage, and automated-versus-manual source.
  • Support dispositions accepted_fixed, false_positive, accepted_risk, owner_decision, duplicate, infrastructure, and insufficient_context.
  • Make retries idempotent and permit a newer observation to supersede an earlier unresolved observation.
  • Export outcomes from structured verdict artifacts, later qualifying PASS heads, and explicit owner decisions only when linkage is defensible.
  • Keep older v0.x/v1.0 uploads valid and omit unknown fields rather than guessing.
  • Update docs/cloud-data-contract.md, validation, privacy scanning, fixtures, and focused tests.

Acceptance criteria

  • A BLOCKED finding fixed on a later audited head emits one accepted-fixed outcome with stable linkage.
  • A code-mower decide finding decision emits the matching explicit disposition without issue or finding prose.
  • Ambiguous or unlinked findings remain unknown and never become confirmed catches.
  • Dry-run output contains metadata only and no source, raw diffs, transcripts, issue bodies, finding titles/details, file paths, raw stdout/stderr, auth output, local paths, or secrets.
  • CodeMower.com's paired issue is linked before merge.

Process

One focused PR, tests and docs, independent Codex and Claude final-head audits, author-lane exclusion, required green code-mower/gate, and metadata-only dogfood upload.

Activity

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

    contract-firstRequires product/data/merge contract agreement before dependent work mergesenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions