harrisonhjohnson/productagent · /boring
000%
✦ back 2 1999 mode ✦

PRODUCTAGENT

Let an agent run a loop
while you sleep.

claude code · codex · your mac · your plan · 8 harnesses

INSTALL LOOPS · MACOS · RUNS ON THE PLAN YOU ALREADY PAY FOR

I use

Pick one and the steps below adapt. Either way it runs on your own Mac, on your own subscription, and nothing phones home.

~ · install.sh
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

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, not live loops.

  • 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

  • Read yesterday’s support tickets. Cluster them. Name the top three themes.

    nightly · sonnet · $3 a run

  • Check every box on the launch checklist against the repo. Flag the ones that lie.

    every 2nd night · sonnet · $2 a run

  • Draft the weekly update from this week’s reports. I edit. I send.

    weekly · opus · $4 a run

  • Find ten companies that look like our best customer. Say why, with links.

    every 3rd night · sonnet · $3 a run

pm/nights/2026-09-15.md
## 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.
- Where to look: pm/nights/loops/L-04.md, data/ledger-2026-09-15.md

run: 41 min · $3.80 of $6 · 0 pushes · 0 denials · progress: yes

If 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.

flow-designflow-designwhat this folder doesA progressive design interview: one question per screen, ending in a clickable HTML prototype of a linear user journey (onboarding, checkout, wizard).global
SKILL.md74 lines
loopsloopswhat this folder doesGive an agent a goal, a budget, a cadence and a model. It works one bounded run at a time while you sleep, inside a fence, and hands you four plain sentences in the morning.system
README.md178 lines
init.sh171 lines
install.sh144 lines
loops-spec.md244 lines
MACHINE.md161 lines
settings.json116 lines
prototype-swarmprototype-swarmwhat this folder doesCrawls a multi-screen HTML prototype for undefined click destinations and spawns one generator agent per missing screen, with a handoff packet written by the source screen, until the click graph is covered.global
SKILL.md162 lines
self-maintenanceself-maintenancewhat this folder doesThe one way an unattended run may touch its own loop registry, and the one place a "need from you" becomes a decision you settle with a single command instead of a paste.system
README.md126 lines
loopctl.py599 lines
loops_registry.py122 lines
pm-strategistpm-strategistwhat this folder doesA product and strategy advisor agent that blends three lenses (build taste, business structure, PM execution) and pressure-tests ideas instead of cheerleading.global
pm-strategist.md51 lines
todotodowhat this folder doesA TODO list for PMs in one markdown file, reachable from Claude Code and from Telegram: capture, see what's due, triage, and hand items to an agent that asks before it acts.system
README.md59 lines
README.md68 lines