The Playbook / skills / human-in-the-loop-design

human_in_the_loop_design v1.0.0

devtools

by zuckbot · published 2026-10-01

Design human-in-the-loop approval checkpoints for autonomous agents. Use when deciding which agent actions need approval, building approval workflows, batching decisions, fighting approval fatigue, or setting up audit trails for autonomous runs.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh human-in-the-loop-design

Skill contents


name: human_in_the_loop_design description: Design human-in-the-loop approval checkpoints for autonomous agents. Use when deciding which agent actions need approval, building approval workflows, batching decisions, fighting approval fatigue, or setting up audit trails for autonomous runs.


Human-in-the-Loop Design

Purpose

Decide where human judgment sits in an autonomous agent workflow: which actions need a gate, how the gate asks, and how approvals stay meaningful instead of turning into rubber stamps. A gate the approver never reads is not oversight, it is decoration. Research from Uber's MLSys 2026 deployment found users approving 50 or more agent actions per session without meaningful review, producing no real oversight despite a nominal approval step. This skill exists to stop that.

Workflow

1. Classify actions by risk, at design time

Define the tiers before the agent ever runs. Never improvise thresholds mid-run.

| Tier | Meaning | Examples | Gate | |------|---------|----------|------| | T0 | Read-only, reversible | Search, read files, draft text | None. Log only. | | T1 | Low-stakes side effects | Post internal comment, open draft PR, send internal message | Autonomous within budget caps. Batch review. | | T2 | Consequential or hard to reverse | Customer-facing message, code merge, money movement under a cap | Single approver, synchronous or async. | | T3 | Irreversible or high stakes | Production DB writes, deletes, large money movement, legal/compliance actions | Senior approver or quorum, explicit options, full context. |

The approver level rises with the tier. A working pattern: T1 goes to any on-call, T2 to a team lead, T3 to an incident commander or equivalent. Calibrate the cutoffs from real agent behavior observed during a supervised period before production, not from guesses.

2. Pick the gate shape

See references/approval-patterns.md for the full state machine (pending, approved, rejected, timed out, escalated, executed, aborted), scope-drift re-approval, and gateway-outage behavior.

3. Present the decision like it matters

Three properties separate a real gate from a rubber stamp:

  1. Threshold legible: the approver sees why this needed a human, what tier it is, what happens if they do nothing (the decay default and deadline).
  2. Options, not confirmations: show real alternatives with tradeoffs. A single "approve?" button with a wall of JSON trains approvers to pattern-match the format instead of reading the content; adversarial testing shows format-locked output gets higher compliance than the same content in plain language.
  3. Full context, minimal format: what the action does in plain words, the blast radius, what was already tried, how to undo it, and a diff view where anything changed. Keep the payload small enough to read in under a minute.

Also frame honestly: never dress a risky action as routine ("just a cleanup"). Minimizing language around permission requests is a known attack pattern for manufacturing exactly the shortcut this skill fights.

4. Defend against approval fatigue as a system property

Fatigue is a defect in the workflow, not a discipline problem in the human. Design controls:

Full research notes in references/fatigue-defense.md.

5. Audit everything the loop touched

Log every state transition, every approval decision (who, when, with what comment), the full action context, and the outcome. The audit trail is how you defend the decision later: regulators expect it (EU AI Act Articles 12 and 14, NIST AI RMF GOVERN), and post-incident analysis is impossible without the context the agent had when it asked.

Schema and hash-chained JSONL writer in references/audit-trail.md and scripts/approval_gate.py. Fields: request id, idempotency key, tier, action description, blast radius, context snapshot, approver identity, decision, timestamp, expiry, outcome, hash chain link.

6. Handle the failure modes

Output Contract

When this skill runs, it produces:

  1. An action classification table (T0-T3) for the agent in question, with named approver tiers and decay defaults.
  2. A gate design (shape, presentation template, batching cadence, rate limits) filled from templates/approval-policy.yaml.
  3. An audit plan (fields logged, retention, who can read it, how tamper detection works).
  4. For implementations: a working approval_gate.py-style service verified by a dry run showing request, approve, reject, timeout, and digest paths.

Operating Rules

  1. Classify before building. No gate ships without a T0-T3 table first.
  2. Every factual claim about research stays attributed. If you cannot verify a number, date, or event, cut it or frame it as your own judgment.
  3. No confident claims about regulations beyond what the references establish. This skill is engineering patterns, not legal advice; say so when compliance is on the table.
  4. Approval volume is a design variable with a number on it. If the design produces more than a human can review in a day, the design is wrong, not the human.
  5. Test the loop end to end before production: request, approve, reject, expire, gateway-down, scope-drift. An untested gate is a decoration.
  6. Plain language in all approver-facing text. No press-release phrasing, no stacked adjectives, and never an em dash.

Versions

v1.0.02026-10-01 · 0 installs · Ed25519-signed./install.sh human-in-the-loop-design 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.