create-agentic-app 1.1.54 → 1.1.55
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/package.json +1 -1
- package/template/.agents/skills/checkpoint/SKILL.md +75 -0
- package/template/.agents/skills/create-spec/SKILL.md +132 -0
- package/template/.agents/skills/create-spec/references/action-required-template.md +53 -0
- package/template/.agents/skills/create-spec/references/readme-template.md +53 -0
- package/template/.agents/skills/create-spec/references/requirements-template.md +54 -0
- package/template/.agents/skills/create-spec/references/task-template.md +79 -0
- package/template/.agents/skills/implement-feature/SKILL.md +189 -0
- package/template/.agents/skills/implement-feature/references/coder-prompt-template.md +46 -0
- package/template/.agents/skills/implement-feature/references/fix-prompt-template.md +38 -0
- package/template/.agents/skills/implement-feature/references/review-prompt-template.md +50 -0
- package/template/.agents/skills/review-pr/SKILL.md +97 -0
- package/template/.claude/skills/checkpoint/SKILL.md +75 -0
- package/template/.claude/skills/create-spec/SKILL.md +132 -0
- package/template/.claude/skills/create-spec/references/action-required-template.md +53 -0
- package/template/.claude/skills/create-spec/references/readme-template.md +53 -0
- package/template/.claude/skills/create-spec/references/requirements-template.md +54 -0
- package/template/.claude/skills/create-spec/references/task-template.md +79 -0
- package/template/.claude/skills/implement-feature/SKILL.md +189 -0
- package/template/.claude/skills/implement-feature/references/coder-prompt-template.md +46 -0
- package/template/.claude/skills/implement-feature/references/fix-prompt-template.md +38 -0
- package/template/.claude/skills/implement-feature/references/review-prompt-template.md +50 -0
- package/template/.claude/skills/review-pr/SKILL.md +97 -0
- package/template/AGENTS.md +4 -0
- package/template/.claude/commands/checkpoint.md +0 -37
- package/template/.claude/commands/continue-feature.md +0 -425
- package/template/.claude/commands/create-spec.md +0 -180
- package/template/.claude/commands/review-pr.md +0 -54
- package/template/.cursor/rules/project-rules.mdc +0 -6
|
@@ -1,425 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Continue implementing the next task for a GitHub-published feature
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Continue Feature Implementation
|
|
6
|
-
|
|
7
|
-
This command finds and implements the next available task for a feature that has been published to GitHub.
|
|
8
|
-
|
|
9
|
-
## Prerequisites
|
|
10
|
-
|
|
11
|
-
- The GitHub CLI (`gh`) must be authenticated
|
|
12
|
-
- The feature must have been published to GitHub (github.md exists in the feature folder)
|
|
13
|
-
- The feature folder should be attached to the conversation
|
|
14
|
-
|
|
15
|
-
## Instructions
|
|
16
|
-
|
|
17
|
-
### 1. Locate the Feature
|
|
18
|
-
|
|
19
|
-
Look for the feature folder attached to the conversation. It should be at `/specs/{feature-name}/` and contain:
|
|
20
|
-
|
|
21
|
-
- `requirements.md` - Feature requirements (for context)
|
|
22
|
-
- `implementation-plan.md` - Original task breakdown
|
|
23
|
-
- `github.md` - GitHub references (required)
|
|
24
|
-
|
|
25
|
-
If no folder is attached, ask the user to drag the feature folder into the conversation.
|
|
26
|
-
|
|
27
|
-
### 2. Read GitHub References
|
|
28
|
-
|
|
29
|
-
Parse `github.md` to extract:
|
|
30
|
-
|
|
31
|
-
- `feature_name` from frontmatter
|
|
32
|
-
- `epic_issue` number from frontmatter
|
|
33
|
-
- `repository` from frontmatter
|
|
34
|
-
|
|
35
|
-
If `github.md` doesn't exist, inform the user:
|
|
36
|
-
|
|
37
|
-
> "This feature hasn't been published to GitHub yet. Run `/publish-to-github` first to create the GitHub issues and project."
|
|
38
|
-
|
|
39
|
-
### 3. Query Open Issues
|
|
40
|
-
|
|
41
|
-
List all open issues for this feature:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
gh issue list \
|
|
45
|
-
--label "feature/{feature_name}" \
|
|
46
|
-
--state open \
|
|
47
|
-
--json number,title,body,labels \
|
|
48
|
-
--limit 100
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### 4. Identify Current Phase
|
|
52
|
-
|
|
53
|
-
From the issues returned:
|
|
54
|
-
|
|
55
|
-
1. Skip the Epic issue (has label `epic`)
|
|
56
|
-
2. Identify phase issues by title format: `Phase N: {Phase Title}`
|
|
57
|
-
3. Identify any complex task issues (non-epic, non-phase issues)
|
|
58
|
-
4. Sort phase issues by phase number (Phase 1 before Phase 2, etc.)
|
|
59
|
-
|
|
60
|
-
### 5. Select Next Work Item
|
|
61
|
-
|
|
62
|
-
**Priority order:**
|
|
63
|
-
|
|
64
|
-
1. **Complex task issues first**: If there are open complex task issues belonging to the current phase, work on the one with the lowest issue number
|
|
65
|
-
2. **Phase issue tasks**: Otherwise, look at the earliest open phase issue and find the first unchecked task in its checklist
|
|
66
|
-
|
|
67
|
-
**To find the next task in a phase issue:**
|
|
68
|
-
|
|
69
|
-
1. Read the phase issue body
|
|
70
|
-
2. Parse the `## Tasks` section
|
|
71
|
-
3. Find the first unchecked item: `- [ ]` (not `- [x]`)
|
|
72
|
-
4. If all tasks are checked, the phase is complete - close it and move to next phase
|
|
73
|
-
|
|
74
|
-
If no work is available:
|
|
75
|
-
|
|
76
|
-
- If all phases are closed: Report "🎉 All tasks for {feature_name} are complete!"
|
|
77
|
-
- If current phase has all tasks checked: Close the phase issue and continue to next phase
|
|
78
|
-
|
|
79
|
-
### 6. Display Task Information
|
|
80
|
-
|
|
81
|
-
Before implementing, show:
|
|
82
|
-
|
|
83
|
-
**For a task from a phase issue:**
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
📋 Next Task: {task description}
|
|
87
|
-
|
|
88
|
-
Phase: {phase number} - {phase title}
|
|
89
|
-
Issue: #{phase-issue-number}
|
|
90
|
-
Task: {task number} of {total tasks in phase}
|
|
91
|
-
|
|
92
|
-
Proceeding with implementation...
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
**For a complex task issue:**
|
|
96
|
-
|
|
97
|
-
```
|
|
98
|
-
📋 Next Task: #{issue-number} - {title}
|
|
99
|
-
|
|
100
|
-
Phase: {phase number}
|
|
101
|
-
Type: Complex task (separate issue)
|
|
102
|
-
Parent Phase Issue: #{phase-issue-number}
|
|
103
|
-
|
|
104
|
-
## Task Description
|
|
105
|
-
{task description from issue body}
|
|
106
|
-
|
|
107
|
-
Proceeding with implementation...
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### 7. Set Issue Status to "In Progress"
|
|
111
|
-
|
|
112
|
-
Before starting implementation, update the issue status on the GitHub Project board. This is **required** when `project_number` exists in `github.md`.
|
|
113
|
-
|
|
114
|
-
**Note:** Update the phase issue (or complex task issue if working on one) to "In Progress".
|
|
115
|
-
|
|
116
|
-
**IMPORTANT**: Do NOT rely on labels like "status/in-progress" as they may not exist in the repository. Always update the Project board status directly.
|
|
117
|
-
|
|
118
|
-
#### Step 7a: Add a comment indicating work has started
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
gh issue comment {issue-number} --repo {repository} --body "🚀 **Status Update**: Implementation started
|
|
122
|
-
|
|
123
|
-
Working on this task now..."
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
#### Step 7b: Get the project item ID for this issue
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
gh project item-list {project_number} --owner {owner} --format json
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Parse the JSON output to find the item where `content.number` matches your issue number. Extract the `id` field - this is the `{item_id}`.
|
|
133
|
-
|
|
134
|
-
Example: For issue #8, find the item with `"content": {"number": 8, ...}` and note its `"id"` value (e.g., `"PVTI_lAHOBLPcNM4BJm9zzgh_JP0"`).
|
|
135
|
-
|
|
136
|
-
#### Step 7c: Get the Status field ID and option IDs
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
gh project field-list {project_number} --owner {owner} --format json
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
From the output, find the field with `"name": "Status"`. Extract:
|
|
143
|
-
|
|
144
|
-
- `id` - this is the `{status_field_id}` (e.g., `"PVTSSF_lAHOBLPcNM4BJm9zzg5uLNA"`)
|
|
145
|
-
- `options` array - find the option with `"name": "In Progress"` and note its `id` as `{in_progress_option_id}` (e.g., `"47fc9ee4"`)
|
|
146
|
-
|
|
147
|
-
#### Step 7d: Construct the project ID
|
|
148
|
-
|
|
149
|
-
The project ID follows the pattern `PVT_kwHO{owner_id}M4{project_suffix}`. You can derive it from the item IDs which contain the same pattern, or use:
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
gh project view {project_number} --owner {owner} --format json
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
#### Step 7e: Update the project item status to "In Progress"
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
gh project item-edit \
|
|
159
|
-
--project-id {project_id} \
|
|
160
|
-
--id {item_id} \
|
|
161
|
-
--field-id {status_field_id} \
|
|
162
|
-
--single-select-option-id {in_progress_option_id}
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
**Complete Example** (with real values from a session):
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
# Step 7a: Comment on the issue
|
|
169
|
-
gh issue comment 8 --repo leonvanzyl/json-anything --body "🚀 **Status Update**: Implementation started
|
|
170
|
-
|
|
171
|
-
Working on this task now..."
|
|
172
|
-
|
|
173
|
-
# Step 7b: Get item ID (parse JSON to find item with content.number == 8)
|
|
174
|
-
gh project item-list 3 --owner leonvanzyl --format json
|
|
175
|
-
# Found: "id": "PVTI_lAHOBLPcNM4BJm9zzgh_JP0"
|
|
176
|
-
|
|
177
|
-
# Step 7c: Get field IDs (find Status field and "In Progress" option)
|
|
178
|
-
gh project field-list 3 --owner leonvanzyl --format json
|
|
179
|
-
# Found Status field: "id": "PVTSSF_lAHOBLPcNM4BJm9zzg5uLNA"
|
|
180
|
-
# Found "In Progress" option: "id": "47fc9ee4"
|
|
181
|
-
|
|
182
|
-
# Step 7e: Update status
|
|
183
|
-
gh project item-edit \
|
|
184
|
-
--project-id PVT_kwHOBLPcNM4BJm9z \
|
|
185
|
-
--id PVTI_lAHOBLPcNM4BJm9zzgh_JP0 \
|
|
186
|
-
--field-id PVTSSF_lAHOBLPcNM4BJm9zzg5uLNA \
|
|
187
|
-
--single-select-option-id 47fc9ee4
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
**Note**: The `gh project item-edit` command returns no output on success. Verify the update worked by checking the project board or re-running `gh project item-list`.
|
|
191
|
-
|
|
192
|
-
### 8. Read Full Context
|
|
193
|
-
|
|
194
|
-
Before implementing:
|
|
195
|
-
|
|
196
|
-
1. Read the Epic issue for overall context: `gh issue view {epic_issue}`
|
|
197
|
-
2. Read `requirements.md` for feature requirements
|
|
198
|
-
3. Review relevant parts of the codebase based on the task
|
|
199
|
-
|
|
200
|
-
### 9. Implement the Tasks
|
|
201
|
-
|
|
202
|
-
Implement all tasks in the issue or phase following project conventions:
|
|
203
|
-
|
|
204
|
-
- Follow existing code patterns in the codebase
|
|
205
|
-
- Use the `@/` import alias
|
|
206
|
-
- Run `pnpm lint && pnpm typecheck` after making changes
|
|
207
|
-
- Fix any lint or type errors before committing
|
|
208
|
-
|
|
209
|
-
### 10. Commit Changes
|
|
210
|
-
|
|
211
|
-
After successful implementation:
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
git add .
|
|
215
|
-
git commit -m "feat: {task title}"
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
**Note:** For phase issues, we don't auto-close with `closes #` since the phase has multiple tasks. For complex task issues, you can use `closes #{issue-number}`.
|
|
219
|
-
|
|
220
|
-
### 11. Update Phase Issue Checklist
|
|
221
|
-
|
|
222
|
-
**For tasks from a phase issue**, update the phase issue body to check off the completed task:
|
|
223
|
-
|
|
224
|
-
```bash
|
|
225
|
-
# Get current issue body
|
|
226
|
-
gh issue view {phase-issue-number} --json body -q .body > /tmp/issue-body.md
|
|
227
|
-
|
|
228
|
-
# Edit the file to change "- [ ] {task}" to "- [x] {task}"
|
|
229
|
-
# Then update the issue
|
|
230
|
-
gh issue edit {phase-issue-number} --body-file /tmp/issue-body.md
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
Alternatively, add a comment noting the task completion:
|
|
234
|
-
|
|
235
|
-
```bash
|
|
236
|
-
gh issue comment {phase-issue-number} --body "✅ Completed: {task description}
|
|
237
|
-
|
|
238
|
-
Commit: {commit-hash}"
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
**For complex task issues**, the issue can be closed directly after implementation.
|
|
242
|
-
|
|
243
|
-
### 12. Update Issue with Implementation Details
|
|
244
|
-
|
|
245
|
-
After committing, update the GitHub issue with comprehensive details about what was implemented:
|
|
246
|
-
|
|
247
|
-
```bash
|
|
248
|
-
# Update the issue with implementation summary
|
|
249
|
-
gh issue comment {issue-number} --body "✅ **Implementation Complete**
|
|
250
|
-
|
|
251
|
-
## Changes Made
|
|
252
|
-
- **Files Modified**: {list of files changed}
|
|
253
|
-
- **Files Added**: {list of new files, if any}
|
|
254
|
-
|
|
255
|
-
## Summary of Changes
|
|
256
|
-
{detailed description of what was implemented}
|
|
257
|
-
|
|
258
|
-
## Technical Details
|
|
259
|
-
{any relevant technical notes, decisions made, or patterns followed}
|
|
260
|
-
|
|
261
|
-
## Testing
|
|
262
|
-
- Lint: ✅ Passed
|
|
263
|
-
- TypeCheck: ✅ Passed
|
|
264
|
-
{any manual testing performed}
|
|
265
|
-
|
|
266
|
-
---
|
|
267
|
-
Commit: {commit-hash}
|
|
268
|
-
Ready for review and merge."
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
**Note**: Do NOT try to update labels like "status/done" as they may not exist in the repository. The Project board status update in Step 13 is the authoritative status indicator.
|
|
272
|
-
|
|
273
|
-
### 13. Update Project Board and Close Phase (if applicable)
|
|
274
|
-
|
|
275
|
-
If the feature has an associated GitHub Project board, update the status. You should already have the `{item_id}`, `{status_field_id}`, and `{project_id}` from Step 7.
|
|
276
|
-
|
|
277
|
-
**For complex task issues:** Update status to "Done" and close the issue.
|
|
278
|
-
|
|
279
|
-
**For phase issues:**
|
|
280
|
-
|
|
281
|
-
- If more tasks remain in the phase, keep status as "In Progress"
|
|
282
|
-
- If all tasks in the phase are complete, update status to "Done" and close the phase issue
|
|
283
|
-
|
|
284
|
-
From the field list obtained in Step 7c, find the option with `"name": "Done"` and note its `id` as `{done_option_id}` (e.g., `"98236657"`).
|
|
285
|
-
|
|
286
|
-
```bash
|
|
287
|
-
gh project item-edit \
|
|
288
|
-
--project-id {project_id} \
|
|
289
|
-
--id {item_id} \
|
|
290
|
-
--field-id {status_field_id} \
|
|
291
|
-
--single-select-option-id {done_option_id}
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
**Complete Example** (continuing from Step 7):
|
|
295
|
-
|
|
296
|
-
```bash
|
|
297
|
-
# Using the same IDs from Step 7, but with "Done" option ID
|
|
298
|
-
gh project item-edit \
|
|
299
|
-
--project-id PVT_kwHOBLPcNM4BJm9z \
|
|
300
|
-
--id PVTI_lAHOBLPcNM4BJm9zzgh_JP0 \
|
|
301
|
-
--field-id PVTSSF_lAHOBLPcNM4BJm9zzg5uLNA \
|
|
302
|
-
--single-select-option-id 98236657
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
**Note**: The command returns no output on success.
|
|
306
|
-
|
|
307
|
-
### 14. Report Completion
|
|
308
|
-
|
|
309
|
-
After completing the task:
|
|
310
|
-
|
|
311
|
-
**For a task from a phase issue:**
|
|
312
|
-
|
|
313
|
-
```
|
|
314
|
-
✅ Task complete: {task description}
|
|
315
|
-
|
|
316
|
-
Phase: {phase number} - {phase title} (#{phase-issue-number})
|
|
317
|
-
Progress: {completed}/{total} tasks in this phase
|
|
318
|
-
|
|
319
|
-
GitHub Updates:
|
|
320
|
-
- Phase issue checklist: Updated ✅
|
|
321
|
-
- Implementation details: Added as comment ✅
|
|
322
|
-
|
|
323
|
-
Changes made:
|
|
324
|
-
- {summary of files changed}
|
|
325
|
-
- {summary of functionality added}
|
|
326
|
-
|
|
327
|
-
Next steps:
|
|
328
|
-
- Push changes: `git push`
|
|
329
|
-
- Or continue: Drop the feature folder again and say "continue"
|
|
330
|
-
|
|
331
|
-
Phase status: {X} tasks remaining in current phase
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
**For a complex task issue:**
|
|
335
|
-
|
|
336
|
-
```
|
|
337
|
-
✅ Task #{issue-number} complete: {title}
|
|
338
|
-
|
|
339
|
-
GitHub Updates:
|
|
340
|
-
- Issue #{issue-number}: Closed ✅
|
|
341
|
-
- Project board: Updated to "Done" ✅
|
|
342
|
-
- Implementation details: Added to issue ✅
|
|
343
|
-
|
|
344
|
-
Changes made:
|
|
345
|
-
- {summary of files changed}
|
|
346
|
-
- {summary of functionality added}
|
|
347
|
-
|
|
348
|
-
Next steps:
|
|
349
|
-
- Push changes: `git push`
|
|
350
|
-
- Or continue: Drop the feature folder again and say "continue"
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
### 15. Prompt for Next Action
|
|
354
|
-
|
|
355
|
-
Ask the user:
|
|
356
|
-
|
|
357
|
-
> "Would you like me to continue with the next task, or would you prefer to review the changes first?"
|
|
358
|
-
|
|
359
|
-
If the user wants to continue, repeat from step 3.
|
|
360
|
-
|
|
361
|
-
## Handling Edge Cases
|
|
362
|
-
|
|
363
|
-
### No github.md file
|
|
364
|
-
|
|
365
|
-
```
|
|
366
|
-
❌ This feature hasn't been published to GitHub.
|
|
367
|
-
|
|
368
|
-
To publish, run: /publish-to-github
|
|
369
|
-
|
|
370
|
-
Or if you want to continue without GitHub integration, I can work from
|
|
371
|
-
the implementation-plan.md file directly. Would you like to do that instead?
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
### All phases complete
|
|
375
|
-
|
|
376
|
-
```
|
|
377
|
-
🎉 Congratulations! All phases for "{feature_name}" are complete!
|
|
378
|
-
|
|
379
|
-
Epic: https://github.com/{repository}/issues/{epic_issue}
|
|
380
|
-
|
|
381
|
-
You can close the Epic issue with:
|
|
382
|
-
gh issue close {epic_issue}
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
### Phase complete, moving to next
|
|
386
|
-
|
|
387
|
-
```
|
|
388
|
-
✅ Phase {n} complete! All tasks finished.
|
|
389
|
-
|
|
390
|
-
Closing Phase {n} issue...
|
|
391
|
-
Moving to Phase {n+1}: {Phase Title}
|
|
392
|
-
|
|
393
|
-
{Display next task from new phase}
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
### Implementation fails lint/typecheck
|
|
397
|
-
|
|
398
|
-
```
|
|
399
|
-
⚠️ Implementation has lint/type errors:
|
|
400
|
-
|
|
401
|
-
{error output}
|
|
402
|
-
|
|
403
|
-
Please review and fix these issues before I can commit. Would you like me
|
|
404
|
-
to attempt to fix them?
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
## Offline Mode (No GitHub)
|
|
408
|
-
|
|
409
|
-
If the user prefers not to use GitHub or gh is unavailable, fall back to the
|
|
410
|
-
implementation-plan.md approach:
|
|
411
|
-
|
|
412
|
-
1. Read `implementation-plan.md`
|
|
413
|
-
2. Find the first unchecked task `[ ]`
|
|
414
|
-
3. Implement it
|
|
415
|
-
4. Check off the task in the markdown file
|
|
416
|
-
5. Commit with a descriptive message
|
|
417
|
-
|
|
418
|
-
This maintains backward compatibility with the original workflow.
|
|
419
|
-
|
|
420
|
-
## Notes
|
|
421
|
-
|
|
422
|
-
- Implement ALL tasks per invocation unless the user explicitly asks to implement less
|
|
423
|
-
- Always run lint and typecheck before committing
|
|
424
|
-
- Preserve the task's acceptance criteria when checking completion
|
|
425
|
-
- If a task is unclear, ask for clarification rather than guessing
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Create a new spec with requirements and implementation plan
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Create Feature
|
|
6
|
-
|
|
7
|
-
This command creates a new feature specification folder with requirements and implementation plan documents.
|
|
8
|
-
|
|
9
|
-
## Instructions
|
|
10
|
-
|
|
11
|
-
### Given the above conversation:
|
|
12
|
-
|
|
13
|
-
1. **Create feature folder**
|
|
14
|
-
- Store the requirements and implementation plan in `/specs`
|
|
15
|
-
- Create a new subfolder for this feature using kebab-case (e.g., `add-auth`)
|
|
16
|
-
|
|
17
|
-
2. **Create requirements.md**
|
|
18
|
-
- Document what the feature does and why
|
|
19
|
-
- Include acceptance criteria
|
|
20
|
-
- Reference any related features or dependencies
|
|
21
|
-
|
|
22
|
-
3. **Create implementation-plan.md**
|
|
23
|
-
- Split the implementation into phases
|
|
24
|
-
- Create actionable tasks for each phase
|
|
25
|
-
- Each task should have a checkbox: `[ ] Task description`
|
|
26
|
-
- Tasks should be specific enough for an agent to implement independently
|
|
27
|
-
- Include dependencies between tasks where relevant
|
|
28
|
-
- Mark complex tasks with `[complex]` suffix (these will get their own GitHub issue when published)
|
|
29
|
-
- **Add a `### Technical Details` section after each phase's tasks**
|
|
30
|
-
- **Capture ALL technical specifics from the planning conversation**: CLI commands, database schemas, code snippets, file paths, configuration values
|
|
31
|
-
- **This is the single source of truth** - anything not captured here is lost
|
|
32
|
-
|
|
33
|
-
4. **Create action-required.md**
|
|
34
|
-
- Extract all manual steps that require human action
|
|
35
|
-
- Include tasks like: account creation, API key setup, environment variables, third-party service configuration, DNS settings, etc.
|
|
36
|
-
- Each task has a checkbox and brief context (one-liner explaining why it's needed)
|
|
37
|
-
- Keep these tasks in the implementation plan as well (for full context)
|
|
38
|
-
- If no manual steps exist, create the file with a "None required" note
|
|
39
|
-
|
|
40
|
-
5. **Exclude testing tasks**
|
|
41
|
-
- Do NOT include unit or e2e testing tasks
|
|
42
|
-
- UNLESS the user explicitly asks for testing to be included
|
|
43
|
-
|
|
44
|
-
### If no conversation exists:
|
|
45
|
-
|
|
46
|
-
Ask the user what the requirements are first, then create the spec subfolder with:
|
|
47
|
-
|
|
48
|
-
- `requirements.md`
|
|
49
|
-
- `implementation-plan.md`
|
|
50
|
-
- `action-required.md`
|
|
51
|
-
|
|
52
|
-
## Implementation Plan Format
|
|
53
|
-
|
|
54
|
-
Use this structure for `implementation-plan.md`:
|
|
55
|
-
|
|
56
|
-
```markdown
|
|
57
|
-
# Implementation Plan: {Feature Name}
|
|
58
|
-
|
|
59
|
-
## Overview
|
|
60
|
-
|
|
61
|
-
Brief summary of what will be built.
|
|
62
|
-
|
|
63
|
-
## Phase 1: {Phase Name}
|
|
64
|
-
|
|
65
|
-
{Brief description of this phase's goal}
|
|
66
|
-
|
|
67
|
-
### Tasks
|
|
68
|
-
|
|
69
|
-
- [ ] Task 1 description
|
|
70
|
-
- [ ] Task 2 description (depends on Task 1)
|
|
71
|
-
- [ ] Task 3 description [complex]
|
|
72
|
-
- [ ] Sub-task 3a
|
|
73
|
-
- [ ] Sub-task 3b
|
|
74
|
-
|
|
75
|
-
### Technical Details
|
|
76
|
-
|
|
77
|
-
{Include CLI commands, code snippets, schemas, and other implementation specifics discussed during planning that are relevant to this phase's tasks.}
|
|
78
|
-
|
|
79
|
-
## Phase 2: {Phase Name}
|
|
80
|
-
|
|
81
|
-
{Brief description}
|
|
82
|
-
|
|
83
|
-
### Tasks
|
|
84
|
-
|
|
85
|
-
- [ ] Task 4 description (depends on Phase 1)
|
|
86
|
-
- [ ] Task 5 description
|
|
87
|
-
|
|
88
|
-
### Technical Details
|
|
89
|
-
|
|
90
|
-
{Technical details for Phase 2 tasks.}
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**Note:** Tasks marked with `[complex]` or containing nested sub-tasks will be created as separate GitHub issues when published (linked to their parent phase issue).
|
|
94
|
-
|
|
95
|
-
## Capturing Technical Details
|
|
96
|
-
|
|
97
|
-
**CRITICAL**: The implementation plan must capture ALL technical details discussed during planning. The plan is the single source of truth - anything not captured here is lost.
|
|
98
|
-
|
|
99
|
-
Each phase should include a `### Technical Details` section containing:
|
|
100
|
-
|
|
101
|
-
- **CLI commands**: Package installations, migrations, code generation
|
|
102
|
-
- **Database schemas**: Table definitions, column types, relations
|
|
103
|
-
- **Code snippets**: Key implementation patterns, type definitions, configuration
|
|
104
|
-
- **File paths**: Where code should be created or modified
|
|
105
|
-
- **Environment variables**: Required config values and their purpose
|
|
106
|
-
- **API endpoints**: Routes, methods, request/response shapes
|
|
107
|
-
- **Third-party integration**: SDK usage, webhook formats, auth flows
|
|
108
|
-
|
|
109
|
-
These details flow through to GitHub issues via `/publish-to-github`, making them available to any agent (or human) implementing the tasks.
|
|
110
|
-
|
|
111
|
-
## action-required.md Format
|
|
112
|
-
|
|
113
|
-
Use this structure for `action-required.md`:
|
|
114
|
-
|
|
115
|
-
```markdown
|
|
116
|
-
# Action Required: {Feature Name}
|
|
117
|
-
|
|
118
|
-
Manual steps that must be completed by a human. These cannot be automated.
|
|
119
|
-
|
|
120
|
-
## Before Implementation
|
|
121
|
-
|
|
122
|
-
- [ ] **{Action}** - {Brief reason why this is needed}
|
|
123
|
-
|
|
124
|
-
## During Implementation
|
|
125
|
-
|
|
126
|
-
- [ ] **{Action}** - {Brief reason}
|
|
127
|
-
|
|
128
|
-
## After Implementation
|
|
129
|
-
|
|
130
|
-
- [ ] **{Action}** - {Brief reason}
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
> **Note:** These tasks are also listed in context within `implementation-plan.md`
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### When No Manual Steps Exist
|
|
138
|
-
|
|
139
|
-
If the feature has no manual steps, create the file with:
|
|
140
|
-
|
|
141
|
-
```markdown
|
|
142
|
-
# Action Required: {Feature Name}
|
|
143
|
-
|
|
144
|
-
No manual steps required for this feature.
|
|
145
|
-
|
|
146
|
-
All tasks can be implemented automatically.
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
## Next Steps
|
|
150
|
-
|
|
151
|
-
After creating the feature, inform the user:
|
|
152
|
-
|
|
153
|
-
> Feature specification created at `specs/{feature-name}/`
|
|
154
|
-
>
|
|
155
|
-
> **Next steps:**
|
|
156
|
-
>
|
|
157
|
-
> 1. Review `action-required.md` for tasks you need to complete manually
|
|
158
|
-
> 2. Review the requirements and implementation plan
|
|
159
|
-
> 3. Run `/publish-to-github` to create GitHub issues and project
|
|
160
|
-
> 4. Use `/continue-feature` to start implementing
|
|
161
|
-
|
|
162
|
-
## Notes
|
|
163
|
-
|
|
164
|
-
- Keep tasks atomic - each should be implementable in a single session
|
|
165
|
-
- Tasks should produce working, testable code when complete
|
|
166
|
-
- Use clear, descriptive task names that explain what will be done
|
|
167
|
-
- Note dependencies explicitly when tasks must be done in order
|
|
168
|
-
- Common manual tasks: account creation, API key generation, environment variables, OAuth app configuration, DNS/domain setup, billing setup, third-party service registration
|
|
169
|
-
- **Don't lose planning details**: If technical specifics were discussed during planning (commands, schemas, code patterns), they MUST appear in the `### Technical Details` section of the relevant phase. Review the conversation before finalizing to ensure nothing is missed.
|
|
170
|
-
|
|
171
|
-
### When to Use `[complex]`
|
|
172
|
-
|
|
173
|
-
Mark a task with `[complex]` when it:
|
|
174
|
-
|
|
175
|
-
- Has multiple sub-tasks that need individual tracking
|
|
176
|
-
- Requires significant architectural decisions or discussion
|
|
177
|
-
- Spans multiple files or systems
|
|
178
|
-
- Would benefit from its own GitHub issue for comments/review
|
|
179
|
-
|
|
180
|
-
Most tasks should NOT be marked complex - reserve this for genuinely substantial work items.
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Review pull requests
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Pull request(s): $ARGUMENTS
|
|
6
|
-
|
|
7
|
-
- If no PR numbers are provided, ask the user to provide PR number(s).
|
|
8
|
-
- At least 1 PR is required.
|
|
9
|
-
|
|
10
|
-
## TASKS
|
|
11
|
-
|
|
12
|
-
1. **Retrieve PR Details**
|
|
13
|
-
- Use the GH CLI tool to retrieve the details (descriptions, diffs, comments, feedback, reviews, etc)
|
|
14
|
-
|
|
15
|
-
2. **Assess PR Complexity**
|
|
16
|
-
|
|
17
|
-
After retrieving PR details, assess complexity based on:
|
|
18
|
-
- Number of files changed
|
|
19
|
-
- Lines added/removed
|
|
20
|
-
- Number of contributors/commits
|
|
21
|
-
- Whether changes touch core/architectural files
|
|
22
|
-
|
|
23
|
-
### Complexity Tiers
|
|
24
|
-
|
|
25
|
-
**Simple** (no deep dive agents needed):
|
|
26
|
-
- ≤5 files changed AND ≤100 lines changed AND single author
|
|
27
|
-
- Review directly without spawning agents
|
|
28
|
-
|
|
29
|
-
**Medium** (1-2 deep dive agents):
|
|
30
|
-
- 6-15 files changed, OR 100-500 lines, OR 2 contributors
|
|
31
|
-
- Spawn 1 agent for focused areas, 2 if changes span multiple domains
|
|
32
|
-
|
|
33
|
-
**Complex** (up to 3 deep dive agents):
|
|
34
|
-
- >15 files, OR >500 lines, OR >2 contributors, OR touches core architecture
|
|
35
|
-
- Spawn up to 3 agents to analyze different aspects (e.g., security, performance, architecture)
|
|
36
|
-
|
|
37
|
-
3. **Analyze Codebase Impact**
|
|
38
|
-
- Based on the complexity tier determined above, spawn the appropriate number of deep dive subagents
|
|
39
|
-
- For Simple PRs: analyze directly without spawning agents
|
|
40
|
-
- For Medium PRs: spawn 1-2 agents focusing on the most impacted areas
|
|
41
|
-
- For Complex PRs: spawn up to 3 agents to cover security, performance, and architectural concerns
|
|
42
|
-
|
|
43
|
-
4. **Vision Alignment Check**
|
|
44
|
-
- Read the project's README.md and CLAUDE.md to understand the application's core purpose
|
|
45
|
-
- Assess whether this PR aligns with the application's intended functionality
|
|
46
|
-
- If the changes deviate significantly from the core vision or add functionality that doesn't serve the application's purpose, note this in the review
|
|
47
|
-
- This is not a blocker, but should be flagged for the reviewer's consideration
|
|
48
|
-
|
|
49
|
-
5. **Safety Assessment**
|
|
50
|
-
- Provide a review on whether the PR is safe to merge as-is
|
|
51
|
-
- Provide any feedback in terms of risk level
|
|
52
|
-
|
|
53
|
-
6. **Improvements**
|
|
54
|
-
- Propose any improvements in terms of importance and complexity
|