# Earned Autonomy Ladder: agents earn each level from their record and your yes

> A free kit for owners moving agents from drafting to doing. Every agent action gets its own level: watch, draft, act and report, or act within a limit. A lane moves up one level only after enough clean runs over enough days and only with your yes at your own terminal. A reverted run drops it a level, an incident drops it to watch, and payments, first contact, deletes, contracts, public posts and credentials stay on draft for good.

- URL: https://paperchasewebb.ai/bots/marketplace/items/earned-autonomy-ladder-agents-earn-each-level-from-their-record-and-your-yes/
- Type: Prompt pack
- Category: Solo business
- By: PaperChaseWebb
- Works with: Claude Code, Codex, Grok Bot, Hermes (named in the listing); One Python script, a rules template, a fictional bookkeeping office with six lanes and a run log, and agent rules for each harness. Tested on Linux
- Price: Free USD
- Difficulty: Beginner
- Setup time: 15 min
- Time to result: First review in about 15 minutes
- Format: Markdown (.md) file, earned-autonomy-ladder-agents-earn-each-level-from-their-record-and-your-yes.md
- Version: 1.0, updated 2026-11-04
- License: Personal and commercial use.

## What you end up with

A written answer, per action, to whether the agent may act without asking, and the record behind it.

## What you get

- The method: one level per agent action, a written bar to move up, automatic steps down and pinned categories that never leave draft
- ladder.py: 9 rules checks and a weekly call per lane with the reason (runs, days, edit rate, rejections, reverts, incidents, cap)
- allowed, one question an agent asks before each action; a due demotion counts at once
- grants.jsonl: every promotion and demotion with who, when and a fingerprint of the record it rested on
- Promotion refused inside an agent session, without a terminal, for an unearned lane and from anyone but the owner
- AGENTS.md, CLAUDE.md, a Grok Bot standing order and a Hermes skill, a fictional example, and 44 tests

## Who it is for

Owners and small teams moving agents from drafting to acting on their own.

## Tools needed

- Python 3.8 or newer: ladder.py: rules check, a weekly review per lane (promote, hold, demote, at cap), owner-only promotion, demotions anyone can record, an allowed check before each action and status; standard library only
- Grok Bot, Claude Code, Codex or Hermes (optional): asks allowed before acting, logs every run with your outcome and sends the weekly review under AGENTS.md; never promotes itself or hides a bad outcome
- You need: Python 3.8 or newer
- You need: A run log you keep with each agent run and your outcome

Cost to run: Free. Python is free.

## How it works

1. **Run the example.** Unpack the file and run python3 ladder.py review example/rules.json example/runs.csv out/. Expected: 1 lane ready to promote, 2 on hold, 2 to demote and 1 at its pinned cap.
2. **List your lanes.** Copy templates/rules.json and add one lane per agent action, starting at 0 or 1. Expected: ladder.py check shows rules OK.
3. **Ask before acting.** Make each agent run allowed before an action and log every run with your outcome. Expected: Exit 0 only for lanes at level 2 or 3.
4. **Promote at your own terminal.** Read review.md each Monday. Promote at most one earned lane a week and type promote. Expected: grants.jsonl shows your yes; one reverted run and allowed says no.

## Sample prompt: Before every action (Grok Bot, Claude Code, Codex, Hermes)

```
Follow AGENTS.md. Run ladder.py allowed for this action and act without asking only on exit 0; otherwise draft or watch as it says. Log the run with the owner's outcome. Each Monday run ladder.py review and send review.md. Do not promote, edit rules.json or grants.jsonl, or leave a bad outcome out.
```

One prompt.

## Free preview of earned-autonomy-ladder-agents-earn-each-level-from-their-record-and-your-yes.md

````markdown
# Earned Autonomy Ladder

**"Can the agent just handle it?" should have a written answer. Give every agent action a level, raise it only on a clean record and your yes, drop it the day something goes wrong, and keep money, new contacts and public posts on draft for good.**

Version 1.0, 2026-11-04. By PaperChaseWebb Inc. Free. Works with Grok Bot, Claude Code, Codex and Hermes, or by hand. Python 3.8 or newer, no installs.

## The problem

Most owners give an agent freedom in one jump. It drafts for a week, the drafts look fine, and it is allowed to send everything. Nobody wrote down what "looked fine" meant, so when it goes wrong there is no record of what was earned, and the only fix is to take everything away at once.

This kit makes trust a level per action, earned from a record you keep anyway. An agent can be trusted to file receipts and still be on draft for client email. The bar to move up is in a file, the yes is yours, and one bad run moves the lane back down without a meeting.

## What you get out of it

- review.md each week: every lane, its level, runs since the last change, edit rate, and a call: promote, hold, demote or at cap, with the reason.
- `allowed`, one question an agent asks before each action. Exit 0 means act without asking first; anything else means draft or watch.
- grants.jsonl: every promotion and demotion with who, when, the record it rested on and a fingerprint of that record.
- Pinned categories that never rise above draft, whatever the record
````

## Test record

- Date: Nov 4, 2026
- What was run: tests/test_ladder.py (44 tests) unpacked from the pack file and run fresh on Linux, Python 3.8, 3.9, 3.11, 3.12 and 3.13; check, review, promote, apply-demotions, allowed and status on the fictional example.
- Result: 44 passed, 0 failed on all five versions; the example calls 1 lane promote, 2 hold (runs and days short, edit rate high), 2 demote (a revert, an incident) and 1 at its pinned cap; promotion refused in agent sessions, without a terminal, for the wrong name, without the typed word, for an unearned or pinned lane; the record resets after every change; the run log is never modified.
- Not run: macOS or Windows. A real business's run log. A live Grok Bot, Claude Code, Codex or Hermes session.

Copied from this item's dated test notes. What was not run stays in.

## Worth knowing

- It works from the run log. A missing or softened outcome gives a better record than the agent earned, so spot check the log.
- allowed answers the question; it cannot stop an agent that never asks. Keep tool permissions no wider than the level.
- On 2026-11-04: 44 tests passed on Python 3.8, 3.9, 3.11, 3.12 and 3.13 on Linux, run from the files unpacked out of the pack. Agent rules guide; they were not loaded inside each harness for this release.
- Level 3 limits live in your tools and notes. The kit records the level, not the limit.

## Questions

**Can an agent promote itself?** No. Promotion is refused inside an agent session, without a terminal, for a lane that has not earned it and for anyone but the owner.

**What makes a lane drop?** One reverted run drops it one level and one incident drops it to watch. Anyone may record a demotion, and allowed treats a due one as already done.

**Why are some lanes stuck at draft?** Payments, first contact with someone new, deletes, contracts, public posts and credentials are pinned. Change the list in your rules if your business needs a different one.

**What should I pair it with?** The Draft-Only Outbox (free) applies the same idea to email, and the Budget Change Card (free) to ad budget moves.

## How to get it

Free sample. Download it directly at https://paperchasewebb.ai/bots/marketplace/items/earned-autonomy-ladder-agents-earn-each-level-from-their-record-and-your-yes/, no signup.

Seller: PaperChaseWebb Inc., mgmt@paperchasewebb.com
