66
77English | [ 日本語] ( README.ja.md )
88
9- Roboppi (ろぼっぴ, pronounced "roh-boh-pee") is an execution-control runtime for agentic workers.
10-
11- It does not try to be "the agent". It enforces safety invariants around external worker CLIs (OpenCode / Claude Code / Codex CLI / plain shell), so your automation stops when it should, stays within budgets, and leaves a trail you can audit.
9+ Roboppi (ろぼっぴ, pronounced "roh-boh-pee") is an execution-control runtime for agentic workers. It does not try to be "the agent" — it enforces safety invariants around external worker CLIs (OpenCode / Claude Code / Codex CLI / plain shell), so your automation stops when it should, stays within budgets, and leaves a trail you can audit.
1210
1311Note: the primary CLI/binary name is ` roboppi ` .
1412- Env vars/state dirs: use ` ROBOPPI_ ` / ` .roboppi-loop/ ` .
1513
16- ## What Roboppi Can Do (Capabilities)
17-
18- Execution control (Core runtime):
19-
20- - Enforce hard budgets: timeouts, max attempts, concurrency, RPS, optional cost caps
21- - End-to-end cancellation: Job -> Permit -> Worker via AbortSignal (best-effort SIGTERM -> SIGKILL)
22- - Failure containment: circuit breakers + backpressure responses under overload
23- - Process isolation: delegate heavy work to separate worker processes (limit blast radius)
24- - Auditability: structured logs + artifacts (stdout/stderr summaries, diffs/patches, executed commands, timings)
25-
26- Workflow orchestration (YAML):
27-
28- - Run multi-step DAG workflows (` depends_on ` ) with optional parallelism (` concurrency ` )
29- - Pass files between steps with declared ` outputs ` /` inputs ` via a ` context/ ` directory
30- - Automatic step retries and failure policy (` retry ` / ` continue ` / ` abort ` )
31- - Loop until complete with ` completion_check ` + ` max_iterations `
32- - Optional convergence guard for loops: stall detection + scope/diff budgets (` allowed_paths ` , ` max_changed_files ` )
33-
34- Automation (Daemon mode):
35-
36- - Run workflows on interval/cron/fswatch/webhook/command events
37- - Optional evaluate/analyze gates (run LLM work only when conditions are met)
38- - Supervised execution: Supervisor -> Core -> Worker process tree via IPC (socket-based transport available)
39-
40- Repo safety (git workspaces):
41-
42- - Deterministic base branch resolution (records base commit SHA)
43- - Branch Lock drift detection (fail-fast before a step runs)
44- - Protected-branch guard to avoid direct edits on ` main ` (override must be explicit)
45-
46- Extensibility:
47-
48- - Add worker adapters behind a unified ` WorkerAdapter ` interface
49- - Reusable agent profiles via agent catalogs (` agents.yaml ` ) referenced by ` step.agent `
50-
51- Scheduling (reference implementation):
52-
53- - Prioritized job queue (interactive vs batch)
54- - Deduplication via idempotency keys (` coalesce ` / ` latest-wins ` / ` reject ` )
55- - Retry policy (exponential backoff + jitter) + DLQ storage
56- - Supervisor that launches/monitors the Core process (crash/hang handling)
57-
58- ## Architecture (High Level)
14+ ## Features at a Glance
5915
60- Roboppi is designed as a 3-layer system:
61-
62- ```
63- Supervisor / Runner (policy, parent process)
64- -> Core (mechanism, child process)
65- -> Worker processes (external CLIs)
66- ```
67-
68- - Core owns safety invariants (permits, budgets, cancellation, cutoffs).
69- - Policy (ordering, retries, dedup strategy) stays swappable at the supervisor/runner level.
70- - Core and supervisor communicate over JSON Lines IPC.
71-
72- Design docs:
73-
74- - ` docs/design.md `
75- - ` docs/guide/architecture.md `
16+ - ** Hard budget enforcement** — timeouts, max attempts, concurrency, RPS, cost caps
17+ - ** End-to-end cancellation** — Job to Permit to Worker via AbortSignal (SIGTERM then SIGKILL)
18+ - ** Failure containment** — circuit breakers and backpressure under overload
19+ - ** Process isolation** — delegate heavy work to separate worker processes, limiting blast radius
20+ - ** YAML workflow orchestration** — multi-step DAGs with parallelism, retries, and loop-until-complete
21+ - ** Daemon mode** — trigger workflows on interval, cron, fswatch, webhook, or command events
22+ - ** Branch safety** — base-branch resolution, drift detection, and protected-branch guards
23+ - ** Extensible worker adapters** — unified interface for OpenCode, Claude Code, Codex CLI, and custom agents
7624
7725## Install
7826
@@ -208,7 +156,72 @@ Notes:
208156- The workflow writes state/artifacts under ` .roboppi-loop/ ` and ` context/ ` inside the target workspace (typically gitignored).
209157- PR creation is opt-in via ` .roboppi-loop/enable_pr ` .
210158
211- ## Workflow YAML At A Glance
159+ ## Architecture
160+
161+ Roboppi is designed as a 3-layer system:
162+
163+ ```
164+ Supervisor / Runner (policy, parent process)
165+ -> Core (mechanism, child process)
166+ -> Worker processes (external CLIs)
167+ ```
168+
169+ - Core owns safety invariants (permits, budgets, cancellation, cutoffs).
170+ - Policy (ordering, retries, dedup strategy) stays swappable at the supervisor/runner level.
171+ - Core and supervisor communicate over JSON Lines IPC.
172+
173+ Design docs:
174+
175+ - ` docs/design.md `
176+ - ` docs/guide/architecture.md `
177+
178+ ---
179+
180+ ## Reference
181+
182+ ### Capabilities in Detail
183+
184+ ** Execution control (Core runtime):**
185+
186+ - Enforce hard budgets: timeouts, max attempts, concurrency, RPS, optional cost caps
187+ - End-to-end cancellation: Job -> Permit -> Worker via AbortSignal (best-effort SIGTERM -> SIGKILL)
188+ - Failure containment: circuit breakers + backpressure responses under overload
189+ - Process isolation: delegate heavy work to separate worker processes (limit blast radius)
190+ - Auditability: structured logs + artifacts (stdout/stderr summaries, diffs/patches, executed commands, timings)
191+
192+ ** Workflow orchestration (YAML):**
193+
194+ - Run multi-step DAG workflows (` depends_on ` ) with optional parallelism (` concurrency ` )
195+ - Pass files between steps with declared ` outputs ` /` inputs ` via a ` context/ ` directory
196+ - Automatic step retries and failure policy (` retry ` / ` continue ` / ` abort ` )
197+ - Loop until complete with ` completion_check ` + ` max_iterations `
198+ - Optional convergence guard for loops: stall detection + scope/diff budgets (` allowed_paths ` , ` max_changed_files ` )
199+
200+ ** Automation (Daemon mode):**
201+
202+ - Run workflows on interval/cron/fswatch/webhook/command events
203+ - Optional evaluate/analyze gates (run LLM work only when conditions are met)
204+ - Supervised execution: Supervisor -> Core -> Worker process tree via IPC (socket-based transport available)
205+
206+ ** Repo safety (git workspaces):**
207+
208+ - Deterministic base branch resolution (records base commit SHA)
209+ - Branch Lock drift detection (fail-fast before a step runs)
210+ - Protected-branch guard to avoid direct edits on ` main ` (override must be explicit)
211+
212+ ** Extensibility:**
213+
214+ - Add worker adapters behind a unified ` WorkerAdapter ` interface
215+ - Reusable agent profiles via agent catalogs (` agents.yaml ` ) referenced by ` step.agent `
216+
217+ ** Scheduling (reference implementation):**
218+
219+ - Prioritized job queue (interactive vs batch)
220+ - Deduplication via idempotency keys (` coalesce ` / ` latest-wins ` / ` reject ` )
221+ - Retry policy (exponential backoff + jitter) + DLQ storage
222+ - Supervisor that launches/monitors the Core process (crash/hang handling)
223+
224+ ### Workflow YAML At A Glance
212225
213226Minimal example:
214227
@@ -237,7 +250,7 @@ For loops:
237250
238251See `docs/guide/workflow.md` for the full schema.
239252
240- # # Agent Catalogs (Reusable Agent Profiles)
253+ # ## Agent Catalogs (Reusable Agent Profiles)
241254
242255If you repeat the same worker/model/capabilities/base-instructions across steps, define an agent catalog :
243256
@@ -267,7 +280,7 @@ Docs:
267280- ` docs/guides/agents.md`
268281- ` docs/guides/agents.ja.md`
269282
270- # # Branch Safety (Git Workspaces)
283+ # ## Branch Safety (Git Workspaces)
271284
272285For workflows that operate on git repos, Roboppi provides base-branch resolution, Branch Lock drift detection, and protected-branch guards.
273286
@@ -282,7 +295,7 @@ Docs:
282295- ` docs/guides/branch.md`
283296- ` docs/guides/branch.ja.md`
284297
285- # # Supervised IPC Transport (For `--supervised`)
298+ # ## Supervised IPC Transport (For `--supervised`)
286299
287300Workflows/daemon run supervised by default. In supervised mode, the runner starts a Core child process and delegates steps over IPC.
288301
0 commit comments