The problem: you are one person. Even with AI agents, one client project means juggling specs, reviews, fixes and merges — and agents drift: they say "done" before the work actually passes review. You need a system where nothing advances until a defined success criterion is met, without babysitting every step.
The solution in today's radar: nexu-io/looper runs a small AI dev team on your own machine. Label a GitHub issue looper:plan and specialized agents — Planner → Reviewer ↔ Fixer → Worker — loop, each against its own exit condition (spec reviewable, review clean, threads resolved, checks pass), until a PR is ready for your human merge. GitHub itself is the workflow state: labels gate every transition, so you can pause, intervene, or take over at any boundary. Local, inspectable, stoppable — no hosted control plane.
Format note: single-featured-factory layout (standing focus set Oct 25, 2026); the Ethiopia business-opportunity section remains removed. Prior reports were available through Oct 29 (most recently jmanico/grim-prompter; earlier: coleam00/ai-software-factory, obra/superpowers, SkillSpector, vercel-labs/skills and more). Looper has not been featured before. All facts below were verified today from the GitHub repo, README and releases page; star counts not verified and therefore not reported.
looperd (local background daemon that polls the forge, runs loops, manages git worktrees) and looper (CLI for ps, logs, stop). Every loop runs in its own isolated git worktree, so agents work in parallel without stepping on each other.looper:spec-reviewing); 🔍 Reviewer loops until the PR meets the bar (no actionable threads, clean review); 🔧 Fixer loops until reviewer threads are handled; 🚢 Worker loops until the PR is ready for merge (implements the looper:spec-ready spec PR, runs checks, iterates on its own output).opencode, claude-code, codex, cursor-cli, grok-build, pi, omp (bring your own model, local models possible). Open source ≠ free model access.All module names, artifacts and behaviors below are VERIFIED from the repo README today.
| Agency OS stage | Factory module | Artifact it produces | Which gate consumes it |
|---|---|---|---|
| LEAD / DISCOVERY / PROPOSAL | — not covered | — | — |
| PROBLEM_DEFINITION / SPECIFICATION | Planner loop (reads the issue, explores the repo, drafts and critiques the spec until reviewable) | Spec PR labeled looper:spec-reviewing | looper:spec-ready label gates implementation start |
| ARCHITECTURE | — not covered (spec explores the repo, but no architecture stage) | — | — |
| DEVELOPMENT | Worker loop (implements the spec on top of the spec PR, runs checks, iterates on its own output) | Implementation PR with checks green, ready for human review/merge | Human merge decision (hard stop) |
| QA | Reviewer ↔ Fixer loop (re-reads the PR on every new commit, posts inline threads, ping-pongs until no actionable threads remain) | Clean review with resolved threads | Reviewer's own exit condition; worker waits on green checks |
| SECURITY | — not covered (biggest gap) | — | — |
| CEO_REVIEW | Human merge; HITL escalation + one-command human takeover (Jul 2026); pause/intervene at any label boundary | Your merge approval | Matches Agency OS human-approval rule for release |
| RELEASE | Partial — ships PRs to the forge; no deploy pipeline | Merged PR | — |
| MAINTENANCE | Continuous loops across many registered repos; reviewer follow-up sweeps (v0.16.2); new opt-in reviewer maintainability skill (Oct 28) | Cleanup/fix PRs | Ongoing loops; SQLite as internal project authority (Jul 2026 refactor) |
| REUSABLE_COMPONENT | — not covered | — | — |
gate_engine.py, never replaces it; Agency OS's project-state.json stays authoritative.looper ps / logs / stop; no hosted control plane, matching the one-person, own-your-stack model.looper logs.docs/installation.md first.curl -fsSL https://raw.githubusercontent.com/nexu-io/looper/main/scripts/install.sh | sh, then looper bootstrap, then looper project add ~/src/scratch-repo (a throwaway local git checkout you own — not a client repo).looper:plan, assign it to yourself, and watch with looper logs.looper:spec-reviewing; after it reaches looper:spec-ready, the Worker implements it and a PR with green checks appears — and you decide whether to merge. No WSL? Skip the run today and read README.md + skills/looper/SKILL.md instead — the pattern alone is valuable.looper stop when done; never execute untrusted code from issues.gate_engine.py.project-state.json, which remains authoritative.gate_engine.py and prepush_release_check.ps1 catch the same failure class.