/rpi - Full Lifecycle Orchestrator
Quick ref:
/discovery->/crank->/validation, then report.
Execute this workflow. Do not only describe it. RPI is autonomous unless
--interactive is set. The user touchpoint is after validation, or after a
real blocked state exhausts retries. Read
references/autonomous-execution.md when
you need the full autonomy contract.
Core Contract
RPI delegates via Skill(skill="discovery", ...),
Skill(skill="crank", ...), and Skill(skill="validation", ...) as separate
tool invocations. Keep strict delegation on by default; do not compress phases,
replace phase skills with direct agent spawns, or skip validation. Read
../shared/references/strict-delegation-contract.md
for the full anti-compression contract.
RPI owns one lifecycle objective across all phases. Preserve the discovered
epic_id when present; otherwise preserve the original goal and execution
packet objective. A child bead or one ready slice is context, not a replacement
objective. <promise>PARTIAL</promise> from /crank means retry Phase 2 on the
same objective.
Route And Classify
- Create
.agents/rpi/. - Resolve
--from:- default,
research,plan,pre-mortem,brainstorm-> discovery implementationorcrank-> implementationvalidation,vibe, orpost-mortem-> validation
- default,
- If the input is a bead and
--fromis absent, resolve it withbd show:- epic -> implementation with that epic
- child with parent -> implementation with the parent epic
- Classify complexity:
fast: short/simple goal or--fast-pathstandard: medium goal or one scope keywordfull:--deep, complex-operation keyword, 2+ scope keywords, or >120 chars
- Log
RPI mode: rpi-phased (complexity: <level>).
Track state compactly:
rpi_state = {
goal: "<goal string>",
epic_id: null,
phase: "<discovery|implementation|validation>",
complexity: "<fast|standard|full>",
test_first: <true by default; false only when --no-test-first>,
cycle: 1,
verdicts: {}
}
Complex-operation keywords include refactor, migrate, rewrite,
redesign, rearchitect, overhaul, decouple, deprecate, split,
extract module, and port. Scope keywords include all, entire, across,
everywhere, every file, system-wide, global, and codebase.
Phase DAG
Enter at the routed phase and run every phase after it.
- Discovery: invoke
/discovery <goal> [--interactive] --complexity=<level>. On DONE, read.agents/rpi/execution-packet.jsonor the run archive and preserve its objective spine. On BLOCKED, stop with the discovery verdict. - Implementation: invoke
/crank <epic-id>when the packet hasepic_id; otherwise invoke/crank .agents/rpi/execution-packet.json. Pass--test-firstor--no-test-firstthrough. On DONE, recordao ratchet record implement 2>/dev/null || trueand continue. On PARTIAL or BLOCKED, retry the same objective up to 3 total attempts. - Validation: invoke
/validation <epic-id> --complexity=<level>when an epic exists; otherwise invoke/validation --complexity=<level>. Add--strict-surfaceswhen--qualityis set. On FAIL, extract findings, re-run/crankon the same objective, then re-run/validation, up to 3 total validation attempts. On DONE, recordao ratchet record vibe 2>/dev/null || true. - Report: summarize phase verdicts and epic status using
references/report-template.md. With
--loop, restart from discovery on FAIL whilecycle < max_cycles. With--spawn-next, read.agents/rpi/next-work.jsonland suggest the next command without invoking it.
Phase Data Contract
The execution packet carries the repo execution profile through
contract_surfaces, done_criteria, and queue claim/finalize metadata. Keep
the latest alias at .agents/rpi/execution-packet.json and read
references/phase-data-contracts.md for
schemas and archive paths.
Complexity-Scaled Gates
Pre-mortem
complexity == "low"or"fast": inline review, no spawning (--quick)complexity == "medium"or"standard": inline fast default (--quick)complexity == "high"or"full": full council, 2-judge minimum; max 3 total attempts
Final Vibe
complexity == "low"or"fast": inline review, no spawning (--quick)complexity == "medium"or"standard": inline fast default (--quick)complexity == "high"or"full": full council, 2-judge minimum; max 3 total attempts
Post-mortem (STEP 2)
complexity == "low"or"fast": inline review, no spawning (--quick)complexity == "medium"or"standard": inline fast default (--quick)complexity == "high"or"full": full council, 2-judge minimum; max 3 total attempts
Flags
| Flag | Default | Purpose |
|---|---|---|
--from=<phase> | discovery | Start at discovery, implementation, or validation |
--discovery-artifact=<path> | unset | With implementation start, convert an existing artifact into the handoff packet |
--interactive | off | Human gates in discovery/validation |
--auto | on | Fully autonomous default |
--loop --max-cycles=<n> | off / 3 | Iterate when validation fails |
--spawn-next | off | Surface follow-up work after reporting |
--test-first | on | Pass strict-quality preference to /crank |
--no-test-first | off | Explicitly opt out of strict-quality |
--fast-path / --deep | auto | Force fast or full complexity |
--quality | off | Make validation strict surfaces blocking |
--dry-run / --no-budget | off | Report only, or disable phase time budgets |
Examples
User says: /rpi "add user authentication"
Run discovery, implementation, validation, then report.
User says: /rpi --from=implementation ag-23k
Resolve the bead scope, run implementation and validation, then report.
User says: /rpi --deep "refactor payment module"
Use full council gates across the lifecycle.
Read references/examples.md for resume, interactive, loop, and artifact-mode examples.
Troubleshooting
| Problem | Response |
|---|---|
| Discovery BLOCKED | Stop and report discovery's manual-intervention reason |
/crank returns PARTIAL | Retry /crank on the same objective; do not narrow to a child slice |
| Validation FAIL | Re-crank with findings, then re-validate, up to 3 total attempts |
| Packet shape unclear | Read references/phase-data-contracts.md |
Reference Documents
- references/autonomous-execution.md
- references/complexity-scaling.md
- references/context-windowing.md
- references/discovery-artifact-mode.md
- references/error-handling.md
- references/examples.md
- references/gate-retry-logic.md
- references/gate4-loop-and-spawn.md
- references/phase-budgets.md
- references/phase-data-contracts.md
- references/report-template.md
- references/troubleshooting.md