@atlashub/smartstack-cli 1.13.2 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/.documentation/agents.html +1 -1
  2. package/.documentation/apex.html +1 -1
  3. package/.documentation/business-analyse.html +1 -1
  4. package/.documentation/cli-commands.html +3 -3
  5. package/.documentation/commands.html +1 -1
  6. package/.documentation/efcore.html +1 -1
  7. package/.documentation/gitflow.html +1 -1
  8. package/.documentation/hooks.html +1 -1
  9. package/.documentation/index.html +1 -1
  10. package/.documentation/init.html +3 -3
  11. package/.documentation/installation.html +1001 -352
  12. package/.documentation/ralph-loop.html +1 -1
  13. package/.documentation/test-web.html +1 -1
  14. package/README.md +88 -20
  15. package/dist/index.js +276 -85
  16. package/dist/index.js.map +1 -1
  17. package/package.json +1 -1
  18. package/templates/agents/code-reviewer.md +163 -0
  19. package/templates/agents/efcore/db-deploy.md +25 -7
  20. package/templates/agents/efcore/db-reset.md +31 -10
  21. package/templates/agents/efcore/db-status.md +22 -5
  22. package/templates/agents/efcore/migration.md +69 -19
  23. package/templates/agents/gitflow/cleanup.md +8 -1
  24. package/templates/agents/gitflow/commit.md +7 -5
  25. package/templates/agents/gitflow/finish.md +6 -4
  26. package/templates/agents/gitflow/pr.md +8 -1
  27. package/templates/agents/gitflow/start.md +1 -1
  28. package/templates/commands/check-version.md +267 -0
  29. package/templates/commands/efcore/_shared.md +30 -1
  30. package/templates/commands/efcore/db-reset.md +18 -6
  31. package/templates/commands/gitflow/OPTIMIZATIONS.md +206 -0
  32. package/templates/commands/refactor.md +164 -0
  33. package/templates/project/DependencyInjection.Application.cs.template +25 -0
  34. package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -0
  35. package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -0
  36. package/templates/project/ExampleEntity.cs.template +116 -0
  37. package/templates/project/ExampleEntityConfiguration.cs.template +64 -0
  38. package/templates/project/ExampleService.cs.template +146 -0
  39. package/templates/project/ExtensionsDbContext.cs.template +41 -0
  40. package/templates/project/IExtensionsDbContext.cs.template +22 -0
  41. package/templates/project/Program.cs.template +47 -0
  42. package/templates/project/README.md +79 -0
  43. package/templates/ralph/README.md +10 -8
  44. package/templates/ralph/ralph.config.yaml +2 -2
  45. package/templates/skills/_shared.md +44 -44
  46. package/templates/skills/ai-prompt/SKILL.md +55 -55
  47. package/templates/skills/apex/SKILL.md +235 -0
  48. package/templates/skills/apex/steps/step-00-init.md +203 -0
  49. package/templates/skills/apex/steps/step-01-analyze.md +210 -0
  50. package/templates/skills/apex/steps/step-02-plan.md +217 -0
  51. package/templates/skills/apex/steps/step-03-execute.md +178 -0
  52. package/templates/skills/apex/steps/step-04-validate.md +217 -0
  53. package/templates/skills/apex/steps/step-05-examine.md +207 -0
  54. package/templates/skills/apex/steps/step-06-resolve.md +181 -0
  55. package/templates/skills/apex/steps/step-07-tests.md +206 -0
  56. package/templates/skills/apex/steps/step-08-run-tests.md +207 -0
  57. package/templates/skills/apex/templates/00-context.md +46 -0
  58. package/templates/skills/apex/templates/01-analyze.md +63 -0
  59. package/templates/skills/apex/templates/02-plan.md +63 -0
  60. package/templates/skills/apex/templates/03-execute.md +34 -0
  61. package/templates/skills/apex/templates/04-validate.md +61 -0
  62. package/templates/skills/apex/templates/05-examine.md +58 -0
  63. package/templates/skills/apex/templates/06-resolve.md +39 -0
  64. package/templates/skills/apex/templates/07-tests.md +56 -0
  65. package/templates/skills/apex/templates/08-run-tests.md +41 -0
  66. package/templates/skills/apex/templates/README.md +69 -0
  67. package/templates/skills/application/SKILL.md +50 -50
  68. package/templates/skills/application/templates-backend.md +25 -25
  69. package/templates/skills/application/templates-frontend.md +43 -43
  70. package/templates/skills/application/templates-i18n.md +29 -29
  71. package/templates/skills/application/templates-seed.md +77 -77
  72. package/templates/skills/business-analyse/SKILL.md +223 -0
  73. package/templates/skills/business-analyse/_shared.md +258 -0
  74. package/templates/skills/business-analyse/questionnaire/01-context.md +33 -0
  75. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +35 -0
  76. package/templates/skills/business-analyse/questionnaire/03-scope.md +35 -0
  77. package/templates/skills/business-analyse/questionnaire/04-data.md +36 -0
  78. package/templates/skills/business-analyse/questionnaire/05-integrations.md +36 -0
  79. package/templates/skills/business-analyse/questionnaire/06-security.md +40 -0
  80. package/templates/skills/business-analyse/questionnaire/07-ui.md +36 -0
  81. package/templates/skills/business-analyse/questionnaire/08-performance.md +35 -0
  82. package/templates/skills/business-analyse/questionnaire/09-constraints.md +35 -0
  83. package/templates/skills/business-analyse/questionnaire/10-documentation.md +35 -0
  84. package/templates/skills/business-analyse/questionnaire.md +177 -177
  85. package/templates/skills/business-analyse/react/components.md +340 -0
  86. package/templates/skills/business-analyse/react/i18n-template.md +245 -0
  87. package/templates/skills/business-analyse/react/schema.md +151 -0
  88. package/templates/skills/business-analyse/steps/step-00-init.md +293 -0
  89. package/templates/skills/business-analyse/steps/step-01-discover.md +267 -0
  90. package/templates/skills/business-analyse/steps/step-02-analyse.md +243 -0
  91. package/templates/skills/business-analyse/steps/step-03-specify.md +317 -0
  92. package/templates/skills/business-analyse/steps/step-04-validate.md +239 -0
  93. package/templates/skills/business-analyse/steps/step-05-handoff.md +336 -0
  94. package/templates/skills/business-analyse/steps/step-06-doc-html.md +261 -0
  95. package/templates/skills/business-analyse/templates/00-context.md +105 -0
  96. package/templates/skills/business-analyse/templates/frd-brd.md +97 -0
  97. package/templates/skills/business-analyse/templates/frd-discovery.md +78 -0
  98. package/templates/skills/business-analyse/templates/frd-handoff.md +118 -0
  99. package/templates/skills/business-analyse/templates/frd-spec.md +168 -0
  100. package/templates/skills/business-analyse/templates-frd.md +217 -217
  101. package/templates/skills/business-analyse/templates-react.md +26 -26
  102. package/templates/skills/controller/SKILL.md +141 -92
  103. package/templates/skills/controller/postman-templates.md +15 -15
  104. package/templates/skills/controller/steps/step-00-init.md +191 -0
  105. package/templates/skills/controller/steps/step-01-analyze.md +146 -0
  106. package/templates/skills/controller/steps/step-02-plan.md +176 -0
  107. package/templates/skills/controller/steps/step-03-generate.md +219 -0
  108. package/templates/skills/controller/steps/step-04-perms.md +219 -0
  109. package/templates/skills/controller/steps/step-05-validate.md +107 -0
  110. package/templates/skills/controller/templates.md +77 -77
  111. package/templates/skills/documentation/SKILL.md +79 -79
  112. package/templates/skills/feature-full/SKILL.md +38 -38
  113. package/templates/skills/gitflow/SKILL.md +277 -0
  114. package/templates/{commands → skills}/gitflow/_shared.md +20 -20
  115. package/templates/skills/gitflow/phases/abort.md +173 -0
  116. package/templates/skills/gitflow/phases/cleanup.md +226 -0
  117. package/templates/skills/gitflow/phases/status.md +178 -0
  118. package/templates/skills/gitflow/steps/step-commit.md +255 -0
  119. package/templates/skills/gitflow/steps/step-finish.md +255 -0
  120. package/templates/skills/gitflow/steps/step-init.md +209 -0
  121. package/templates/skills/gitflow/steps/step-merge.md +225 -0
  122. package/templates/skills/gitflow/steps/step-plan.md +208 -0
  123. package/templates/skills/gitflow/steps/step-pr.md +235 -0
  124. package/templates/skills/gitflow/steps/step-start.md +234 -0
  125. package/templates/skills/gitflow/steps/step-sync.md +200 -0
  126. package/templates/skills/gitflow/templates/config.json +53 -0
  127. package/templates/skills/notification/SKILL.md +51 -51
  128. package/templates/skills/ralph-loop/SKILL.md +228 -0
  129. package/templates/skills/ralph-loop/steps/step-00-init.md +201 -0
  130. package/templates/skills/ralph-loop/steps/step-01-task.md +169 -0
  131. package/templates/skills/ralph-loop/steps/step-02-execute.md +173 -0
  132. package/templates/skills/ralph-loop/steps/step-03-commit.md +170 -0
  133. package/templates/skills/ralph-loop/steps/step-04-check.md +162 -0
  134. package/templates/skills/ralph-loop/steps/step-05-report.md +181 -0
  135. package/templates/skills/review-code/SKILL.md +219 -0
  136. package/templates/skills/review-code/references/clean-code-principles.md +140 -0
  137. package/templates/skills/review-code/references/code-quality-metrics.md +174 -0
  138. package/templates/skills/review-code/references/feedback-patterns.md +149 -0
  139. package/templates/skills/review-code/references/security-checklist.md +127 -0
  140. package/templates/skills/ui-components/SKILL.md +54 -54
  141. package/templates/skills/workflow/SKILL.md +46 -46
  142. package/templates/commands/ai-prompt.md +0 -315
  143. package/templates/commands/apex/1-analyze.md +0 -100
  144. package/templates/commands/apex/2-plan.md +0 -145
  145. package/templates/commands/apex/3-execute.md +0 -171
  146. package/templates/commands/apex/4-examine.md +0 -116
  147. package/templates/commands/apex/5-tasks.md +0 -209
  148. package/templates/commands/apex.md +0 -76
  149. package/templates/commands/application/create.md +0 -362
  150. package/templates/commands/application/templates-backend.md +0 -463
  151. package/templates/commands/application/templates-frontend.md +0 -517
  152. package/templates/commands/application/templates-i18n.md +0 -478
  153. package/templates/commands/application/templates-seed.md +0 -362
  154. package/templates/commands/application.md +0 -303
  155. package/templates/commands/business-analyse/0-orchestrate.md +0 -156
  156. package/templates/commands/business-analyse/1-init.md +0 -99
  157. package/templates/commands/business-analyse/2-discover.md +0 -143
  158. package/templates/commands/business-analyse/3-analyse.md +0 -106
  159. package/templates/commands/business-analyse/4-specify.md +0 -133
  160. package/templates/commands/business-analyse/5-validate.md +0 -132
  161. package/templates/commands/business-analyse/6-handoff.md +0 -157
  162. package/templates/commands/business-analyse/7-doc-html.md +0 -103
  163. package/templates/commands/business-analyse/_shared.md +0 -176
  164. package/templates/commands/business-analyse/bug.md +0 -118
  165. package/templates/commands/business-analyse/change-request.md +0 -144
  166. package/templates/commands/business-analyse/hotfix.md +0 -116
  167. package/templates/commands/business-analyse.md +0 -121
  168. package/templates/commands/controller/create.md +0 -216
  169. package/templates/commands/controller/postman-templates.md +0 -528
  170. package/templates/commands/controller/templates.md +0 -600
  171. package/templates/commands/controller.md +0 -337
  172. package/templates/commands/create/agent.md +0 -138
  173. package/templates/commands/create/command.md +0 -166
  174. package/templates/commands/create/hook.md +0 -234
  175. package/templates/commands/create/plugin.md +0 -329
  176. package/templates/commands/create/project.md +0 -508
  177. package/templates/commands/create/skill.md +0 -199
  178. package/templates/commands/create.md +0 -220
  179. package/templates/commands/documentation/module.md +0 -202
  180. package/templates/commands/documentation/templates.md +0 -432
  181. package/templates/commands/documentation.md +0 -190
  182. package/templates/commands/epct.md +0 -69
  183. package/templates/commands/explain.md +0 -186
  184. package/templates/commands/feature-full.md +0 -267
  185. package/templates/commands/gitflow/1-init.md +0 -188
  186. package/templates/commands/gitflow/10-start.md +0 -190
  187. package/templates/commands/gitflow/11-finish.md +0 -382
  188. package/templates/commands/gitflow/12-cleanup.md +0 -103
  189. package/templates/commands/gitflow/13-sync.md +0 -216
  190. package/templates/commands/gitflow/14-rebase.md +0 -251
  191. package/templates/commands/gitflow/2-status.md +0 -122
  192. package/templates/commands/gitflow/3-commit.md +0 -209
  193. package/templates/commands/gitflow/4-plan.md +0 -174
  194. package/templates/commands/gitflow/5-exec.md +0 -202
  195. package/templates/commands/gitflow/6-abort.md +0 -121
  196. package/templates/commands/gitflow/7-pull-request.md +0 -176
  197. package/templates/commands/gitflow/8-review.md +0 -113
  198. package/templates/commands/gitflow/9-merge.md +0 -157
  199. package/templates/commands/gitflow.md +0 -128
  200. package/templates/commands/implement.md +0 -663
  201. package/templates/commands/init.md +0 -567
  202. package/templates/commands/mcp-integration.md +0 -330
  203. package/templates/commands/notification.md +0 -129
  204. package/templates/commands/oneshot.md +0 -57
  205. package/templates/commands/quickstart.md +0 -154
  206. package/templates/commands/ralph-loop/cancel-ralph.md +0 -18
  207. package/templates/commands/ralph-loop/help.md +0 -126
  208. package/templates/commands/ralph-loop/ralph-loop.md +0 -120
  209. package/templates/commands/review.md +0 -106
  210. package/templates/commands/workflow.md +0 -193
@@ -0,0 +1,207 @@
1
+ ---
2
+ name: step-05-examine
3
+ description: Adversarial code review - security, logic, and quality analysis
4
+ prev_step: steps/step-04-validate.md
5
+ next_step: steps/step-06-resolve.md
6
+ ---
7
+
8
+ # Step 5: Examine (Adversarial Review)
9
+
10
+ ## MANDATORY EXECUTION RULES:
11
+
12
+ - NEVER skip security review
13
+ - NEVER dismiss findings without justification
14
+ - NEVER auto-approve without thorough review
15
+ - ALWAYS check OWASP top 10 vulnerabilities
16
+ - ALWAYS classify findings by severity and validity
17
+ - ALWAYS present findings table to user
18
+ - YOU ARE A SKEPTICAL REVIEWER, not a defender
19
+ - FORBIDDEN to approve without thorough analysis
20
+
21
+ ## YOUR TASK:
22
+
23
+ Conduct an adversarial code review to identify security vulnerabilities, logic flaws, and quality issues.
24
+
25
+ ---
26
+
27
+ <available_state>
28
+ From previous steps:
29
+
30
+ | Variable | Description |
31
+ |----------|-------------|
32
+ | `{task_description}` | What was implemented |
33
+ | `{task_id}` | Kebab-case identifier |
34
+ | `{auto_mode}` | Auto-fix Real findings |
35
+ | `{save_mode}` | Save outputs to files |
36
+ | `{economy_mode}` | No subagents, direct review |
37
+ | `{output_dir}` | Path to output (if save_mode) |
38
+ | Files modified | From step-03 |
39
+ </available_state>
40
+
41
+ ---
42
+
43
+ ## EXECUTION SEQUENCE:
44
+
45
+ ### 1. Gather Changes
46
+
47
+ ```bash
48
+ git diff --name-only HEAD~1
49
+ git status --porcelain
50
+ ```
51
+
52
+ Group files: source, tests, config, other.
53
+
54
+ ### 2. Conduct Review
55
+
56
+ **If `{economy_mode}` = true:**
57
+
58
+ Self-review with checklist:
59
+
60
+ ```markdown
61
+ ## Security Checklist
62
+ - [ ] No SQL injection (parameterized queries)
63
+ - [ ] No XSS (output encoding)
64
+ - [ ] No secrets in code
65
+ - [ ] Input validation present
66
+ - [ ] Auth checks on protected routes
67
+
68
+ ## Logic Checklist
69
+ - [ ] Error handling for all failure modes
70
+ - [ ] Edge cases handled
71
+ - [ ] Null/undefined checks
72
+ - [ ] Race conditions considered
73
+
74
+ ## Quality Checklist
75
+ - [ ] Follows existing patterns
76
+ - [ ] No code duplication
77
+ - [ ] Clear naming
78
+ ```
79
+
80
+ **If `{economy_mode}` = false:**
81
+
82
+ Launch parallel review agents in a SINGLE message:
83
+
84
+ **Agent 1: Security** (`code-reviewer`)
85
+ ```
86
+ Review for OWASP Top 10:
87
+ - Injection flaws
88
+ - Auth/authz issues
89
+ - Data exposure
90
+ - Security misconfiguration
91
+ ```
92
+
93
+ **Agent 2: Logic** (`code-reviewer`)
94
+ ```
95
+ Review for:
96
+ - Edge cases not handled
97
+ - Race conditions
98
+ - Null handling
99
+ - Incorrect logic
100
+ ```
101
+
102
+ **Agent 3: Clean Code** (`code-reviewer`)
103
+ ```
104
+ Review for:
105
+ - SOLID violations
106
+ - Code smells
107
+ - Complexity issues
108
+ - Duplication >20 lines
109
+ ```
110
+
111
+ ### 3. Classify Findings
112
+
113
+ For each finding:
114
+
115
+ **Severity:**
116
+ - CRITICAL: Security vulnerability, data loss risk
117
+ - HIGH: Significant bug, will cause issues
118
+ - MEDIUM: Should fix, not urgent
119
+ - LOW: Minor improvement
120
+
121
+ **Validity:**
122
+ - Real: Definitely needs fixing
123
+ - Noise: Not actually a problem
124
+ - Uncertain: Needs discussion
125
+
126
+ ### 4. Present Findings Table
127
+
128
+ ```markdown
129
+ ## Findings
130
+
131
+ | ID | Severity | Category | Location | Issue | Validity |
132
+ |----|----------|----------|----------|-------|----------|
133
+ | F1 | CRITICAL | Security | auth.ts:42 | SQL injection | Real |
134
+ | F2 | HIGH | Logic | handler.ts:78 | Missing null check | Real |
135
+ | F3 | MEDIUM | Quality | utils.ts:15 | Complex function | Uncertain |
136
+
137
+ **Summary:** {count} findings ({blocking} blocking)
138
+ ```
139
+
140
+ ### 5. Create Finding Todos
141
+
142
+ ```
143
+ - [ ] F1 [CRITICAL] Fix SQL injection in auth.ts:42
144
+ - [ ] F2 [HIGH] Add null check in handler.ts:78
145
+ ```
146
+
147
+ ### 6. Save Output (if save_mode)
148
+
149
+ **If `{save_mode}` = true:**
150
+
151
+ Write to `{output_dir}/05-examine.md`:
152
+ - Findings table
153
+ - Checklist results
154
+ - Timestamp
155
+ - Update 00-context.md Progress table: 05-examine -> Complete
156
+
157
+ ### 7. Get User Approval
158
+
159
+ **If `{auto_mode}` = true:**
160
+ Proceed automatically based on findings.
161
+
162
+ **If `{auto_mode}` = false:**
163
+
164
+ ```yaml
165
+ questions:
166
+ - header: "Review"
167
+ question: "Review complete. How would you like to proceed?"
168
+ options:
169
+ - label: "Resolve findings (Recommended)"
170
+ description: "Address the identified issues"
171
+ - label: "Skip to tests"
172
+ description: "Skip resolution, proceed to test creation"
173
+ - label: "Skip resolution"
174
+ description: "Accept findings, don't make changes"
175
+ - label: "Discuss findings"
176
+ description: "I want to discuss specific findings"
177
+ multiSelect: false
178
+ ```
179
+
180
+ ---
181
+
182
+ ## SUCCESS METRICS:
183
+
184
+ - All modified files reviewed
185
+ - Security checklist completed
186
+ - Findings classified by severity
187
+ - Validity assessed for each finding
188
+ - Findings table presented
189
+ - Todos created for tracking
190
+
191
+ ## FAILURE MODES:
192
+
193
+ - Skipping security review
194
+ - Not classifying by severity
195
+ - Auto-dismissing findings
196
+ - Launching agents sequentially
197
+ - Using subagents when economy_mode
198
+
199
+ ---
200
+
201
+ ## NEXT STEP:
202
+
203
+ After user confirms (or auto-proceed):
204
+
205
+ - **If user chooses "Resolve findings":** Load `./step-06-resolve.md`
206
+ - **If user chooses "Skip to tests" (and test_mode):** Load `./step-07-tests.md`
207
+ - **If user chooses "Skip resolution":** Workflow complete - show summary
@@ -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.