rpi-kit 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,13 +6,29 @@ RPIKit guides AI-first developers through a structured 3-phase pipeline with val
6
6
 
7
7
  ## Install
8
8
 
9
- ### Claude Code (plugin)
9
+ ### Claude Code
10
+
11
+ **From the marketplace (recommended):**
10
12
 
11
13
  ```bash
12
14
  claude plugin install rpi-kit
13
15
  ```
14
16
 
15
- Or clone and install locally:
17
+ **From npm:**
18
+
19
+ ```bash
20
+ npm install -g rpi-kit
21
+ ```
22
+
23
+ The postinstall script registers the plugin automatically. If it fails, register manually:
24
+
25
+ ```bash
26
+ claude plugin install /path/to/rpi-kit
27
+ ```
28
+
29
+ > **Tip:** `npm root -g` shows where global packages are installed. The path is usually something like `~/.nvm/versions/node/vX.X.X/lib/node_modules/rpi-kit`.
30
+
31
+ **From source:**
16
32
 
17
33
  ```bash
18
34
  git clone https://github.com/dmend3z/rpi-kit.git
@@ -147,7 +163,7 @@ commit_style: conventional # Commit message format
147
163
  parallel_threshold: 8 # Task count for parallel mode
148
164
  skip_artifacts: [] # Artifacts to never generate
149
165
  review_after_implement: true # Mandatory review gate
150
- branch_per_feature: false # Git branch per feature
166
+ isolation: none # none | branch | worktree
151
167
  tdd: false # Enable Test-Driven Development
152
168
  test_runner: auto # Test command (auto-detect or explicit)
153
169
  ```
@@ -1,3 +1,10 @@
1
+ ---
2
+ name: test-engineer
3
+ description: Writes focused, minimal failing tests before implementation code exists. Follows strict TDD — one test at a time, verify it fails, then hand off to the implementer. Spawned by /rpi:test and /rpi:implement (when TDD enabled).
4
+ tools: Read, Write, Edit, Bash, Glob, Grep
5
+ color: red
6
+ ---
7
+
1
8
  # Test Engineer
2
9
 
3
10
  You write focused, minimal failing tests before implementation code exists. You follow strict TDD: one test at a time, verify it fails, then hand off to the implementer.
package/bin/cli.js CHANGED
@@ -28,14 +28,14 @@ function hasCodex() {
28
28
  function installClaude() {
29
29
  log("Installing RPIKit for Claude Code...");
30
30
  try {
31
- execFileSync("claude", ["plugin", "add", PLUGIN_DIR], {
31
+ execFileSync("claude", ["plugin", "install", PLUGIN_DIR], {
32
32
  stdio: silent ? "pipe" : "inherit",
33
33
  });
34
34
  log("Claude Code: installed.");
35
35
  return true;
36
36
  } catch {
37
37
  log("Claude Code: could not register plugin automatically.");
38
- log(" Manual install: claude plugin add " + PLUGIN_DIR);
38
+ log(" Manual install: claude plugin install " + PLUGIN_DIR);
39
39
  return false;
40
40
  }
41
41
  }
@@ -85,6 +85,7 @@ Usage:
85
85
  rpi-kit install --claude Install for Claude Code only
86
86
  rpi-kit install --codex Install for Codex only (copies AGENTS.md to cwd)
87
87
  rpi-kit uninstall Remove from Claude Code
88
+ rpi-kit onboarding Interactive walkthrough of the workflow
88
89
  rpi-kit help Show this help
89
90
 
90
91
  After install, use in Claude Code:
@@ -127,10 +128,21 @@ switch (command) {
127
128
  log(" rpi-kit install --codex");
128
129
  }
129
130
  }
131
+
132
+ if (installed && !silent) {
133
+ log("");
134
+ log("New to RPIKit? Run: rpi-kit onboarding");
135
+ }
130
136
  }
131
137
  break;
132
138
  }
133
139
 
140
+ case "onboarding": {
141
+ const { run } = require("./onboarding");
142
+ run();
143
+ break;
144
+ }
145
+
134
146
  case "uninstall":
135
147
  uninstallClaude();
136
148
  break;
@@ -0,0 +1,145 @@
1
+ const readline = require("readline");
2
+
3
+ const CYAN = "\x1b[36m";
4
+ const GREEN = "\x1b[32m";
5
+ const YELLOW = "\x1b[33m";
6
+ const DIM = "\x1b[2m";
7
+ const BOLD = "\x1b[1m";
8
+ const RESET = "\x1b[0m";
9
+
10
+ const steps = [
11
+ {
12
+ title: "Welcome to RPIKit",
13
+ body: `
14
+ ${BOLD}Research → Plan → Implement${RESET}
15
+
16
+ RPIKit is a structured feature development workflow for Claude Code and Codex.
17
+ It guides you through 3 phases with validation gates, so you research before
18
+ you plan, and plan before you code.
19
+
20
+ ${DIM}11 specialized agents simulate a product team:
21
+ engineers, PMs, designers, reviewers — all working in parallel.${RESET}`,
22
+ },
23
+ {
24
+ title: "The Pipeline",
25
+ body: `
26
+ ${DIM}Your feature flows through these phases:${RESET}
27
+
28
+ ${CYAN}/rpi:new${RESET} Describe your feature → ${BOLD}REQUEST.md${RESET}
29
+
30
+ ${CYAN}/rpi:research${RESET} Parallel agent analysis → ${BOLD}RESEARCH.md${RESET} + GO/NO-GO
31
+
32
+ ${CYAN}/rpi:plan${RESET} Generate specs + tasks → ${BOLD}PLAN.md${RESET} + eng/pm/ux.md
33
+
34
+ ${CYAN}/rpi:implement${RESET} Execute tasks with tracking → ${BOLD}IMPLEMENT.md${RESET}
35
+
36
+ ${CYAN}/rpi:simplify${RESET} Code quality checks → auto-fix issues
37
+
38
+ ${CYAN}/rpi:review${RESET} Review against plan → PASS / FAIL
39
+
40
+ ${CYAN}/rpi:docs${RESET} Document the code → inline docs + changelog`,
41
+ },
42
+ {
43
+ title: "Research Tiers",
44
+ body: `
45
+ ${DIM}Control depth and cost with tier flags:${RESET}
46
+
47
+ ${GREEN}--quick${RESET} 2 agents Fast feasibility check
48
+ ${YELLOW}--standard${RESET} 4 agents Scope + technical approach ${DIM}(default)${RESET}
49
+ ${CYAN}--deep${RESET} 6 agents Full strategic analysis
50
+
51
+ ${DIM}Agents run in parallel — deep research doesn't mean slow research.${RESET}`,
52
+ },
53
+ {
54
+ title: "Feature Folder Structure",
55
+ body: `
56
+ ${DIM}Each feature gets its own folder with all artifacts:${RESET}
57
+
58
+ rpi/
59
+ └── ${BOLD}your-feature/${RESET}
60
+ ├── REQUEST.md ${DIM}What and why${RESET}
61
+ ├── research/
62
+ │ └── RESEARCH.md ${DIM}GO/NO-GO analysis${RESET}
63
+ ├── plan/
64
+ │ ├── PLAN.md ${DIM}Task checklist${RESET}
65
+ │ ├── eng.md ${DIM}Technical spec${RESET}
66
+ │ ├── pm.md ${DIM}Product requirements${RESET}
67
+ │ └── ux.md ${DIM}UX design${RESET}
68
+ └── implement/
69
+ ├── IMPLEMENT.md ${DIM}Execution audit trail${RESET}
70
+ └── DOCS.md ${DIM}Documentation summary${RESET}`,
71
+ },
72
+ {
73
+ title: "TDD Support",
74
+ body: `
75
+ ${DIM}RPIKit supports strict Test-Driven Development per task:${RESET}
76
+
77
+ ${CYAN}RED${RESET} → Write one failing test
78
+ ${GREEN}GREEN${RESET} → Write minimal code to pass
79
+ ${YELLOW}REFACTOR${RESET} → Clean up, re-run tests
80
+
81
+ ${DIM}Enable in .rpi.yaml:${RESET}
82
+ tdd: true
83
+ test_runner: auto
84
+
85
+ ${DIM}Or run standalone:${RESET} /rpi:test your-feature --task 1.2`,
86
+ },
87
+ {
88
+ title: "Get Started",
89
+ body: `
90
+ ${BOLD}Step 1:${RESET} Open Claude Code in your project
91
+
92
+ ${BOLD}Step 2:${RESET} Initialize RPIKit
93
+ ${CYAN}/rpi:init${RESET}
94
+
95
+ ${BOLD}Step 3:${RESET} Create your first feature
96
+ ${CYAN}/rpi:new my-feature${RESET}
97
+
98
+ ${BOLD}Step 4:${RESET} Follow the pipeline
99
+ ${CYAN}/rpi:research my-feature${RESET}
100
+ ${CYAN}/rpi:plan my-feature${RESET}
101
+ ${CYAN}/rpi:implement my-feature${RESET}
102
+
103
+ ${DIM}Use /rpi:status anytime to see where you are.${RESET}
104
+
105
+ ${GREEN}Happy building!${RESET}`,
106
+ },
107
+ ];
108
+
109
+ function run() {
110
+ const rl = readline.createInterface({
111
+ input: process.stdin,
112
+ output: process.stdout,
113
+ });
114
+
115
+ let current = 0;
116
+
117
+ function show(index) {
118
+ const step = steps[index];
119
+ const progress = `${DIM}[${index + 1}/${steps.length}]${RESET}`;
120
+
121
+ console.clear();
122
+ console.log();
123
+ console.log(` ${progress} ${BOLD}${step.title}${RESET}`);
124
+ console.log(` ${"─".repeat(50)}`);
125
+ console.log(step.body);
126
+ console.log();
127
+
128
+ if (index < steps.length - 1) {
129
+ rl.question(` ${DIM}Press Enter to continue (q to quit)${RESET} `, (answer) => {
130
+ if (answer.toLowerCase() === "q") {
131
+ rl.close();
132
+ return;
133
+ }
134
+ current++;
135
+ show(current);
136
+ });
137
+ } else {
138
+ rl.close();
139
+ }
140
+ }
141
+
142
+ show(0);
143
+ }
144
+
145
+ module.exports = { run };
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: rpi:add-todo
3
+ description: Add a quick todo so you don't forget what to implement next.
4
+ argument-hint: "[todo title]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ <objective>
14
+ Create a todo file in `{folder}/todos/` to capture an implementation idea before it's forgotten.
15
+ </objective>
16
+
17
+ <process>
18
+
19
+ ## 1. Load config
20
+
21
+ Read `.rpi.yaml` for folder path. Default to `rpi/` if not found.
22
+
23
+ ## 2. Ensure todos folder exists
24
+
25
+ ```bash
26
+ mkdir -p {folder}/todos
27
+ ```
28
+
29
+ ## 3. Determine todo title
30
+
31
+ If `$ARGUMENTS` contains a title, use it. Otherwise ask:
32
+ "What do you want to remember to implement?"
33
+
34
+ Convert the title to a kebab-case slug for the filename.
35
+
36
+ ## 4. Check for duplicates
37
+
38
+ Use Glob to check if `{folder}/todos/{slug}.md` already exists. If yes, warn the user and ask if they want to update the existing one or pick a different name.
39
+
40
+ ## 5. Quick interview
41
+
42
+ Ask 1-2 focused questions using AskUserQuestion:
43
+
44
+ - "Brief description — what should this do?" (skip if the title is already descriptive enough)
45
+ - "Priority?" — Options: `high`, `medium` (default), `low`
46
+
47
+ Keep it fast. The point is to capture the idea before it's lost, not to write a full spec.
48
+
49
+ ## 6. Create the todo file
50
+
51
+ Write `{folder}/todos/{slug}.md`:
52
+
53
+ ```markdown
54
+ # {Todo Title}
55
+
56
+ ## What
57
+ {Brief description of what to implement}
58
+
59
+ ## Priority
60
+ {high | medium | low}
61
+
62
+ ## Notes
63
+ - {Any extra context the user mentioned, or leave empty}
64
+
65
+ ---
66
+ Added: {YYYY-MM-DD}
67
+ Status: pending
68
+ ```
69
+
70
+ ## 7. Confirm
71
+
72
+ Output:
73
+
74
+ ```
75
+ Todo added: {folder}/todos/{slug}.md
76
+ Priority: {priority}
77
+
78
+ Quick actions:
79
+ /rpi:new {slug} Promote to a full RPI feature
80
+ /rpi:todos List all pending todos
81
+ ```
82
+
83
+ </process>
@@ -272,4 +272,45 @@ Feature {feature-slug} implementation complete but review found issues:
272
272
  Fix and re-run: /rpi:review {feature-slug}
273
273
  ```
274
274
 
275
+ ## 12. Handle isolation cleanup
276
+
277
+ Read `isolation` from `.rpi.yaml`.
278
+
279
+ **If `isolation: none`** — do nothing.
280
+
281
+ **If `isolation: branch`:**
282
+ Ask the user:
283
+ ```
284
+ Feature branch: feature/{feature-slug}
285
+ Want to merge into {main-branch} now? (yes/no)
286
+ ```
287
+ If yes:
288
+ ```bash
289
+ git checkout {main-branch}
290
+ git merge feature/{feature-slug}
291
+ ```
292
+
293
+ **If `isolation: worktree`:**
294
+ Ask the user:
295
+ ```
296
+ Worktree: .worktrees/{feature-slug}
297
+ Branch: feature/{feature-slug}
298
+ Want to merge into {main-branch} and remove the worktree? (yes/no)
299
+ ```
300
+ If yes:
301
+ ```bash
302
+ cd {project-root}
303
+ git checkout {main-branch}
304
+ git merge feature/{feature-slug}
305
+ git worktree remove .worktrees/{feature-slug}
306
+ ```
307
+ If no:
308
+ ```
309
+ Worktree preserved at .worktrees/{feature-slug}
310
+ To merge later:
311
+ git checkout {main-branch} && git merge feature/{feature-slug}
312
+ To remove:
313
+ git worktree remove .worktrees/{feature-slug}
314
+ ```
315
+
275
316
  </process>
@@ -34,7 +34,7 @@ Use AskUserQuestion to gather preferences. Ask up to 4 questions at a time:
34
34
 
35
35
  **Batch 3:**
36
36
  - "Task count threshold for parallel execution?" — Options: 8 (Recommended), 5, 12, always sequential
37
- - "Create a git branch per feature?" — Options: No (Recommended), Yes
37
+ - "How do you want to isolate features?" — Options: `none` (Recommended — work on current branch), `branch` (create a git branch per feature), `worktree` (create a git worktree + branch in `.worktrees/`)
38
38
 
39
39
  **Batch 4 (TDD):**
40
40
  - "Enable Test-Driven Development during implementation?" — Options: No (default), Yes
@@ -55,7 +55,7 @@ commit_style: {conventional|descriptive}
55
55
  parallel_threshold: {number}
56
56
  skip_artifacts: []
57
57
  review_after_implement: true
58
- branch_per_feature: {true|false}
58
+ isolation: {none|branch|worktree}
59
59
  tdd: {true|false}
60
60
  test_runner: {auto|command}
61
61
  ```
@@ -48,10 +48,54 @@ Start with core questions, then ask follow-ups based on answers.
48
48
 
49
49
  Use AskUserQuestion for structured questions. Keep it conversational — 2-3 questions per batch, max 3 batches. Stop when you have enough to write a clear REQUEST.md.
50
50
 
51
- ## 5. Generate REQUEST.md
51
+ ## 5. Set up isolation
52
52
 
53
- Create the feature folder and write REQUEST.md:
53
+ Read `isolation` from `.rpi.yaml` (default: `none`).
54
54
 
55
+ **If `isolation: none`** — do nothing, continue on current branch.
56
+
57
+ **If `isolation: branch`:**
58
+ ```bash
59
+ git checkout -b feature/{feature-slug}
60
+ ```
61
+
62
+ **If `isolation: worktree`:**
63
+ 1. Verify `.worktrees/` is in `.gitignore`:
64
+ ```bash
65
+ git check-ignore -q .worktrees 2>/dev/null
66
+ ```
67
+ If NOT ignored, add `.worktrees/` to `.gitignore` and commit:
68
+ ```bash
69
+ echo ".worktrees/" >> .gitignore
70
+ git add .gitignore && git commit -m "chore: add .worktrees/ to .gitignore"
71
+ ```
72
+ 2. Create the worktree:
73
+ ```bash
74
+ git worktree add .worktrees/{feature-slug} -b feature/{feature-slug}
75
+ ```
76
+ 3. Run project setup in the worktree (auto-detect from project files: `npm install`, `pip install`, etc.)
77
+ 4. Inform the user:
78
+ ```
79
+ Worktree created at .worktrees/{feature-slug}
80
+ Branch: feature/{feature-slug}
81
+
82
+ To work in the worktree, open a new terminal:
83
+ cd .worktrees/{feature-slug}
84
+ ```
85
+
86
+ ## 6. Generate REQUEST.md
87
+
88
+ Create the feature folder and write REQUEST.md.
89
+
90
+ **If `isolation: worktree`**, the feature folder is created inside the worktree:
91
+ ```bash
92
+ cd .worktrees/{feature-slug}
93
+ mkdir -p {folder}/{feature-slug}/research
94
+ mkdir -p {folder}/{feature-slug}/plan
95
+ mkdir -p {folder}/{feature-slug}/implement
96
+ ```
97
+
98
+ **Otherwise:**
55
99
  ```bash
56
100
  mkdir -p {folder}/{feature-slug}/research
57
101
  mkdir -p {folder}/{feature-slug}/plan
@@ -84,7 +128,7 @@ Write `{folder}/{feature-slug}/REQUEST.md` with this structure:
84
128
  {S | M | L | XL} — {brief justification}
85
129
  ```
86
130
 
87
- ## 6. Next step
131
+ ## 7. Next step
88
132
 
89
133
  Output:
90
134
  ```
@@ -0,0 +1,241 @@
1
+ ---
2
+ name: rpi:onboarding
3
+ description: Interactive guided tour of the RPI workflow. Walks through each phase with a real demo feature, explaining what happens at each step.
4
+ argument-hint: "[--demo]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ <objective>
14
+ Guide a new user through the RPIKit workflow with clear explanations of each phase. Optionally create a demo feature to show the pipeline in action.
15
+ </objective>
16
+
17
+ <process>
18
+
19
+ ## 1. Welcome
20
+
21
+ Output:
22
+ ```
23
+ Welcome to RPIKit — Research, Plan, Implement.
24
+
25
+ RPIKit is a structured workflow that guides you through 3 phases before writing
26
+ any code. Each phase produces artifacts that feed the next, with validation
27
+ gates that prevent premature implementation.
28
+
29
+ Let me walk you through the pipeline.
30
+ ```
31
+
32
+ ## 2. Explain the pipeline
33
+
34
+ Present the full pipeline with brief descriptions:
35
+
36
+ ```
37
+ The RPIKit Pipeline
38
+ ───────────────────
39
+
40
+ /rpi:init One-time project setup (.rpi.yaml)
41
+
42
+ /rpi:new Describe your feature → REQUEST.md
43
+ │ You answer a few questions about what you want to build.
44
+ │ RPIKit captures requirements in a structured format.
45
+
46
+ /rpi:research Analyze feasibility → RESEARCH.md
47
+ │ 2-6 agents run in parallel: parsing requirements,
48
+ │ exploring your codebase, assessing scope and risk.
49
+ │ Produces a GO / NO-GO verdict.
50
+
51
+ /rpi:plan Generate specs + tasks → PLAN.md
52
+ │ Creates technical spec (eng.md), product requirements
53
+ │ (pm.md), UX design (ux.md), and a task checklist.
54
+ │ Adapts which artifacts to create based on feature type.
55
+
56
+ /rpi:implement Execute tasks → IMPLEMENT.md
57
+ │ Builds the feature task-by-task with per-task commits.
58
+ │ Supports TDD (Red-Green-Refactor) and parallel execution.
59
+
60
+ /rpi:simplify Code quality → auto-fix
61
+ │ 3 agents check: code reuse, quality patterns, efficiency.
62
+ │ Fixes issues directly.
63
+
64
+ /rpi:review Verify against plan → PASS / FAIL
65
+ │ Reviews completeness, correctness, deviations, test
66
+ │ coverage. Every finding cites a plan requirement.
67
+
68
+ /rpi:docs Document the code → inline docs + changelog
69
+ Adds JSDoc/docstrings, API docs, README and changelog
70
+ updates. Only runs after review PASS.
71
+
72
+ /rpi:status Dashboard — see all features and their current phase.
73
+ ```
74
+
75
+ ## 3. Explain the agents
76
+
77
+ ```
78
+ RPIKit simulates a product team with 12 specialized agents:
79
+
80
+ Research agents (run in parallel):
81
+ ┌─────────────────────┬──────────────────────────────────────┐
82
+ │ Requirement Parser │ Extracts testable requirements │
83
+ │ Codebase Explorer │ Scans your code for patterns │
84
+ │ Product Manager │ Scope, user stories, effort │
85
+ │ Senior Engineer │ Architecture, dependencies │
86
+ │ CTO Advisor │ Risk, strategy (deep tier only) │
87
+ │ UX Designer │ User flows, interactions (if UI) │
88
+ │ Doc Synthesizer │ Merges all outputs into RESEARCH.md │
89
+ └─────────────────────┴──────────────────────────────────────┘
90
+
91
+ Execution agents:
92
+ ┌─────────────────────┬──────────────────────────────────────┐
93
+ │ Plan Executor │ Implements one task at a time │
94
+ │ Test Engineer │ Writes failing tests (TDD) │
95
+ │ Code Simplifier │ Reuse, quality, efficiency checks │
96
+ │ Code Reviewer │ Reviews against plan requirements │
97
+ │ Doc Writer │ Generates code documentation │
98
+ └─────────────────────┴──────────────────────────────────────┘
99
+ ```
100
+
101
+ ## 4. Explain research tiers
102
+
103
+ ```
104
+ Research Tiers — control depth and cost:
105
+
106
+ --quick 2 agents "Can we do this?"
107
+ Requirements + codebase scan.
108
+ Use for small features or feasibility checks.
109
+
110
+ --standard 4 agents "How should we do this?" (default)
111
+ Adds product scope and technical approach.
112
+ Use for most features.
113
+
114
+ --deep 6 agents "Should we do this?"
115
+ Adds strategic risk and UX analysis.
116
+ Use for large features or risky changes.
117
+ ```
118
+
119
+ ## 5. Show folder structure
120
+
121
+ ```
122
+ Feature Folder Structure:
123
+
124
+ rpi/
125
+ └── your-feature/
126
+ ├── REQUEST.md ← What you want to build
127
+ ├── research/
128
+ │ └── RESEARCH.md ← GO/NO-GO analysis
129
+ ├── plan/
130
+ │ ├── PLAN.md ← Task checklist by phases
131
+ │ ├── eng.md ← Technical specification
132
+ │ ├── pm.md ← Product requirements (adaptive)
133
+ │ └── ux.md ← UX design (adaptive)
134
+ └── implement/
135
+ ├── IMPLEMENT.md ← Execution audit trail
136
+ └── DOCS.md ← Documentation summary
137
+
138
+ Each file is a gate — you can't plan without research, can't implement
139
+ without a plan, can't document without a passing review.
140
+ ```
141
+
142
+ ## 6. Ask about demo
143
+
144
+ Use AskUserQuestion:
145
+ "Want me to create a demo feature so you can see the pipeline in action? I'll create a small example feature and walk you through each step."
146
+
147
+ Options:
148
+ - "Yes, show me a demo" → proceed to step 7
149
+ - "No, I'll start on my own" → skip to step 8
150
+
151
+ ## 7. Demo walkthrough (if user wants demo)
152
+
153
+ Create a minimal demo feature to show what each artifact looks like:
154
+
155
+ ### 7.1 Create demo config
156
+
157
+ If `.rpi.yaml` doesn't exist, create a minimal one:
158
+ ```yaml
159
+ folder: rpi
160
+ tier: quick
161
+ auto_simplify: true
162
+ commit_style: conventional
163
+ parallel_threshold: 8
164
+ review_after_implement: true
165
+ isolation: none
166
+ tdd: false
167
+ test_runner: auto
168
+ ```
169
+
170
+ ### 7.2 Create demo REQUEST.md
171
+
172
+ ```bash
173
+ mkdir -p rpi/demo-greeting/research
174
+ mkdir -p rpi/demo-greeting/plan
175
+ mkdir -p rpi/demo-greeting/implement
176
+ ```
177
+
178
+ Write `rpi/demo-greeting/REQUEST.md`:
179
+ ```markdown
180
+ # Greeting Message
181
+
182
+ ## Summary
183
+ Add a simple greeting function that returns a personalized welcome message.
184
+
185
+ ## Problem
186
+ The application has no way to greet users by name. This is needed for the onboarding flow.
187
+
188
+ ## Target Users
189
+ All new users during their first session.
190
+
191
+ ## Constraints
192
+ - Must be a pure function (no side effects)
193
+ - Must handle missing or empty names gracefully
194
+
195
+ ## References
196
+ - None
197
+
198
+ ## Complexity Estimate
199
+ S — Single function with basic input validation
200
+ ```
201
+
202
+ ### 7.3 Explain what just happened
203
+
204
+ Output:
205
+ ```
206
+ I created a demo feature: rpi/demo-greeting/
207
+
208
+ This is what /rpi:new does — it interviews you about your feature and creates
209
+ REQUEST.md with structured requirements.
210
+
211
+ In a real workflow, the next steps would be:
212
+ /rpi:research demo-greeting → agents analyze feasibility
213
+ /rpi:plan demo-greeting → generate specs and task checklist
214
+ /rpi:implement demo-greeting → build it task by task
215
+
216
+ You can run these commands now to see the full pipeline, or delete the demo:
217
+ rm -rf rpi/demo-greeting
218
+ ```
219
+
220
+ ## 8. Next steps
221
+
222
+ Output:
223
+ ```
224
+ You're ready to go! Here's your first workflow:
225
+
226
+ 1. /rpi:init Set up your preferences
227
+ 2. /rpi:new my-feature Describe what you want to build
228
+ 3. /rpi:research my-feature Let the agents analyze it
229
+ 4. /rpi:plan my-feature Generate the implementation plan
230
+ 5. /rpi:implement my-feature Build it
231
+
232
+ Use /rpi:status anytime to see where your features stand.
233
+
234
+ Tips:
235
+ - Start with --quick tier for small features
236
+ - Use --deep tier when adding new architecture or risky dependencies
237
+ - Enable tdd: true in .rpi.yaml if you want test-first development
238
+ - Run /rpi:simplify anytime to check code quality on recent changes
239
+ ```
240
+
241
+ </process>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rpi-kit",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Research → Plan → Implement. A systematic feature development workflow for Claude Code.",
5
5
  "license": "MIT",
6
6
  "author": "Daniel Mendes",
@@ -30,6 +30,7 @@
30
30
  "LICENSE"
31
31
  ],
32
32
  "scripts": {
33
+ "test": "node --test test/cli.test.js test/commands.test.js",
33
34
  "postinstall": "node bin/cli.js install --silent"
34
35
  }
35
36
  }