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
Implementation
What the implementor did, and what the pull request body is built from.
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.