Skip to main content

Module model

Module model 

Source
Expand description

The shapes that cross the boundary between spar and a model, and the shapes spar keeps for itself.

Everything a model produces is parsed leniently: an LLM that answers “medium” where the schema said “med” is not a reason to abandon a run that has already spent real money. Anything genuinely unrecognisable is still an error, because silently downgrading a blocking finding is worse than stopping.

Structs§

Adjudication
One reviewer’s judgement of a finding the other reviewer raised.
AdjudicationDoc
ContestedItem
Disposition
Dispute
Finding
Issue
IssueRef
IssueRun
The outcome of working one issue, or resuming one PR.
Judged
A finding after both reviewers have had their say.
Label
LedgerEntry
PersistedState
Everything needed to pick a review back up, including on another machine.
Plan
PlanItem
PrRef
PrView
ResponseDoc
Review
SkippedItem
TriageResponse
TriageVerdict

Enums§

Action
A reviewer’s point gets exactly one of these. Refutation is a first class outcome, not friction: an agent that accepts every comment to get approved produces worse code, not better.
Complexity
How much work an issue is. Drives ordering: cheap unblocking work first.
ItemKind
Issues and pull requests share one number sequence per repository, so a number names exactly one of them and spar can work out which.
NextAction
Risk
How likely a change here is to break something.
Severity
Only Blocking gates a merge. This is the whole defence against the nitpick spiral: a competent reviewer can always find something, so “no objections remaining” is not a stopping condition but “no blocking objections” is.
Standing
Status
Terminal state of one issue or one resumed PR.
Verdict

Constants§

STATE_VERSION

Functions§

de_bool
A boolean that may arrive as true, "true", "yes", or 1.
de_i64
An integer that may arrive as a number, a float, or a quoted string, with or without a leading #.

Type Aliases§

Ledger
Refuted points, keyed by finding_key. Ordered so the settled block in a prompt is stable between rounds, which keeps prompt caches warm and diffs readable.