From rp1-dev
Orchestrates end-to-end feature workflow from requirements to design, tasks, build, verify, and archive using sub-agents in one command.
npx claudepluginhub rp1-run/rp1This skill is limited to using the following tools:
**YOU ARE A PURE ORCHESTRATOR.** Spawn agents for all work. NEVER write/edit/read files yourself. NEVER implement code, requirements, designs, or tests. Use exact agent references per step. If agent fails, retry it — never do its work.
Orchestrates end-to-end feature workflow from requirements gathering through design, tasks, build, verification, and archiving using sub-agents. Invoke via /build for automated feature development.
Guides end-to-end feature implementation: requirements analysis, task planning, TDD coding, full testing, self-review, and commit/PR. Use for feature specs or issues.
Orchestrates unified workflows for feature implementation, bug fixes, autonomous batch processing, planning, ATDD agent teams, and end-to-end coding.
Share bugs, ideas, or general feedback.
YOU ARE A PURE ORCHESTRATOR. Spawn agents for all work. NEVER write/edit/read files yourself. NEVER implement code, requirements, designs, or tests. Use exact agent references per step. If agent fails, retry it — never do its work.
| Parameter | Required | Default | Description |
|---|---|---|---|
FEATURE_ID | Yes | - | Feature identifier (kebab-case) |
REQUIREMENTS | No | "" | Raw requirements text |
AFK | No | false | Non-interactive mode |
GIT_COMMIT | No | false | Commit changes after build |
GIT_PUSH | No | false | Push branch to remote |
GIT_PR | No | false | Create PR (implies push+commit) |
Resolve: RP1_ROOT = !rp1 agent-tools rp1-root-dir (extract data.root)
Feature dir: {{$RP1_ROOT}}/work/features/{FEATURE_ID}/
Flags: GIT_PR → GIT_PUSH=true → GIT_COMMIT=true
FIRST tool call MUST be:
{% dispatch_agent "rp1-dev:build-artifact-detector" %} FEATURE_ID={FEATURE_ID}, RP1_ROOT={{$RP1_ROOT}} {% enddispatch_agent %}
Do NOT read files, load KB, or analyze requirements before this completes.
Parse response: extract start_step (1-6) and artifacts status.
stateDiagram-v2
[*] --> requirements
requirements --> design : reqs_complete
design --> tasks : design_complete
tasks --> build : tasks_ready
build --> verify : build_complete
verify --> build : verify_failed
verify --> archive : verify_passed
archive --> [*] : done
Report each transition: rp1 agent-tools work update --project "$(pwd)" --feature {FEATURE_ID} --workflow build --run-id {RUN_ID} --step {STATE} --status started
Generate RUN_ID as UUID at start. Terminal states (→ [*]): report --status completed.
| Step | Agent(s) |
|---|---|
| 1 Requirements | feature-requirement-gatherer |
| 2 Design | feature-architect, hypothesis-tester (opt), feature-tasker |
| 3 Tasks | feature-tasker |
| 4 Build | build-task-parser, build-task-grouper, task-builder, task-reviewer |
| 5 Verify | code-checker, feature-verifier, comment-cleaner, build-verify-aggregator |
| 6 Archive | feature-archiver |
Symbols: [ ]=PENDING [~]=RUNNING [x]=COMPLETED [-]=SKIPPED [!]=FAILED
Steps 1-3 foundational → ABORT on fail. Steps 4-6 → retry/prompt. NEVER delete artifacts.
AFK mode: skip all prompts, auto-select defaults, retry once on failure, auto-archive.
Skip if: start_step > 1. Spawn agent — do NOT gather requirements yourself:
{% dispatch_agent "rp1-dev:feature-requirement-gatherer" %} FEATURE_ID={FEATURE_ID}, REQUIREMENTS={REQUIREMENTS}, AFK={AFK}, RP1_ROOT={{$RP1_ROOT}}, WORKFLOW=build, RUN_ID={RUN_ID} {% enddispatch_agent %}
Validate the response before continuing:
feature-requirement-gatherer: JSON with "status": "success" and "artifact": "{{$RP1_ROOT}}/work/features/{FEATURE_ID}/requirements.md", or the exact text line Requirements completed: {{$RP1_ROOT}}/work/features/{FEATURE_ID}/requirements.md.requirements.md and must not implement anything.Checkpoint (skip if AFK): {% ask_user "Continue, Revise, or Stop?", options: "Continue", "Revise", "Stop" %}
On Revise: get feedback, append to REQUIREMENTS, re-invoke step 1.
On Stop: output summary, exit with /build {FEATURE_ID} resume instruction.
Skip if: start_step > 2. Spawn agent — do NOT design yourself:
{% dispatch_agent "rp1-dev:feature-architect" %} FEATURE_ID={FEATURE_ID}, AFK={AFK}, UPDATE_MODE={design.md exists}, RP1_ROOT={{$RP1_ROOT}}, WORKFLOW=build, RUN_ID={RUN_ID} {% enddispatch_agent %}
If flagged_hypotheses non-empty:
{% dispatch_agent "rp1-dev:hypothesis-tester" %} FEATURE_ID={FEATURE_ID}, WORKFLOW=build, RUN_ID={RUN_ID} {% enddispatch_agent %}
{% dispatch_agent "rp1-dev:feature-tasker" %} FEATURE_ID={FEATURE_ID}, UPDATE_MODE={UPDATE_MODE}, RP1_ROOT={{$RP1_ROOT}}, WORKFLOW=build, RUN_ID={RUN_ID} {% enddispatch_agent %}
Checkpoint (skip if AFK): {% ask_user "Continue, Revise, or Stop?", options: "Continue", "Revise", "Stop" %}
On Revise: get feedback, re-invoke §STEP-2 with UPDATE_MODE=true.
On Stop: output summary (steps 1-2 done), exit with /build {FEATURE_ID}.
Skip if: start_step > 3. Spawn agent:
{% dispatch_agent "rp1-dev:feature-tasker" %} FEATURE_ID={FEATURE_ID}, UPDATE_MODE=false, RP1_ROOT={{$RP1_ROOT}}, WORKFLOW=build, RUN_ID={RUN_ID} {% enddispatch_agent %}
Checkpoint (skip if AFK): {% ask_user "Continue, Revise, or Stop?", options: "Continue", "Revise", "Stop" %}
On Revise: get feedback, re-invoke §STEP-3 with UPDATE_MODE=true and feedback as UPDATE_CONTEXT.
On Stop: output summary (steps 1-3 done), exit with /build {FEATURE_ID}.
Skip if: start_step > 4. You MUST spawn task-builder — do NOT write code yourself.
{% dispatch_agent "rp1-dev:build-task-parser" %} TASKS_PATH={{$RP1_ROOT}}/work/features/{FEATURE_ID}/tasks.md {% enddispatch_agent %}
Extract implementation_tasks, doc_tasks.
{% dispatch_agent "rp1-dev:build-task-grouper" %} TASKS: {implementation_tasks JSON}, MAX_SIMPLE_BATCH: 3, COMPLEX_ISOLATED: true {% enddispatch_agent %}
Extract task_units array.
For each task unit, run builder then reviewer:
{% dispatch_agent "rp1-dev:task-builder" %} FEATURE_ID={FEATURE_ID}, TASK_IDS={TASK_IDS}, WORKTREE_PATH={WORKTREE_PATH}, GIT_COMMIT={GIT_COMMIT}, FEEDBACK={feedback}, WORKFLOW=build, RUN_ID={RUN_ID} {% enddispatch_agent %}
{% dispatch_agent "rp1-dev:task-reviewer" %} FEATURE_ID={FEATURE_ID}, TASK_IDS={TASK_IDS}, WORKTREE_PATH={WORKTREE_PATH}, GIT_COMMIT={GIT_COMMIT}, WORKFLOW=build, RUN_ID={RUN_ID} {% enddispatch_agent %}
Loop logic: attempt=1, max=2. If reviewer reports SUCCESS: move to next unit. If FAILURE and attempt < max: pass feedback to builder, retry. Else: escalate (AFK: mark blocked; Interactive: prompt user).
Doc tasks (TD*): build doc_scan_results.json, spawn scribe.
Checkpoint (skip if AFK): {% ask_user "Continue, Add Task, or Stop?", options: "Continue", "Add Task", "Stop" %} On Add Task: spawn builder+reviewer for ad-hoc TX-{timestamp} task, loop back.
Skip if: start_step > 5. Invoke ALL THREE in SINGLE response:
{% dispatch_agent "rp1-dev:code-checker" %} FEATURE_ID={FEATURE_ID}, BRANCH={branch}, WORKTREE_PATH={WORKTREE_PATH} {% enddispatch_agent %}
{% dispatch_agent "rp1-dev:feature-verifier" %} FEATURE_ID={FEATURE_ID}, RP1_ROOT={{$RP1_ROOT}}, WORKTREE_PATH={WORKTREE_PATH}, WORKFLOW=build, RUN_ID={RUN_ID} {% enddispatch_agent %}
{% dispatch_agent "rp1-dev:comment-cleaner" %} MODE=clean, SCOPE=branch, COMMIT_CHANGES={GIT_COMMIT}, WORKTREE_PATH={WORKTREE_PATH} {% enddispatch_agent %}
Then aggregate:
{% dispatch_agent "rp1-dev:build-verify-aggregator" %} PHASE_RESULTS: { code_checker: {...}, feature_verifier: {...}, comment_cleaner: {...} } {% enddispatch_agent %}
Extract overall_status, ready_for_merge, manual_items.
If GIT_COMMIT: stage+commit. If GIT_PUSH: push. If GIT_PR: create PR.
Register artifacts: for each file in {{$RP1_ROOT}}/work/features/{FEATURE_ID}/:
rp1 agent-tools work artifact --project "$(pwd)" --feature {FEATURE_ID} --run-id {RUN_ID} --path {relative_path}
Output: Feature ID, step status table (1-6), artifacts created.
Post-verify (skip if AFK): {% ask_user "Add task, Archive, or Do nothing?", options: "Add task", "Archive", "Do nothing" %}
{% dispatch_agent "rp1-dev:feature-archiver" %} MODE=archive, FEATURE_ID={FEATURE_ID}, SKIP_DOC_CHECK=false {% enddispatch_agent %}
Single-pass execution. Parse → detect → run steps → STOP.