rpi-kit 1.4.0 → 2.0.0
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/.claude-plugin/marketplace.json +9 -6
- package/.claude-plugin/plugin.json +4 -4
- package/AGENTS.md +2016 -117
- package/CHANGELOG.md +83 -0
- package/README.md +116 -169
- package/agents/atlas.md +61 -0
- package/agents/clara.md +49 -0
- package/agents/forge.md +38 -0
- package/agents/hawk.md +54 -0
- package/agents/luna.md +50 -0
- package/agents/mestre.md +61 -0
- package/agents/nexus.md +63 -0
- package/agents/pixel.md +48 -0
- package/agents/quill.md +40 -0
- package/agents/razor.md +41 -0
- package/agents/sage.md +52 -0
- package/agents/scout.md +49 -0
- package/agents/shield.md +51 -0
- package/bin/cli.js +160 -53
- package/bin/onboarding.js +46 -28
- package/commands/rpi/archive.md +149 -0
- package/commands/rpi/docs.md +106 -168
- package/commands/rpi/implement.md +163 -401
- package/commands/rpi/init.md +150 -67
- package/commands/rpi/learn.md +114 -0
- package/commands/rpi/new.md +85 -155
- package/commands/rpi/onboarding.md +157 -336
- package/commands/rpi/party.md +212 -0
- package/commands/rpi/plan.md +241 -205
- package/commands/rpi/research.md +162 -104
- package/commands/rpi/review.md +350 -104
- package/commands/rpi/rpi.md +125 -0
- package/commands/rpi/simplify.md +156 -93
- package/commands/rpi/status.md +91 -114
- package/package.json +7 -3
- package/skills/rpi-agents/SKILL.md +63 -39
- package/skills/rpi-workflow/SKILL.md +160 -186
- package/agents/code-reviewer.md +0 -108
- package/agents/code-simplifier.md +0 -82
- package/agents/cto-advisor.md +0 -61
- package/agents/doc-synthesizer.md +0 -67
- package/agents/doc-writer.md +0 -37
- package/agents/explore-codebase.md +0 -88
- package/agents/plan-executor.md +0 -95
- package/agents/product-manager.md +0 -59
- package/agents/requirement-parser.md +0 -51
- package/agents/senior-engineer.md +0 -61
- package/agents/test-engineer.md +0 -23
- package/agents/ux-designer.md +0 -58
- package/codex.md +0 -72
- package/commands/rpi/add-todo.md +0 -83
- package/commands/rpi/set-profile.md +0 -124
- package/commands/rpi/test.md +0 -198
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rpi:onboarding
|
|
3
|
-
description:
|
|
3
|
+
description: First-time setup — analyzes your codebase, generates context, and guides you through your first feature.
|
|
4
4
|
argument-hint: "[--refresh]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
@@ -12,414 +12,235 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
Auto-analyze the user's codebase with parallel agents, generate a persistent .rpi-profile.md, suggest features to build, and interactively guide the user through their first feature.
|
|
17
|
-
</objective>
|
|
15
|
+
# /rpi:onboarding — Guided First-Time Setup
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
Walks the user through RPIKit setup: explains the workflow, configures the project, analyzes the codebase, and guides them into their first feature.
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
---
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
Welcome to RPIKit — Research, Plan, Implement.
|
|
21
|
+
## Step 1: Welcome message
|
|
26
22
|
|
|
27
|
-
|
|
28
|
-
writing any code. Each phase produces artifacts that feed the next, with
|
|
29
|
-
validation gates that prevent premature implementation.
|
|
23
|
+
Output to the user:
|
|
30
24
|
|
|
31
|
-
I'm going to analyze your project first, then suggest features you
|
|
32
|
-
could build with RPIKit.
|
|
33
25
|
```
|
|
26
|
+
Welcome to RPIKit v2 — Research, Plan, Implement.
|
|
34
27
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
28
|
+
RPIKit is a 7-phase development workflow with 13 specialized AI agents.
|
|
29
|
+
Each phase produces artifacts that feed the next, with validation gates
|
|
30
|
+
that prevent premature implementation.
|
|
38
31
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
Output:
|
|
42
|
-
```
|
|
43
|
-
Analyzing your project...
|
|
32
|
+
I'll analyze your project, set up configuration, and guide you through
|
|
33
|
+
your first feature.
|
|
44
34
|
```
|
|
45
35
|
|
|
46
|
-
|
|
36
|
+
## Step 2: Parse arguments and check existing setup
|
|
47
37
|
|
|
48
|
-
|
|
38
|
+
1. Parse `$ARGUMENTS` for `--refresh` flag.
|
|
39
|
+
2. Check if `rpi/context.md` exists.
|
|
49
40
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
- go.mod, Gemfile, composer.json, pom.xml, build.gradle
|
|
57
|
-
- .eslintrc*, .prettierrc*, biome.json
|
|
58
|
-
- vite.config.*, next.config.*, webpack.config.*
|
|
59
|
-
- jest.config.*, vitest.config.*, pytest.ini
|
|
60
|
-
- docker-compose.yml, Dockerfile
|
|
61
|
-
- prisma/schema.prisma, drizzle.config.*
|
|
62
|
-
|
|
63
|
-
2. Read the config files found to identify:
|
|
64
|
-
- Primary language and version
|
|
65
|
-
- Framework and version
|
|
66
|
-
- Database and ORM
|
|
67
|
-
- Test framework and runner
|
|
68
|
-
- Linter and formatter
|
|
69
|
-
- Bundler and build tool
|
|
70
|
-
- Styling approach (CSS modules, Tailwind, styled-components, etc.)
|
|
71
|
-
|
|
72
|
-
3. Use Glob to find 5-10 representative source files (pick from different directories):
|
|
73
|
-
- Read them to detect:
|
|
74
|
-
- File naming convention (kebab-case, camelCase, PascalCase, snake_case)
|
|
75
|
-
- Component/module pattern (functional components, classes, modules)
|
|
76
|
-
- Import style (relative paths, path aliases, barrel exports)
|
|
77
|
-
- Error handling pattern (try/catch, Result types, custom errors)
|
|
78
|
-
- API pattern (REST routes, GraphQL resolvers, tRPC procedures)
|
|
79
|
-
|
|
80
|
-
4. Identify architecture:
|
|
81
|
-
- Directory structure pattern (src/, app/, lib/, etc.)
|
|
82
|
-
- Layering (routes → services → repositories, etc.)
|
|
83
|
-
- Key entry points (main files, layout files, middleware)
|
|
84
|
-
|
|
85
|
-
Output your findings in this exact format:
|
|
41
|
+
- If `rpi/context.md` exists and `--refresh` was NOT passed:
|
|
42
|
+
Ask with AskUserQuestion: "Project already configured. Do you want to refresh the analysis or skip to feature selection?"
|
|
43
|
+
- If refresh: proceed to Step 3 (full init flow).
|
|
44
|
+
- If skip: jump to Step 5 (read existing `rpi/context.md` and present summary).
|
|
45
|
+
- If `--refresh` was passed: proceed to Step 3 (full init flow).
|
|
46
|
+
- If `rpi/context.md` does not exist: proceed to Step 3 (full init flow).
|
|
86
47
|
|
|
87
|
-
##
|
|
88
|
-
- Language: {language} {version}
|
|
89
|
-
- Framework: {framework} {version}
|
|
90
|
-
- Database: {db} via {orm}
|
|
91
|
-
- Testing: {test_framework}
|
|
92
|
-
- Styling: {approach}
|
|
93
|
-
- Linter: {tool}
|
|
94
|
-
- Bundler: {tool}
|
|
48
|
+
## Step 3: Run /rpi:init flow inline — configuration interview
|
|
95
49
|
|
|
96
|
-
|
|
97
|
-
- File naming: {pattern}
|
|
98
|
-
- Component pattern: {pattern}
|
|
99
|
-
- Import style: {pattern}
|
|
100
|
-
- Error handling: {pattern}
|
|
101
|
-
- API pattern: {pattern}
|
|
50
|
+
### Step 3a: Check existing config
|
|
102
51
|
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
|
|
52
|
+
Check if `.rpi.yaml` exists.
|
|
53
|
+
- If it exists and `--refresh` was NOT passed: ask with AskUserQuestion: ".rpi.yaml already exists. Overwrite with fresh config or keep current settings?"
|
|
54
|
+
- If keep: skip to Step 3c.
|
|
55
|
+
- If overwrite: proceed to Step 3b.
|
|
56
|
+
- If it exists and `--refresh` was passed: proceed to Step 3b.
|
|
57
|
+
- If it does not exist: proceed to Step 3b.
|
|
108
58
|
|
|
109
|
-
###
|
|
59
|
+
### Step 3b: Interview (2 batches)
|
|
110
60
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
- Pattern: TODO|FIXME|HACK|XXX|WORKAROUND|BUG
|
|
116
|
-
- Record: file, line number, and the marker text
|
|
117
|
-
- Categorize by priority: FIXME/BUG = high, TODO = medium, HACK/XXX/WORKAROUND = low
|
|
118
|
-
|
|
119
|
-
2. Analyze test coverage gaps:
|
|
120
|
-
- Use Glob to find all source files (*.ts, *.tsx, *.js, *.jsx, *.py, *.rs, *.go, etc.)
|
|
121
|
-
- Use Glob to find all test files (*.test.*, *.spec.*, *_test.*, test_*.*)
|
|
122
|
-
- Compare: which source modules have no corresponding test file?
|
|
123
|
-
- List the untested modules
|
|
124
|
-
|
|
125
|
-
3. Check for dead code signals:
|
|
126
|
-
- Use Grep to find exported functions/classes
|
|
127
|
-
- Use Grep to find imports of those exports
|
|
128
|
-
- Flag exports with zero imports (potential dead code)
|
|
129
|
-
- Limit to 5 findings max
|
|
130
|
-
|
|
131
|
-
4. Check dependency health:
|
|
132
|
-
- If package.json exists, note how many dependencies and devDependencies
|
|
133
|
-
- Look for lock file (package-lock.json, yarn.lock, pnpm-lock.yaml)
|
|
134
|
-
- Note if any dependency versions use '*' or 'latest'
|
|
135
|
-
|
|
136
|
-
5. Find uncovered error paths:
|
|
137
|
-
- Use Grep to find try/catch blocks, .catch(), or error handlers
|
|
138
|
-
- Look for empty catch blocks or catch blocks that only log
|
|
139
|
-
- Limit to 5 findings max
|
|
140
|
-
|
|
141
|
-
Output your findings in this exact format:
|
|
142
|
-
|
|
143
|
-
## Health
|
|
144
|
-
- Task markers: {N} found ({high} high, {med} medium, {low} low priority)
|
|
145
|
-
- Test coverage: {tested}/{total} modules have tests ({percentage}%)
|
|
146
|
-
- Dead code signals: {N} potentially unused exports
|
|
147
|
-
- Dependencies: {N} deps, {M} devDeps, lock file: {yes/no}
|
|
148
|
-
- Uncovered error paths: {N} found
|
|
149
|
-
|
|
150
|
-
### High Priority Markers
|
|
151
|
-
- {file}:{line} — {marker text}
|
|
152
|
-
|
|
153
|
-
### Untested Modules
|
|
154
|
-
- {file} — no test file found
|
|
155
|
-
|
|
156
|
-
### Uncovered Error Paths
|
|
157
|
-
- {file}:{line} — {description}
|
|
158
|
-
|
|
159
|
-
## Suggested Features (from code health)
|
|
160
|
-
1. [{priority}] {slug} — {description based on findings}
|
|
161
|
-
2. [{priority}] {slug} — {description}
|
|
162
|
-
(Generate 1-3 suggestions based on the most impactful findings)
|
|
163
|
-
```
|
|
61
|
+
**Batch 1** (use AskUserQuestion — ask all at once):
|
|
62
|
+
- "Do you use TDD? (yes/no, default: no)"
|
|
63
|
+
- "Commit style? (conventional/freeform, default: conventional)"
|
|
64
|
+
- "When should the UX agent (Pixel) run? (auto/always/never, default: auto — runs when frontend detected)"
|
|
164
65
|
|
|
165
|
-
|
|
66
|
+
**Batch 2** (use AskUserQuestion — ask all at once):
|
|
67
|
+
- "Auto-learn from implementations? When Forge finishes a task, should RPIKit capture the solution in rpi/solutions/? (yes/no, default: no)"
|
|
68
|
+
- "Party mode default panel size? (3/5/7, default: 5)"
|
|
166
69
|
|
|
167
|
-
|
|
168
|
-
You are analyzing a project's git history and risk profile. This is a READ-ONLY task — do not write any files.
|
|
70
|
+
### Step 3c: Write .rpi.yaml
|
|
169
71
|
|
|
170
|
-
|
|
171
|
-
```bash
|
|
172
|
-
git log --oneline --since="30 days ago" | head -30
|
|
173
|
-
```
|
|
174
|
-
```bash
|
|
175
|
-
git shortlog -sn --since="30 days ago"
|
|
176
|
-
```
|
|
177
|
-
```bash
|
|
178
|
-
git log --since="30 days ago" --pretty=format: --name-only | sort | uniq -c | sort -rn | head -10
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
2. Identify hotspot files (most frequently changed in 30 days)
|
|
72
|
+
Write `.rpi.yaml` to the project root with the user's responses (use defaults for unanswered questions):
|
|
182
73
|
|
|
183
|
-
|
|
184
|
-
|
|
74
|
+
```yaml
|
|
75
|
+
version: 2
|
|
185
76
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
```bash
|
|
192
|
-
gh issue list --limit 5 --state open 2>/dev/null
|
|
193
|
-
```
|
|
194
|
-
If gh is not available or fails, skip gracefully.
|
|
77
|
+
# Directories
|
|
78
|
+
folder: rpi/features
|
|
79
|
+
specs_dir: rpi/specs
|
|
80
|
+
solutions_dir: rpi/solutions
|
|
81
|
+
context_file: rpi/context.md
|
|
195
82
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
83
|
+
# Execution
|
|
84
|
+
parallel_threshold: 8
|
|
85
|
+
commit_style: {user_response | conventional}
|
|
86
|
+
tdd: {user_response | false}
|
|
200
87
|
|
|
201
|
-
|
|
88
|
+
# Agents
|
|
89
|
+
ux_agent: {user_response | auto}
|
|
202
90
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
- Contributors (30d): {N}
|
|
206
|
-
- Most changed files: {file1} ({count}), {file2} ({count}), {file3} ({count})
|
|
207
|
-
- Recent focus: {themes}
|
|
208
|
-
- Open issues: {N} (or "GitHub CLI not available")
|
|
91
|
+
# Quick flow
|
|
92
|
+
quick_complexity: S
|
|
209
93
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
(List 1-5 risks based on findings. If no significant risks, say "No significant risks detected.")
|
|
94
|
+
# Knowledge compounding
|
|
95
|
+
auto_learn: {user_response | true}
|
|
213
96
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
(Generate 0-2 suggestions. Only suggest if findings warrant it.)
|
|
97
|
+
# Party mode
|
|
98
|
+
party_default_agents: {user_response | 5}
|
|
217
99
|
```
|
|
218
100
|
|
|
219
|
-
|
|
101
|
+
### Step 3d: Create directory structure
|
|
220
102
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
- From Agent A: Stack, Conventions, Architecture
|
|
227
|
-
- From Agent B: Health, Suggested Features
|
|
228
|
-
- From Agent C: Git Insights, Risks, Suggested Features
|
|
103
|
+
```bash
|
|
104
|
+
mkdir -p rpi/specs
|
|
105
|
+
mkdir -p rpi/solutions
|
|
106
|
+
mkdir -p rpi/features
|
|
107
|
+
```
|
|
229
108
|
|
|
230
|
-
|
|
109
|
+
## Step 4: Launch Atlas — codebase analysis
|
|
231
110
|
|
|
232
|
-
|
|
233
|
-
- Remove duplicates (same area of code)
|
|
234
|
-
- Rank by priority: HIGH > MEDIUM > LOW
|
|
235
|
-
- Keep top 5 suggestions max
|
|
111
|
+
Launch Atlas agent to analyze the codebase and generate `rpi/context.md`:
|
|
236
112
|
|
|
237
|
-
|
|
113
|
+
```
|
|
114
|
+
You are Atlas. Analyze this entire codebase and produce a comprehensive project context document.
|
|
238
115
|
|
|
239
|
-
|
|
116
|
+
Your task:
|
|
117
|
+
1. Read config files first (package.json, tsconfig, Cargo.toml, pyproject.toml, go.mod, etc.)
|
|
118
|
+
2. Explore the directory structure — map all key directories and their purposes
|
|
119
|
+
3. Find 5-10 representative source files across different parts of the codebase
|
|
120
|
+
4. Detect naming conventions, component patterns, import style, error handling
|
|
121
|
+
5. Identify the testing setup and coverage patterns
|
|
122
|
+
6. Note any TODOs, FIXMEs, or incomplete areas in the code
|
|
123
|
+
7. Identify untested modules or areas with weak coverage
|
|
124
|
+
8. Spot architectural risks or technical debt
|
|
240
125
|
|
|
241
|
-
|
|
242
|
-
# Project Profile
|
|
126
|
+
Output format — write this directly to rpi/context.md:
|
|
243
127
|
|
|
244
|
-
|
|
128
|
+
# Project Context
|
|
245
129
|
|
|
246
|
-
|
|
130
|
+
## Stack
|
|
131
|
+
- Language: {language} {version}
|
|
132
|
+
- Framework: {framework} {version}
|
|
133
|
+
- Database: {db} (if any)
|
|
134
|
+
- Testing: {test_framework}
|
|
135
|
+
- Build: {build_tool}
|
|
136
|
+
- Package Manager: {package_manager}
|
|
247
137
|
|
|
248
|
-
|
|
138
|
+
## Architecture
|
|
139
|
+
- Pattern: {description}
|
|
140
|
+
- Key directories: {list with purposes}
|
|
141
|
+
- Entry points: {list}
|
|
249
142
|
|
|
250
|
-
|
|
143
|
+
## Conventions
|
|
144
|
+
- File naming: {pattern}
|
|
145
|
+
- Component pattern: {pattern}
|
|
146
|
+
- Import style: {pattern}
|
|
147
|
+
- Error handling: {pattern}
|
|
148
|
+
- API pattern: {pattern}
|
|
251
149
|
|
|
252
|
-
|
|
150
|
+
## Key Files
|
|
151
|
+
{List of important files with brief descriptions}
|
|
253
152
|
|
|
254
|
-
|
|
153
|
+
## Existing Tests
|
|
154
|
+
{Summary of test coverage and testing patterns}
|
|
255
155
|
|
|
256
|
-
##
|
|
257
|
-
{
|
|
258
|
-
1. [{priority}] {slug} — {description}
|
|
259
|
-
Source: {what finding led to this suggestion}
|
|
260
|
-
2. ...
|
|
156
|
+
## Risks and Technical Debt
|
|
157
|
+
{Identified risks, TODOs, FIXMEs, weak areas}
|
|
261
158
|
|
|
262
|
-
|
|
159
|
+
## Opportunities
|
|
160
|
+
{3-5 concrete feature ideas based on: TODOs found, untested modules, missing error handling, potential improvements}
|
|
263
161
|
```
|
|
264
162
|
|
|
265
|
-
|
|
163
|
+
Wait for Atlas to complete. Store the output as `$ATLAS_OUTPUT`.
|
|
266
164
|
|
|
267
|
-
|
|
268
|
-
- If yes: read it and confirm with user ("Found existing config. Using it.")
|
|
269
|
-
- If no: run the init flow — ask the 4 batches of questions from `/rpi:init` and create `.rpi.yaml`
|
|
165
|
+
## Step 5: Present codebase analysis summary
|
|
270
166
|
|
|
271
|
-
|
|
167
|
+
1. Read `rpi/context.md` (freshly generated or existing).
|
|
168
|
+
2. Output a condensed summary to the user:
|
|
272
169
|
|
|
273
|
-
Output a condensed version of the profile:
|
|
274
170
|
```
|
|
275
|
-
Project
|
|
171
|
+
Project Analysis Complete
|
|
276
172
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
Hotspots: {top_file} ({changes} changes in 30d)
|
|
173
|
+
Stack: {language} + {framework}
|
|
174
|
+
Architecture: {pattern}
|
|
175
|
+
Files: {approximate count}
|
|
176
|
+
Tests: {coverage summary}
|
|
282
177
|
|
|
283
|
-
|
|
178
|
+
Key findings:
|
|
179
|
+
- {finding 1}
|
|
180
|
+
- {finding 2}
|
|
181
|
+
- {finding 3}
|
|
284
182
|
```
|
|
285
183
|
|
|
286
|
-
##
|
|
184
|
+
## Step 6: Suggest features
|
|
287
185
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
Use AskUserQuestion:
|
|
186
|
+
Based on the `## Opportunities` section in `rpi/context.md` (or from `$ATLAS_OUTPUT`), present 3-5 concrete feature suggestions:
|
|
291
187
|
|
|
292
|
-
|
|
188
|
+
```
|
|
189
|
+
Based on the analysis, here are some things you could work on:
|
|
293
190
|
|
|
294
|
-
{
|
|
191
|
+
1. {feature idea} — {brief justification from codebase analysis}
|
|
192
|
+
2. {feature idea} — {brief justification}
|
|
193
|
+
3. {feature idea} — {brief justification}
|
|
194
|
+
```
|
|
295
195
|
|
|
296
|
-
|
|
196
|
+
Each suggestion should be grounded in something Atlas actually found (a TODO, an untested module, a missing pattern, a risk to address).
|
|
297
197
|
|
|
298
|
-
|
|
299
|
-
- "Build one of these features" → ask which one, proceed to Phase 5 option A
|
|
300
|
-
- "Describe my own feature" → proceed to Phase 5 option B
|
|
301
|
-
- "See a demo first" → proceed to Phase 5 option C
|
|
302
|
-
- "I'm done — I'll explore on my own" → proceed to Phase 5 option D
|
|
198
|
+
## Step 7: Ask what the user wants to do
|
|
303
199
|
|
|
304
|
-
|
|
200
|
+
Use AskUserQuestion:
|
|
305
201
|
|
|
306
|
-
|
|
202
|
+
"What would you like to do?
|
|
203
|
+
A) Build one of these features (pick a number)
|
|
204
|
+
B) Describe my own feature
|
|
205
|
+
C) I'll explore on my own"
|
|
307
206
|
|
|
308
|
-
###
|
|
207
|
+
### If A (build a suggested feature):
|
|
309
208
|
|
|
310
|
-
1.
|
|
311
|
-
2. Read
|
|
312
|
-
3.
|
|
313
|
-
```bash
|
|
314
|
-
mkdir -p {folder}/{slug}/research
|
|
315
|
-
mkdir -p {folder}/{slug}/plan
|
|
316
|
-
mkdir -p {folder}/{slug}/implement
|
|
317
|
-
```
|
|
318
|
-
4. Pre-fill REQUEST.md using context from the profile and the suggestion:
|
|
319
|
-
- Summary: from the suggestion description
|
|
320
|
-
- Problem: from the source finding (TODO, test gap, risk)
|
|
321
|
-
- Target Users: infer from the codebase context
|
|
322
|
-
- Constraints: from conventions and architecture in the profile
|
|
323
|
-
- Complexity Estimate: infer from the suggestion scope
|
|
324
|
-
5. Show the generated REQUEST.md to the user
|
|
325
|
-
6. Output:
|
|
209
|
+
1. Convert the selected feature idea into a slug.
|
|
210
|
+
2. Read `commands/rpi/new.md` and follow its process from Step 4 onward (Luna's interview), using the suggested feature as context.
|
|
211
|
+
3. After REQUEST.md is created, output:
|
|
326
212
|
```
|
|
327
|
-
Feature created:
|
|
213
|
+
Feature created: rpi/features/{slug}/REQUEST.md
|
|
328
214
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
Next steps:
|
|
332
|
-
/rpi:research {slug} Agents analyze feasibility → GO/NO-GO
|
|
333
|
-
/rpi:plan {slug} Generate specs + task checklist
|
|
334
|
-
/rpi:implement {slug} Build it task by task
|
|
335
|
-
|
|
336
|
-
Want me to run /rpi:research {slug} now?
|
|
215
|
+
Next: /rpi {slug}
|
|
337
216
|
```
|
|
338
|
-
7. If user says yes, explain what's about to happen ("Research phase: agents will analyze your codebase and requirements in parallel..."), then suggest they run the command.
|
|
339
|
-
|
|
340
|
-
### Option B: Describe your own feature
|
|
341
|
-
|
|
342
|
-
1. Explain: "Let's create your first feature. I'll ask a few questions to understand what you want to build."
|
|
343
|
-
2. Run the same interview flow as `/rpi:new`:
|
|
344
|
-
- Ask: "What feature do you want to build?"
|
|
345
|
-
- Derive slug from answer
|
|
346
|
-
- Ask: "What problem does this solve? Who benefits?"
|
|
347
|
-
- Ask adaptive follow-ups based on answers
|
|
348
|
-
3. Create REQUEST.md in the feature folder
|
|
349
|
-
4. Present next steps as in Option A
|
|
350
|
-
|
|
351
|
-
### Option C: See a demo
|
|
352
|
-
|
|
353
|
-
1. If `.rpi.yaml` doesn't exist, create a minimal one with defaults
|
|
354
|
-
2. Create demo folder and REQUEST.md:
|
|
355
|
-
```bash
|
|
356
|
-
mkdir -p {folder}/demo-greeting/research
|
|
357
|
-
mkdir -p {folder}/demo-greeting/plan
|
|
358
|
-
mkdir -p {folder}/demo-greeting/implement
|
|
359
|
-
```
|
|
360
|
-
3. Write `{folder}/demo-greeting/REQUEST.md`:
|
|
361
|
-
```markdown
|
|
362
|
-
# Greeting Message
|
|
363
|
-
|
|
364
|
-
## Summary
|
|
365
|
-
Add a simple greeting function that returns a personalized welcome message.
|
|
366
217
|
|
|
367
|
-
|
|
368
|
-
The application has no way to greet users by name.
|
|
218
|
+
### If B (describe own feature):
|
|
369
219
|
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
## Constraints
|
|
374
|
-
- Must be a pure function (no side effects)
|
|
375
|
-
- Must handle missing or empty names gracefully
|
|
376
|
-
|
|
377
|
-
## References
|
|
378
|
-
- None
|
|
379
|
-
|
|
380
|
-
## Complexity Estimate
|
|
381
|
-
S — Single function with basic input validation
|
|
382
|
-
```
|
|
383
|
-
4. Explain each section:
|
|
220
|
+
1. Ask with AskUserQuestion: "What's the name for this feature? (short, e.g. 'oauth', 'dark-mode', 'csv-export')"
|
|
221
|
+
2. Read `commands/rpi/new.md` and follow its process from Step 4 onward (Luna's interview).
|
|
222
|
+
3. After REQUEST.md is created, output:
|
|
384
223
|
```
|
|
385
|
-
|
|
224
|
+
Feature created: rpi/features/{slug}/REQUEST.md
|
|
386
225
|
|
|
387
|
-
|
|
226
|
+
Next: /rpi {slug}
|
|
227
|
+
```
|
|
388
228
|
|
|
389
|
-
|
|
390
|
-
Problem → Why this is needed, who's affected
|
|
391
|
-
Target Users → Who will use it
|
|
392
|
-
Constraints → Technical and business boundaries
|
|
393
|
-
Complexity → Rough size estimate (S/M/L/XL)
|
|
229
|
+
### If C (explore on their own):
|
|
394
230
|
|
|
395
|
-
|
|
396
|
-
/rpi:research demo-greeting → agents analyze feasibility
|
|
397
|
-
/rpi:plan demo-greeting → generate specs and task checklist
|
|
398
|
-
/rpi:implement demo-greeting → build it task by task
|
|
231
|
+
Proceed to Step 8.
|
|
399
232
|
|
|
400
|
-
|
|
401
|
-
rm -rf {folder}/demo-greeting
|
|
402
|
-
```
|
|
233
|
+
## Step 8: Quick reference card
|
|
403
234
|
|
|
404
|
-
|
|
235
|
+
Output to the user:
|
|
405
236
|
|
|
406
|
-
Output:
|
|
407
237
|
```
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
/rpi:
|
|
413
|
-
/rpi:
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
/rpi:status See all features
|
|
417
|
-
|
|
418
|
-
Tips:
|
|
419
|
-
- Start with --quick tier for small features
|
|
420
|
-
- Use --deep tier for risky or large changes
|
|
421
|
-
- Enable tdd: true in .rpi.yaml for test-first development
|
|
422
|
-
- Run /rpi:onboarding --refresh to re-analyze your project anytime
|
|
238
|
+
Quick Reference:
|
|
239
|
+
/rpi:new my-feature Start a new feature
|
|
240
|
+
/rpi my-feature Auto-progress to next phase
|
|
241
|
+
/rpi:party "topic" Multi-agent debate
|
|
242
|
+
/rpi:learn Capture a solution
|
|
243
|
+
/rpi:status See all features
|
|
244
|
+
|
|
245
|
+
Setup complete. Happy building!
|
|
423
246
|
```
|
|
424
|
-
|
|
425
|
-
</process>
|