Skip to content

Normalize SQLi MVP lifecycle and approval states #66

Description

@blondres04

Type: Narrow MVP

Decision

LLM scoring stays in the MVP, but SCORED should not be the operator-facing resting state. Scoring is a scan/stage status. After scoring, a supported SQLi finding should rest in AWAITING_APPROVAL until a human approves or rejects it.

What To Build

Normalize the lifecycle around the human-readable SQLi MVP path:

INGESTED -> TRIAGED -> AWAITING_APPROVAL -> APPROVED | REJECTED -> POC_GENERATED -> VERDICTED | REFUSED

Use scan/stage state such as SCORING while LLM scoring is actively running. Keep existing SCORED rows as compatibility pending-approval rows, but do not make SCORED the new operator-facing state.

Acceptance Criteria

  • FindingState includes AWAITING_APPROVAL and REJECTED.
  • New scored CWE-89 findings transition to AWAITING_APPROVAL after scoring completes.
  • The scan can use SCORING while LLM scoring is active.
  • Approval flows accept both AWAITING_APPROVAL and legacy SCORED rows.
  • Rejecting a finding records REJECTED and prevents PoC generation/detonation.
  • Static-only, out-of-scope, and non-CWE-89 deferred findings never enter AWAITING_APPROVAL by default.
  • Resume behavior is clear for AWAITING_APPROVAL, legacy SCORED, APPROVED, REJECTED, and POC_GENERATED rows.

Notes

Do not remove LLM scoring. The goal is to keep the score as data and make the next human action obvious.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions