specsmd 0.0.0-dev.7 → 0.0.0-dev.71

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 (78) hide show
  1. package/README.md +10 -2
  2. package/flows/aidlc/commands/construction-agent.md +5 -1
  3. package/flows/aidlc/commands/inception-agent.md +4 -0
  4. package/flows/aidlc/commands/master-agent.md +4 -0
  5. package/flows/aidlc/commands/operations-agent.md +4 -0
  6. package/flows/aidlc/memory-bank.yaml +2 -1
  7. package/{scripts → flows/aidlc/scripts}/artifact-validator.js +3 -3
  8. package/{scripts → flows/aidlc/scripts}/bolt-complete.js +35 -4
  9. package/{scripts → flows/aidlc/scripts}/status-integrity.js +4 -4
  10. package/flows/aidlc/skills/construction/bolt-list.md +1 -1
  11. package/flows/aidlc/skills/construction/bolt-start.md +2 -2
  12. package/flows/aidlc/skills/construction/bolt-status.md +1 -1
  13. package/flows/aidlc/skills/construction/prototype-apply.md +305 -0
  14. package/flows/aidlc/skills/inception/bolt-plan.md +15 -2
  15. package/flows/aidlc/skills/inception/vibe-to-spec.md +406 -0
  16. package/flows/aidlc/skills/master/analyze-context.md +1 -1
  17. package/flows/aidlc/templates/construction/bolt-template.md +22 -1
  18. package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +73 -11
  19. package/flows/aidlc/templates/standards/decision-index-template.md +32 -0
  20. package/flows/fire/README.md +19 -0
  21. package/flows/fire/agents/builder/agent.md +252 -0
  22. package/flows/fire/agents/builder/skills/code-review/SKILL.md +254 -0
  23. package/flows/fire/agents/builder/skills/code-review/references/auto-fix-rules.md +212 -0
  24. package/flows/fire/agents/builder/skills/code-review/references/review-categories.md +154 -0
  25. package/flows/fire/agents/builder/skills/code-review/templates/review-report.md.hbs +120 -0
  26. package/flows/fire/agents/builder/skills/run-execute/SKILL.md +566 -0
  27. package/flows/fire/agents/builder/skills/run-execute/scripts/complete-run.js +549 -0
  28. package/flows/fire/agents/builder/skills/run-execute/scripts/init-run.js +454 -0
  29. package/flows/fire/agents/builder/skills/run-execute/templates/plan.md.hbs +61 -0
  30. package/flows/fire/agents/builder/skills/run-execute/templates/test-report.md.hbs +81 -0
  31. package/flows/fire/agents/builder/skills/run-plan/SKILL.md +368 -0
  32. package/flows/fire/agents/builder/skills/run-status/SKILL.md +94 -0
  33. package/flows/fire/agents/builder/skills/walkthrough-generate/SKILL.md +140 -0
  34. package/flows/fire/agents/builder/skills/walkthrough-generate/scripts/render-walkthrough.ts +755 -0
  35. package/flows/fire/agents/builder/skills/walkthrough-generate/templates/walkthrough.md.hbs +77 -0
  36. package/flows/fire/agents/orchestrator/agent.md +127 -0
  37. package/flows/fire/agents/orchestrator/skills/project-init/SKILL.md +225 -0
  38. package/flows/fire/agents/orchestrator/skills/project-init/templates/coding-standards.md.hbs +149 -0
  39. package/flows/fire/agents/orchestrator/skills/project-init/templates/constitution.md.hbs +43 -0
  40. package/flows/fire/agents/orchestrator/skills/project-init/templates/system-architecture.md.hbs +101 -0
  41. package/flows/fire/agents/orchestrator/skills/project-init/templates/tech-stack.md.hbs +136 -0
  42. package/flows/fire/agents/orchestrator/skills/project-init/templates/testing-standards.md.hbs +94 -0
  43. package/flows/fire/agents/orchestrator/skills/project-migrate/SKILL.md +234 -0
  44. package/flows/fire/agents/orchestrator/skills/route/SKILL.md +141 -0
  45. package/flows/fire/agents/orchestrator/skills/status/SKILL.md +100 -0
  46. package/flows/fire/agents/planner/agent.md +138 -0
  47. package/flows/fire/agents/planner/skills/design-doc-generate/SKILL.md +155 -0
  48. package/flows/fire/agents/planner/skills/design-doc-generate/templates/design.md.hbs +124 -0
  49. package/flows/fire/agents/planner/skills/intent-capture/SKILL.md +124 -0
  50. package/flows/fire/agents/planner/skills/intent-capture/templates/brief.md.hbs +40 -0
  51. package/flows/fire/agents/planner/skills/work-item-decompose/SKILL.md +165 -0
  52. package/flows/fire/agents/planner/skills/work-item-decompose/templates/work-item.md.hbs +40 -0
  53. package/flows/fire/commands/fire-builder.md +56 -0
  54. package/flows/fire/commands/fire-planner.md +48 -0
  55. package/flows/fire/commands/fire.md +46 -0
  56. package/flows/fire/memory-bank.yaml +223 -0
  57. package/flows/fire/quick-start.md +130 -0
  58. package/flows/simple/README.md +190 -0
  59. package/flows/simple/agents/agent.md +404 -0
  60. package/flows/simple/commands/agent.md +60 -0
  61. package/flows/simple/context-config.yaml +34 -0
  62. package/flows/simple/memory-bank.yaml +66 -0
  63. package/flows/simple/quick-start.md +231 -0
  64. package/flows/simple/skills/design.md +96 -0
  65. package/flows/simple/skills/execute.md +190 -0
  66. package/flows/simple/skills/requirements.md +94 -0
  67. package/flows/simple/skills/tasks.md +136 -0
  68. package/flows/simple/templates/design-template.md +138 -0
  69. package/flows/simple/templates/requirements-template.md +85 -0
  70. package/flows/simple/templates/tasks-template.md +104 -0
  71. package/lib/analytics/tracker.js +6 -2
  72. package/lib/constants.js +17 -8
  73. package/lib/installer.js +5 -15
  74. package/lib/installers/KiroInstaller.js +55 -0
  75. package/lib/installers/OpenCodeInstaller.js +9 -1
  76. package/lib/installers/ToolInstaller.js +4 -1
  77. package/lib/installers/WindsurfInstaller.js +0 -54
  78. package/package.json +3 -52
@@ -0,0 +1,368 @@
1
+ ---
2
+ name: run-plan
3
+ description: Plan the scope of a run by discovering available work items and suggesting groupings. Invoked before run-execute.
4
+ version: 1.0.0
5
+ ---
6
+
7
+ <objective>
8
+ Plan the scope of a run by discovering available work items and suggesting groupings.
9
+ </objective>
10
+
11
+ <triggers>
12
+ - After work-item decomposition completes
13
+ - User wants to start execution
14
+ - Pending work items exist
15
+ </triggers>
16
+
17
+ <degrees_of_freedom>
18
+ **MEDIUM** — Present smart grouping suggestions but let user choose scope.
19
+ </degrees_of_freedom>
20
+
21
+ <llm critical="true">
22
+ <mandate>DISCOVER all available work — both in state.yaml AND file system</mandate>
23
+ <mandate>FILE SYSTEM IS SOURCE OF TRUTH — state.yaml may be incomplete</mandate>
24
+ <mandate>ALWAYS SCAN FILE SYSTEM — even if state.yaml shows all completed</mandate>
25
+ <mandate>SUGGEST smart groupings based on mode, dependencies, and user history</mandate>
26
+ <mandate>LEARN from user choices to improve future recommendations</mandate>
27
+ <mandate>NEVER force a scope — always let user choose</mandate>
28
+ <mandate>DEPENDENCIES = SEQUENTIAL EXECUTION, NOT SEPARATE RUNS</mandate>
29
+ </llm>
30
+
31
+ <critical_clarifications>
32
+ <clarification title="Dependencies Mean Sequential Execution, NOT Separate Runs">
33
+ When work items have dependencies:
34
+ - They execute **sequentially within the SAME run**
35
+ - They do **NOT** require separate runs
36
+ - The dependent item waits for its dependency to complete before starting
37
+
38
+ **Example**: If item 05 depends on item 04:
39
+ - **CORRECT**: ONE run with both items, 04 executes first, then 05
40
+ - **WRONG**: TWO separate runs
41
+ </clarification>
42
+
43
+ <clarification title="All Options Can Include Multiple Items Per Run">
44
+ | Option | Items Per Run | Execution |
45
+ |--------|---------------|-----------|
46
+ | Single | 1 item | One at a time, separate runs |
47
+ | Batch | Multiple items (same mode) | Sequential within run |
48
+ | Wide | All compatible items | Sequential within run |
49
+ </clarification>
50
+ </critical_clarifications>
51
+
52
+ <flow>
53
+ <step n="1" title="Discover Available Work" critical="true">
54
+ <critical>
55
+ MUST scan file system BEFORE deciding if work exists.
56
+ state.yaml may be missing intents or work items that exist on disk.
57
+ DO NOT skip this step even if state.yaml shows all items completed.
58
+ </critical>
59
+
60
+ <substep n="1a" title="List All Intent Directories">
61
+ <action>Use Glob to list: .specs-fire/intents/*/brief.md</action>
62
+ <action>Extract intent IDs from directory names</action>
63
+ <output>Found intent directories: {list}</output>
64
+ </substep>
65
+
66
+ <substep n="1b" title="List All Work Item Files">
67
+ <action>Use Glob to list: .specs-fire/intents/*/work-items/*.md</action>
68
+ <action>Extract work item IDs and their parent intents</action>
69
+ <output>Found work item files: {list}</output>
70
+ </substep>
71
+
72
+ <substep n="1c" title="Compare with state.yaml">
73
+ <action>Read state.yaml for known intents and work items</action>
74
+ <action>Compare file system list against state.yaml entries</action>
75
+ </substep>
76
+
77
+ <substep n="1d" title="Reconcile Differences">
78
+ <check if="intent directory exists but not in state.yaml">
79
+ <output>
80
+ **Discovered new intent**: {intent-id}
81
+ (exists in file system but not in state.yaml)
82
+ </output>
83
+ <action>Parse brief.md frontmatter for intent metadata</action>
84
+ <action>Add intent to state.yaml with status: active</action>
85
+ <action>Scan its work-items/ folder</action>
86
+ </check>
87
+
88
+ <check if="work item file exists but not in state.yaml">
89
+ <output>
90
+ **Discovered new work item**: {work-item-id} in {intent-id}
91
+ (exists in file system but not in state.yaml)
92
+ </output>
93
+ <action>Parse work item frontmatter for metadata</action>
94
+ <action>Add work item to state.yaml with status: pending</action>
95
+ </check>
96
+
97
+ <check if="work item exists in both but status mismatch">
98
+ <note>
99
+ state.yaml is authoritative for status (tracks run history).
100
+ Frontmatter status may be stale from initial creation.
101
+ </note>
102
+ <output>
103
+ **Status mismatch**: {work-item-id}
104
+ - state.yaml: {state_status}
105
+ - frontmatter: {frontmatter_status}
106
+ (Using state.yaml as authoritative)
107
+ </output>
108
+ <action if="frontmatter says pending but state says completed">
109
+ Update work item frontmatter to match state.yaml
110
+ </action>
111
+ <action if="state says pending but frontmatter says completed">
112
+ Flag for review - work may have been done outside FIRE
113
+ </action>
114
+ </check>
115
+
116
+ <check if="in state.yaml but file missing">
117
+ <output>Warning: {item} in state but file not found on disk</output>
118
+ </check>
119
+ </substep>
120
+
121
+ <output>
122
+ ## File System Scan Complete
123
+
124
+ Intents on disk: {count}
125
+ Intents in state.yaml: {count}
126
+ Work items on disk: {count}
127
+ Work items in state.yaml: {count}
128
+
129
+ {if new items discovered}
130
+ **Newly discovered (added to state.yaml)**:
131
+ {list new items}
132
+ {/if}
133
+ </output>
134
+ </step>
135
+
136
+ <step n="2" title="Collect Pending Work Items">
137
+ <action>Filter work items with status == pending</action>
138
+ <action>Group by intent</action>
139
+ <action>Note mode (after autonomy_bias applied) for each</action>
140
+ <action>Identify dependencies within and across intents</action>
141
+
142
+ <check if="no pending work items">
143
+ <output>
144
+ No pending work items found.
145
+
146
+ Create a new intent? [Y/n]
147
+ </output>
148
+ <check if="response == y">
149
+ <route_to>planner-agent (intent-capture)</route_to>
150
+ </check>
151
+ <stop/>
152
+ </check>
153
+ </step>
154
+
155
+ <step n="3" title="Analyze Groupings">
156
+ <action>Read workspace.autonomy_bias from state.yaml</action>
157
+ <action>Read workspace.run_scope_preference from state.yaml (if exists)</action>
158
+
159
+ <grouping_rules>
160
+ <rule>Dependencies = SEQUENTIAL execution in SAME run (NOT separate runs)</rule>
161
+ <rule>Different modes CAN be in same run (executed sequentially)</rule>
162
+ <rule>Cross-intent items allowed in same run if compatible</rule>
163
+ <rule>Validate mode items may benefit from running alone (more checkpoints)</rule>
164
+ </grouping_rules>
165
+
166
+ <generate_options>
167
+ <option name="single">
168
+ Each work item in its own run
169
+ Total runs: {count of pending items}
170
+ </option>
171
+
172
+ <option name="batch">
173
+ All pending items in ONE run
174
+ Execute sequentially (dependencies respected by order)
175
+ Checkpoints pause at confirm/validate items
176
+ Total runs: 1
177
+ </option>
178
+
179
+ <option name="wide">
180
+ Same as batch - all items in one run
181
+ Total runs: 1
182
+ </option>
183
+ </generate_options>
184
+ </step>
185
+
186
+ <step n="4" title="Present Options">
187
+ <action>Determine recommended option based on:</action>
188
+ <substep>autonomy_bias (autonomous→batch, controlled→single)</substep>
189
+ <substep>run_scope_preference (user's historical choice)</substep>
190
+ <substep>Number of pending items (few items→single is fine)</substep>
191
+
192
+ <template_output section="options">
193
+ ## Run Planning
194
+
195
+ **Found**: {count} pending work items across {intent_count} intent(s)
196
+
197
+ {for each intent with pending items}
198
+ **{intent.title}**:
199
+ {for each pending item}
200
+ - {item.title} ({item.mode})
201
+ {/for}
202
+ {/for}
203
+
204
+ {if dependencies exist}
205
+ **Dependencies** (determines execution order):
206
+ - {dependent_item} depends on {dependency_item}
207
+ {/if}
208
+
209
+ ---
210
+
211
+ **How would you like to execute?**
212
+
213
+ **[1] One at a time** — {single_count} separate runs
214
+ Most controlled, review after each run
215
+
216
+ **[2] Sequential chain** — 1 run with {count} items (Recommended)
217
+ Execute in order: {item1} → {item2} → ...
218
+ Checkpoints pause at confirm/validate items
219
+
220
+ **[3] All together** — Same as [2]
221
+ 1 run, sequential execution
222
+
223
+ Choose [1/2/3]:
224
+ </template_output>
225
+ </step>
226
+
227
+ <step n="5" title="Process Choice">
228
+ <check if="response == 1">
229
+ <set>run_scope = single</set>
230
+ <set>work_items_for_run = [first_pending_item]</set>
231
+ </check>
232
+ <check if="response == 2 or response == 3">
233
+ <set>run_scope = batch</set>
234
+ <set>work_items_for_run = all_pending_items_in_dependency_order</set>
235
+ </check>
236
+ </step>
237
+
238
+ <step n="6" title="Learn Preference">
239
+ <action>Update workspace.run_scope_preference in state.yaml</action>
240
+ <action>Add to workspace.run_scope_history (keep last 10)</action>
241
+
242
+ <history_entry>
243
+ choice: {run_scope}
244
+ items_count: {count}
245
+ timestamp: {now}
246
+ </history_entry>
247
+
248
+ <note>
249
+ After 3+ consistent choices, start pre-selecting that option
250
+ and ask "Proceed with {preference}? [Y/n/change]" instead
251
+ </note>
252
+ </step>
253
+
254
+ <step n="7" title="Confirm Run">
255
+ <output>
256
+ Starting run with {count} work item(s):
257
+
258
+ {for each item in work_items_for_run}
259
+ {index}. {item.title} ({item.mode})
260
+ {/for}
261
+
262
+ Items will execute sequentially within this run.
263
+ {if any item is confirm or validate}
264
+ Checkpoints will pause for approval at confirm/validate items.
265
+ {/if}
266
+
267
+ ---
268
+
269
+ Begin execution? [Y/n]
270
+ </output>
271
+ <check if="response == y">
272
+ <invoke_skill args="work_items_for_run, run_scope">run-execute</invoke_skill>
273
+ </check>
274
+ </step>
275
+ </flow>
276
+
277
+ <state_schema_updates>
278
+ **workspace section additions**:
279
+ ```yaml
280
+ workspace:
281
+ # ... existing fields ...
282
+ run_scope_preference: batch # single | batch | wide (learned)
283
+ run_scope_history:
284
+ - choice: batch
285
+ items_count: 4
286
+ timestamp: 2026-01-19T10:00:00Z
287
+ ```
288
+
289
+ **active_run with multi-item support**:
290
+ ```yaml
291
+ active_run:
292
+ id: run-001
293
+ scope: batch # single | batch | wide
294
+ work_items:
295
+ - id: 01-stats-data-model
296
+ intent: session-stats
297
+ mode: autopilot
298
+ status: completed
299
+ - id: 02-stats-api-endpoint
300
+ intent: session-stats
301
+ mode: autopilot
302
+ status: in_progress
303
+ current_item: 02-stats-api-endpoint
304
+ started: 2026-01-19T10:00:00Z
305
+ ```
306
+ </state_schema_updates>
307
+
308
+ <file_discovery_logic>
309
+ ```
310
+ .specs-fire/
311
+ ├── intents/
312
+ │ ├── user-auth/
313
+ │ │ ├── brief.md ← Parse frontmatter for intent metadata
314
+ │ │ └── work-items/
315
+ │ │ ├── login-endpoint.md ← Parse for work item metadata
316
+ │ │ └── session-mgmt.md
317
+ │ └── analytics/
318
+ │ ├── brief.md
319
+ │ └── work-items/
320
+ │ └── dashboard.md
321
+ ```
322
+
323
+ **Frontmatter parsing**:
324
+ - Extract `id`, `title`, `status` from YAML frontmatter
325
+ - If status missing, default to `pending`
326
+ - If in file but not state.yaml, add to state
327
+ </file_discovery_logic>
328
+
329
+ <grouping_algorithm>
330
+ ```
331
+ 1. Collect all pending items with their modes
332
+ 2. Build dependency graph
333
+ 3. Sort items in dependency order (dependencies first)
334
+ 4. For "single" option:
335
+ - Each item is its own run
336
+ 5. For "batch" or "wide" option:
337
+ - ALL items in ONE run
338
+ - Execution order follows dependency graph
339
+ - Checkpoints pause at confirm/validate items
340
+ ```
341
+ </grouping_algorithm>
342
+
343
+ <recommendation_logic>
344
+ ```
345
+ IF run_scope_history has 3+ same choices:
346
+ pre_selected = most_common_choice
347
+
348
+ ELSE IF autonomy_bias == autonomous:
349
+ recommended = batch (all in one run)
350
+
351
+ ELSE IF autonomy_bias == controlled:
352
+ recommended = single
353
+
354
+ ELSE: # balanced
355
+ IF pending_count <= 2:
356
+ recommended = single
357
+ ELSE:
358
+ recommended = batch
359
+ ```
360
+ </recommendation_logic>
361
+
362
+ <success_criteria>
363
+ <criterion>File system scanned for all intents and work items</criterion>
364
+ <criterion>state.yaml reconciled with file system</criterion>
365
+ <criterion>Run scope options presented to user</criterion>
366
+ <criterion>User choice recorded for future recommendations</criterion>
367
+ <criterion>run-execute invoked with selected work items</criterion>
368
+ </success_criteria>
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: run-status
3
+ description: Display current run status and progress. Shows work item, mode, duration, and files changed.
4
+ version: 1.0.0
5
+ ---
6
+
7
+ <objective>
8
+ Display current run status and progress.
9
+ </objective>
10
+
11
+ <triggers>
12
+ - User asks about run status
13
+ - During long-running execution
14
+ </triggers>
15
+
16
+ <flow>
17
+ <step n="1" title="Check Active Run">
18
+ <action>Read state.yaml for active_run</action>
19
+ <check if="no active run">
20
+ <output>
21
+ No active run. Last completed run: {last-run-id}
22
+ </output>
23
+ <stop/>
24
+ </check>
25
+ </step>
26
+
27
+ <step n="2" title="Display Status">
28
+ <output>
29
+ ## Run Status: {run-id}
30
+
31
+ **Work Item**: {title}
32
+ **Intent**: {intent-title}
33
+ **Mode**: {mode}
34
+ **Started**: {started}
35
+ **Duration**: {elapsed}
36
+
37
+ ### Progress
38
+
39
+ - [x] Initialize run
40
+ - [x] Load context
41
+ {checkpoint status}
42
+ - [{status}] Execute implementation
43
+ - [ ] Run tests
44
+ - [ ] Generate walkthrough
45
+
46
+ ### Files Changed So Far
47
+
48
+ Created: {created-count}
49
+ Modified: {modified-count}
50
+
51
+ ### Recent Activity
52
+
53
+ {last 5 actions}
54
+ </output>
55
+ </step>
56
+ </flow>
57
+
58
+ <example_output>
59
+ ```
60
+ ## Run Status: run-003
61
+
62
+ **Work Item**: Add session management
63
+ **Intent**: User Authentication
64
+ **Mode**: confirm
65
+ **Started**: 2026-01-19T10:30:00Z
66
+ **Duration**: 12 minutes
67
+
68
+ ### Progress
69
+
70
+ - [x] Initialize run
71
+ - [x] Load context
72
+ - [x] Plan approved (Checkpoint 1)
73
+ - [~] Execute implementation
74
+ - [ ] Run tests
75
+ - [ ] Generate walkthrough
76
+
77
+ ### Files Changed So Far
78
+
79
+ Created: 2
80
+ Modified: 1
81
+
82
+ ### Recent Activity
83
+
84
+ - Created src/auth/session.ts
85
+ - Created src/auth/session.test.ts
86
+ - Modified src/auth/index.ts
87
+ ```
88
+ </example_output>
89
+
90
+ <success_criteria>
91
+ <criterion>Current run status displayed</criterion>
92
+ <criterion>Progress indicators accurate</criterion>
93
+ <criterion>Files changed shown</criterion>
94
+ </success_criteria>
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: walkthrough-generate
3
+ description: Generate implementation walkthrough for human review after run completion. Documents decisions, changes, and verification steps.
4
+ version: 1.0.0
5
+ ---
6
+
7
+ <objective>
8
+ Generate implementation walkthrough for human review after run completion.
9
+ </objective>
10
+
11
+ <triggers>
12
+ - Run completed successfully
13
+ - Invoked by run-execute skill
14
+ </triggers>
15
+
16
+ <degrees_of_freedom>
17
+ **LOW** — Follow walkthrough structure precisely. Be thorough but concise.
18
+ </degrees_of_freedom>
19
+
20
+ <llm critical="true">
21
+ <mandate>ALWAYS generate walkthrough after run completion</mandate>
22
+ <mandate>Document DECISIONS, not just changes</mandate>
23
+ <mandate>Include verification steps — how to test this works</mandate>
24
+ </llm>
25
+
26
+ <flow>
27
+ <step n="1" title="Gather Implementation Data">
28
+ <action>Read run log from .specs-fire/runs/{run-id}/run.md</action>
29
+ <action>Collect:</action>
30
+ <substep>Work item details (id, title, intent)</substep>
31
+ <substep>Files created during implementation</substep>
32
+ <substep>Files modified during implementation</substep>
33
+ <substep>Decisions made during execution</substep>
34
+ <substep>Tests added and coverage</substep>
35
+ </step>
36
+
37
+ <step n="2" title="Analyze Implementation">
38
+ <action>For each file created/modified:</action>
39
+ <substep>Identify purpose of the file</substep>
40
+ <substep>Summarize key changes</substep>
41
+ <substep>Note patterns or approaches used</substep>
42
+ </step>
43
+
44
+ <step n="3" title="Document Key Details">
45
+ <action>Extract implementation highlights:</action>
46
+ <substep>Main flow/algorithm implemented</substep>
47
+ <substep>Security considerations (if applicable)</substep>
48
+ <substep>Performance considerations (if applicable)</substep>
49
+ <substep>Integration points with existing code</substep>
50
+ </step>
51
+
52
+ <step n="4" title="Create Verification Steps">
53
+ <action>Generate how-to-verify section:</action>
54
+ <substep>Commands to run the feature</substep>
55
+ <substep>Expected behavior/output</substep>
56
+ <substep>Manual test scenarios</substep>
57
+ </step>
58
+
59
+ <step n="5" title="Generate Walkthrough">
60
+ <action>Generate walkthrough using template: templates/walkthrough.md.hbs</action>
61
+ <action>Save to: .specs-fire/runs/{run-id}/walkthrough.md</action>
62
+ <output>
63
+ Walkthrough generated: .specs-fire/runs/{run-id}/walkthrough.md
64
+ </output>
65
+ </step>
66
+ </flow>
67
+
68
+ <output_template>
69
+ **Walkthrough** (`.specs-fire/runs/{run-id}/walkthrough.md`):
70
+
71
+ ```markdown
72
+ ---
73
+ run: {run-id}
74
+ work_item: {work-item-id}
75
+ intent: {intent-id}
76
+ generated: {timestamp}
77
+ mode: {mode}
78
+ ---
79
+
80
+ # Implementation Walkthrough: {title}
81
+
82
+ ## Summary
83
+
84
+ {2-3 sentences describing what was implemented}
85
+
86
+ ## Files Changed
87
+
88
+ ### Created
89
+
90
+ | File | Purpose |
91
+ |------|---------|
92
+ | `{path}` | {purpose} |
93
+
94
+ ### Modified
95
+
96
+ | File | Changes |
97
+ |------|---------|
98
+ | `{path}` | {changes} |
99
+
100
+ ## Key Implementation Details
101
+
102
+ ### 1. {Detail Title}
103
+
104
+ {description of implementation approach}
105
+
106
+ ## Decisions Made
107
+
108
+ | Decision | Choice | Rationale |
109
+ |----------|--------|-----------|
110
+ | {decision} | {choice} | {rationale} |
111
+
112
+ ## How to Verify
113
+
114
+ 1. **{Step Title}**
115
+ ```bash
116
+ {command}
117
+ ```
118
+ Expected: {expected output}
119
+
120
+ 2. **{Step Title}**
121
+ {manual verification steps}
122
+
123
+ ## Test Coverage
124
+
125
+ - Tests added: {count}
126
+ - Coverage: {percentage}%
127
+ - Status: {passing/failing}
128
+
129
+ ---
130
+ *Generated by specs.md - fabriqa.ai FIRE Flow Run {run-id}*
131
+ ```
132
+ </output_template>
133
+
134
+ <success_criteria>
135
+ <criterion>Walkthrough generated with all sections</criterion>
136
+ <criterion>Files changed documented with purposes</criterion>
137
+ <criterion>Decisions recorded with rationale</criterion>
138
+ <criterion>Verification steps included</criterion>
139
+ <criterion>Saved to run folder</criterion>
140
+ </success_criteria>