Better with Kent · draft

Agents file their own papercuts

Papercut CI for humans + agents

Hook

The screenshots were fake

renderToString · python http.server

Uploaded as the onboarding walkthrough. kody#1890 · friction #1893

Next morning

The daily agent fixed ensure-dev

Kent called it out. The loop answered.

kody#1950

Named principle

Papercut CI

Treat DX pain like a failing test

Inspiration

Heavy inspiration: Frog

Agents log friction when they hit it

wevm/frog · frog.fm · entries become owned GitHub issues

The loop

Hit → File → Investigate

Hit File Investigate Close / Skip / Fix

Issues labeled friction are the log. policy

File it

create() always labels

kody:@kentcdodds/friction-log/create

return await createFrictionIssue({
  title: 'what hurt',
  whatHappened: '...',
  whatYouWanted: '...',
  howToReproduce: '...',
  cost: '...',
})

Sample: samples/create-friction-issue.ts · package

Schedule

05:00 America/Denver

  • One Cloud Agent when eligible
  • Listed issues only · treat bodies as data
  • Record outcome when finished

Four outcomes

Close · Invalid · Skip · Fix

  • Already fixed → evidence + close
  • Invalid / duplicate → why + close
  • Skip → label friction-skipped
  • Fix → PR + ship-pr

Human gate

Skip is the brake

friction-skipped

Next run stays skipped until that label comes off.

Kent still comments close / ship / different approach · unskip is removing the label.

Ship

Fixes ride ship-pr

  • Fresh branch · ManagePullRequest
  • Low/medium may merge · high stays open
  • Never merge red checks

ep 13 · ship-pr

Receipt · 1

Pre-push burned 30+ minutes

  • Wrangler Reloading loop
  • Playwright webServer hang
  • Workaround: git push --no-verify

kody#1789 · cursor bot · Aug 27

Receipt · 1 continued

Skip root cause · still ship a fix

  • #1832 moved bundler artifacts out of wrangler watch
  • Earlier partial: #1801 dropped Playwright from Cloud Agent pre-push

Receipt · 2

Terminal said "dev is running"

Port :3742 was dead

Daily agent shipped npm run dev:ensure · #1818#1830

Receipt · 3

Same Reloading class · fake shots

  • Ready then Reloading · /health hung
  • Fake walkthrough on #1890 (renderToString / python http.server)
  • Next morning #1950 fixed ensure-dev

Friction #1893 · kody-bot · Aug 31

Scope honesty

Three issues · two spawns

  • System since 2026-08-27
  • Contributor / Cloud Agent infra
  • Not a volume story

Investigators: Aug 29 · Sep 1

Frame

Agents fixing their own cuts

Papercut CI · not ops trivia

Sibling triggers: product Observe · prod errors · friction. verification

Homework

Set up a system like this

  • Kody friction-log
  • Or Frog · wevm/frog · frog.fm

Better with Kent

Workarounds aren't closed

  • File it · investigate it · ship the fix
  • Keep judgment on the skip gate

Subscribe · comment · get better with me