Move a step to AI

The running jobjob_7Hq2 · accepted · document.fr-CA.pdf · $49.00 final

A line answers one question, where a person still changes the work, and moves between its rungs on the record. A step moves down when the evidence clears a bar scaled to what a miss costs, slice by slice and tied to the model that earned it, and moves back up on its own. A reserved act never moves, and what it learns from still does.

A line answers one question: where does a person still change the work? The rungs are the places a person can stand at a step. This page is how a step moves between them: on evidence the record holds, scaled to what a miss costs, and back up the week the evidence breaks.

From → toWhat it freesWhat the buyer waits forWhat moves it back up
every job → a samplethe act on each job the sample skipsnothing: a sampled job ships firsta week over the bar, or an upheld send-back on a job no person saw
→ flagged, and a sample of the restthe sample's acts on jobs the review passedthe flagged jobs, while a person reads themthe same
→ flagged onlyevery act on a job the review passesthe flagged jobsan upheld send-back on a job the review passed
→ AI aloneevery act at the stepnothingthe first upheld send-back
reservednothing: the line is how the Service meets licensing by designthe person's act, every timeit never moved

Inside the sample rung, the share halves each week the sampled send-backs stay under 2%, as a sample that falls runs it. That weekly rule moves the share. The bar below moves the step off the rung, so a sample can halve every week and still wait for its evidence.

human.evidence names the bar. check sets 'high' on every step that acknowledges a clock, and prints it:

BarFor a miss thatJobs a person saw at this rungOverUpper 95% bound on changesAlso
'standard', the defaultthe next week catches10014 daysunder 5%: one change in 100 clears it, two need 124—
'high'misses a date1,000182 daysunder 0.5%: one change in 1,000 clears it, two need 1,258—
'critical'no one can undo1,000182 daysunder 0.5%a holdout, with no upheld send-back on a job AI shipped alone

An object of your own, { jobs, days, under, holdout }, sets any other bar. by: [...] names the slices the bar is checked in, by the same predicate hold --where takes, so each slice clears or holds on its own.

Run
npx services.dev line --all --live
magic values: none
api.lawyer · live · 16 Nov · every step a person is still on, ranked by what moving it frees a month
  step              rung                         evidence, against its bar                      ready  frees a month
  docket-watch.ack  a watcher on every ack in 7d  1,206 jobs · 182 days · 0 changes · ≤0.25% of 0.5%  now    $763.80
  reserved          7 acts on 5 Services keep their person whatever the count says · line <service> shows what moves under each
  apply             npx services.dev line apply docket-watch
Run
curl https://api.lawyer/owner/line -H "authorization: Bearer $OWNER"
200 · magic values: none
{
  "object": "list",
  "data": [{
    "object": "line",
    "step": "docket-watch.ack",
    "rung": "always",
    "next": { "rung": "sample", "human": { "sample": "25%", "floor": "5%", "by": "watcher", "evidence": "high" } },
    "evidence": { "bar": "high", "jobs": 1206, "days": 182, "changes": 0, "upper": 0.0025, "under": 0.005, "model": "claude-x@2026-05-20" },
    "ready_at": "2026-11-16",
    "frees_usd_month": 763.80
  }],
  "reserved": 7
}

api.lawyer's docket watch clears the high bar. A watcher acknowledges every date inside its last week, and in 26 weeks never changed the AI's read:

Run
npx services.dev line docket-watch --live
magic values: none
Docket Watch · ack · watcher · an open act: rules.ts says acknowledging a date is a delivery act
  rung      a watcher on every ack inside 7 days of a date
  bar       high, as check sets it for a step that acknowledges a clock: 1,000 jobs over 182 days, upper bound under 0.5%
  evidence  1,206 acks over 26 weeks · the watcher changed the AI's read on 0 · upper bound 0.25% · check pinned to claude-x@2026-05-20 throughout
  ready     line.ready · the next rung is a sample that falls · $3,618.00 back over the 26 weeks at its 25% start, $4,582.80 at its 5% floor
  proposes  services/docket-watch.ts
            −   deliver: { check: 'ai', ack: { by: 'watcher', when: job => job.clocks.inside('7d') } },
            +   human: { sample: '25%', floor: '5%', by: 'watcher', evidence: 'high' },
            +   deliver: { check: 'ai' },
  apply     npx services.dev line apply docket-watch writes the change; deploy --live ships it with this evidence in its notes

A move down is a change to your file, so it ships through a deploy with its evidence in the version's notes. A move back up needs no deploy: the step goes back a rung for new jobs and records line.reverted.

Checked by office, the same step is ready in one slice and held in another, and a slice no job has reached starts at the top rung:

Run
npx services.dev line docket-watch --by office --live
magic values: none
Docket Watch · ack · the high bar, slice by slice · evidence: { bar: 'high', by: ['office'] }
  office              acks   changes  upper   the bar
  USPTO               1,066  0        0.28%   ready
  PCT national phase    140  0        2.1%    held · 140 of the 1,000 jobs it needs
  EPO                     0  —        —       none yet · its first job starts at the top rung, line.reverted { because: 'slice_new' }
  proposes  the sample for USPTO acks only · a watcher stays on every PCT and EPO ack

A line's evidence belongs to the model that earned it. A deploy that changes an AI step's model, brief or lenses carries the evidence forward only when the newest eval shows no lens finding fewer grounds. Otherwise each line that moved on it goes back one rung for new jobs, with line.reverted { because: 'model_changed' }. The 13:55 deploy that ended an incident carried its lines on evl_3Lq7:

Run
npx services.dev deploy --live   # 30 Nov: docket-watch.check pinned to claude-x@2026-11-26
magic values: none
api.lawyer · 2026-11-30.1 · sha256:0c5d9e27a1f84b63… · tested 11 minutes ago
  checks  plan, stripe, model, domain and the live suite · 0 failed
  lines   docket-watch.ack moved on evidence earned on claude-x@2026-05-20 · evl_3Lr1 against 2026-11-30.1: 0 dates missed of 412, as on live · the evidence carries forward
✓ live    2026-11-30.1 · version.live

The person stays, and the work around them improves. Each change an attorney makes becomes an eval label and a lens proposal, so the next version drafts closer to what they sign:

Run
npx services.dev line trademark-response --live
magic values: none
Trademark Office Action Response · respond · attorney · reserved by rules.ts to bar admission
  rung      the attorney signs every response · the line never moves
  changes   attorneys changed the AI's draft on 23 of 412 (5.6%) · each change is an eval label: evals create --label attorney-changes
  lenses    the changes proposed 1 lens, genericness · it shipped in 2026-11-02.1
  act time  p50 18m in August → 11m in November · the attorney's $175.00 is unchanged: flat pay is earned on the act

A job's line is pinned to its version, so a move reaches new orders only. The Service's Site and Docs reprint who does the work on the next deploy, and a subscription hears line.moved before its next mint.

human: { holdout: '10%' } ships a random share of a line's jobs the way the next rung down would, with a person checking each after delivery, so the evidence includes what buyers do with the AI's work alone. A defect a holdout finds is redone at no charge before the buyer acts on it. check refuses a holdout on a reserved act. Holdouts run on Team.

Call (CLI)APIEventOn the consolePlan
line <service> [--all] [--by <field>]GET /owner/line?service=line.ready/console/lineLaunch
line apply <service>POST /owner/line/:service/applyline.moved/console/lineLaunch