ralphie 1.0.0 → 1.1.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/README.md +79 -22
- package/dist/cli.js +2982 -2701
- package/package.json +12 -4
- package/skills/SKILLS.md +69 -0
- package/skills/ralphie-iterate/SKILL.md +264 -751
- package/skills/ralphie-spec/SKILL.md +359 -0
- package/skills/review-spec/SKILL.md +367 -218
- package/templates/.claude/ralphie.md +2 -2
- package/templates/RALPHIE.md +87 -59
- package/templates/specs/active/.gitkeep +0 -0
- package/templates/specs/completed/.gitkeep +0 -0
- package/templates/specs/lessons.md +18 -0
- package/templates/specs/templates/bugfix.md +66 -0
- package/templates/specs/templates/feature.md +56 -0
- package/templates/specs/templates/refactor.md +80 -0
- package/skills/create-spec/SKILL.md +0 -222
- package/templates/.claude/skills/create-spec/SKILL.md +0 -222
- package/templates/.claude/skills/ralphie-iterate/SKILL.md +0 -959
|
@@ -1,303 +1,417 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-spec
|
|
3
|
-
description: Validate
|
|
3
|
+
description: Validate specs for V2 format compliance (task IDs, status, size) and content quality. Checks structure, deliverables, and provides content critique.
|
|
4
4
|
context: fork
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
|
+
license: MIT
|
|
7
|
+
metadata:
|
|
8
|
+
author: ralphie
|
|
9
|
+
version: "3.0.0"
|
|
10
|
+
argument-hint: "[spec-path]"
|
|
11
|
+
install-hint: npx add-skill skylarbarrera/ralphie --skill review-spec
|
|
6
12
|
---
|
|
7
13
|
|
|
8
|
-
# Review SPEC Skill
|
|
14
|
+
# Review SPEC Skill (V2 Format)
|
|
9
15
|
|
|
10
|
-
Validate
|
|
16
|
+
Validate spec files for V2 format compliance and content quality before finalizing.
|
|
11
17
|
|
|
12
18
|
## Workflow
|
|
13
19
|
|
|
14
20
|
```
|
|
15
|
-
|
|
21
|
+
Locate Spec → V2 Format Checks → Content Checks → Content Critique → Report
|
|
16
22
|
```
|
|
17
23
|
|
|
18
|
-
## Step 1:
|
|
24
|
+
## Step 1: Locate Spec
|
|
19
25
|
|
|
20
|
-
|
|
26
|
+
Find the spec to review:
|
|
27
|
+
|
|
28
|
+
1. Check `specs/active/*.md` (one spec at a time)
|
|
29
|
+
2. Or use provided path argument
|
|
21
30
|
|
|
22
31
|
```bash
|
|
23
|
-
|
|
32
|
+
ls specs/active/*.md
|
|
24
33
|
```
|
|
25
34
|
|
|
26
|
-
## Step 2: Format Checks
|
|
35
|
+
## Step 2: V2 Format Checks
|
|
27
36
|
|
|
28
|
-
|
|
37
|
+
These checks are **required** for all specs.
|
|
29
38
|
|
|
30
|
-
### 2.1
|
|
39
|
+
### 2.1 Task ID Format
|
|
31
40
|
|
|
32
41
|
**PASS:**
|
|
33
42
|
```markdown
|
|
34
|
-
|
|
35
|
-
|
|
43
|
+
### T001: Setup project structure
|
|
44
|
+
### T002: Implement core logic
|
|
45
|
+
### T003: Add tests
|
|
36
46
|
```
|
|
37
47
|
|
|
38
48
|
**FAIL:**
|
|
39
49
|
```markdown
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
* Using asterisk instead of dash
|
|
50
|
+
### Task 1: Setup project # No T prefix, wrong format
|
|
51
|
+
### T1: Implement logic # Only 1 digit, need 3
|
|
52
|
+
- [ ] Add tests # Checkbox format (invalid)
|
|
44
53
|
```
|
|
45
54
|
|
|
46
55
|
**Check for:**
|
|
47
|
-
- All tasks use
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
- Dash `-` prefix, not asterisk `*` or number
|
|
56
|
+
- All tasks use `### T###:` format (H3, T prefix, 3 digits, colon, space)
|
|
57
|
+
- Sequential numbering (T001, T002, T003...)
|
|
58
|
+
- No gaps in sequence (T001, T003 - missing T002)
|
|
51
59
|
|
|
52
|
-
### 2.2
|
|
60
|
+
### 2.2 Status Field
|
|
53
61
|
|
|
54
|
-
**
|
|
62
|
+
**PASS:**
|
|
55
63
|
```markdown
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- Add this code:
|
|
59
|
-
```typescript
|
|
60
|
-
const isValid = await bcrypt.compare(password, hash);
|
|
61
|
-
```
|
|
64
|
+
### T001: Task title
|
|
65
|
+
- Status: pending
|
|
62
66
|
```
|
|
63
67
|
|
|
64
|
-
**
|
|
68
|
+
**FAIL:**
|
|
65
69
|
```markdown
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
### T001: Task title
|
|
71
|
+
- Status: todo # Invalid value
|
|
72
|
+
- status: pending # Lowercase "status"
|
|
73
|
+
# Missing Status line entirely
|
|
69
74
|
```
|
|
70
75
|
|
|
76
|
+
**Valid values:** `pending`, `in_progress`, `passed`, `failed`
|
|
77
|
+
|
|
71
78
|
**Check for:**
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
79
|
+
- Every task has `- Status:` line (exact format)
|
|
80
|
+
- Value is one of the four valid options
|
|
81
|
+
- Appears immediately after task header
|
|
75
82
|
|
|
76
|
-
### 2.3
|
|
83
|
+
### 2.3 Size Field
|
|
77
84
|
|
|
78
|
-
**
|
|
85
|
+
**PASS:**
|
|
79
86
|
```markdown
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
### T001: Task title
|
|
88
|
+
- Status: pending
|
|
89
|
+
- Size: M
|
|
83
90
|
```
|
|
84
91
|
|
|
85
|
-
**
|
|
92
|
+
**FAIL:**
|
|
86
93
|
```markdown
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
### T001: Task title
|
|
95
|
+
- Status: pending
|
|
96
|
+
- Size: Medium # Full word, not abbreviation
|
|
97
|
+
- Size: XL # Invalid size
|
|
98
|
+
# Missing Size line
|
|
90
99
|
```
|
|
91
100
|
|
|
101
|
+
**Valid values:** `S`, `M`, `L`
|
|
102
|
+
|
|
92
103
|
**Check for:**
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
104
|
+
- Every task has `- Size:` line (exact format)
|
|
105
|
+
- Value is S, M, or L (single uppercase letter)
|
|
106
|
+
- Appears after Status line
|
|
96
107
|
|
|
97
|
-
### 2.4
|
|
108
|
+
### 2.4 Deliverables Section
|
|
98
109
|
|
|
99
|
-
**
|
|
110
|
+
**PASS:**
|
|
100
111
|
```markdown
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
112
|
+
### T001: Task title
|
|
113
|
+
- Status: pending
|
|
114
|
+
- Size: S
|
|
115
|
+
|
|
116
|
+
**Deliverables:**
|
|
117
|
+
- First deliverable
|
|
118
|
+
- Second deliverable
|
|
106
119
|
```
|
|
107
120
|
|
|
108
|
-
**
|
|
121
|
+
**FAIL:**
|
|
109
122
|
```markdown
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
123
|
+
### T001: Task title
|
|
124
|
+
- Status: pending
|
|
125
|
+
- Size: S
|
|
126
|
+
|
|
127
|
+
- First deliverable # Missing **Deliverables:** header
|
|
128
|
+
- Second deliverable
|
|
115
129
|
```
|
|
116
130
|
|
|
117
131
|
**Check for:**
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
132
|
+
- `**Deliverables:**` header present for each task
|
|
133
|
+
- At least one bullet under Deliverables
|
|
134
|
+
- Deliverables describe WHAT not HOW
|
|
121
135
|
|
|
122
|
-
### 2.5
|
|
136
|
+
### 2.5 Verify Section
|
|
123
137
|
|
|
124
|
-
**
|
|
138
|
+
**PASS:**
|
|
125
139
|
```markdown
|
|
126
|
-
|
|
127
|
-
- [ ] Create UserService.ts
|
|
128
|
-
- [ ] Create UserController.ts
|
|
129
|
-
- [ ] Create user.test.ts
|
|
140
|
+
**Verify:** `npm test -- task-name`
|
|
130
141
|
```
|
|
131
142
|
|
|
132
|
-
**
|
|
143
|
+
**FAIL:**
|
|
133
144
|
```markdown
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
- Tests cover all operations
|
|
145
|
+
**Verify:** Run the tests # No backticks, vague
|
|
146
|
+
Verify: npm test # Missing ** bold
|
|
147
|
+
# Missing Verify section entirely
|
|
138
148
|
```
|
|
139
149
|
|
|
140
150
|
**Check for:**
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
151
|
+
- `**Verify:**` present (bold, colon)
|
|
152
|
+
- Contains a command or clear verification method
|
|
153
|
+
- Commands should be in backticks
|
|
154
|
+
|
|
155
|
+
### 2.6 Task Separators
|
|
156
|
+
|
|
157
|
+
**PASS:**
|
|
158
|
+
```markdown
|
|
159
|
+
**Verify:** `npm test`
|
|
144
160
|
|
|
145
|
-
|
|
161
|
+
---
|
|
146
162
|
|
|
147
|
-
|
|
163
|
+
### T002: Next task
|
|
164
|
+
```
|
|
148
165
|
|
|
166
|
+
**FAIL:**
|
|
149
167
|
```markdown
|
|
150
|
-
|
|
168
|
+
**Verify:** `npm test`
|
|
151
169
|
|
|
152
|
-
###
|
|
153
|
-
|
|
154
|
-
- Line 58: Completed task uses `[X]` instead of `[x]`
|
|
170
|
+
### T002: Next task # Missing --- separator
|
|
171
|
+
```
|
|
155
172
|
|
|
156
|
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
173
|
+
**Check for:**
|
|
174
|
+
- `---` separator between each task
|
|
175
|
+
- Blank line before and after separator
|
|
159
176
|
|
|
160
|
-
###
|
|
161
|
-
|
|
162
|
-
|
|
177
|
+
### V2 Format Summary
|
|
178
|
+
|
|
179
|
+
Report each violation:
|
|
180
|
+
|
|
181
|
+
```markdown
|
|
182
|
+
## V2 Format Issues
|
|
183
|
+
|
|
184
|
+
### Task IDs
|
|
185
|
+
- Task 3: Uses `### Task 3:` instead of `### T003:`
|
|
186
|
+
- Task sequence: Gap detected - T001, T003 (missing T002)
|
|
163
187
|
|
|
164
|
-
###
|
|
165
|
-
-
|
|
166
|
-
-
|
|
188
|
+
### Status Field
|
|
189
|
+
- T002: Missing Status field
|
|
190
|
+
- T004: Invalid status value "todo" (use: pending, in_progress, passed, failed)
|
|
167
191
|
|
|
168
|
-
###
|
|
169
|
-
-
|
|
192
|
+
### Size Field
|
|
193
|
+
- T001: Missing Size field
|
|
194
|
+
- T003: Invalid size "Medium" (use: S, M, L)
|
|
195
|
+
|
|
196
|
+
### Deliverables
|
|
197
|
+
- T002: Missing **Deliverables:** section
|
|
198
|
+
- T004: Deliverables section empty
|
|
199
|
+
|
|
200
|
+
### Verify
|
|
201
|
+
- T001: Missing **Verify:** section
|
|
202
|
+
- T003: Verify missing backticks around command
|
|
203
|
+
|
|
204
|
+
### Separators
|
|
205
|
+
- Between T002 and T003: Missing --- separator
|
|
170
206
|
```
|
|
171
207
|
|
|
172
|
-
|
|
208
|
+
---
|
|
173
209
|
|
|
174
|
-
|
|
210
|
+
## Step 3: Content Checks
|
|
175
211
|
|
|
176
|
-
|
|
212
|
+
These checks apply to all specs.
|
|
177
213
|
|
|
178
|
-
|
|
179
|
-
- Does the SPEC clearly state what problem it solves?
|
|
180
|
-
- Are the tasks aligned with solving that problem?
|
|
181
|
-
- Are there tasks that seem unrelated to the stated goal?
|
|
214
|
+
### 3.1 No Code Snippets in Tasks
|
|
182
215
|
|
|
183
|
-
**
|
|
216
|
+
**FAIL - Code in tasks:**
|
|
184
217
|
```markdown
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
218
|
+
**Deliverables:**
|
|
219
|
+
- Use `bcrypt.compare()` instead of `===`
|
|
220
|
+
- Add this code:
|
|
221
|
+
```typescript
|
|
222
|
+
const isValid = await bcrypt.compare(password, hash);
|
|
223
|
+
```
|
|
224
|
+
```
|
|
188
225
|
|
|
189
|
-
|
|
226
|
+
**PASS - Deliverable-focused:**
|
|
227
|
+
```markdown
|
|
228
|
+
**Deliverables:**
|
|
229
|
+
- Password comparison should be timing-safe
|
|
230
|
+
- Handle comparison errors gracefully
|
|
190
231
|
```
|
|
191
232
|
|
|
192
|
-
|
|
233
|
+
**Note:** Code in `**Verify:**` sections is OK (test commands, not implementation)
|
|
193
234
|
|
|
194
|
-
|
|
195
|
-
- Does the SPEC consider existing systems?
|
|
196
|
-
- Are there tasks for integration points (APIs, databases, services)?
|
|
197
|
-
- Does it account for backward compatibility if modifying existing code?
|
|
235
|
+
### 3.2 No File Paths in Tasks
|
|
198
236
|
|
|
199
|
-
**
|
|
237
|
+
**FAIL:**
|
|
200
238
|
```markdown
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
-
|
|
204
|
-
- Whether existing payment records need migration
|
|
205
|
-
- How to handle in-flight transactions during deployment
|
|
239
|
+
**Deliverables:**
|
|
240
|
+
- Modify src/auth/login.ts line 42
|
|
241
|
+
- Update src/middleware/validate.ts
|
|
206
242
|
```
|
|
207
243
|
|
|
208
|
-
|
|
244
|
+
**PASS:**
|
|
245
|
+
```markdown
|
|
246
|
+
**Deliverables:**
|
|
247
|
+
- Login endpoint returns 401 for invalid credentials
|
|
248
|
+
- Credentials validated before database lookup
|
|
249
|
+
```
|
|
209
250
|
|
|
210
|
-
|
|
211
|
-
- For performance-critical features, are there tasks for optimization?
|
|
212
|
-
- For high-volume features, is there consideration of limits/throttling?
|
|
213
|
-
- Are there tasks for monitoring or observability?
|
|
251
|
+
### 3.3 Deliverables Are WHAT Not HOW
|
|
214
252
|
|
|
215
|
-
**
|
|
253
|
+
**FAIL - Instructions:**
|
|
216
254
|
```markdown
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
-
|
|
220
|
-
-
|
|
221
|
-
- Retry logic for failed deliveries
|
|
255
|
+
**Deliverables:**
|
|
256
|
+
- Install express and body-parser
|
|
257
|
+
- Create routes/user.ts file
|
|
258
|
+
- Add GET and POST handlers
|
|
222
259
|
```
|
|
223
260
|
|
|
224
|
-
**
|
|
225
|
-
|
|
226
|
-
|
|
261
|
+
**PASS - Outcomes:**
|
|
262
|
+
```markdown
|
|
263
|
+
**Deliverables:**
|
|
264
|
+
- GET /users returns list of users
|
|
265
|
+
- POST /users creates new user
|
|
266
|
+
- Returns 400 for invalid input
|
|
267
|
+
```
|
|
227
268
|
|
|
228
|
-
|
|
229
|
-
- Is the SPEC trying to do too much in one go?
|
|
230
|
-
- Are there tasks that could be deferred to later phases?
|
|
231
|
-
- Is the SPEC missing critical prerequisites?
|
|
269
|
+
### 3.4 Task Batching
|
|
232
270
|
|
|
233
|
-
**
|
|
271
|
+
**FAIL - Over-split:**
|
|
234
272
|
```markdown
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
- Focus on one complete workflow first
|
|
273
|
+
### T001: Create UserModel.ts
|
|
274
|
+
### T002: Create UserService.ts
|
|
275
|
+
### T003: Create UserController.ts
|
|
276
|
+
### T004: Create user.test.ts
|
|
240
277
|
```
|
|
241
278
|
|
|
242
|
-
**
|
|
279
|
+
**PASS - Properly batched:**
|
|
243
280
|
```markdown
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
-
|
|
247
|
-
|
|
248
|
-
|
|
281
|
+
### T001: Implement User module
|
|
282
|
+
- Status: pending
|
|
283
|
+
- Size: M
|
|
284
|
+
|
|
285
|
+
**Deliverables:**
|
|
286
|
+
- User CRUD operations (model, service, controller)
|
|
287
|
+
- Input validation
|
|
288
|
+
- Tests cover all operations
|
|
249
289
|
```
|
|
250
290
|
|
|
251
|
-
|
|
291
|
+
**Guideline:** 3-10 tasks total. Each task = meaningful iteration (30min - 2hr work).
|
|
292
|
+
|
|
293
|
+
---
|
|
252
294
|
|
|
253
|
-
|
|
295
|
+
## Step 4: Content Critique
|
|
296
|
+
|
|
297
|
+
Evaluate problem-solution fit.
|
|
298
|
+
|
|
299
|
+
### 4.1 Problem-Solution Fit
|
|
300
|
+
|
|
301
|
+
- Does the spec clearly state what problem it solves?
|
|
302
|
+
- Are tasks aligned with solving that problem?
|
|
303
|
+
- Any tasks unrelated to the stated goal?
|
|
304
|
+
|
|
305
|
+
### 4.2 Integration Awareness
|
|
306
|
+
|
|
307
|
+
- Does spec consider existing systems?
|
|
308
|
+
- Tasks for integration points (APIs, databases)?
|
|
309
|
+
- Backward compatibility considered?
|
|
310
|
+
|
|
311
|
+
### 4.3 Size Point Distribution
|
|
312
|
+
|
|
313
|
+
For V2 specs, check size distribution:
|
|
254
314
|
|
|
255
315
|
```markdown
|
|
256
|
-
##
|
|
316
|
+
## Size Analysis
|
|
257
317
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
318
|
+
| Size | Count | Points |
|
|
319
|
+
|------|-------|--------|
|
|
320
|
+
| S | 3 | 3 |
|
|
321
|
+
| M | 4 | 8 |
|
|
322
|
+
| L | 1 | 4 |
|
|
323
|
+
| **Total** | **8** | **15** |
|
|
324
|
+
|
|
325
|
+
Estimated iterations: ~4 (at 4 pts/iteration)
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
**Concerns:**
|
|
329
|
+
- All L tasks? Consider splitting
|
|
330
|
+
- All S tasks? May be over-split
|
|
331
|
+
- Mix of sizes is healthy
|
|
332
|
+
|
|
333
|
+
### 4.4 Scope Appropriateness
|
|
334
|
+
|
|
335
|
+
- Is spec trying to do too much?
|
|
336
|
+
- Tasks that could be deferred?
|
|
337
|
+
- Missing prerequisites?
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## Step 5: EARS Validation (Optional)
|
|
342
|
+
|
|
343
|
+
If spec has `## Acceptance Criteria` with EARS patterns, validate them.
|
|
344
|
+
|
|
345
|
+
### Valid EARS Patterns
|
|
346
|
+
|
|
347
|
+
| Pattern | Format |
|
|
348
|
+
|---------|--------|
|
|
349
|
+
| Ubiquitous | "The system shall [response]" |
|
|
350
|
+
| Event-driven | "WHEN [trigger], the system shall [response]" |
|
|
351
|
+
| State-driven | "WHILE [state], the system shall [response]" |
|
|
352
|
+
| Optional | "WHERE [feature enabled], the system shall [response]" |
|
|
353
|
+
| Unwanted | "IF [condition], THEN the system shall [response]" |
|
|
354
|
+
|
|
355
|
+
### EARS Concerns
|
|
356
|
+
|
|
357
|
+
**FAIL:**
|
|
358
|
+
```markdown
|
|
359
|
+
- When needed, the system should probably do something
|
|
360
|
+
```
|
|
261
361
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
362
|
+
Issues:
|
|
363
|
+
- "When needed" is vague trigger
|
|
364
|
+
- "should probably" is weak (use "shall")
|
|
365
|
+
- "do something" has no specific response
|
|
265
366
|
|
|
266
|
-
|
|
267
|
-
|
|
367
|
+
**PASS:**
|
|
368
|
+
```markdown
|
|
369
|
+
- WHEN user submits login form, the system shall validate credentials within 200ms
|
|
268
370
|
```
|
|
269
371
|
|
|
270
|
-
|
|
372
|
+
---
|
|
271
373
|
|
|
272
|
-
|
|
374
|
+
## Step 6: Generate Report
|
|
273
375
|
|
|
274
376
|
### Output Format
|
|
275
377
|
|
|
276
378
|
```markdown
|
|
277
379
|
# SPEC Review: [PASS/FAIL]
|
|
278
380
|
|
|
279
|
-
## Format: [PASS/FAIL]
|
|
381
|
+
## V2 Format: [PASS/FAIL]
|
|
280
382
|
|
|
281
|
-
[If FAIL, list all format violations
|
|
282
|
-
[If PASS,
|
|
383
|
+
[If FAIL, list all V2 format violations]
|
|
384
|
+
[If PASS, "V2 format validated: X tasks, Y total points"]
|
|
283
385
|
|
|
284
|
-
## Content: [PASS/
|
|
386
|
+
## Content: [PASS/FAIL]
|
|
285
387
|
|
|
286
|
-
[If
|
|
287
|
-
[If PASS,
|
|
388
|
+
[If FAIL, list content violations (code, file paths, etc.)]
|
|
389
|
+
[If PASS, "No content violations found."]
|
|
288
390
|
|
|
289
|
-
##
|
|
391
|
+
## Content Critique: [PASS/CONCERNS]
|
|
392
|
+
|
|
393
|
+
[If CONCERNS, list in priority order]
|
|
394
|
+
[If PASS, "Spec is well-structured and ready."]
|
|
290
395
|
|
|
291
|
-
|
|
396
|
+
## Size Summary
|
|
292
397
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
398
|
+
| Size | Count | Points |
|
|
399
|
+
|------|-------|--------|
|
|
400
|
+
| S | X | X |
|
|
401
|
+
| M | Y | 2Y |
|
|
402
|
+
| L | Z | 4Z |
|
|
403
|
+
| Total | N | P |
|
|
404
|
+
|
|
405
|
+
Estimated iterations: ~I (at 4 pts/iteration)
|
|
406
|
+
|
|
407
|
+
## Recommendations
|
|
408
|
+
|
|
409
|
+
1. [Required fixes]
|
|
410
|
+
2. [Suggested improvements]
|
|
297
411
|
|
|
298
412
|
## Summary
|
|
299
413
|
|
|
300
|
-
[
|
|
414
|
+
[✓ Ready / ❌ Needs revision / ⚠️ Needs discussion]
|
|
301
415
|
```
|
|
302
416
|
|
|
303
417
|
### Example: PASS Report
|
|
@@ -305,21 +419,37 @@ Combine format checks and content critique into a final report.
|
|
|
305
419
|
```markdown
|
|
306
420
|
# SPEC Review: PASS
|
|
307
421
|
|
|
308
|
-
## Format: PASS
|
|
309
|
-
|
|
422
|
+
## V2 Format: PASS
|
|
423
|
+
V2 format validated: 8 tasks, 15 total points
|
|
424
|
+
- Task IDs: T001-T008 sequential ✓
|
|
425
|
+
- All tasks have Status, Size, Deliverables, Verify ✓
|
|
426
|
+
- Separators present between all tasks ✓
|
|
310
427
|
|
|
311
428
|
## Content: PASS
|
|
312
|
-
No content
|
|
429
|
+
No content violations found.
|
|
430
|
+
|
|
431
|
+
## Content Critique: PASS
|
|
313
432
|
- Clear goal statement
|
|
314
|
-
- Tasks properly batched
|
|
315
|
-
- Good integration awareness
|
|
316
|
-
- Appropriate scope
|
|
433
|
+
- Tasks properly batched
|
|
434
|
+
- Good integration awareness
|
|
435
|
+
- Appropriate scope
|
|
436
|
+
|
|
437
|
+
## Size Summary
|
|
438
|
+
|
|
439
|
+
| Size | Count | Points |
|
|
440
|
+
|------|-------|--------|
|
|
441
|
+
| S | 3 | 3 |
|
|
442
|
+
| M | 4 | 8 |
|
|
443
|
+
| L | 1 | 4 |
|
|
444
|
+
| Total | 8 | 15 |
|
|
445
|
+
|
|
446
|
+
Estimated iterations: ~4 (at 4 pts/iteration)
|
|
317
447
|
|
|
318
448
|
## Recommendations
|
|
319
|
-
None.
|
|
449
|
+
None. Spec is ready for implementation.
|
|
320
450
|
|
|
321
451
|
## Summary
|
|
322
|
-
✓
|
|
452
|
+
✓ Spec follows V2 format and is ready for `ralphie run`.
|
|
323
453
|
```
|
|
324
454
|
|
|
325
455
|
### Example: FAIL Report
|
|
@@ -327,64 +457,83 @@ None. SPEC is ready to use.
|
|
|
327
457
|
```markdown
|
|
328
458
|
# SPEC Review: FAIL
|
|
329
459
|
|
|
330
|
-
## Format: FAIL
|
|
460
|
+
## V2 Format: FAIL
|
|
461
|
+
|
|
462
|
+
### Task IDs
|
|
463
|
+
- Line 45: Uses `### Task 3:` instead of `### T003:`
|
|
464
|
+
|
|
465
|
+
### Status Field
|
|
466
|
+
- T002: Missing Status field
|
|
467
|
+
- T004: Invalid status "todo" (valid: pending, in_progress, passed, failed)
|
|
468
|
+
|
|
469
|
+
### Size Field
|
|
470
|
+
- T001: Missing Size field
|
|
471
|
+
|
|
472
|
+
### Deliverables
|
|
473
|
+
- T002: Missing **Deliverables:** section
|
|
474
|
+
|
|
475
|
+
## Content: FAIL
|
|
331
476
|
|
|
332
477
|
### Code Snippets
|
|
333
|
-
-
|
|
334
|
-
- Line 82: Sub-bullet includes `bcrypt.compare()` implementation detail
|
|
478
|
+
- T003 line 82: Contains implementation code `bcrypt.compare()`
|
|
335
479
|
|
|
336
480
|
### File Paths
|
|
337
|
-
-
|
|
338
|
-
|
|
339
|
-
### Sub-Bullets Not Deliverables
|
|
340
|
-
- Line 120: "Install express and body-parser" is an instruction, not a deliverable
|
|
341
|
-
- Line 121: "Create routes/user.ts file" prescribes file structure
|
|
481
|
+
- T001 line 55: References `src/auth/login.ts:42`
|
|
342
482
|
|
|
343
|
-
## Content: CONCERNS
|
|
483
|
+
## Content Critique: CONCERNS
|
|
344
484
|
|
|
345
485
|
### HIGH PRIORITY
|
|
346
|
-
1.
|
|
347
|
-
2. **Scope Too Large**: 45 tasks is too ambitious. Recommend creating MVP SPEC with first 15 tasks, defer rest to Phase 2.
|
|
486
|
+
1. Missing Prerequisites: Auth tasks should come before admin dashboard
|
|
348
487
|
|
|
349
|
-
|
|
350
|
-
|
|
488
|
+
## Size Summary
|
|
489
|
+
Cannot calculate - missing Size fields on some tasks.
|
|
351
490
|
|
|
352
491
|
## Recommendations
|
|
353
492
|
|
|
354
|
-
1. **Fix format
|
|
355
|
-
-
|
|
356
|
-
-
|
|
357
|
-
-
|
|
493
|
+
1. **Fix V2 format** (required):
|
|
494
|
+
- Add missing Status and Size fields
|
|
495
|
+
- Fix task ID format on Task 3
|
|
496
|
+
- Add Deliverables section to T002
|
|
358
497
|
|
|
359
|
-
2. **
|
|
360
|
-
-
|
|
361
|
-
-
|
|
498
|
+
2. **Fix content** (required):
|
|
499
|
+
- Remove code from task descriptions
|
|
500
|
+
- Remove file path references
|
|
362
501
|
|
|
363
|
-
3. **
|
|
364
|
-
-
|
|
502
|
+
3. **Address concerns**:
|
|
503
|
+
- Reorder tasks for prerequisites
|
|
365
504
|
|
|
366
505
|
## Summary
|
|
367
|
-
❌
|
|
506
|
+
❌ Spec needs revision. Fix V2 format violations first.
|
|
368
507
|
```
|
|
369
508
|
|
|
509
|
+
---
|
|
510
|
+
|
|
370
511
|
## Quick Reference
|
|
371
512
|
|
|
372
|
-
| Check | Pass | Fail |
|
|
373
|
-
|
|
374
|
-
|
|
|
375
|
-
|
|
|
376
|
-
|
|
|
377
|
-
|
|
|
378
|
-
|
|
|
513
|
+
| V2 Check | Pass | Fail |
|
|
514
|
+
|----------|------|------|
|
|
515
|
+
| Task ID | `### T001:` | `### Task 1:`, `- [ ]` |
|
|
516
|
+
| Status | `- Status: pending` | Missing, invalid value |
|
|
517
|
+
| Size | `- Size: M` | Missing, invalid value |
|
|
518
|
+
| Deliverables | `**Deliverables:**` + bullets | Missing section |
|
|
519
|
+
| Verify | `**Verify:** \`cmd\`` | Missing section |
|
|
520
|
+
| Separators | `---` between tasks | Missing |
|
|
521
|
+
|
|
522
|
+
| Content Check | Pass | Fail |
|
|
523
|
+
|---------------|------|------|
|
|
524
|
+
| Code | Only in Verify | In Deliverables |
|
|
525
|
+
| Files | No paths | `src/file.ts:42` |
|
|
526
|
+
| Deliverables | WHAT (outcomes) | HOW (instructions) |
|
|
527
|
+
| Batching | 3-10 tasks | 20+ micro-tasks |
|
|
379
528
|
|
|
380
|
-
## When to Use
|
|
529
|
+
## When to Use
|
|
381
530
|
|
|
382
531
|
**Use `/review-spec` when:**
|
|
383
|
-
-
|
|
384
|
-
- User asks
|
|
385
|
-
-
|
|
386
|
-
-
|
|
532
|
+
- Just generated a spec with `/ralphie-spec` or `ralphie spec` CLI
|
|
533
|
+
- User asks to validate a spec before starting work
|
|
534
|
+
- Running `ralphie spec` (uses this for self-review)
|
|
535
|
+
- Unsure if spec follows V2 conventions
|
|
387
536
|
|
|
388
537
|
**Don't use when:**
|
|
389
|
-
-
|
|
390
|
-
-
|
|
538
|
+
- Spec already validated and user is ready to start
|
|
539
|
+
- Mid-iteration (use `/ralphie-iterate` instead)
|