aiblueprint-cli 1.4.41 → 1.4.43
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/{workflow-apex → apex}/SKILL.md +12 -54
- package/claude-code-config/skills/{workflow-apex → apex}/scripts/setup-templates.sh +6 -40
- package/claude-code-config/skills/{workflow-apex → apex}/steps/step-00-init.md +3 -24
- package/claude-code-config/skills/{workflow-apex → apex}/steps/step-04-validate.md +25 -38
- package/claude-code-config/skills/{workflow-apex → apex}/templates/00-context.md +0 -8
- package/claude-code-config/skills/{workflow-apex → apex}/templates/README.md +6 -25
- package/claude-code-config/skills/{meta-claude-memory → claude-memory}/SKILL.md +59 -1
- package/package.json +1 -1
- package/claude-code-config/skills/workflow-apex/steps/step-05-examine.md +0 -294
- package/claude-code-config/skills/workflow-apex/steps/step-06-resolve.md +0 -237
- package/claude-code-config/skills/workflow-apex/steps/step-07-tests.md +0 -250
- package/claude-code-config/skills/workflow-apex/steps/step-08-run-tests.md +0 -308
- package/claude-code-config/skills/workflow-apex/steps/step-09-finish.md +0 -193
- package/claude-code-config/skills/workflow-apex/templates/05-examine.md +0 -10
- package/claude-code-config/skills/workflow-apex/templates/06-resolve.md +0 -10
- package/claude-code-config/skills/workflow-apex/templates/07-tests.md +0 -10
- package/claude-code-config/skills/workflow-apex/templates/08-run-tests.md +0 -10
- package/claude-code-config/skills/workflow-apex/templates/09-finish.md +0 -10
- /package/claude-code-config/skills/{workflow-apex → apex}/scripts/update-progress.sh +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/steps/step-00b-branch.md +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/steps/step-00b-economy.md +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/steps/step-00b-interactive.md +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/steps/step-01-analyze.md +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/steps/step-02-plan.md +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/steps/step-03-execute.md +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/templates/01-analyze.md +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/templates/02-plan.md +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/templates/03-execute.md +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/templates/04-validate.md +0 -0
- /package/claude-code-config/skills/{workflow-apex → apex}/templates/step-complete.md +0 -0
- /package/claude-code-config/skills/{meta-claude-memory → claude-memory}/references/comprehensive-example.md +0 -0
- /package/claude-code-config/skills/{meta-claude-memory → claude-memory}/references/optimize-guide.md +0 -0
- /package/claude-code-config/skills/{meta-claude-memory → claude-memory}/references/project-patterns.md +0 -0
- /package/claude-code-config/skills/{meta-claude-memory → claude-memory}/references/prompting-techniques.md +0 -0
- /package/claude-code-config/skills/{meta-claude-memory → claude-memory}/references/rules-directory-guide.md +0 -0
- /package/claude-code-config/skills/{meta-claude-memory → claude-memory}/references/section-templates.md +0 -0
- /package/claude-code-config/skills/{git-commit → commit}/SKILL.md +0 -0
- /package/claude-code-config/skills/{git-create-pr → create-pr}/SKILL.md +0 -0
- /package/claude-code-config/skills/{utils-fix-errors → fix-errors}/SKILL.md +0 -0
- /package/claude-code-config/skills/{utils-fix-grammar → fix-grammar}/SKILL.md +0 -0
- /package/claude-code-config/skills/{git-fix-pr-comments → fix-pr-comments}/SKILL.md +0 -0
- /package/claude-code-config/skills/{git-merge → merge}/SKILL.md +0 -0
- /package/claude-code-config/skills/{utils-oneshot → oneshot}/SKILL.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/SKILL.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/references/anthropic-best-practices.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/references/anti-patterns.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/references/clarity-principles.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/references/context-management.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/references/few-shot-patterns.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/references/openai-best-practices.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/references/prompt-templates.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/references/reasoning-techniques.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/references/system-prompt-patterns.md +0 -0
- /package/claude-code-config/skills/{meta-prompt-creator → prompt-creator}/references/xml-structure.md +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/LICENSE.txt +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/SKILL.md +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/package.json +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/references/output-patterns.md +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/references/progressive-disclosure-patterns.md +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/references/prompting-integration.md +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/references/real-world-examples.md +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/references/script-patterns.md +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/references/workflows.md +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/references/xml-tag-guide.md +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/scripts/init-skill.ts +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/scripts/package-skill.ts +0 -0
- /package/claude-code-config/skills/{meta-skill-creator → skill-creator}/scripts/validate.ts +0 -0
- /package/claude-code-config/skills/{meta-subagent-creator → subagent-creator}/SKILL.md +0 -0
- /package/claude-code-config/skills/{meta-subagent-creator → subagent-creator}/references/context-management.md +0 -0
- /package/claude-code-config/skills/{meta-subagent-creator → subagent-creator}/references/debugging-agents.md +0 -0
- /package/claude-code-config/skills/{meta-subagent-creator → subagent-creator}/references/error-handling-and-recovery.md +0 -0
- /package/claude-code-config/skills/{meta-subagent-creator → subagent-creator}/references/evaluation-and-testing.md +0 -0
- /package/claude-code-config/skills/{meta-subagent-creator → subagent-creator}/references/orchestration-patterns.md +0 -0
- /package/claude-code-config/skills/{meta-subagent-creator → subagent-creator}/references/subagents.md +0 -0
- /package/claude-code-config/skills/{meta-subagent-creator → subagent-creator}/references/writing-subagent-prompts.md +0 -0
- /package/claude-code-config/skills/{utils-ultrathink → ultrathink}/SKILL.md +0 -0
|
@@ -1,250 +0,0 @@
|
|
|
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>
|
|
@@ -1,308 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: step-08-run-tests
|
|
3
|
-
description: Run tests in a loop - fix issues until all pass
|
|
4
|
-
prev_step: steps/step-07-tests.md
|
|
5
|
-
next_step: steps/step-05-examine.md
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Step 8: Run Tests (Fix Loop)
|
|
9
|
-
|
|
10
|
-
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
11
|
-
|
|
12
|
-
- 🛑 NEVER give up after first failure
|
|
13
|
-
- 🛑 NEVER start services without permission (unless auto_mode)
|
|
14
|
-
- 🛑 NEVER infinite loop on same failure (max 3 attempts)
|
|
15
|
-
- ✅ ALWAYS loop until all tests pass
|
|
16
|
-
- ✅ ALWAYS ask user when stuck (unless auto_mode)
|
|
17
|
-
- ✅ ALWAYS clean up background processes
|
|
18
|
-
- 📋 YOU ARE A TEST RUNNER, fixing until green
|
|
19
|
-
- 💬 FOCUS on "Run → Fail → Fix → Repeat until green"
|
|
20
|
-
- 🚫 FORBIDDEN to ignore configuration errors
|
|
21
|
-
|
|
22
|
-
## EXECUTION PROTOCOLS:
|
|
23
|
-
|
|
24
|
-
- 🎯 Check requirements before running
|
|
25
|
-
- 💾 Log each test run (if save_mode)
|
|
26
|
-
- 📖 Analyze failures before fixing
|
|
27
|
-
- 🚫 FORBIDDEN to proceed with failing tests (without explicit skip)
|
|
28
|
-
|
|
29
|
-
## CONTEXT BOUNDARIES:
|
|
30
|
-
|
|
31
|
-
- Tests were created in step-07
|
|
32
|
-
- Tests may require services (DB, server)
|
|
33
|
-
- Failures may be code bugs or test bugs
|
|
34
|
-
- Loop until all green or user decides to skip
|
|
35
|
-
|
|
36
|
-
## YOUR TASK:
|
|
37
|
-
|
|
38
|
-
Run tests, fix any failures, and loop until ALL tests pass.
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
<available_state>
|
|
43
|
-
From previous steps:
|
|
44
|
-
|
|
45
|
-
| Variable | Description |
|
|
46
|
-
|----------|-------------|
|
|
47
|
-
| `{task_description}` | What was implemented |
|
|
48
|
-
| `{task_id}` | Kebab-case identifier |
|
|
49
|
-
| `{auto_mode}` | Auto-start servers, auto-retry |
|
|
50
|
-
| `{examine_mode}` | Auto-proceed to review after |
|
|
51
|
-
| `{save_mode}` | Save outputs to files |
|
|
52
|
-
| `{output_dir}` | Path to output (if save_mode) |
|
|
53
|
-
| Tests created | From step-07 |
|
|
54
|
-
| Test command | Discovered in step-07 |
|
|
55
|
-
</available_state>
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## EXECUTION SEQUENCE:
|
|
60
|
-
|
|
61
|
-
### 1. Initialize Save Output (if save_mode)
|
|
62
|
-
|
|
63
|
-
**If `{save_mode}` = true:**
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
bash {skill_dir}/scripts/update-progress.sh "{task_id}" "08" "run-tests" "in_progress"
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Append logs to `{output_dir}/08-run-tests.md` as you work.
|
|
70
|
-
|
|
71
|
-
### 2. Check Requirements
|
|
72
|
-
|
|
73
|
-
**Identify required services:**
|
|
74
|
-
```bash
|
|
75
|
-
cat package.json | grep -A 10 '"scripts"'
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Common: Database, dev server, Redis
|
|
79
|
-
|
|
80
|
-
**Check if running:**
|
|
81
|
-
```bash
|
|
82
|
-
curl -s http://localhost:3000 > /dev/null 2>&1 && echo "Server running"
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### 3. Handle Missing Services
|
|
86
|
-
|
|
87
|
-
**If `{auto_mode}` = true:**
|
|
88
|
-
→ Start services automatically:
|
|
89
|
-
```bash
|
|
90
|
-
pnpm run dev &
|
|
91
|
-
sleep 5
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**If `{auto_mode}` = false:**
|
|
95
|
-
|
|
96
|
-
```yaml
|
|
97
|
-
questions:
|
|
98
|
-
- header: "Services"
|
|
99
|
-
question: "Tests require services that aren't running. How proceed?"
|
|
100
|
-
options:
|
|
101
|
-
- label: "I'll start manually"
|
|
102
|
-
description: "Give me a moment to start them"
|
|
103
|
-
- label: "Start automatically"
|
|
104
|
-
description: "Try to start services automatically"
|
|
105
|
-
- label: "Skip tests needing services"
|
|
106
|
-
description: "Only run tests that don't need services"
|
|
107
|
-
- label: "Skip test step"
|
|
108
|
-
description: "Continue without running tests"
|
|
109
|
-
multiSelect: false
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### 4. Run Test Loop
|
|
113
|
-
|
|
114
|
-
**CRITICAL: Loop until all pass**
|
|
115
|
-
|
|
116
|
-
```
|
|
117
|
-
max_attempts = 10
|
|
118
|
-
attempt = 0
|
|
119
|
-
|
|
120
|
-
WHILE attempt < max_attempts:
|
|
121
|
-
attempt += 1
|
|
122
|
-
|
|
123
|
-
1. Run tests
|
|
124
|
-
2. If all pass → EXIT (success)
|
|
125
|
-
3. If failure:
|
|
126
|
-
a. Analyze failure
|
|
127
|
-
b. Determine: code bug or test bug?
|
|
128
|
-
c. Fix the issue
|
|
129
|
-
d. CONTINUE LOOP
|
|
130
|
-
4. If same failure 3x → ASK USER
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
**Run tests:**
|
|
134
|
-
```bash
|
|
135
|
-
pnpm run test 2>&1
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
**Log each run:**
|
|
139
|
-
```
|
|
140
|
-
**Run #{attempt}:**
|
|
141
|
-
- Total: 5, Passed: 3, Failed: 2
|
|
142
|
-
- Fixing: {description}
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### 5. Handle Failures
|
|
146
|
-
|
|
147
|
-
For each failing test:
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
**Analyzing:**
|
|
151
|
-
Test: "creates user with valid data"
|
|
152
|
-
File: src/auth/register.test.ts:25
|
|
153
|
-
Error: Expected 201, got 500
|
|
154
|
-
Stack: TypeError: Cannot read 'email' of undefined
|
|
155
|
-
|
|
156
|
-
**Diagnosis:** Code bug - null handling
|
|
157
|
-
**Fix:** Add null check in handler
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
**Fix location:**
|
|
161
|
-
| Error Type | Fix |
|
|
162
|
-
|------------|-----|
|
|
163
|
-
| Assertion failed | Usually code bug |
|
|
164
|
-
| TypeError in code | Code bug |
|
|
165
|
-
| TypeError in test | Test bug |
|
|
166
|
-
| Timeout | async/await issue |
|
|
167
|
-
| Import error | Missing dep |
|
|
168
|
-
|
|
169
|
-
### 6. Handle Stuck (3x same failure)
|
|
170
|
-
|
|
171
|
-
**If `{auto_mode}` = true:**
|
|
172
|
-
→ Try different approach once, then continue
|
|
173
|
-
|
|
174
|
-
**If `{auto_mode}` = false:**
|
|
175
|
-
|
|
176
|
-
```yaml
|
|
177
|
-
questions:
|
|
178
|
-
- header: "Stuck"
|
|
179
|
-
question: "Test keeps failing. How proceed?"
|
|
180
|
-
options:
|
|
181
|
-
- label: "I'll debug manually"
|
|
182
|
-
description: "Let me investigate"
|
|
183
|
-
- label: "Skip this test"
|
|
184
|
-
description: "Mark as skip, continue others"
|
|
185
|
-
- label: "Delete test"
|
|
186
|
-
description: "Remove this test entirely"
|
|
187
|
-
- label: "Keep trying"
|
|
188
|
-
description: "Try more approaches"
|
|
189
|
-
multiSelect: false
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
### 7. Handle Config Errors
|
|
193
|
-
|
|
194
|
-
| Error | Solution |
|
|
195
|
-
|-------|----------|
|
|
196
|
-
| Cannot find module | Check imports, pnpm install |
|
|
197
|
-
| Connection refused | DB/server not running |
|
|
198
|
-
| Timeout | Increase timeout, check async |
|
|
199
|
-
|
|
200
|
-
**If `{auto_mode}` = false:**
|
|
201
|
-
|
|
202
|
-
```yaml
|
|
203
|
-
questions:
|
|
204
|
-
- header: "Config"
|
|
205
|
-
question: "Configuration issue detected. How proceed?"
|
|
206
|
-
options:
|
|
207
|
-
- label: "I'll fix manually"
|
|
208
|
-
description: "Let me handle config"
|
|
209
|
-
- label: "Try automatic fix"
|
|
210
|
-
description: "Attempt suggested fix"
|
|
211
|
-
- label: "Skip tests"
|
|
212
|
-
description: "Continue without tests"
|
|
213
|
-
multiSelect: false
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### 8. Success - All Passing
|
|
217
|
-
|
|
218
|
-
```
|
|
219
|
-
**✓ All Tests Passing**
|
|
220
|
-
|
|
221
|
-
**Results:**
|
|
222
|
-
- Total: {count}
|
|
223
|
-
- Passed: {count}
|
|
224
|
-
- Failed: 0
|
|
225
|
-
|
|
226
|
-
**Attempts:** {count}
|
|
227
|
-
|
|
228
|
-
**Tests:**
|
|
229
|
-
- src/auth/register.test.ts - 3 tests
|
|
230
|
-
- src/utils/validation.test.ts - 2 tests
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### 9. Complete Save Output (if save_mode)
|
|
234
|
-
|
|
235
|
-
**If `{save_mode}` = true:**
|
|
236
|
-
|
|
237
|
-
Append to `{output_dir}/08-run-tests.md`:
|
|
238
|
-
```markdown
|
|
239
|
-
---
|
|
240
|
-
## Step Complete
|
|
241
|
-
**Status:** ✓ Complete
|
|
242
|
-
**Tests passed:** {count}
|
|
243
|
-
**Attempts:** {count}
|
|
244
|
-
**Next:** {next step}
|
|
245
|
-
**Timestamp:** {ISO timestamp}
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
### 10. Determine Next Step
|
|
249
|
-
|
|
250
|
-
**If `{examine_mode}` = true:**
|
|
251
|
-
→ Load step-05-examine.md
|
|
252
|
-
|
|
253
|
-
**If `{auto_mode}` = false:**
|
|
254
|
-
|
|
255
|
-
```yaml
|
|
256
|
-
questions:
|
|
257
|
-
- header: "Next"
|
|
258
|
-
question: "All tests passing. What next?"
|
|
259
|
-
options:
|
|
260
|
-
- label: "Run adversarial review"
|
|
261
|
-
description: "Deep review for security/logic"
|
|
262
|
-
- label: "Complete workflow"
|
|
263
|
-
description: "Finalize and show summary"
|
|
264
|
-
multiSelect: false
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
**Else:**
|
|
268
|
-
→ Complete workflow
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
## SUCCESS METRICS:
|
|
273
|
-
|
|
274
|
-
✅ All tests passing
|
|
275
|
-
✅ No stuck failures without user decision
|
|
276
|
-
✅ Config issues resolved
|
|
277
|
-
✅ Services cleaned up
|
|
278
|
-
✅ Clear summary
|
|
279
|
-
|
|
280
|
-
## FAILURE MODES:
|
|
281
|
-
|
|
282
|
-
❌ Giving up after first failure
|
|
283
|
-
❌ Infinite loop on same failure
|
|
284
|
-
❌ Starting services without permission
|
|
285
|
-
❌ Not cleaning up background processes
|
|
286
|
-
❌ Ignoring config errors
|
|
287
|
-
❌ **CRITICAL**: Not using AskUserQuestion when stuck
|
|
288
|
-
|
|
289
|
-
## RUN PROTOCOLS:
|
|
290
|
-
|
|
291
|
-
- Loop until green
|
|
292
|
-
- Analyze before fixing
|
|
293
|
-
- Ask user when stuck (3x)
|
|
294
|
-
- Clean up services
|
|
295
|
-
- Clear summary at end
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
## NEXT STEP:
|
|
300
|
-
|
|
301
|
-
Based on flags (check in order):
|
|
302
|
-
- **If examine_mode:** Load `./step-05-examine.md`
|
|
303
|
-
- **If pr_mode:** Load `./step-09-finish.md` to create pull request
|
|
304
|
-
- **Otherwise:** Workflow complete - show summary
|
|
305
|
-
|
|
306
|
-
<critical>
|
|
307
|
-
Remember: Loop until ALL tests pass - don't give up after first failure!
|
|
308
|
-
</critical>
|