robonet-forge — Autonomous AI Development Pipeline
robonet-forge — Autonomous AI Development Pipeline
Author: Joel Johnston Date: 2026-03-20 Domain: AI Orchestration Stroke Timeline: Pre-stroke
Abstract
robonet-forge is an autonomous AI development pipeline implementing the scan-lock-worktree-striker cycle. The system continuously processes a task queue, dispatching Claude Sonnet workers to execute isolated development tasks and validating their output before integration. 2,892 source lines, 125 tests, zero external dependencies. File-based IPC — no message broker required. The pipeline achieves 47x throughput over manual development by removing the execution bottleneck while preserving the architecture bottleneck.
The Scan-Lock-Worktree-Striker Cycle
The core execution loop:
- Scan — Forgemaster continuously polls the task queue for pending work
- Lock — When a task is found, it is atomically locked to prevent duplicate execution across workers
- Worktree — An isolated git worktree is created from a clean HEAD, providing the worker with a fresh working copy
- Striker — A Claude Sonnet worker is dispatched into the worktree to execute the task
- Validate — Output is validated against acceptance criteria defined in the task envelope
- Push — Passing output is pushed to a PR for human review
The cycle is continuous. When a striker completes, the scanner immediately looks for the next task. Parallelism is achieved by running multiple Forgemaster instances, each acquiring its own lock.
Architecture
File-Based IPC
All inter-process communication uses the filesystem. No message broker, no queue service, no external dependencies.
~/.robonet-forge/
inbox/ # Task envelopes written here by any process
queue/ # Active queue, Forgemaster manages state
locks/ # Lock files, atomic creation prevents races
worktrees/ # Isolated git worktrees per task
output/ # Striker output before validation
archive/ # Completed tasks
Task envelopes are JSON files with a defined schema: task_id, uc_ref, uc_path, repo, description, acceptance_criteria, striker_type. Any process with filesystem access can submit tasks — Claude Code, scripts, other forge components, shell aliases.
Forgemaster
The orchestration core. Responsible for the full scan-lock-worktree-striker cycle. Runs as a long-lived process. Designed to be restartable — picks up where it left off from queue state on restart.
Striker Types
Each striker type has specialized system prompts and validation criteria:
| Type | Purpose | Validation |
|---|---|---|
code |
Generate or modify source code | Syntax check, imports resolve, tests pass |
test |
Write test cases | Coverage target, assertion quality check |
docs |
Generate documentation | Structure check, completeness against spec |
refactor |
Restructure existing code | Behavior preservation, test suite still passes |
Interface Model
Forge is headless. No UI of its own. All visualization lives in robonet dashboard (DashboardServer).
forge → mesh WS → DashboardServer aggregator → browser (read)
browser → DashboardServer → forge (write/commands)
- Dashboard = user control plane (view + commands)
- CLI = Claude/automation interface
- Inbox = external submission point (any process can write tasks)
The monitor terminal UI from early versions (forge monitor) was migrated to robonet dashboard. Forge owns execution, not visualization.
Task Construction
Use cases are the source. Tasks are never written directly to the queue.
- UC is authored (by Joel, via app-uclib)
- Forgemaster decomposes UC into thin task envelopes
- Each envelope carries
uc_refanduc_pathas provenance - Tasks enter the inbox, Forgemaster picks them up
This maintains a clean lineage from requirement to implementation. Every task can be traced back to a UC. Every UC can show which tasks it generated and whether they completed.
The 47x Throughput Claim
The 47x figure is real and auditable. Understanding what it measures:
- Not: AI writes 47x faster than a human
- Yes: An architect directing AI execution produces 47x the output of the same architect doing both architecture AND execution manually
The bottleneck in software development was never thinking speed. It was the gap between architectural decisions (fast) and their implementation (slow — typing, boilerplate, setup). robonet-forge eliminates that gap.
The architect conceives the task. The striker implements it. The architect validates. The loop runs continuously. The architect's thinking time is the only bottleneck — and thinking was never the slow part.
Implementation Stats
- Source lines: 2,892
- Tests: 125
- External dependencies: 0 (stdlib only)
- Lock mechanism: atomic
os.open(O_CREAT | O_EXCL)— POSIX-guaranteed exclusive creation - Worktree management:
git worktree add/git worktree remove - Striker interface: subprocess with structured stdin/stdout protocol
Relationship to robonet
robonet-forge is a supporting service in the platform ecosystem — not part of robonet-core or robonet-mesh. It uses the mesh for communication (striker status → mesh → dashboard) but operates independently. The forge pipeline accelerated robonet's own development — robonet-forge built robonet-mesh with robonet-forge running.