The GOVENANT Standard — Part 7: Earned Autonomy and Resilience
Oversight is the default; autonomy is earned per task type on evidence and revoked on one breach. Regulated actions are pinned by an immutable ceiling no track record — and no configuration value — can ever lift. Around it all: paranoid detection with governed escalation, honestly described (it detects, pauses, and escalates; recovery is a human or a higher-tier decision — never claim “self-healing”).
7.1 The three tiers
| Tier | Name | Semantics | Starting point for |
|---|---|---|---|
| 2 | Approval | A human authorizes every act before it executes. | Every new task type (cold start keeps the gate). |
| 1 | Auto + notify | Executes, then surfaces to a human. | Proven-reversible task types. |
| 0 | Silent | Routine, proven work runs unattended. | Earned only. |
Rules:
- Promotion requires evidence: sustained approval rate over a minimum sample (e.g. ≥90% over ≥8), thresholds in code, gated behind an explicit enablement flag. Calibration (Part 6 §6.5) is an input: a role that doesn’t know its own hit-rate cannot be promoted.
- Demotion is hair-triggered and MUST exist. One human correction or breach drops the tier and writes a demotion row (a promotion path without a demotion path is not “earned autonomy”; it is a ratchet). A cooldown reinstates the human gate.
- Pinning is code, not config. The audit’s sharpest finding in this area: an
autonomy='full'config value that auto-applied every lever, including destructive ones. TheNEVER_AUTOcheck runs after every mode gate, so no setting can defeat it. Probe: attempt to promote a pinned action via config/UI — it must be impossible. - Atomicity: the decision row and its approval-queue row are written atomically; expiry writes
decided_by='system:expired'+ timestamp (Part 4 S7).
Autonomy is monotonic and reversible: flip a flag, raise a tier, widen a cap — with the failure cost known in advance. Autonomy you can trust is the product.
7.2 What may never be autonomous (the pinned set)
Domain-mapped examples — each deployment declares its own NEVER_AUTO set in code review:
| Domain | Pinned forever (Tier 2) |
|---|---|
| GTM | Spend-cap raises, sending to unverified recipients, contract/pricing commitments, PR-wire submission |
| Engineering | Production deploy/rollback, force-push, secret rotation, dependency-source changes |
| Legal | Filing submission, privilege determinations, client communications of record |
| All | Deleting ledger data (impossible anyway — S1), modifying the pinned set itself |
7.3 The three monitors
Resilience is three independent watchdogs, each obeying watchdog independence (a monitor must not share the failure mode it watches — not its flag, not its schedule, not its data source, not its grader).
Circuit breakers — per external dependency
Every external dependency (LLM APIs, vendor APIs, DB, deploy targets) is wrapped: N consecutive
failures open the breaker, callers fast-fail, cooldown, half-open trial. Alert on the
open transition only (not every failure). A breaker table where trip_count=0 on every row
and no transition has ever been exercised is a dead mechanism — test-trip each breaker at install.
Field lesson: a retired model ID silently broke every LLM call for days while agents “looked
busy.” A breaker that opens is also a demotion signal (§7.1) for duties depending on it.
Liveness monitor — per role
Expects output from a role only when its feature flag is ON and its dependencies are
healthy — a correctly-paused agent is not a false alarm, and an alarm that cries wolf gets
ignored. Alert on transitions; escalate stalls to both ops channel and the executive layer.
With the roster, liveness sharpens from “did the role act at all?” to “did each due duty
resolve?” — the conductor’s missed rows are the liveness signal (Part 3 §3.6).
The monitor itself needs a heartbeat: if its own schedule dies, meta-health must notice
(no shared substrate blind spot).
Delivery-throughput monitor — per terminal edge
The performed-autonomy detector, run daily:
- Set-relationship invariants, not zero-counters: drafts ≫ sends? same entity re-processed N× without shipping (churn)? coverage of qualified demand < X%? An absolute-zero check missed a live churn loop (64 contacts drafted 8×, 90% blocked) for weeks — the counters were all nonzero.
- Demand-aware silence: “demand upstream, nothing shipped at the edge in 7d” fires an alarm.
- Blocked vs starved: distinguish real failure (work attempted, structurally prevented — reasons required) from starvation (no upstream work) — the responses differ.
- Actuation is half the mechanism (pair rule): the monitor’s breach events MUST have a live consumer duty that responds (throttle, reroute, escalate). A detector whose alarms pile up unconsumed is AP-6, the most common monitor defect in the field.
7.4 Escalation geometry
Every escalation lands in three places at once: an acting duty (immediate mitigation), the executive layer (a governed decision about the cause), and the human channel (transition-only, reason attached). All three are rows; none is only a log line.