Context
A personal Python control plane. You label a GitHub issue; the factory produces architecture, a plan, an implementation, verification and repairs as a stack of pull requests. State lives in SQLite. Built solo in two weekends.
Problem
A coding agent left alone either stops at the first failing check or βfixesβ it by silencing the check. Neither is acceptable for work that a human has to merge. The process needs bounded autonomy and a second opinion on every repair.
Approach
- Stages: architecture, plan, implementation, verification, repair. Each stage is a separate agent run with its own PR, so each step is reviewable on its own.
- Human approval gates: a person approves the architecture and the plan before implementation starts, and a person merges the final PR. Between gates the factory runs on its own.
- Bounded repair: at most 10 repair attempts per issue.
- An independent review agent judges every repair: did it fix the root cause, or did it only make the check pass? A repair that only silences a check is rejected.
flowchart TD
I[Labelled issue] --> A[Architecture] --> H1{{human approves}} --> P[Plan] --> H2{{human approves}}
H2 --> C[Implement] --> V[Verify]
V -->|fails| R[Repair, max 10 attempts] --> J[Review agent: root cause fixed?] --> V
V -->|passes| M{{human merges}}
Outcome
Issues go from label to mergeable PR stack without me in the loop between the gates, and repairs that just hide a failure never reach the merge step. It is never fully autonomous by design.
The repository is private. A walkthrough is available on request.