RaterNegotiationRound
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:890
[[EXT-29]] (spec §5.1) — one COMPLETED round of a negotiation, as the next round’s rater sees it.
It carries exactly what §5.1’s third bullet admits and nothing else: the command the agent proposed, the justification it attached (when it attached one), and the rater’s own outcome and explanation for that round — “the rater reasons from its earlier positions rather than re-deriving them.”
The rater’s half is two flat fields rather than an embedded ShellSafetyVerdict, and
that is deliberate. A verdict also carries §4.4’s suggestedTool, which is advice about the
rating that produced it and not part of the history §5.1 admits; a renderer handed a three-field
object that renders two of them is a silent drop waiting to be read as a bug. Flat fields mean the
builder renders everything it is given, and the type states the admitted set by construction.
command is the RAW command as the agent proposed it. Every renderer normalizes and home-folds it
with the same functions the live command goes through, so a past round appears in the form that
round was actually rated in.
[[EXT-127]] — this type outlived the block it was written for, and deliberately keeps its name. It is the transcript’s element: what the escalation prompt and the live panel render (§5.4, §6), and what the alignment checker replays as its own earlier rounds. Nothing about §5’s vocabulary moves, because a runtime selector renamed is one that fails loud-but-late when a spelling is missed.
Properties
Section titled “Properties”alignment?
Section titled “alignment?”
optionalalignment?:AlignmentDecision
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:915
[[EXT-127]] — what the ALIGNMENT CHECKER decided about this round, when one was consulted.
Absent for every round the checker never saw: an assisted rating, a round the classifier
halted, and every round before the split’s own state exists. It is on the round rather than in
a second array because the two facts answer one question — what happened in round N? — and
two parallel arrays are how a transcript and a decision log come to disagree about their own
length.
The display renderers do not read it, deliberately: what a row says about who is speaking is a separate decision from what the checker decided, and adding a field must not silently change a string the PTY suite asserts on.
command
Section titled “command”command:
string
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:895
The command the agent proposed in that round, RAW. The builder normalizes, home-folds and one-lines it; a caller that pre-processes it is doing the work twice and differently.
justification?
Section titled “justification?”
optionaljustification?:string
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:897
The justification the agent attached to it, if any. Omitted when it argued nothing.
outcome
Section titled “outcome”outcome:
"safe"|"destructive"|"catastrophic"|"attack"
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:899
The rater’s own outcome for that round.
reason
Section titled “reason”reason:
string
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:901
The rater’s own one-sentence explanation for that round.