aiblueprint-cli 1.4.23 → 1.4.25
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-code-config/skills/git-commit/SKILL.md +42 -0
- package/claude-code-config/{commands/git/create-pr.md → skills/git-create-pr/SKILL.md} +12 -18
- package/claude-code-config/skills/git-fix-pr-comments/SKILL.md +51 -0
- package/claude-code-config/skills/git-merge/SKILL.md +68 -0
- package/claude-code-config/skills/{claude-memory → meta-claude-memory}/SKILL.md +7 -2
- package/claude-code-config/skills/meta-claude-memory/references/rules-directory-guide.md +298 -0
- package/claude-code-config/skills/meta-prompt-creator/SKILL.md +285 -0
- package/claude-code-config/skills/meta-prompt-creator/references/anthropic-best-practices.md +126 -0
- package/claude-code-config/skills/meta-prompt-creator/references/anti-patterns.md +57 -0
- package/claude-code-config/skills/meta-prompt-creator/references/clarity-principles.md +54 -0
- package/claude-code-config/skills/meta-prompt-creator/references/context-management.md +389 -0
- package/claude-code-config/skills/meta-prompt-creator/references/few-shot-patterns.md +47 -0
- package/claude-code-config/skills/meta-prompt-creator/references/openai-best-practices.md +50 -0
- package/claude-code-config/skills/meta-prompt-creator/references/prompt-templates.md +110 -0
- package/claude-code-config/skills/meta-prompt-creator/references/reasoning-techniques.md +52 -0
- package/claude-code-config/skills/meta-prompt-creator/references/system-prompt-patterns.md +48 -0
- package/claude-code-config/skills/meta-prompt-creator/references/xml-structure.md +36 -0
- package/claude-code-config/skills/meta-skill-creator/LICENSE.txt +202 -0
- package/claude-code-config/skills/meta-skill-creator/SKILL.md +421 -0
- package/claude-code-config/skills/meta-skill-creator/package.json +5 -0
- package/claude-code-config/skills/meta-skill-creator/references/output-patterns.md +82 -0
- package/claude-code-config/skills/meta-skill-creator/references/progressive-disclosure-patterns.md +374 -0
- package/claude-code-config/skills/meta-skill-creator/references/prompting-integration.md +363 -0
- package/claude-code-config/skills/meta-skill-creator/references/real-world-examples.md +513 -0
- package/claude-code-config/skills/meta-skill-creator/references/script-patterns.md +385 -0
- package/claude-code-config/skills/meta-skill-creator/references/workflows.md +28 -0
- package/claude-code-config/skills/meta-skill-creator/references/xml-tag-guide.md +606 -0
- package/claude-code-config/skills/meta-skill-creator/scripts/init-skill.ts +214 -0
- package/claude-code-config/skills/meta-skill-creator/scripts/package-skill.ts +146 -0
- package/claude-code-config/skills/meta-skill-creator/scripts/validate.ts +138 -0
- package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/SKILL.md +41 -15
- package/claude-code-config/skills/{setup-ralph → ralph-loop}/steps/step-00-init.md +2 -3
- package/claude-code-config/skills/utils-fix-errors/SKILL.md +61 -0
- package/claude-code-config/skills/utils-fix-grammar/SKILL.md +59 -0
- package/claude-code-config/skills/utils-oneshot/SKILL.md +56 -0
- package/claude-code-config/skills/workflow-apex/SKILL.md +303 -0
- package/claude-code-config/skills/workflow-apex/scripts/setup-templates.sh +134 -0
- package/claude-code-config/skills/workflow-apex/scripts/update-progress.sh +80 -0
- package/claude-code-config/skills/workflow-apex/steps/step-00-init.md +288 -0
- package/claude-code-config/skills/workflow-apex/steps/step-00b-branch.md +126 -0
- package/claude-code-config/skills/workflow-apex/steps/step-00b-economy.md +244 -0
- package/claude-code-config/skills/workflow-apex/steps/step-00b-interactive.md +153 -0
- package/claude-code-config/skills/workflow-apex/steps/step-01-analyze.md +361 -0
- package/claude-code-config/skills/workflow-apex/steps/step-02-plan.md +264 -0
- package/claude-code-config/skills/workflow-apex/steps/step-03-execute.md +239 -0
- package/claude-code-config/skills/workflow-apex/steps/step-04-validate.md +264 -0
- package/claude-code-config/skills/workflow-apex/steps/step-05-examine.md +294 -0
- package/claude-code-config/skills/workflow-apex/steps/step-06-resolve.md +237 -0
- package/claude-code-config/skills/workflow-apex/steps/step-07-tests.md +250 -0
- package/claude-code-config/skills/workflow-apex/steps/step-08-run-tests.md +308 -0
- package/claude-code-config/skills/workflow-apex/steps/step-09-finish.md +193 -0
- package/claude-code-config/skills/workflow-apex/templates/00-context.md +51 -0
- package/claude-code-config/skills/workflow-apex/templates/01-analyze.md +10 -0
- package/claude-code-config/skills/workflow-apex/templates/02-plan.md +10 -0
- package/claude-code-config/skills/workflow-apex/templates/03-execute.md +10 -0
- package/claude-code-config/skills/workflow-apex/templates/04-validate.md +10 -0
- package/claude-code-config/skills/workflow-apex/templates/05-examine.md +10 -0
- package/claude-code-config/skills/workflow-apex/templates/06-resolve.md +10 -0
- package/claude-code-config/skills/workflow-apex/templates/07-tests.md +10 -0
- package/claude-code-config/skills/workflow-apex/templates/08-run-tests.md +10 -0
- package/claude-code-config/skills/workflow-apex/templates/09-finish.md +10 -0
- package/claude-code-config/skills/workflow-apex/templates/README.md +195 -0
- package/claude-code-config/skills/workflow-apex/templates/step-complete.md +7 -0
- package/claude-code-config/skills/workflow-apex-free/SKILL.md +261 -0
- package/claude-code-config/skills/workflow-apex-free/scripts/setup-templates.sh +100 -0
- package/claude-code-config/skills/workflow-apex-free/scripts/update-progress.sh +80 -0
- package/claude-code-config/skills/workflow-apex-free/steps/step-00-init.md +267 -0
- package/claude-code-config/skills/workflow-apex-free/steps/step-00b-branch.md +126 -0
- package/claude-code-config/skills/workflow-apex-free/steps/step-00b-economy.md +244 -0
- package/claude-code-config/skills/workflow-apex-free/steps/step-00b-interactive.md +153 -0
- package/claude-code-config/skills/workflow-apex-free/steps/step-01-analyze.md +361 -0
- package/claude-code-config/skills/workflow-apex-free/steps/step-02-plan.md +264 -0
- package/claude-code-config/skills/workflow-apex-free/steps/step-03-execute.md +239 -0
- package/claude-code-config/skills/workflow-apex-free/steps/step-04-validate.md +251 -0
- package/claude-code-config/skills/workflow-apex-free/templates/00-context.md +43 -0
- package/claude-code-config/skills/workflow-apex-free/templates/01-analyze.md +10 -0
- package/claude-code-config/skills/workflow-apex-free/templates/02-plan.md +10 -0
- package/claude-code-config/skills/workflow-apex-free/templates/03-execute.md +10 -0
- package/claude-code-config/skills/workflow-apex-free/templates/04-validate.md +10 -0
- package/claude-code-config/skills/workflow-apex-free/templates/README.md +176 -0
- package/claude-code-config/skills/workflow-apex-free/templates/step-complete.md +7 -0
- package/dist/cli.js +146 -9
- package/package.json +1 -1
- package/claude-code-config/commands/explore.md +0 -90
- package/claude-code-config/commands/git/commit.md +0 -60
- package/claude-code-config/commands/git/fix-pr-comments.md +0 -59
- package/claude-code-config/commands/oneshot.md +0 -57
- package/claude-code-config/skills/create-slash-commands/SKILL.md +0 -1110
- package/claude-code-config/skills/create-slash-commands/references/arguments.md +0 -273
- package/claude-code-config/skills/create-slash-commands/references/patterns.md +0 -947
- package/claude-code-config/skills/create-slash-commands/references/prompt-examples.md +0 -656
- package/claude-code-config/skills/create-slash-commands/references/tool-restrictions.md +0 -389
- /package/claude-code-config/skills/{claude-memory → meta-claude-memory}/references/comprehensive-example.md +0 -0
- /package/claude-code-config/skills/{claude-memory → meta-claude-memory}/references/project-patterns.md +0 -0
- /package/claude-code-config/skills/{claude-memory → meta-claude-memory}/references/prompting-techniques.md +0 -0
- /package/claude-code-config/skills/{claude-memory → meta-claude-memory}/references/section-templates.md +0 -0
- /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/context-management.md +0 -0
- /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/debugging-agents.md +0 -0
- /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/error-handling-and-recovery.md +0 -0
- /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/evaluation-and-testing.md +0 -0
- /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/orchestration-patterns.md +0 -0
- /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/subagents.md +0 -0
- /package/claude-code-config/skills/{create-subagents → meta-subagent-creator}/references/writing-subagent-prompts.md +0 -0
- /package/claude-code-config/skills/{setup-ralph → ralph-loop}/SKILL.md +0 -0
- /package/claude-code-config/skills/{setup-ralph → ralph-loop}/scripts/setup.sh +0 -0
- /package/claude-code-config/skills/{setup-ralph → ralph-loop}/steps/step-01-interactive-prd.md +0 -0
- /package/claude-code-config/skills/{setup-ralph → ralph-loop}/steps/step-02-create-stories.md +0 -0
- /package/claude-code-config/skills/{setup-ralph → ralph-loop}/steps/step-03-finish.md +0 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: step-06-resolve
|
|
3
|
+
description: Resolve findings - interactively address review issues
|
|
4
|
+
prev_step: steps/step-05-examine.md
|
|
5
|
+
next_step: COMPLETE
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 6: Resolve Findings
|
|
9
|
+
|
|
10
|
+
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
11
|
+
|
|
12
|
+
- 🛑 NEVER auto-fix Noise or Uncertain findings
|
|
13
|
+
- 🛑 NEVER skip validation after fixes
|
|
14
|
+
- ✅ ALWAYS present resolution options to user (unless auto_mode)
|
|
15
|
+
- ✅ ALWAYS validate after applying fixes
|
|
16
|
+
- ✅ ALWAYS provide clear completion summary
|
|
17
|
+
- 📋 YOU ARE A RESOLVER, addressing identified issues
|
|
18
|
+
- 💬 FOCUS on "How do we fix these issues?"
|
|
19
|
+
- 🚫 FORBIDDEN to proceed with failing validation
|
|
20
|
+
|
|
21
|
+
## EXECUTION PROTOCOLS:
|
|
22
|
+
|
|
23
|
+
- 🎯 Present resolution options first
|
|
24
|
+
- 💾 Log each fix applied (if save_mode)
|
|
25
|
+
- 📖 Validate after all fixes
|
|
26
|
+
- 🚫 FORBIDDEN to skip post-fix validation
|
|
27
|
+
|
|
28
|
+
## CONTEXT BOUNDARIES:
|
|
29
|
+
|
|
30
|
+
- Findings from step-05 are classified
|
|
31
|
+
- Some are Real, some Noise, some Uncertain
|
|
32
|
+
- User may want different resolution strategies
|
|
33
|
+
- Must validate after any changes
|
|
34
|
+
|
|
35
|
+
## YOUR TASK:
|
|
36
|
+
|
|
37
|
+
Address adversarial review findings interactively - fix real issues, dismiss noise, discuss uncertain items.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
<available_state>
|
|
42
|
+
From previous steps:
|
|
43
|
+
|
|
44
|
+
| Variable | Description |
|
|
45
|
+
|----------|-------------|
|
|
46
|
+
| `{task_description}` | What was implemented |
|
|
47
|
+
| `{task_id}` | Kebab-case identifier |
|
|
48
|
+
| `{auto_mode}` | Auto-fix Real findings |
|
|
49
|
+
| `{save_mode}` | Save outputs to files |
|
|
50
|
+
| `{output_dir}` | Path to output (if save_mode) |
|
|
51
|
+
| Findings table | IDs, severity, validity |
|
|
52
|
+
| Finding todos | For tracking |
|
|
53
|
+
</available_state>
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## EXECUTION SEQUENCE:
|
|
58
|
+
|
|
59
|
+
### 1. Initialize Save Output (if save_mode)
|
|
60
|
+
|
|
61
|
+
**If `{save_mode}` = true:**
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
bash {skill_dir}/scripts/update-progress.sh "{task_id}" "06" "resolve" "in_progress"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Append logs to `{output_dir}/06-resolve.md` as you work.
|
|
68
|
+
|
|
69
|
+
### 2. Present Resolution Options
|
|
70
|
+
|
|
71
|
+
**If `{auto_mode}` = true:**
|
|
72
|
+
→ Auto-fix all "Real" findings, skip Noise/Uncertain
|
|
73
|
+
|
|
74
|
+
**If `{auto_mode}` = false:**
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
questions:
|
|
78
|
+
- header: "Resolution"
|
|
79
|
+
question: "How would you like to handle these findings?"
|
|
80
|
+
options:
|
|
81
|
+
- label: "Auto-fix Real issues (Recommended)"
|
|
82
|
+
description: "Fix 'Real' findings, skip noise/uncertain"
|
|
83
|
+
- label: "Walk through each finding"
|
|
84
|
+
description: "Decide on each finding individually"
|
|
85
|
+
- label: "Fix only critical"
|
|
86
|
+
description: "Only fix CRITICAL/BLOCKING issues"
|
|
87
|
+
- label: "Skip all"
|
|
88
|
+
description: "Acknowledge but don't change"
|
|
89
|
+
multiSelect: false
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 3. Apply Fixes Based on Choice
|
|
93
|
+
|
|
94
|
+
**Auto-fix Real:**
|
|
95
|
+
1. Filter to Real findings only
|
|
96
|
+
2. For each: Read file → Apply fix → Verify
|
|
97
|
+
3. Log each fix
|
|
98
|
+
|
|
99
|
+
**Walk through each:**
|
|
100
|
+
For each finding in severity order:
|
|
101
|
+
|
|
102
|
+
```yaml
|
|
103
|
+
questions:
|
|
104
|
+
- header: "F1"
|
|
105
|
+
question: "How should we handle this finding?"
|
|
106
|
+
options:
|
|
107
|
+
- label: "Fix now (Recommended)"
|
|
108
|
+
description: "Apply the suggested fix"
|
|
109
|
+
- label: "Skip"
|
|
110
|
+
description: "Acknowledge but don't fix"
|
|
111
|
+
- label: "Discuss"
|
|
112
|
+
description: "Need more context"
|
|
113
|
+
- label: "Mark as noise"
|
|
114
|
+
description: "Not a real issue"
|
|
115
|
+
multiSelect: false
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Fix only critical:**
|
|
119
|
+
1. Filter to CRITICAL/BLOCKING only
|
|
120
|
+
2. Auto-fix those, skip others
|
|
121
|
+
|
|
122
|
+
**Skip all:**
|
|
123
|
+
1. Acknowledge findings
|
|
124
|
+
2. If Critical/High exist, confirm:
|
|
125
|
+
|
|
126
|
+
```yaml
|
|
127
|
+
questions:
|
|
128
|
+
- header: "Confirm"
|
|
129
|
+
question: "You have unresolved Critical/High findings. Proceed anyway?"
|
|
130
|
+
options:
|
|
131
|
+
- label: "Go back and fix"
|
|
132
|
+
description: "Return to resolution options"
|
|
133
|
+
- label: "Proceed anyway"
|
|
134
|
+
description: "Accept risks, continue"
|
|
135
|
+
- label: "Fix only critical"
|
|
136
|
+
description: "Just fix critical issues"
|
|
137
|
+
multiSelect: false
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 4. Post-Resolution Validation
|
|
141
|
+
|
|
142
|
+
After any fixes:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
pnpm run typecheck && pnpm run lint
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Both MUST pass.
|
|
149
|
+
|
|
150
|
+
### 5. Resolution Summary
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
**Resolution Complete**
|
|
154
|
+
|
|
155
|
+
**Fixed:** {count}
|
|
156
|
+
- F1: Parameterized SQL query in auth.ts:42
|
|
157
|
+
- F2: Added null check in handler.ts:78
|
|
158
|
+
|
|
159
|
+
**Skipped:** {count}
|
|
160
|
+
- F3: Complex function (uncertain)
|
|
161
|
+
|
|
162
|
+
**Validation:** ✓ Passed
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 6. Complete Save Output (if save_mode)
|
|
166
|
+
|
|
167
|
+
**If `{save_mode}` = true:**
|
|
168
|
+
|
|
169
|
+
Append to `{output_dir}/06-resolve.md`:
|
|
170
|
+
```markdown
|
|
171
|
+
---
|
|
172
|
+
## Step Complete
|
|
173
|
+
**Status:** ✓ Complete
|
|
174
|
+
**Findings fixed:** {count}
|
|
175
|
+
**Findings skipped:** {count}
|
|
176
|
+
**Validation:** ✓ Passed
|
|
177
|
+
**Timestamp:** {ISO timestamp}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 7. Completion Summary
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
**APEX Workflow Complete**
|
|
184
|
+
|
|
185
|
+
**Task:** {task_description}
|
|
186
|
+
|
|
187
|
+
**Implementation:**
|
|
188
|
+
- Files modified: {count}
|
|
189
|
+
- All checks passing: ✓
|
|
190
|
+
|
|
191
|
+
**Review:**
|
|
192
|
+
- Findings identified: {total}
|
|
193
|
+
- Findings resolved: {fixed}
|
|
194
|
+
- Findings skipped: {skipped}
|
|
195
|
+
|
|
196
|
+
**Next Steps:**
|
|
197
|
+
- [ ] Commit changes
|
|
198
|
+
- [ ] Run full test suite
|
|
199
|
+
- [ ] Deploy when ready
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## SUCCESS METRICS:
|
|
205
|
+
|
|
206
|
+
✅ User chose resolution approach
|
|
207
|
+
✅ All chosen fixes applied correctly
|
|
208
|
+
✅ Validation passes after fixes
|
|
209
|
+
✅ Clear summary of resolved/skipped
|
|
210
|
+
✅ User understands next steps
|
|
211
|
+
|
|
212
|
+
## FAILURE MODES:
|
|
213
|
+
|
|
214
|
+
❌ Auto-fixing Noise or Uncertain findings
|
|
215
|
+
❌ Not validating after fixes
|
|
216
|
+
❌ No clear completion summary
|
|
217
|
+
❌ Proceeding with failing validation
|
|
218
|
+
❌ **CRITICAL**: Not using AskUserQuestion for decisions
|
|
219
|
+
|
|
220
|
+
## RESOLUTION PROTOCOLS:
|
|
221
|
+
|
|
222
|
+
- Only auto-fix Real findings
|
|
223
|
+
- Validate after EVERY fix round
|
|
224
|
+
- Clear summary at the end
|
|
225
|
+
- User controls final decision
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## NEXT STEP:
|
|
230
|
+
|
|
231
|
+
Based on flags:
|
|
232
|
+
- **If pr_mode:** Load `./step-09-finish.md` to create pull request
|
|
233
|
+
- **Otherwise:** Workflow complete - show summary
|
|
234
|
+
|
|
235
|
+
<critical>
|
|
236
|
+
Remember: Always validate after fixes - never proceed with failing checks!
|
|
237
|
+
</critical>
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: step-07-tests
|
|
3
|
+
description: Smart test analysis and creation - analyze patterns, create appropriate tests
|
|
4
|
+
prev_step: steps/step-04-validate.md
|
|
5
|
+
next_step: steps/step-08-run-tests.md
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 7: Tests (Analysis & Creation)
|
|
9
|
+
|
|
10
|
+
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
11
|
+
|
|
12
|
+
- 🛑 NEVER create tests without analyzing existing patterns first
|
|
13
|
+
- 🛑 NEVER use wrong test type (unit when integration needed)
|
|
14
|
+
- ✅ ALWAYS analyze test infrastructure BEFORE writing
|
|
15
|
+
- ✅ ALWAYS follow existing test conventions exactly
|
|
16
|
+
- ✅ ALWAYS map tests to acceptance criteria
|
|
17
|
+
- 📋 YOU ARE A TEST ENGINEER, not a code generator
|
|
18
|
+
- 💬 FOCUS on "What tests does this ACTUALLY need?"
|
|
19
|
+
- 🚫 FORBIDDEN to ignore project test conventions
|
|
20
|
+
|
|
21
|
+
## EXECUTION PROTOCOLS:
|
|
22
|
+
|
|
23
|
+
- 🎯 Analyze test infrastructure first
|
|
24
|
+
- 💾 Document test strategy (if save_mode)
|
|
25
|
+
- 📖 Read similar tests before writing
|
|
26
|
+
- 🚫 FORBIDDEN to write tests without reading examples
|
|
27
|
+
|
|
28
|
+
## CONTEXT BOUNDARIES:
|
|
29
|
+
|
|
30
|
+
- Implementation is complete and validated
|
|
31
|
+
- Test infrastructure exists (discovered in this step)
|
|
32
|
+
- Existing tests show conventions to follow
|
|
33
|
+
- Focus on creating RIGHT tests, not just tests
|
|
34
|
+
|
|
35
|
+
## YOUR TASK:
|
|
36
|
+
|
|
37
|
+
Analyze existing test patterns and create appropriate tests for the implementation.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
<available_state>
|
|
42
|
+
From previous steps:
|
|
43
|
+
|
|
44
|
+
| Variable | Description |
|
|
45
|
+
|----------|-------------|
|
|
46
|
+
| `{task_description}` | What was implemented |
|
|
47
|
+
| `{task_id}` | Kebab-case identifier |
|
|
48
|
+
| `{auto_mode}` | Skip confirmations |
|
|
49
|
+
| `{save_mode}` | Save outputs to files |
|
|
50
|
+
| `{economy_mode}` | Lighter test analysis |
|
|
51
|
+
| `{output_dir}` | Path to output (if save_mode) |
|
|
52
|
+
| Files modified | From implementation |
|
|
53
|
+
| Acceptance criteria | From step-01 |
|
|
54
|
+
</available_state>
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## EXECUTION SEQUENCE:
|
|
59
|
+
|
|
60
|
+
### 1. Initialize Save Output (if save_mode)
|
|
61
|
+
|
|
62
|
+
**If `{save_mode}` = true:**
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
bash {skill_dir}/scripts/update-progress.sh "{task_id}" "07" "tests" "in_progress"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Append analysis to `{output_dir}/07-tests.md` as you work.
|
|
69
|
+
|
|
70
|
+
### 2. Analyze Test Infrastructure
|
|
71
|
+
|
|
72
|
+
**2.1 Discover Framework**
|
|
73
|
+
```bash
|
|
74
|
+
cat package.json | grep -E "(jest|vitest|mocha|playwright|testing-library)"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**2.2 Find Config**
|
|
78
|
+
```bash
|
|
79
|
+
ls -la | grep -E "(jest|vitest|playwright)"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**2.3 Find Test Commands**
|
|
83
|
+
```bash
|
|
84
|
+
cat package.json | grep -A 5 '"scripts"' | grep -E "(test|spec)"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 3. Analyze Existing Test Patterns
|
|
88
|
+
|
|
89
|
+
**If `{economy_mode}` = true:**
|
|
90
|
+
→ Read 1 similar test file for patterns
|
|
91
|
+
|
|
92
|
+
**If `{economy_mode}` = false:**
|
|
93
|
+
→ Read 2-3 similar test files
|
|
94
|
+
|
|
95
|
+
**Pattern Checklist:**
|
|
96
|
+
- [ ] describe/it vs test() syntax
|
|
97
|
+
- [ ] Setup/teardown patterns
|
|
98
|
+
- [ ] Mocking approach
|
|
99
|
+
- [ ] Assertion style
|
|
100
|
+
- [ ] Test data approach
|
|
101
|
+
|
|
102
|
+
### 4. Determine Test Strategy
|
|
103
|
+
|
|
104
|
+
| Implementation Type | Test Type |
|
|
105
|
+
|--------------------|-----------|
|
|
106
|
+
| API Route | Integration with supertest/fetch |
|
|
107
|
+
| Service/Logic | Integration with real deps |
|
|
108
|
+
| Utility Function | Unit with mocks |
|
|
109
|
+
| React Component | Component with testing-library |
|
|
110
|
+
| Full Feature | Integration + E2E |
|
|
111
|
+
|
|
112
|
+
### 5. Create Test Plan
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
## Test Plan
|
|
116
|
+
|
|
117
|
+
**Framework:** {jest/vitest}
|
|
118
|
+
**Command:** `pnpm test`
|
|
119
|
+
|
|
120
|
+
### Tests to Create
|
|
121
|
+
|
|
122
|
+
**Integration:** `src/auth/register.test.ts`
|
|
123
|
+
- creates user with valid data (happy path)
|
|
124
|
+
- rejects invalid email (error case)
|
|
125
|
+
- handles auth failure (error case)
|
|
126
|
+
|
|
127
|
+
**Unit:** `src/utils/validation.test.ts`
|
|
128
|
+
- validates correct email
|
|
129
|
+
- rejects malformed email
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**If `{auto_mode}` = false:**
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
questions:
|
|
136
|
+
- header: "Tests"
|
|
137
|
+
question: "Review the test plan. Ready to create tests?"
|
|
138
|
+
options:
|
|
139
|
+
- label: "Create tests (Recommended)"
|
|
140
|
+
description: "Proceed with planned tests"
|
|
141
|
+
- label: "Add more tests"
|
|
142
|
+
description: "I want additional test cases"
|
|
143
|
+
- label: "Modify approach"
|
|
144
|
+
description: "Change the strategy"
|
|
145
|
+
- label: "Skip tests"
|
|
146
|
+
description: "Don't create tests"
|
|
147
|
+
multiSelect: false
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 6. Create Tests
|
|
151
|
+
|
|
152
|
+
**CRITICAL: Follow existing patterns EXACTLY**
|
|
153
|
+
|
|
154
|
+
1. Read similar test for reference
|
|
155
|
+
2. Create test file matching structure
|
|
156
|
+
3. Write tests following conventions
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
import { describe, it, expect, beforeEach } from 'vitest'
|
|
160
|
+
|
|
161
|
+
describe('POST /api/auth/register', () => {
|
|
162
|
+
beforeEach(async () => {
|
|
163
|
+
await db.user.deleteMany()
|
|
164
|
+
})
|
|
165
|
+
|
|
166
|
+
it('creates user with valid data', async () => {
|
|
167
|
+
const response = await client.post('/api/auth/register', {
|
|
168
|
+
email: 'test@example.com',
|
|
169
|
+
password: 'SecurePass123!'
|
|
170
|
+
})
|
|
171
|
+
|
|
172
|
+
expect(response.status).toBe(201)
|
|
173
|
+
})
|
|
174
|
+
|
|
175
|
+
it('rejects invalid email', async () => {
|
|
176
|
+
const response = await client.post('/api/auth/register', {
|
|
177
|
+
email: 'invalid',
|
|
178
|
+
password: 'SecurePass123!'
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
expect(response.status).toBe(400)
|
|
182
|
+
})
|
|
183
|
+
})
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### 7. Verify Tests
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
pnpm run typecheck
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
List created tests:
|
|
193
|
+
```
|
|
194
|
+
**Tests Created:**
|
|
195
|
+
- `src/auth/register.test.ts` (3 tests)
|
|
196
|
+
- `src/utils/validation.test.ts` (2 tests)
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### 8. Complete Save Output (if save_mode)
|
|
200
|
+
|
|
201
|
+
**If `{save_mode}` = true:**
|
|
202
|
+
|
|
203
|
+
Append to `{output_dir}/07-tests.md`:
|
|
204
|
+
```markdown
|
|
205
|
+
---
|
|
206
|
+
## Step Complete
|
|
207
|
+
**Status:** ✓ Complete
|
|
208
|
+
**Tests created:** {count}
|
|
209
|
+
**Test files:** {list}
|
|
210
|
+
**Next:** step-08-run-tests.md
|
|
211
|
+
**Timestamp:** {ISO timestamp}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## SUCCESS METRICS:
|
|
217
|
+
|
|
218
|
+
✅ Test infrastructure analyzed
|
|
219
|
+
✅ Existing patterns studied
|
|
220
|
+
✅ Appropriate test types chosen
|
|
221
|
+
✅ Tests follow codebase conventions
|
|
222
|
+
✅ Tests pass syntax check
|
|
223
|
+
✅ All AC have corresponding tests
|
|
224
|
+
|
|
225
|
+
## FAILURE MODES:
|
|
226
|
+
|
|
227
|
+
❌ Writing tests without analyzing patterns
|
|
228
|
+
❌ Wrong test type for implementation
|
|
229
|
+
❌ Ignoring project conventions
|
|
230
|
+
❌ Tests don't match acceptance criteria
|
|
231
|
+
❌ Over-testing (testing implementation, not behavior)
|
|
232
|
+
❌ **CRITICAL**: Not using AskUserQuestion for approval
|
|
233
|
+
|
|
234
|
+
## TEST PROTOCOLS:
|
|
235
|
+
|
|
236
|
+
- Analyze BEFORE writing
|
|
237
|
+
- Follow existing patterns EXACTLY
|
|
238
|
+
- Test behavior, not implementation
|
|
239
|
+
- Map to acceptance criteria
|
|
240
|
+
- Create minimal, focused tests
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## NEXT STEP:
|
|
245
|
+
|
|
246
|
+
After tests created, load `./step-08-run-tests.md`
|
|
247
|
+
|
|
248
|
+
<critical>
|
|
249
|
+
Remember: Create the RIGHT tests - analyze patterns first, then write!
|
|
250
|
+
</critical>
|