The problem: a one-person AI agency can collect dozens of agent tools, but they don't connect — one brainstorms, another tests, another merges, and the human glues them together every day. The glue work is what sinks a solo vibe coder.
The solution in today's radar: coleam00/ai-software-factory is a full autonomous software factory: you write a PRD or file an issue, and it slices the work, builds it, verifies the running app, has two independent AI reviewers decide, and merges through a deterministic gate — while you stay at the two places a human matters most: deciding what to build, and judging what got built in staging. It is the closest open pattern to Agency OS itself verified in this radar so far.
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 26 (most recently obra/superpowers; earlier: SkillSpector, vercel-labs/skills, OMA, Strivy, agent-device, Trivy, OSV-Scanner, Playwright, OpenCode 2.0, promptfoo, Codex CLI, dzhng/skills, cve-lite-cli, QA Wolf CLI, paperclip, Astryx, and others) — today's factory is not a repeat.
bin/ holdout-fence hardening ("Fence the holdout verifier's per-scenario tools"); DECISIONS.md updated Oct 26. 291 commits, 0 tagged releases — this is an update to an active project, not a new release.holdout-exposures.jsonl.pythonw, only while you are logged on (VERIFIED from the README; full-time unattended runs target a Linux server). Prerequisites: git, Python 3.10+, gh authenticated with the workflow scope (gh auth login -s workflow, gh auth setup-git), bun, uv, a coding agent, and a GitHub remote.All workflow names, artifacts and behaviors below are VERIFIED from the repo README (workflow table, commands, and three-files sections).
| Agency OS stage | Factory module | Artifact it produces | Which gate consumes it |
|---|---|---|---|
| LEAD | — not covered | — | — |
| DISCOVERY | archon-discoveries | Verified, deduplicated findings; optionally published issues | DISCOVERY gate: findings must be verified before publication — discovery never decides what the product becomes |
| PROBLEM_DEFINITION | You file issues / write the PRD | PRD; linked issues | The backlog is never invented — intake only picks up what is there |
| PROPOSAL | archon-backlog (PRD → ordered issues, publication=approve) | Ordered backlog; first ticket makes the product runnable end to end | Human approval at backlog publication |
| SPECIFICATION | Three human files: MISSION.md (with never-become list), harness/END-TO-END.md journeys, .factory/holdout/HOLDOUT.md | Mission with out-of-scope list; 2–5 plain-English journeys; fenced holdout scenarios | Journeys describe what exists TODAY — a journey for future behaviour keeps the gate red before the first lap; drift is recognised via the never-become list |
| ARCHITECTURE / DEVELOPMENT | archon-ship-block, archon-loop laps (planning + delivery rounds) | PRs from planned delivery; per-lap work-item claims for parallel laps | Deterministic merge gate reads required_checks and protected_paths; protected paths refuse agent edits to governance files |
| QA | archon-validate, archon-verify-runtime (+suite), archon-regress, holdout verifier | Recorded runtime evidence against the running app; calibration: baseline verified, deliberate fault failed, wrong-identity check inconclusive | QA gate: evidence verified by script before the next step — not agent claims |
| SECURITY | — not covered (see Honest Gaps) | — | — |
| CEO_REVIEW / RELEASE | merge=approve mode, archon-merge-queue, archon-deploy | Human-watched first lap; approved merge; deployed revision read back | Human sees a whole lap before any merge is automatic; deployment rolls the default branch onto the service only when deploy/health commands exist |
| MAINTENANCE | archon-manager, docs/incidents.md | Health sweeps (runs that never started, infra failures, leftover instances); incident lessons | MAINTENANCE gate: evidence-based incident records; escaped defects become new holdout scenarios |
| REUSABLE_COMPONENT | Partial — new holdout scenarios written before each new product section | Shared holdout scenarios, committed and fenced | Not a component library |
protected_paths, required_checks), not a full lifecycle state machine. It complements gate_engine.py — it never replaces it.holdout-exposures.jsonl — an audit trail of agents peeking at the answer key.merge=approve so the reviewer approves instead of merging.gh (gh auth login -s workflow, then gh auth setup-git); bun; uv; your coding agent with a working subscription; a throwaway GitHub repo.git clone https://github.com/coleam00/ai-software-factory ~/ai-software-factory, then from the scratch repo root: python ~/ai-software-factory/bin/factory.py init, then paste the README's setup prompt into your coding agent and let it configure Archon and write the three files with you.python factory/consumer.py run archon-holdouts --input source=PRD.md, then archon-backlog --input prd=PRD.md --input publication=approve; then ONE lap on the first issue with python factory/consumer.py run archon-loop --input merge=approve. Verify with python factory/consumer.py doctor and list.HOLDOUT.md for one existing project, a small verification script only the QA gate can call, and add the three calibration checks to a copy of precommit_check.py on a test branch. Observe one run; no gate-engine changes.merge=approve lap in a scratch repo and study the evidence record it produces.