Skip to content

APPROVAL_RUNGS

const APPROVAL_RUNGS: readonly ["manual", "write", "assisted", "auto", "bypass"]

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/dist/config/shell-policy.d.ts:337

CFG-27 (spec §1, §2) — the ladder. There is ONE approvals setting and it is a single ordered ladder; each rung fully determines behaviour. There are no severity thresholds, no strictness levels and no independent rater on/off switch.

# Rung Rater LLM cost
1 manual no none
2 write no none
3 assisted yes 1 call per gated call
4 auto yes 1–2 calls per gated call
5 bypass no none

Rungs 1, 2 and 5 are fully deterministic: no model is consulted, so behaviour is reproducible and costs nothing.

CFG-39 — four postures plus one modifier, not five peers. write is not a rung on a trust ladder: it is the same posture as manual with a different auto-granted set. The four postures a user chooses between are APPROVAL_POSTURES (manualassistedauto, plus bypass), and that ordering is legible in the names themselves. write remains fully settable — via /approvals write and via config — and simply does not occupy a row in quick access. This constant keeps ALL FIVE members: it is the type’s domain, the set resolveInterruptToolNames unions over, and what makes write settable at all.

bypass is NOT a higher-autonomy rung than auto (§2.5). Both let the agent act without asking; bypass is the same autonomy with the checks removed. The ordering below is the order the rungs are offered in, and must never be presented as though auto were an incomplete bypass.

Identifiers are lower-case single words (§9.1) because the same token must work as a config value, a slash-command argument and a CLI flag — a space breaks the last two. Display names are capitalised; see APPROVAL_RUNG_LABELS.