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
Answered
What spar has already answered on one pull request or issue.
CheckDoc
CheckinDoc
CommentCheck
The second agent’s ruling on the first one’s call.
CommentVerdict
One agent’s judgement of one comment somebody left on a pull request.
ContestedItem
Disposition
Dispute
Finding
FixOutcome
What the fix pass did about one comment.
FixReport
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
ScreenResponse
ScreenVerdict
One agent’s ruling on one entry in the local follow-up queue.
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.
Ask
What spar should do about one comment somebody left.
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.
Screened
What one screening pass decided about one recorded follow-up.
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 #.
de_opt_i64
An optional number that may arrive as 412, “412”, “#412”, null, or “none”.

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.