Quick Ref: One command, full lifecycle. /discovery → /crank → /validation. Thin wrapper that delegates to phase orchestrators.
Works with
YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.
THREE-PHASE RULE + FULLY AUTONOMOUS. Read references/autonomous-execution.md — it defines the mandatory 3-phase lifecycle, autonomous execution rules, anti-patterns, and phase completion logging. Unless --interactive is set, RPI runs hands-free. Do NOT stop after Phase 2. Do NOT ask the user anything between phases
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionrpiExecute the skills CLI command in your project's root directory to begin installation:
Fetches rpi from boshu2/agentops and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate rpi. Access via /rpi in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
2
total installs
2
this week
243
GitHub stars
0
upvotes
Run in your terminal
2
installs
2
this week
243
stars
Quick Ref: One command, full lifecycle.
/discovery→/crank→/validation. Thin wrapper that delegates to phase orchestrators. YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it. THREE-PHASE RULE + FULLY AUTONOMOUS. Readreferences/autonomous-execution.md— it defines the mandatory 3-phase lifecycle, autonomous execution rules, anti-patterns, and phase completion logging. Unless--interactiveis set, RPI runs hands-free. Do NOT stop after Phase 2. Do NOT ask the user anything between phases.
Run /rpi "<goal>" for the full lifecycle. For resume, loop, fast-path, and deep examples, read references/examples.md.
Phase orchestrators own all sub-skill sequencing, retry gates, and phase budgets. /discovery handles brainstorm → design (when PRODUCT.md exists) → search → research → plan → pre-mortem and writes the execution packet; /crank owns wave-based implementation and implementation retries; /validation owns vibe → post-mortem → retro → forge and validation retries. /rpi stays thin: it owns setup, complexity classification, phase routing, the implementation gate, the validation-fail-to-crank loop, and the final report.
mkdir -p .agents/rpi
Determine starting phase:
discovery--from=implementation (aliases: crank) → skip to Phase 2--from=validation (aliases: vibe, post-mortem) → skip to Phase 3research, plan, pre-mortem, brainstorm map to discovery--from is not set, resolve it before routing:
bd show <id> says issue_type=epic → Phase 2 using that epic IDparent → Phase 2 using the parent epic ID.agents/rpi/execution-packet.json as the phase-2 handoff when discovery does not yield an epic--fromag-* alone.
Classify complexity:| Level | Criteria | Behavior |
|---|---|---|
fast |
Goal <=30 chars, no complex/scope keywords | Full 3-phase. Gates use --quick throughout. |
standard |
Goal 31-120 chars, or 1 scope keyword | Full 3-phase. Gates use --quick. |
full |
Complex-operation keyword, 2+ scope keywords, or >120 chars | Full 3-phase. Gates use full council. |
Complex-operation keywords: refactor, migrate, migration, rewrite, redesign, rearchitect, overhaul, restructure, reorganize, decouple, deprecate, split, extract module, port
Scope keywords: all, entire, across, everywhere, every file, every module, system-wide, global, throughout, codebase
Overrides: --deep forces full. --fast-path forces fast.
Log:
RPI mode: rpi-phased (complexity: <level>)
Initialize state:
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,
max_cycles: <3 when --loop; overridden by --max-cycles>,
verdicts: {}
}
Delegate to /discovery:
Skill(skill="discovery", args="<goal> [--interactive] --complexity=<level>")
After /discovery completes:
<promise>DONE</promise> or <promise>BLOCKED</promise>.agents/rpi/execution-packet.json (or the matching run archive when run_id is known), preserve the execution-packet objective spine, and extract epic_id only when it existsrpi_state.epic_id when present and rpi_state.verdicts.pre_mortemPHASE 1 COMPLETE ✓ (discovery) — proceeding to Phase 2If the execution packet has epic_id:
Skill(skill="crank", args="<epic-id> [--test-first] [--no-test-first]")
Otherwise:
Skill(skill="crank", args=".agents/rpi/execution-packet.json [--test-first] [--no-test-first]")
Implementation gate (max 3 attempts):
<promise>DONE</promise>: proceed to validation<promise>BLOCKED</promise>: retry with block context (max 2 retries)
/crank on the same lifecycle objective + block reason<promise>PARTIAL</promise>: retry remaining (max 2 retries)
/crank on the same epic or execution packet (picks up remaining work)Record:
ao ratchet record implement 2>/dev/null || true
Log: PHASE 2 COMPLETE ✓ (implementation) — proceeding to Phase 3
DO NOT STOP HERE. Do not ask the user to commit. Do not summarize and wait. Proceed IMMEDIATELY to Phase 3. Implementation without validation is incomplete work — the flywheel does not turn, learnings are not captured, and quality is unverified.
MANDATORY for all complexity levels. /validation is the Phase 3 orchestrator — it wraps /vibe + /post-mortem + /retro + /forge. Do NOT call /vibe directly from /rpi — call /validation which handles the full sequence. fast complexity uses inline --quick gates inside /validation; it does not skip closeout.
If the execution packet has epic_id:
Skill(skill="validation", args="<epic-id> --complexity=<level> [--strict-surfaces if --quality]")
Otherwise:
Skill(skill="validation", args="--complexity=<level> [--strict-surfaces if --quality]")
Validation-to-crank loop (max 3 total attempts):
<promise>DONE</promise>: finish RPI<promise>FAIL</promise>: vibe found defects
/crank on the same epic or execution packet + findings context (preserve --test-first / --no-test-first from original invocation)/validationRecord:
ao ratchet record vibe 2>/dev/null || true
Log: PHASE 3 COMPLETE ✓ (validation) — RPI DONE
Report: Summarize all phase verdicts and epic status.
Optional loop (--loop): If validation verdict is FAIL and cycle < max_cycles:
rpi_state.cycle/rpi from discovery with a tightened goalOptional spawn-next (--spawn-next): After PASS/WARN finish:
.agents/rpi/next-work.jsonl for harvested follow-up items/rpi commandRead references/report-template.md for full output format.
Read references/error-handling.md for failure semantics.
| Flag | Default | Description |
|---|---|---|
--from=<phase> |
discovery |
Start from discovery, implementation, or validation |
--interactive |
off | Human gates in discovery |
--auto |
on | Fully autonomous (no human gates). Inverse of --interactive. Passed through to /discovery and /plan. |
--loop |
off | Post-mortem FAIL triggers new cycle |
--max-cycles=<n> |
3 |
Max cycles when --loop enabled (default 3) |
--spawn-next |
off | Surface follow-up work after completion |
--test-first |
on | Strict-quality (passed to /crank) |
--no-test-first |
off | Opt out of strict-quality |
--fast-path |
auto | Force fast complexity (uses quick inline gates, still runs full lifecycle) |
--deep |
auto | Force full complexity |
--quality |
off | Pass --strict-surfaces to /validation, making all 4 surface failures blocking |
--dry-run |
off | Report without mutating queue |
--no-budget |
off | Disable phase time budgets (passed to phase skills) |
All transitions use filesystem artifacts (no in-memory coupling). The execution packet (.agents/rpi/execution-packet.json as the latest alias, plus .agents/rpi/runs/<run-id>/execution-packet.json as the per-run archive) carries the repo execution profile via contract_surfaces, plus done_criteria and queue claim/finalize metadata between phases. For detailed schemas, read references/phase-data-contracts.md.
complexity == "low" or complexity == "fast": inline review, no spawning (--quick)complexity == "medium" or complexity == "standard": inline fast default (--quick)complexity == "high" or complexity == "full": full council, 2-judge minimum; retry gate max 3 total attemptscomplexity == "low" or complexity == "fast": inline review, no spawning (--quick)complexity == "medium" or complexity == "standard": inline fast default (--quick)complexity == "high" or complexity == "full": full council, 2-judge minimum; retry gate max 3 total attemptscomplexity == "low" or complexity == "fast": inline review, no spawning (--quick)complexity == "medium" or complexity == "standard": inline fast default (--quick)complexity == "high" or complexity == "full": full council, 2-judge minimum; retry gate max 3 total attemptsRead references/examples.md for full lifecycle, resume, and interactive examples. --fast-path still runs validation; it only forces the fast/inline gate profile.
Read references/troubleshooting.md for common problems and solutions.
RPI runs in three runtime modes. All must produce identical phase artifacts.
| Concern | gc (default) | Hook-capable (Claude Code) | Hook-less (Codex) |
|---|---|---|---|
| Session start | gc controller starts session | session-start.sh hook fires automatically |
ao codex start called explicitly |
| Session stop | gc controller stops session | session-end.sh hook fires automatically |
ao codex stop called explicitly |
| Phase execution | gcExecutor via gc sessions |
streamExecutor via Claude CLI |
directExecutor via Codex CLI |
| Event capture | gc event bus (ao:phase, ao:gate, ao:failure, ao:metric) |
local events.jsonl (legacy) | local events.jsonl (legacy) |
| Phase state | .agents/rpi/phased-state.json |
.agents/rpi/phased-state.json |
.agents/rpi/phased-state.json |
| Phase numbering | 1 = discovery, 2 = implementation, 3 = validation | Same | Same |
| Ratchet checkpoints | ao ratchet check |
ao ratchet check |
ao ratchet check |
| Agent health | gc status --json |
manual / tmux inspection | manual |
gc is the default when available. ao rpi auto-selects gcExecutor when gc binary is on PATH, version >= 0.13.0, and city.toml exists. Falls back to streamExecutor otherwise. Use --runtime stream or --runtime tmux to force legacy executors.
Minimal contract across all modes: phase state is always written to .agents/rpi/phased-state.json; phase numbering stays 1=discovery, 2=implementation, 3=validation; ao ratchet check reads that shared state unchanged; the close-loop flywheel still runs at stop time.
Make data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Prerequisites
Time Estimate
30-60 minutes to see productivity improvements
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
mattpocock/skills
parcadei/continuous-claude-v3
cursor/plugins
ailabs-393/ai-labs-claude-skills
pproenca/dot-skills
mattpocock/skills
rpi reduced setup friction for our internal harness; good balance of opinion and flexibility.
rpi fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
Registry listing for rpi matched our evaluation — installs cleanly and behaves as described in the markdown.
Solid pick for teams standardizing on skills: rpi is focused, and the summary matches what you get after install.
Useful defaults in rpi — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
We added rpi from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
Keeps context tight: rpi is the kind of skill you can hand to a new teammate without a long onboarding doc.
I recommend rpi for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Useful defaults in rpi — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
I recommend rpi for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
showing 1-10 of 42