PRODUCTAGENT · BY HARRISON JOHNSON
Claude writes the code at night.
You review it in the morning.
THE ESSAY · 8 MIN READ
33 nights of unattended Claude Code, and what I'd ship as its PM
From the run record, Aug 17 – Oct 16. Three of the asks, each from a night it went wrong:
- Refusals in the record. One report said “blocked by the fence: none” on a night with 34 refused calls.
- Sandbox on by default for headless runs. Rules alone let one line of
python3 -cescape five ways out of five. - No exit with work pending. Four nights ended on “waiting on the task notification” with no report.
PART TWO
The thing I built to run these nights
Loops is free and open source. You give it a goal, a budget, a cadence and a model; it works one bounded run at a time while you sleep and leaves you four lines in the morning.
WHAT YOU READ IN THE MORNING
## L-04 · Permit research, iteration 2
- Trying to: read the second of five county permit files and pull the generator count.
- Did: read all four documents, every page. The permit says 96 units; the agency
web page says 98. Recorded the gap as a discrepancy, did not reconcile it.
- Decided: one row per permit, not per building. Flagging it, since it is your call.
- Need from you: check the renewal on the state portal; it needs a login the fence denies.
run: 41 min · $3.80 of $6 · 0 pushes · 0 denials · progress: yesIf the four lines are missing, the run is not done. That rule is in every loop's definition of done, and the morning judge checks for it. This one is an example, modeled on a real night.
WHAT A LOOP LOOKS LIKE
A loop is a sticky note with a budget. Write the goal the way you would say it to a new hire on their first day, then pick a cadence, a model and a price. These are examples.
Watch three competitors’ changelogs. Tell me what changed and whether it matters.
weekly · sonnet · $2 a run
Ship one small fix from the backlog. Verify it renders before you report it.
nightly · opus · $6 a run
Check every box on the launch checklist against the repo. Flag the ones that lie.
every 2nd night · sonnet · $2 a run
INSTALL LOOPS · MACOS · RUNS ON THE PLAN YOU ALREADY PAY FOR
Pick one and the steps below adapt. Either way it runs on your own Mac and subscription. Nothing phones home.
WHAT HAPPENS AFTER YOU PASTE IT: FOUR QUESTIONS
Installing to ~/loops wrote pm/CHARTER.md wrote pm/LOOPS.md (empty) wrote .claude/settings.json (the fence, with your paths filled in) Armed. The checker looks every ten minutes; nothing runs until you write a loop. Loops · your first loop Four questions. One file gets written. 1 · Which agent runs the night? both are installed 1) Claude Code per-path fence; can read the web 2) Codex sandbox with the network off; harder no-push choose [1] 1 2 · What should it work on? pick a number, or type your own 1) Watch three competitors' changelogs. Tell me what changed. 2) Ship one small fix from the backlog. Verify it renders. 3) Read yesterday's support tickets. Name the top three themes. goal [2] 2 3 · How often, and how much brain? cadence [every-2nd-night] ⏎ brain: fast (Sonnet) · deep (Opus) · frontier (Fable) brain [deep] ⏎ 4 · What may it spend? per run [6] ⏎ total for this loop [48] ⏎ at most $90 a month at this cadence; ends after 8 runs Written pm/LOOPS.md (L-01, review by 2026-10-30) Trusted ~/loops in ~/.claude.json (so the fence's allow rules apply) Dry run every guard, no model call, no spend tonight the machine would run L-01. ✓ Tonight plug the laptop in. Lid open or shut. Morning read pm/nights/<date>.md
OR BROWSE THE FOLDERS
drag to scroll
