The crew
Three AI agents, one script and me. The agents carry no tools.
- AI agent
Planner
Decides whether to build, ask or refuse.
- Reads
- The issue, in my words, and my 12 rules
- Returns
- A plan, one question, or a refusal, naming one rule
- Tools
- None. One model call, one turn
- Can’t
- Write, post or touch a repo
#19: cited rule 6 and planned a small script.
- AI agent
Builder
Writes the change the plan describes.
- Reads
- The plan and the files it names
- Returns
- New contents for 1–3 files
- Tools
- None. One model call, one turn
- Limit
- Under 300 changed lines; protected paths refused
#19: two files, +36 −1. The bosun opened the PR.
- AI agent
Reviewer
Checks the work against the plan.
- Reads
- The plan, the change, and the check result
- Returns
- Approve, or send it back once
- Tools
- None. One model call, one turn
- Can’t
- Review its own work or merge
#19: approved, checks passing.
- Script · not AI
The bosun
Does all the acting, by rules it can’t bend.
- Runs
- Only issues I file, on two enrolled sites
- Does
- Checks every reply, opens the draft PR, posts comments after a leak scan
- Where
- By hand, on my Mac. Each model call runs in an empty folder with no settings
- Can’t
- Merge
#19: opened draft PR #20.
- Human
Me
Decides what ships.
- Reads
- The draft PR and the crew’s notes
- Returns
- Merge, or don’t
- Power
- The only one who can merge; GitHub enforces it
- Waits
- #19 took the crew under two minutes; it then waited on me
#19: closed it. Nothing shipped.
Why no tools?
An agent that can only return text can’t push, merge or post anything. The bosun checks that text, then acts. Nothing reaches a repo without passing a script first, and nothing ships without me.