@atlashub/smartstack-cli 1.13.2 → 1.14.1
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/.documentation/agents.html +1 -1
- package/.documentation/apex.html +1 -1
- package/.documentation/business-analyse.html +1 -1
- package/.documentation/cli-commands.html +3 -3
- package/.documentation/commands.html +1 -1
- package/.documentation/efcore.html +1 -1
- package/.documentation/gitflow.html +231 -236
- package/.documentation/hooks.html +1 -1
- package/.documentation/index.html +1 -1
- package/.documentation/init.html +3 -3
- package/.documentation/installation.html +1075 -351
- package/.documentation/ralph-loop.html +1 -1
- package/.documentation/test-web.html +1 -1
- package/README.md +88 -20
- package/config/default-config.json +10 -1
- package/dist/index.js +276 -85
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/agents/code-reviewer.md +163 -0
- package/templates/agents/efcore/db-deploy.md +25 -7
- package/templates/agents/efcore/db-reset.md +31 -10
- package/templates/agents/efcore/db-status.md +22 -5
- package/templates/agents/efcore/migration.md +70 -20
- package/templates/agents/gitflow/cleanup.md +8 -1
- package/templates/agents/gitflow/commit.md +7 -5
- package/templates/agents/gitflow/finish.md +6 -4
- package/templates/agents/gitflow/pr.md +8 -1
- package/templates/agents/gitflow/start.md +1 -1
- package/templates/commands/check-version.md +267 -0
- package/templates/commands/efcore/_shared.md +31 -2
- package/templates/commands/efcore/db-reset.md +18 -6
- package/templates/commands/efcore/migration.md +1 -1
- package/templates/commands/efcore/rebase-snapshot.md +1 -1
- package/templates/commands/efcore/squash.md +1 -0
- package/templates/commands/refactor.md +164 -0
- package/templates/project/DependencyInjection.Application.cs.template +25 -0
- package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -0
- package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -0
- package/templates/project/ExampleEntity.cs.template +116 -0
- package/templates/project/ExampleEntityConfiguration.cs.template +64 -0
- package/templates/project/ExampleService.cs.template +146 -0
- package/templates/project/ExtensionsDbContext.cs.template +41 -0
- package/templates/project/IExtensionsDbContext.cs.template +22 -0
- package/templates/project/Program.cs.template +47 -0
- package/templates/project/README.md +79 -0
- package/templates/ralph/README.md +10 -8
- package/templates/ralph/ralph.config.yaml +2 -2
- package/templates/skills/_shared.md +44 -44
- package/templates/skills/ai-prompt/SKILL.md +55 -55
- package/templates/skills/apex/SKILL.md +235 -0
- package/templates/skills/apex/steps/step-00-init.md +203 -0
- package/templates/skills/apex/steps/step-01-analyze.md +210 -0
- package/templates/skills/apex/steps/step-02-plan.md +217 -0
- package/templates/skills/apex/steps/step-03-execute.md +178 -0
- package/templates/skills/apex/steps/step-04-validate.md +217 -0
- package/templates/skills/apex/steps/step-05-examine.md +207 -0
- package/templates/skills/apex/steps/step-06-resolve.md +181 -0
- package/templates/skills/apex/steps/step-07-tests.md +206 -0
- package/templates/skills/apex/steps/step-08-run-tests.md +207 -0
- package/templates/skills/apex/templates/00-context.md +46 -0
- package/templates/skills/apex/templates/01-analyze.md +63 -0
- package/templates/skills/apex/templates/02-plan.md +63 -0
- package/templates/skills/apex/templates/03-execute.md +34 -0
- package/templates/skills/apex/templates/04-validate.md +61 -0
- package/templates/skills/apex/templates/05-examine.md +58 -0
- package/templates/skills/apex/templates/06-resolve.md +39 -0
- package/templates/skills/apex/templates/07-tests.md +56 -0
- package/templates/skills/apex/templates/08-run-tests.md +41 -0
- package/templates/skills/apex/templates/README.md +69 -0
- package/templates/skills/application/SKILL.md +50 -50
- package/templates/skills/application/templates-backend.md +25 -25
- package/templates/skills/application/templates-frontend.md +43 -43
- package/templates/skills/application/templates-i18n.md +29 -29
- package/templates/skills/application/templates-seed.md +77 -77
- package/templates/skills/business-analyse/SKILL.md +223 -0
- package/templates/skills/business-analyse/_shared.md +258 -0
- package/templates/skills/business-analyse/questionnaire/01-context.md +33 -0
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +35 -0
- package/templates/skills/business-analyse/questionnaire/03-scope.md +35 -0
- package/templates/skills/business-analyse/questionnaire/04-data.md +36 -0
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +36 -0
- package/templates/skills/business-analyse/questionnaire/06-security.md +40 -0
- package/templates/skills/business-analyse/questionnaire/07-ui.md +36 -0
- package/templates/skills/business-analyse/questionnaire/08-performance.md +35 -0
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +35 -0
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +35 -0
- package/templates/skills/business-analyse/questionnaire.md +177 -177
- package/templates/skills/business-analyse/react/components.md +340 -0
- package/templates/skills/business-analyse/react/i18n-template.md +245 -0
- package/templates/skills/business-analyse/react/schema.md +151 -0
- package/templates/skills/business-analyse/steps/step-00-init.md +293 -0
- package/templates/skills/business-analyse/steps/step-01-discover.md +267 -0
- package/templates/skills/business-analyse/steps/step-02-analyse.md +243 -0
- package/templates/skills/business-analyse/steps/step-03-specify.md +317 -0
- package/templates/skills/business-analyse/steps/step-04-validate.md +239 -0
- package/templates/skills/business-analyse/steps/step-05-handoff.md +336 -0
- package/templates/skills/business-analyse/steps/step-06-doc-html.md +261 -0
- package/templates/skills/business-analyse/templates/00-context.md +105 -0
- package/templates/skills/business-analyse/templates/frd-brd.md +97 -0
- package/templates/skills/business-analyse/templates/frd-discovery.md +78 -0
- package/templates/skills/business-analyse/templates/frd-handoff.md +118 -0
- package/templates/skills/business-analyse/templates/frd-spec.md +168 -0
- package/templates/skills/business-analyse/templates-frd.md +217 -217
- package/templates/skills/business-analyse/templates-react.md +26 -26
- package/templates/skills/controller/SKILL.md +141 -92
- package/templates/skills/controller/postman-templates.md +15 -15
- package/templates/skills/controller/steps/step-00-init.md +191 -0
- package/templates/skills/controller/steps/step-01-analyze.md +146 -0
- package/templates/skills/controller/steps/step-02-plan.md +176 -0
- package/templates/skills/controller/steps/step-03-generate.md +219 -0
- package/templates/skills/controller/steps/step-04-perms.md +219 -0
- package/templates/skills/controller/steps/step-05-validate.md +107 -0
- package/templates/skills/controller/templates.md +77 -77
- package/templates/skills/documentation/SKILL.md +79 -79
- package/templates/skills/feature-full/SKILL.md +38 -38
- package/templates/skills/gitflow/SKILL.md +277 -0
- package/templates/{commands → skills}/gitflow/_shared.md +20 -20
- package/templates/skills/gitflow/phases/abort.md +173 -0
- package/templates/skills/gitflow/phases/cleanup.md +226 -0
- package/templates/skills/gitflow/phases/status.md +178 -0
- package/templates/skills/gitflow/steps/step-commit.md +255 -0
- package/templates/skills/gitflow/steps/step-finish.md +255 -0
- package/templates/skills/gitflow/steps/step-init.md +209 -0
- package/templates/skills/gitflow/steps/step-merge.md +225 -0
- package/templates/skills/gitflow/steps/step-plan.md +208 -0
- package/templates/skills/gitflow/steps/step-pr.md +235 -0
- package/templates/skills/gitflow/steps/step-start.md +334 -0
- package/templates/skills/gitflow/steps/step-sync.md +200 -0
- package/templates/skills/gitflow/templates/config.json +53 -0
- package/templates/skills/notification/SKILL.md +51 -51
- package/templates/skills/ralph-loop/SKILL.md +228 -0
- package/templates/skills/ralph-loop/steps/step-00-init.md +201 -0
- package/templates/skills/ralph-loop/steps/step-01-task.md +169 -0
- package/templates/skills/ralph-loop/steps/step-02-execute.md +173 -0
- package/templates/skills/ralph-loop/steps/step-03-commit.md +170 -0
- package/templates/skills/ralph-loop/steps/step-04-check.md +162 -0
- package/templates/skills/ralph-loop/steps/step-05-report.md +181 -0
- package/templates/skills/review-code/SKILL.md +219 -0
- package/templates/skills/review-code/references/clean-code-principles.md +140 -0
- package/templates/skills/review-code/references/code-quality-metrics.md +174 -0
- package/templates/skills/review-code/references/feedback-patterns.md +149 -0
- package/templates/skills/review-code/references/security-checklist.md +127 -0
- package/templates/skills/ui-components/SKILL.md +54 -54
- package/templates/skills/workflow/SKILL.md +46 -46
- package/templates/commands/ai-prompt.md +0 -315
- package/templates/commands/apex/1-analyze.md +0 -100
- package/templates/commands/apex/2-plan.md +0 -145
- package/templates/commands/apex/3-execute.md +0 -171
- package/templates/commands/apex/4-examine.md +0 -116
- package/templates/commands/apex/5-tasks.md +0 -209
- package/templates/commands/apex.md +0 -76
- package/templates/commands/application/create.md +0 -362
- package/templates/commands/application/templates-backend.md +0 -463
- package/templates/commands/application/templates-frontend.md +0 -517
- package/templates/commands/application/templates-i18n.md +0 -478
- package/templates/commands/application/templates-seed.md +0 -362
- package/templates/commands/application.md +0 -303
- package/templates/commands/business-analyse/0-orchestrate.md +0 -156
- package/templates/commands/business-analyse/1-init.md +0 -99
- package/templates/commands/business-analyse/2-discover.md +0 -143
- package/templates/commands/business-analyse/3-analyse.md +0 -106
- package/templates/commands/business-analyse/4-specify.md +0 -133
- package/templates/commands/business-analyse/5-validate.md +0 -132
- package/templates/commands/business-analyse/6-handoff.md +0 -157
- package/templates/commands/business-analyse/7-doc-html.md +0 -103
- package/templates/commands/business-analyse/_shared.md +0 -176
- package/templates/commands/business-analyse/bug.md +0 -118
- package/templates/commands/business-analyse/change-request.md +0 -144
- package/templates/commands/business-analyse/hotfix.md +0 -116
- package/templates/commands/business-analyse.md +0 -121
- package/templates/commands/controller/create.md +0 -216
- package/templates/commands/controller/postman-templates.md +0 -528
- package/templates/commands/controller/templates.md +0 -600
- package/templates/commands/controller.md +0 -337
- package/templates/commands/create/agent.md +0 -138
- package/templates/commands/create/command.md +0 -166
- package/templates/commands/create/hook.md +0 -234
- package/templates/commands/create/plugin.md +0 -329
- package/templates/commands/create/project.md +0 -508
- package/templates/commands/create/skill.md +0 -199
- package/templates/commands/create.md +0 -220
- package/templates/commands/documentation/module.md +0 -202
- package/templates/commands/documentation/templates.md +0 -432
- package/templates/commands/documentation.md +0 -190
- package/templates/commands/epct.md +0 -69
- package/templates/commands/explain.md +0 -186
- package/templates/commands/feature-full.md +0 -267
- package/templates/commands/gitflow/1-init.md +0 -188
- package/templates/commands/gitflow/10-start.md +0 -190
- package/templates/commands/gitflow/11-finish.md +0 -382
- package/templates/commands/gitflow/12-cleanup.md +0 -103
- package/templates/commands/gitflow/13-sync.md +0 -216
- package/templates/commands/gitflow/14-rebase.md +0 -251
- package/templates/commands/gitflow/2-status.md +0 -122
- package/templates/commands/gitflow/3-commit.md +0 -209
- package/templates/commands/gitflow/4-plan.md +0 -174
- package/templates/commands/gitflow/5-exec.md +0 -202
- package/templates/commands/gitflow/6-abort.md +0 -121
- package/templates/commands/gitflow/7-pull-request.md +0 -176
- package/templates/commands/gitflow/8-review.md +0 -113
- package/templates/commands/gitflow/9-merge.md +0 -157
- package/templates/commands/gitflow.md +0 -128
- package/templates/commands/implement.md +0 -663
- package/templates/commands/init.md +0 -567
- package/templates/commands/mcp-integration.md +0 -330
- package/templates/commands/notification.md +0 -129
- package/templates/commands/oneshot.md +0 -57
- package/templates/commands/quickstart.md +0 -154
- package/templates/commands/ralph-loop/cancel-ralph.md +0 -18
- package/templates/commands/ralph-loop/help.md +0 -126
- package/templates/commands/ralph-loop/ralph-loop.md +0 -120
- package/templates/commands/review.md +0 -106
- package/templates/commands/workflow.md +0 -193
- package/templates/gitflow/config.json +0 -138
|
@@ -0,0 +1,181 @@
|
|
|
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:
|
|
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
|
+
- FORBIDDEN to proceed with failing validation
|
|
19
|
+
|
|
20
|
+
## YOUR TASK:
|
|
21
|
+
|
|
22
|
+
Address adversarial review findings interactively - fix real issues, dismiss noise, discuss uncertain items.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
<available_state>
|
|
27
|
+
From previous steps:
|
|
28
|
+
|
|
29
|
+
| Variable | Description |
|
|
30
|
+
|----------|-------------|
|
|
31
|
+
| `{task_description}` | What was implemented |
|
|
32
|
+
| `{task_id}` | Kebab-case identifier |
|
|
33
|
+
| `{auto_mode}` | Auto-fix Real findings |
|
|
34
|
+
| `{save_mode}` | Save outputs to files |
|
|
35
|
+
| `{output_dir}` | Path to output (if save_mode) |
|
|
36
|
+
| Findings table | IDs, severity, validity |
|
|
37
|
+
| Finding todos | For tracking |
|
|
38
|
+
</available_state>
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## EXECUTION SEQUENCE:
|
|
43
|
+
|
|
44
|
+
### 1. Present Resolution Options
|
|
45
|
+
|
|
46
|
+
**If `{auto_mode}` = true:**
|
|
47
|
+
Auto-fix all "Real" findings, skip Noise/Uncertain.
|
|
48
|
+
|
|
49
|
+
**If `{auto_mode}` = false:**
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
questions:
|
|
53
|
+
- header: "Resolution"
|
|
54
|
+
question: "How would you like to handle these findings?"
|
|
55
|
+
options:
|
|
56
|
+
- label: "Auto-fix Real issues (Recommended)"
|
|
57
|
+
description: "Fix 'Real' findings, skip noise/uncertain"
|
|
58
|
+
- label: "Walk through each finding"
|
|
59
|
+
description: "Decide on each finding individually"
|
|
60
|
+
- label: "Fix only critical"
|
|
61
|
+
description: "Only fix CRITICAL/BLOCKING issues"
|
|
62
|
+
- label: "Skip all"
|
|
63
|
+
description: "Acknowledge but don't change"
|
|
64
|
+
multiSelect: false
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 2. Apply Fixes Based on Choice
|
|
68
|
+
|
|
69
|
+
**Auto-fix Real:**
|
|
70
|
+
1. Filter to Real findings only
|
|
71
|
+
2. For each: Read file -> Apply fix -> Verify
|
|
72
|
+
3. Log each fix
|
|
73
|
+
|
|
74
|
+
**Walk through each:**
|
|
75
|
+
For each finding in severity order:
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
questions:
|
|
79
|
+
- header: "F1"
|
|
80
|
+
question: "How should we handle this finding?"
|
|
81
|
+
options:
|
|
82
|
+
- label: "Fix now (Recommended)"
|
|
83
|
+
description: "Apply the suggested fix"
|
|
84
|
+
- label: "Skip"
|
|
85
|
+
description: "Acknowledge but don't fix"
|
|
86
|
+
- label: "Discuss"
|
|
87
|
+
description: "Need more context"
|
|
88
|
+
- label: "Mark as noise"
|
|
89
|
+
description: "Not a real issue"
|
|
90
|
+
multiSelect: false
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Fix only critical:**
|
|
94
|
+
1. Filter to CRITICAL/BLOCKING only
|
|
95
|
+
2. Auto-fix those, skip others
|
|
96
|
+
|
|
97
|
+
**Skip all:**
|
|
98
|
+
1. Acknowledge findings
|
|
99
|
+
2. If Critical/High exist, confirm user wants to proceed anyway
|
|
100
|
+
|
|
101
|
+
### 3. Post-Resolution Validation
|
|
102
|
+
|
|
103
|
+
After any fixes:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
pnpm run typecheck && pnpm run lint
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Both MUST pass.
|
|
110
|
+
|
|
111
|
+
### 4. Resolution Summary
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
**Resolution Complete**
|
|
115
|
+
|
|
116
|
+
**Fixed:** {count}
|
|
117
|
+
- F1: Parameterized SQL query in auth.ts:42
|
|
118
|
+
- F2: Added null check in handler.ts:78
|
|
119
|
+
|
|
120
|
+
**Skipped:** {count}
|
|
121
|
+
- F3: Complex function (uncertain)
|
|
122
|
+
|
|
123
|
+
**Validation:** Pass
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 5. Save Output (if save_mode)
|
|
127
|
+
|
|
128
|
+
**If `{save_mode}` = true:**
|
|
129
|
+
|
|
130
|
+
Write to `{output_dir}/06-resolve.md`:
|
|
131
|
+
- Resolution summary
|
|
132
|
+
- Fixes applied
|
|
133
|
+
- Timestamp
|
|
134
|
+
- Update 00-context.md Progress table: 06-resolve -> Complete
|
|
135
|
+
|
|
136
|
+
### 6. Completion Summary
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
**APEX Workflow Complete**
|
|
140
|
+
|
|
141
|
+
**Task:** {task_description}
|
|
142
|
+
|
|
143
|
+
**Implementation:**
|
|
144
|
+
- Files modified: {count}
|
|
145
|
+
- All checks passing: Yes
|
|
146
|
+
|
|
147
|
+
**Review:**
|
|
148
|
+
- Findings identified: {total}
|
|
149
|
+
- Findings resolved: {fixed}
|
|
150
|
+
- Findings skipped: {skipped}
|
|
151
|
+
|
|
152
|
+
**Next Steps:**
|
|
153
|
+
- [ ] Commit changes
|
|
154
|
+
- [ ] Run full test suite
|
|
155
|
+
- [ ] Deploy when ready
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## SUCCESS METRICS:
|
|
161
|
+
|
|
162
|
+
- User chose resolution approach
|
|
163
|
+
- All chosen fixes applied correctly
|
|
164
|
+
- Validation passes after fixes
|
|
165
|
+
- Clear summary of resolved/skipped
|
|
166
|
+
- User understands next steps
|
|
167
|
+
|
|
168
|
+
## FAILURE MODES:
|
|
169
|
+
|
|
170
|
+
- Auto-fixing Noise or Uncertain findings
|
|
171
|
+
- Not validating after fixes
|
|
172
|
+
- No clear completion summary
|
|
173
|
+
- Proceeding with failing validation
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## NEXT STEP:
|
|
178
|
+
|
|
179
|
+
Based on flags:
|
|
180
|
+
- **If test_mode:** Load `./step-07-tests.md`
|
|
181
|
+
- **Otherwise:** Workflow complete - show summary
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: step-07-tests
|
|
3
|
+
description: Test analysis and creation - identify gaps and write 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:
|
|
11
|
+
|
|
12
|
+
- NEVER skip test coverage analysis
|
|
13
|
+
- NEVER write tests without reading existing patterns
|
|
14
|
+
- ALWAYS identify untested code paths
|
|
15
|
+
- ALWAYS follow existing test patterns
|
|
16
|
+
- ALWAYS create meaningful assertions
|
|
17
|
+
- YOU ARE A TEST ENGINEER, ensuring quality
|
|
18
|
+
- FORBIDDEN to write redundant tests
|
|
19
|
+
|
|
20
|
+
## YOUR TASK:
|
|
21
|
+
|
|
22
|
+
Analyze test coverage for the implementation, identify gaps, and create comprehensive tests.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
<available_state>
|
|
27
|
+
From previous steps:
|
|
28
|
+
|
|
29
|
+
| Variable | Description |
|
|
30
|
+
|----------|-------------|
|
|
31
|
+
| `{task_description}` | What was implemented |
|
|
32
|
+
| `{task_id}` | Kebab-case identifier |
|
|
33
|
+
| `{auto_mode}` | Skip confirmations |
|
|
34
|
+
| `{save_mode}` | Save outputs to files |
|
|
35
|
+
| `{economy_mode}` | No subagents, direct tools |
|
|
36
|
+
| `{output_dir}` | Path to output (if save_mode) |
|
|
37
|
+
| Files modified | From step-03 |
|
|
38
|
+
</available_state>
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## EXECUTION SEQUENCE:
|
|
43
|
+
|
|
44
|
+
### 1. Analyze Existing Tests
|
|
45
|
+
|
|
46
|
+
**If `{economy_mode}` = true:**
|
|
47
|
+
|
|
48
|
+
Use direct tools:
|
|
49
|
+
1. Glob for test files: `**/*.test.ts`, `**/*.spec.ts`
|
|
50
|
+
2. Read 1-2 similar test files for patterns
|
|
51
|
+
3. Identify test framework (jest, vitest, etc.)
|
|
52
|
+
|
|
53
|
+
**If `{economy_mode}` = false:**
|
|
54
|
+
|
|
55
|
+
Launch exploration agent:
|
|
56
|
+
```
|
|
57
|
+
Analyze test structure for: {task_description}
|
|
58
|
+
|
|
59
|
+
Find:
|
|
60
|
+
1. Test file naming conventions
|
|
61
|
+
2. Test patterns used (describe/it, test())
|
|
62
|
+
3. Mocking patterns
|
|
63
|
+
4. Assertion style (expect, assert)
|
|
64
|
+
5. Coverage of similar features
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 2. Identify Test Gaps
|
|
68
|
+
|
|
69
|
+
For each modified file, determine:
|
|
70
|
+
|
|
71
|
+
```markdown
|
|
72
|
+
## Test Coverage Analysis
|
|
73
|
+
|
|
74
|
+
### `src/auth/handler.ts`
|
|
75
|
+
**Existing coverage:** 60%
|
|
76
|
+
**New code coverage:** 0%
|
|
77
|
+
|
|
78
|
+
**Untested paths:**
|
|
79
|
+
- [ ] `validateToken` happy path
|
|
80
|
+
- [ ] `validateToken` expired token error
|
|
81
|
+
- [ ] `validateToken` invalid signature error
|
|
82
|
+
|
|
83
|
+
### `src/api/auth/route.ts`
|
|
84
|
+
**Existing coverage:** 80%
|
|
85
|
+
**New code coverage:** 0%
|
|
86
|
+
|
|
87
|
+
**Untested paths:**
|
|
88
|
+
- [ ] POST endpoint with valid credentials
|
|
89
|
+
- [ ] POST endpoint with invalid credentials
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 3. Plan Test Creation
|
|
93
|
+
|
|
94
|
+
```markdown
|
|
95
|
+
## Test Plan
|
|
96
|
+
|
|
97
|
+
### New Test Files
|
|
98
|
+
- `src/auth/__tests__/handler.test.ts`
|
|
99
|
+
- Test validateToken function
|
|
100
|
+
- 3 test cases planned
|
|
101
|
+
|
|
102
|
+
### Update Existing Tests
|
|
103
|
+
- `src/api/auth/__tests__/route.test.ts`
|
|
104
|
+
- Add integration tests for new endpoint
|
|
105
|
+
- 2 test cases planned
|
|
106
|
+
|
|
107
|
+
### Test Cases Summary
|
|
108
|
+
| File | Function | Test Case | Priority |
|
|
109
|
+
|------|----------|-----------|----------|
|
|
110
|
+
| handler.test.ts | validateToken | Valid token returns payload | High |
|
|
111
|
+
| handler.test.ts | validateToken | Expired token throws error | High |
|
|
112
|
+
| handler.test.ts | validateToken | Invalid signature throws | Medium |
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 4. Write Tests
|
|
116
|
+
|
|
117
|
+
Follow existing patterns:
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
// Example pattern (adapt to project style)
|
|
121
|
+
describe('validateToken', () => {
|
|
122
|
+
it('should return payload for valid token', async () => {
|
|
123
|
+
// Arrange
|
|
124
|
+
const validToken = createTestToken({ userId: '123' });
|
|
125
|
+
|
|
126
|
+
// Act
|
|
127
|
+
const result = await validateToken(validToken);
|
|
128
|
+
|
|
129
|
+
// Assert
|
|
130
|
+
expect(result.userId).toBe('123');
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
it('should throw for expired token', async () => {
|
|
134
|
+
// Arrange
|
|
135
|
+
const expiredToken = createTestToken({ exp: Date.now() - 1000 });
|
|
136
|
+
|
|
137
|
+
// Act & Assert
|
|
138
|
+
await expect(validateToken(expiredToken)).rejects.toThrow('Token expired');
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Economy mode:** Create essential tests only:
|
|
144
|
+
- 1 happy path test
|
|
145
|
+
- 1 error case test
|
|
146
|
+
- Skip edge cases unless critical
|
|
147
|
+
|
|
148
|
+
### 5. Verify Tests Compile
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
pnpm run typecheck
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Fix any type errors in tests.
|
|
155
|
+
|
|
156
|
+
### 6. Save Output (if save_mode)
|
|
157
|
+
|
|
158
|
+
**If `{save_mode}` = true:**
|
|
159
|
+
|
|
160
|
+
Write to `{output_dir}/07-tests.md`:
|
|
161
|
+
- Coverage analysis
|
|
162
|
+
- Test plan
|
|
163
|
+
- Tests created
|
|
164
|
+
- Timestamp
|
|
165
|
+
- Update 00-context.md Progress table: 07-tests -> Complete
|
|
166
|
+
|
|
167
|
+
### 7. Present Test Summary
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
**Test Creation Complete**
|
|
171
|
+
|
|
172
|
+
**New test files:** {count}
|
|
173
|
+
**Test cases added:** {count}
|
|
174
|
+
|
|
175
|
+
**Coverage improvement:**
|
|
176
|
+
- Before: {X}%
|
|
177
|
+
- After: {Y}% (estimated)
|
|
178
|
+
|
|
179
|
+
**Tests ready to run.**
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Proceed directly to step-08-run-tests.md**
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## SUCCESS METRICS:
|
|
187
|
+
|
|
188
|
+
- Existing test patterns identified
|
|
189
|
+
- Coverage gaps documented
|
|
190
|
+
- Tests follow project conventions
|
|
191
|
+
- Tests compile without errors
|
|
192
|
+
- Meaningful assertions present
|
|
193
|
+
|
|
194
|
+
## FAILURE MODES:
|
|
195
|
+
|
|
196
|
+
- Writing tests without reading existing patterns
|
|
197
|
+
- Creating redundant test coverage
|
|
198
|
+
- Tests that don't compile
|
|
199
|
+
- Meaningless assertions (just checking truthy)
|
|
200
|
+
- Using subagents in economy_mode
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## NEXT STEP:
|
|
205
|
+
|
|
206
|
+
Always proceed to `./step-08-run-tests.md` to run the tests.
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: step-08-run-tests
|
|
3
|
+
description: Test runner - execute tests until all pass
|
|
4
|
+
prev_step: steps/step-07-tests.md
|
|
5
|
+
next_step: COMPLETE
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 8: Run Tests
|
|
9
|
+
|
|
10
|
+
## MANDATORY EXECUTION RULES:
|
|
11
|
+
|
|
12
|
+
- NEVER claim tests pass when they don't
|
|
13
|
+
- NEVER give up after first failure
|
|
14
|
+
- ALWAYS run full test suite
|
|
15
|
+
- ALWAYS fix failing tests before proceeding
|
|
16
|
+
- ALWAYS re-run after each fix
|
|
17
|
+
- YOU ARE A TEST RUNNER, ensuring green build
|
|
18
|
+
- FORBIDDEN to proceed with failing tests
|
|
19
|
+
|
|
20
|
+
## YOUR TASK:
|
|
21
|
+
|
|
22
|
+
Run the test suite, fix any failures, and ensure all tests pass.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
<available_state>
|
|
27
|
+
From previous steps:
|
|
28
|
+
|
|
29
|
+
| Variable | Description |
|
|
30
|
+
|----------|-------------|
|
|
31
|
+
| `{task_description}` | What was implemented |
|
|
32
|
+
| `{task_id}` | Kebab-case identifier |
|
|
33
|
+
| `{auto_mode}` | Auto-fix test failures |
|
|
34
|
+
| `{save_mode}` | Save outputs to files |
|
|
35
|
+
| `{output_dir}` | Path to output (if save_mode) |
|
|
36
|
+
| Tests created | From step-07 |
|
|
37
|
+
</available_state>
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## EXECUTION SEQUENCE:
|
|
42
|
+
|
|
43
|
+
### 1. Run Test Suite
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pnpm run test
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Or for specific tests:
|
|
50
|
+
```bash
|
|
51
|
+
pnpm run test -- --filter="auth"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 2. Analyze Results
|
|
55
|
+
|
|
56
|
+
**If ALL PASS:**
|
|
57
|
+
Skip to step 5 (Summary).
|
|
58
|
+
|
|
59
|
+
**If FAILURES:**
|
|
60
|
+
For each failing test:
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
## Failing Test Analysis
|
|
64
|
+
|
|
65
|
+
### Test: `validateToken should throw for expired token`
|
|
66
|
+
**File:** `src/auth/__tests__/handler.test.ts:25`
|
|
67
|
+
**Error:** `Expected: "Token expired", Received: "Invalid token"`
|
|
68
|
+
|
|
69
|
+
**Root Cause Analysis:**
|
|
70
|
+
- [ ] Test bug: Incorrect assertion
|
|
71
|
+
- [x] Code bug: Wrong error message
|
|
72
|
+
- [ ] Setup issue: Missing mock
|
|
73
|
+
|
|
74
|
+
**Fix:** Update error message in `validateToken` to be "Token expired"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 3. Fix Failures
|
|
78
|
+
|
|
79
|
+
**Loop until green:**
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
WHILE tests failing:
|
|
83
|
+
1. Identify root cause (test bug vs code bug)
|
|
84
|
+
2. Apply fix
|
|
85
|
+
3. Re-run tests
|
|
86
|
+
4. Log result
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**If `{auto_mode}` = true:**
|
|
90
|
+
Auto-fix obvious issues, continue loop.
|
|
91
|
+
|
|
92
|
+
**If `{auto_mode}` = false AND stuck:**
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
questions:
|
|
96
|
+
- header: "Test Fix"
|
|
97
|
+
question: "Test is still failing. How should we proceed?"
|
|
98
|
+
options:
|
|
99
|
+
- label: "Try alternative fix (Recommended)"
|
|
100
|
+
description: "Attempt a different approach"
|
|
101
|
+
- label: "Skip this test"
|
|
102
|
+
description: "Mark as skipped with TODO"
|
|
103
|
+
- label: "Discuss the issue"
|
|
104
|
+
description: "Need help understanding the failure"
|
|
105
|
+
multiSelect: false
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 4. Verify All Green
|
|
109
|
+
|
|
110
|
+
Final run:
|
|
111
|
+
```bash
|
|
112
|
+
pnpm run test
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**MUST show all tests passing.**
|
|
116
|
+
|
|
117
|
+
### 5. Save Output (if save_mode)
|
|
118
|
+
|
|
119
|
+
**If `{save_mode}` = true:**
|
|
120
|
+
|
|
121
|
+
Write to `{output_dir}/08-run-tests.md`:
|
|
122
|
+
- Test run results
|
|
123
|
+
- Failures encountered and fixes
|
|
124
|
+
- Final status
|
|
125
|
+
- Timestamp
|
|
126
|
+
- Update 00-context.md Progress table: 08-run-tests -> Complete
|
|
127
|
+
|
|
128
|
+
### 6. Test Summary
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
**Test Run Complete**
|
|
132
|
+
|
|
133
|
+
**Total tests:** {count}
|
|
134
|
+
**Passing:** {count}
|
|
135
|
+
**Failed:** 0
|
|
136
|
+
|
|
137
|
+
**Iterations to green:** {count}
|
|
138
|
+
|
|
139
|
+
**Fixes applied:**
|
|
140
|
+
- Fixed error message in validateToken
|
|
141
|
+
- Fixed mock setup in route.test.ts
|
|
142
|
+
|
|
143
|
+
**All tests passing.**
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 7. Determine Next Step
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
IF {examine_mode} = true AND not already examined:
|
|
150
|
+
-> Load step-05-examine.md
|
|
151
|
+
|
|
152
|
+
ELSE:
|
|
153
|
+
-> Workflow complete - show final summary
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## SUCCESS METRICS:
|
|
159
|
+
|
|
160
|
+
- All tests executed
|
|
161
|
+
- All failures investigated
|
|
162
|
+
- Root causes identified
|
|
163
|
+
- Fixes applied correctly
|
|
164
|
+
- All tests passing at end
|
|
165
|
+
|
|
166
|
+
## FAILURE MODES:
|
|
167
|
+
|
|
168
|
+
- Claiming green when tests fail
|
|
169
|
+
- Giving up after first failure
|
|
170
|
+
- Skipping tests without good reason
|
|
171
|
+
- Not re-running after fixes
|
|
172
|
+
- Not logging fix iterations
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## NEXT STEP:
|
|
177
|
+
|
|
178
|
+
- **If examine_mode and not examined:** Load `./step-05-examine.md`
|
|
179
|
+
- **Otherwise:** Workflow complete - show final summary
|
|
180
|
+
|
|
181
|
+
## FINAL SUMMARY TEMPLATE:
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
**APEX Workflow Complete**
|
|
185
|
+
|
|
186
|
+
**Task:** {task_description}
|
|
187
|
+
**Task ID:** {task_id}
|
|
188
|
+
|
|
189
|
+
**Implementation:**
|
|
190
|
+
- Files modified: {count}
|
|
191
|
+
- Files created: {count}
|
|
192
|
+
|
|
193
|
+
**Quality:**
|
|
194
|
+
- Typecheck: Pass
|
|
195
|
+
- Lint: Pass
|
|
196
|
+
- Tests: {count}/{count} passing
|
|
197
|
+
|
|
198
|
+
**Review:** {examined ? "Complete" : "Skipped"}
|
|
199
|
+
**Findings resolved:** {count}
|
|
200
|
+
|
|
201
|
+
**Output saved:** {output_dir or "Not saved"}
|
|
202
|
+
|
|
203
|
+
**Next steps:**
|
|
204
|
+
- [ ] Review changes: `git diff`
|
|
205
|
+
- [ ] Commit: `git commit -m "{task_description}"`
|
|
206
|
+
- [ ] Push and create PR
|
|
207
|
+
```
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# APEX Task: {{task_id}}
|
|
2
|
+
|
|
3
|
+
**Created:** {{timestamp}}
|
|
4
|
+
**Task:** {{task_description}}
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Configuration
|
|
9
|
+
|
|
10
|
+
| Flag | Value |
|
|
11
|
+
|------|-------|
|
|
12
|
+
| Auto mode (`-a`) | {{auto_mode}} |
|
|
13
|
+
| Examine mode (`-x`) | {{examine_mode}} |
|
|
14
|
+
| Save mode (`-s`) | {{save_mode}} |
|
|
15
|
+
| Test mode (`-t`) | {{test_mode}} |
|
|
16
|
+
| Economy mode (`-e`) | {{economy_mode}} |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## User Request
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
{{original_input}}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Acceptance Criteria
|
|
29
|
+
|
|
30
|
+
_To be defined in step-01-analyze_
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Progress
|
|
35
|
+
|
|
36
|
+
| Step | Status |
|
|
37
|
+
|------|--------|
|
|
38
|
+
| 00-init | {{init_status}} |
|
|
39
|
+
| 01-analyze | Pending |
|
|
40
|
+
| 02-plan | Pending |
|
|
41
|
+
| 03-execute | Pending |
|
|
42
|
+
| 04-validate | Pending |
|
|
43
|
+
| 05-examine | {{examine_status}} |
|
|
44
|
+
| 06-resolve | {{examine_status}} |
|
|
45
|
+
| 07-tests | {{test_status}} |
|
|
46
|
+
| 08-run-tests | {{test_status}} |
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Step 01: Analyze
|
|
2
|
+
|
|
3
|
+
**Task:** {{task_description}}
|
|
4
|
+
**Started:** {{timestamp}}
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Context Discovery
|
|
9
|
+
|
|
10
|
+
### Search Keywords
|
|
11
|
+
_Keywords extracted from task description_
|
|
12
|
+
|
|
13
|
+
### Related Files Found
|
|
14
|
+
|
|
15
|
+
| File | Lines | Contains |
|
|
16
|
+
|------|-------|----------|
|
|
17
|
+
| | | |
|
|
18
|
+
|
|
19
|
+
### Patterns Observed
|
|
20
|
+
_Patterns discovered in existing code_
|
|
21
|
+
|
|
22
|
+
### Utilities Available
|
|
23
|
+
_Existing utilities that can be reused_
|
|
24
|
+
|
|
25
|
+
### Similar Implementations
|
|
26
|
+
_Reference implementations found_
|
|
27
|
+
|
|
28
|
+
### Test Patterns
|
|
29
|
+
_How tests are structured in this project_
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Documentation Insights
|
|
34
|
+
|
|
35
|
+
### Libraries Used
|
|
36
|
+
_Libraries and their usage patterns_
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Research Findings
|
|
41
|
+
|
|
42
|
+
### Common Approaches
|
|
43
|
+
_Best practices discovered_
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Inferred Acceptance Criteria
|
|
48
|
+
|
|
49
|
+
- [ ] AC1:
|
|
50
|
+
- [ ] AC2:
|
|
51
|
+
- [ ] AC3:
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Summary
|
|
56
|
+
|
|
57
|
+
**Files analyzed:**
|
|
58
|
+
**Patterns identified:**
|
|
59
|
+
**Utilities found:**
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
**Status:** _Pending_
|