specsmd 0.0.0-dev.64 → 0.0.0-dev.66

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.
@@ -1,61 +1,55 @@
1
- # Skill: Run Plan
2
-
3
- Plan the scope of a run by discovering available work items and suggesting groupings.
4
-
5
- ---
6
-
7
- ## Trigger
8
-
9
- - After work-item decomposition completes
10
- - User wants to start execution
11
- - Pending work items exist
12
-
13
- ---
14
-
15
- ## Degrees of Freedom
16
-
17
- **MEDIUM** — Present smart grouping suggestions but let user choose scope.
18
-
19
1
  ---
20
-
21
- ## Critical Clarifications
22
-
23
- ### Dependencies Mean Sequential Execution, NOT Separate Runs
24
-
25
- **IMPORTANT**: When work items have dependencies:
26
- - They execute **sequentially within the SAME run**
27
- - They do **NOT** require separate runs
28
- - The dependent item waits for its dependency to complete before starting
29
-
30
- **Example**: If item 05 depends on item 04:
31
- - **CORRECT**: ONE run with both items, 04 executes first, then 05
32
- - **WRONG**: TWO separate runs
33
-
34
- ### All Options Can Include Multiple Items Per Run
35
-
36
- | Option | Items Per Run | Execution |
37
- |--------|---------------|-----------|
38
- | Single | 1 item | One at a time, separate runs |
39
- | Batch | Multiple items (same mode) | Sequential within run |
40
- | Wide | All compatible items | Sequential within run |
41
-
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
42
5
  ---
43
6
 
44
- ## Workflow
45
-
46
- ```xml
47
- <skill name="run-plan">
48
-
49
- <mandate>
50
- DISCOVER all available work - both in state.yaml AND file system.
51
- FILE SYSTEM IS SOURCE OF TRUTH — state.yaml may be incomplete.
52
- ALWAYS SCAN FILE SYSTEM — even if state.yaml shows all completed.
53
- SUGGEST smart groupings based on mode, dependencies, and user history.
54
- LEARN from user choices to improve future recommendations.
55
- NEVER force a scope - always let user choose.
56
- DEPENDENCIES = SEQUENTIAL EXECUTION, NOT SEPARATE RUNS.
57
- </mandate>
58
-
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>
59
53
  <step n="1" title="Discover Available Work" critical="true">
60
54
  <critical>
61
55
  MUST scan file system BEFORE deciding if work exists.
@@ -152,7 +146,7 @@ Plan the scope of a run by discovering available work items and suggesting group
152
146
  Create a new intent? [Y/n]
153
147
  </output>
154
148
  <check if="response == y">
155
- <route-to>planner-agent (intent-capture)</route-to>
149
+ <route_to>planner-agent (intent-capture)</route_to>
156
150
  </check>
157
151
  <stop/>
158
152
  </check>
@@ -162,14 +156,14 @@ Plan the scope of a run by discovering available work items and suggesting group
162
156
  <action>Read workspace.autonomy_bias from state.yaml</action>
163
157
  <action>Read workspace.run_scope_preference from state.yaml (if exists)</action>
164
158
 
165
- <grouping-rules>
159
+ <grouping_rules>
166
160
  <rule>Dependencies = SEQUENTIAL execution in SAME run (NOT separate runs)</rule>
167
161
  <rule>Different modes CAN be in same run (executed sequentially)</rule>
168
162
  <rule>Cross-intent items allowed in same run if compatible</rule>
169
163
  <rule>Validate mode items may benefit from running alone (more checkpoints)</rule>
170
- </grouping-rules>
164
+ </grouping_rules>
171
165
 
172
- <generate-options>
166
+ <generate_options>
173
167
  <option name="single">
174
168
  Each work item in its own run
175
169
  Total runs: {count of pending items}
@@ -186,7 +180,7 @@ Plan the scope of a run by discovering available work items and suggesting group
186
180
  Same as batch - all items in one run
187
181
  Total runs: 1
188
182
  </option>
189
- </generate-options>
183
+ </generate_options>
190
184
  </step>
191
185
 
192
186
  <step n="4" title="Present Options">
@@ -195,7 +189,7 @@ Plan the scope of a run by discovering available work items and suggesting group
195
189
  <substep>run_scope_preference (user's historical choice)</substep>
196
190
  <substep>Number of pending items (few items→single is fine)</substep>
197
191
 
198
- <output>
192
+ <template_output section="options">
199
193
  ## Run Planning
200
194
 
201
195
  **Found**: {count} pending work items across {intent_count} intent(s)
@@ -227,7 +221,7 @@ Plan the scope of a run by discovering available work items and suggesting group
227
221
  1 run, sequential execution
228
222
 
229
223
  Choose [1/2/3]:
230
- </output>
224
+ </template_output>
231
225
  </step>
232
226
 
233
227
  <step n="5" title="Process Choice">
@@ -245,11 +239,11 @@ Plan the scope of a run by discovering available work items and suggesting group
245
239
  <action>Update workspace.run_scope_preference in state.yaml</action>
246
240
  <action>Add to workspace.run_scope_history (keep last 10)</action>
247
241
 
248
- <history-entry>
242
+ <history_entry>
249
243
  choice: {run_scope}
250
244
  items_count: {count}
251
245
  timestamp: {now}
252
- </history-entry>
246
+ </history_entry>
253
247
 
254
248
  <note>
255
249
  After 3+ consistent choices, start pre-selecting that option
@@ -275,102 +269,100 @@ Plan the scope of a run by discovering available work items and suggesting group
275
269
  Begin execution? [Y/n]
276
270
  </output>
277
271
  <check if="response == y">
278
- <invoke-skill args="work_items_for_run, run_scope">run-execute</invoke-skill>
272
+ <invoke_skill args="work_items_for_run, run_scope">run-execute</invoke_skill>
279
273
  </check>
280
274
  </step>
281
-
282
- </skill>
283
- ```
284
-
285
- ---
286
-
287
- ## State Schema Updates
288
-
289
- **workspace section additions**:
290
- ```yaml
291
- workspace:
292
- # ... existing fields ...
293
- run_scope_preference: batch # single | batch | wide (learned)
294
- run_scope_history:
295
- - choice: batch
296
- items_count: 4
297
- timestamp: 2026-01-19T10:00:00Z
298
- ```
299
-
300
- **active_run with multi-item support**:
301
- ```yaml
302
- active_run:
303
- id: run-001
304
- scope: batch # single | batch | wide
305
- work_items:
306
- - id: 01-stats-data-model
307
- intent: session-stats
308
- mode: autopilot
309
- status: completed
310
- - id: 02-stats-api-endpoint
311
- intent: session-stats
312
- mode: autopilot
313
- status: in_progress
314
- current_item: 02-stats-api-endpoint
315
- started: 2026-01-19T10:00:00Z
316
- ```
317
-
318
- ---
319
-
320
- ## File Discovery Logic
321
-
322
- ```
323
- .specs-fire/
324
- ├── intents/
325
- ├── user-auth/
326
- │ ├── brief.md ← Parse frontmatter for intent metadata
327
- │ │ └── work-items/
328
- │ │ ├── login-endpoint.md ← Parse for work item metadata
329
- │ │ └── session-mgmt.md
330
- │ └── analytics/
331
- │ ├── brief.md
332
- │ └── work-items/
333
- │ └── dashboard.md
334
- ```
335
-
336
- **Frontmatter parsing**:
337
- - Extract `id`, `title`, `status` from YAML frontmatter
338
- - If status missing, default to `pending`
339
- - If in file but not state.yaml, add to state
340
-
341
- ---
342
-
343
- ## Grouping Algorithm
344
-
345
- ```
346
- 1. Collect all pending items with their modes
347
- 2. Build dependency graph
348
- 3. Sort items in dependency order (dependencies first)
349
- 4. For "single" option:
350
- - Each item is its own run
351
- 5. For "batch" or "wide" option:
352
- - ALL items in ONE run
353
- - Execution order follows dependency graph
354
- - Checkpoints pause at confirm/validate items
355
- ```
356
-
357
- ---
358
-
359
- ## Recommendation Logic
360
-
361
- ```
362
- IF run_scope_history has 3+ same choices:
363
- pre_selected = most_common_choice
364
-
365
- ELSE IF autonomy_bias == autonomous:
366
- recommended = batch (all in one run)
367
-
368
- ELSE IF autonomy_bias == controlled:
369
- recommended = single
370
-
371
- ELSE: # balanced
372
- IF pending_count <= 2:
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:
373
352
  recommended = single
374
- ELSE:
375
- recommended = batch
376
- ```
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>
@@ -1,21 +1,19 @@
1
- # Skill: Run Status
2
-
3
- Display current run status and progress.
4
-
5
1
  ---
6
-
7
- ## Trigger
8
-
9
- - User asks about run status
10
- - During long-running execution
11
-
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
12
5
  ---
13
6
 
14
- ## Workflow
7
+ <objective>
8
+ Display current run status and progress.
9
+ </objective>
15
10
 
16
- ```xml
17
- <skill name="run-status">
11
+ <triggers>
12
+ - User asks about run status
13
+ - During long-running execution
14
+ </triggers>
18
15
 
16
+ <flow>
19
17
  <step n="1" title="Check Active Run">
20
18
  <action>Read state.yaml for active_run</action>
21
19
  <check if="no active run">
@@ -55,40 +53,42 @@ Display current run status and progress.
55
53
  {last 5 actions}
56
54
  </output>
57
55
  </step>
56
+ </flow>
58
57
 
59
- </skill>
60
- ```
61
-
62
- ---
63
-
64
- ## Example Output
58
+ <example_output>
59
+ ```
60
+ ## Run Status: run-003
65
61
 
66
- ```
67
- ## Run Status: run-003
62
+ **Work Item**: Add session management
63
+ **Intent**: User Authentication
64
+ **Mode**: confirm
65
+ **Started**: 2026-01-19T10:30:00Z
66
+ **Duration**: 12 minutes
68
67
 
69
- **Work Item**: Add session management
70
- **Intent**: User Authentication
71
- **Mode**: confirm
72
- **Started**: 2026-01-19T10:30:00Z
73
- **Duration**: 12 minutes
68
+ ### Progress
74
69
 
75
- ### Progress
70
+ - [x] Initialize run
71
+ - [x] Load context
72
+ - [x] Plan approved (Checkpoint 1)
73
+ - [~] Execute implementation
74
+ - [ ] Run tests
75
+ - [ ] Generate walkthrough
76
76
 
77
- - [x] Initialize run
78
- - [x] Load context
79
- - [x] Plan approved (Checkpoint 1)
80
- - [~] Execute implementation
81
- - [ ] Run tests
82
- - [ ] Generate walkthrough
77
+ ### Files Changed So Far
83
78
 
84
- ### Files Changed So Far
79
+ Created: 2
80
+ Modified: 1
85
81
 
86
- Created: 2
87
- Modified: 1
82
+ ### Recent Activity
88
83
 
89
- ### Recent Activity
84
+ - Created src/auth/session.ts
85
+ - Created src/auth/session.test.ts
86
+ - Modified src/auth/index.ts
87
+ ```
88
+ </example_output>
90
89
 
91
- - Created src/auth/session.ts
92
- - Created src/auth/session.test.ts
93
- - Modified src/auth/index.ts
94
- ```
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>
@@ -1,33 +1,29 @@
1
- # Skill: Walkthrough Generate
2
-
3
- Generate implementation walkthrough for human review after run completion.
4
-
5
1
  ---
6
-
7
- ## Trigger
8
-
9
- - Run completed successfully
10
- - Invoked by run-execute skill
11
-
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
12
5
  ---
13
6
 
14
- ## Degrees of Freedom
15
-
16
- **LOW** — Follow walkthrough structure precisely. Be thorough but concise.
17
-
18
- ---
7
+ <objective>
8
+ Generate implementation walkthrough for human review after run completion.
9
+ </objective>
19
10
 
20
- ## Workflow
11
+ <triggers>
12
+ - Run completed successfully
13
+ - Invoked by run-execute skill
14
+ </triggers>
21
15
 
22
- ```xml
23
- <skill name="walkthrough-generate">
16
+ <degrees_of_freedom>
17
+ **LOW** — Follow walkthrough structure precisely. Be thorough but concise.
18
+ </degrees_of_freedom>
24
19
 
25
- <mandate>
26
- ALWAYS generate walkthrough after run completion.
27
- Document DECISIONS, not just changes.
28
- Include verification steps - how to test this works.
29
- </mandate>
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>
30
25
 
26
+ <flow>
31
27
  <step n="1" title="Gather Implementation Data">
32
28
  <action>Read run log from .specs-fire/runs/{run-id}/run.md</action>
33
29
  <action>Collect:</action>
@@ -67,74 +63,78 @@ Generate implementation walkthrough for human review after run completion.
67
63
  Walkthrough generated: .specs-fire/runs/{run-id}/walkthrough.md
68
64
  </output>
69
65
  </step>
66
+ </flow>
70
67
 
71
- </skill>
72
- ```
73
-
74
- ---
75
-
76
- ## Output
68
+ <output_template>
69
+ **Walkthrough** (`.specs-fire/runs/{run-id}/walkthrough.md`):
77
70
 
78
- **Walkthrough** (`.specs-fire/runs/{run-id}/walkthrough.md`):
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
79
 
80
- ```markdown
81
- ---
82
- run: {run-id}
83
- work_item: {work-item-id}
84
- intent: {intent-id}
85
- generated: {timestamp}
86
- mode: {mode}
87
- ---
80
+ # Implementation Walkthrough: {title}
88
81
 
89
- # Implementation Walkthrough: {title}
82
+ ## Summary
90
83
 
91
- ## Summary
84
+ {2-3 sentences describing what was implemented}
92
85
 
93
- {2-3 sentences describing what was implemented}
86
+ ## Files Changed
94
87
 
95
- ## Files Changed
88
+ ### Created
96
89
 
97
- ### Created
90
+ | File | Purpose |
91
+ |------|---------|
92
+ | `{path}` | {purpose} |
98
93
 
99
- | File | Purpose |
100
- |------|---------|
101
- | `{path}` | {purpose} |
94
+ ### Modified
102
95
 
103
- ### Modified
96
+ | File | Changes |
97
+ |------|---------|
98
+ | `{path}` | {changes} |
104
99
 
105
- | File | Changes |
106
- |------|---------|
107
- | `{path}` | {changes} |
100
+ ## Key Implementation Details
108
101
 
109
- ## Key Implementation Details
102
+ ### 1. {Detail Title}
110
103
 
111
- ### 1. {Detail Title}
104
+ {description of implementation approach}
112
105
 
113
- {description of implementation approach}
106
+ ## Decisions Made
114
107
 
115
- ## Decisions Made
108
+ | Decision | Choice | Rationale |
109
+ |----------|--------|-----------|
110
+ | {decision} | {choice} | {rationale} |
116
111
 
117
- | Decision | Choice | Rationale |
118
- |----------|--------|-----------|
119
- | {decision} | {choice} | {rationale} |
112
+ ## How to Verify
120
113
 
121
- ## How to Verify
114
+ 1. **{Step Title}**
115
+ ```bash
116
+ {command}
117
+ ```
118
+ Expected: {expected output}
122
119
 
123
- 1. **{Step Title}**
124
- ```bash
125
- {command}
126
- ```
127
- Expected: {expected output}
120
+ 2. **{Step Title}**
121
+ {manual verification steps}
128
122
 
129
- 2. **{Step Title}**
130
- {manual verification steps}
123
+ ## Test Coverage
131
124
 
132
- ## Test Coverage
125
+ - Tests added: {count}
126
+ - Coverage: {percentage}%
127
+ - Status: {passing/failing}
133
128
 
134
- - Tests added: {count}
135
- - Coverage: {percentage}%
136
- - Status: {passing/failing}
129
+ ---
130
+ *Generated by FIRE Run {run-id}*
131
+ ```
132
+ </output_template>
137
133
 
138
- ---
139
- *Generated by FIRE Run {run-id}*
140
- ```
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>