speccrew 0.7.30 → 0.7.32

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.
@@ -49,8 +49,8 @@
49
49
  <branch test="${checkpoints.feature_spec_review.passed} == true" name="Resume from Phase 4">
50
50
  <block type="set-variable" id="P0-V1" name="resume_phase" value="4"/>
51
51
  </branch>
52
- <branch test="${checkpoints.function_decomposition.passed} == true" name="Resume from Phase 3b">
53
- <block type="set-variable" id="P0-V2" name="resume_phase" value="3b"/>
52
+ <branch test="${checkpoints.function_decomposition.passed} == true" name="Resume from Phase 3">
53
+ <block type="set-variable" id="P0-V2" name="resume_phase" value="3"/>
54
54
  </branch>
55
55
  <branch default="true" name="Resume from Phase 1"/>
56
56
  </block>
@@ -179,29 +179,28 @@
179
179
  </block>
180
180
  </sequence>
181
181
 
182
- <!-- ========== Phase 3: Feature Design Two-Stage Pipeline ========== -->
183
- <sequence name="Phase 3: Feature Design Two-Stage Pipeline">
182
+ <!-- ========== Phase 3: Feature Design (Unified Analysis + Design) ========== -->
183
+ <sequence name="Phase 3: Feature Design (Unified Analysis + Design)">
184
184
 
185
185
  <block type="rule" id="P3-R1" level="mandatory" desc="Phase 3 Mandatory Rules">
186
186
  <field name="text">DO NOT ask user which strategy to use - strategy determined by Phase 2 extraction</field>
187
187
  <field name="text">DO NOT invoke skills directly when 2+ Features - MUST dispatch speccrew-task-worker</field>
188
188
  <field name="text">Dispatch granularity is PER FEATURE, not per module</field>
189
189
  <field name="text">DO NOT generate Feature Spec documents yourself - role is to DISPATCH workers</field>
190
- <field name="text">Phase 3a → 3b → 3c is STRICTLY SERIAL</field>
191
190
  <field name="text">Feature name is LOCKED after Phase 2 confirmation</field>
192
191
  </block>
193
192
 
194
- <!-- ========== Phase 3a: Analyze Function Decomposition ========== -->
195
- <block type="event" id="P3-E1" action="log" desc="Start Phase 3a">
196
- <field name="message">📊 Phase 3a: Analyze Function Decomposition</field>
193
+ <!-- ========== Unified Feature Design Dispatch ========== -->
194
+ <block type="event" id="P3-E1" action="log" desc="Start Phase 3">
195
+ <field name="message">📊 Phase 3: Feature Design (Unified Analysis + Design)</field>
197
196
  </block>
198
197
 
199
- <block type="gateway" id="P3-G1" mode="exclusive" desc="Dispatch mode for Phase 3a">
198
+ <block type="gateway" id="P3-G1" mode="exclusive" desc="Dispatch mode for Phase 3">
200
199
 
201
200
  <!-- Single Feature: Direct Invocation -->
202
201
  <branch test="${dispatch_mode} == 'direct'" name="Direct Invocation">
203
- <block type="task" id="P3-B1" action="run-skill" status="pending" desc="Invoke feature analyze skill">
204
- <field name="skill">speccrew-fd-feature-analyze</field>
202
+ <block type="task" id="P3-B1" action="run-skill" status="pending" desc="Invoke feature design skill">
203
+ <field name="skill">speccrew-fd-feature-design</field>
205
204
  <field name="context">
206
205
  prd_path: ${prd_files[0]}
207
206
  feature_id: ${feature_list.modules[0].features[0].feature_id}
@@ -209,8 +208,9 @@
209
208
  feature_type: ${feature_list.modules[0].features[0].feature_type}
210
209
  iteration_id: ${iteration_path}
211
210
  frontend_platforms: ${frontend_platforms}
211
+ output_path: ${iteration_path}/02.feature-design/${feature_id}-${feature_name}-feature-spec.md
212
212
  </field>
213
- <field name="output" var="analyze_result"/>
213
+ <field name="output" var="design_result"/>
214
214
  </block>
215
215
  </branch>
216
216
 
@@ -225,77 +225,6 @@
225
225
 
226
226
  <!-- Initialize DISPATCH-PROGRESS.json -->
227
227
  <block type="task" id="P3-B2" action="run-script" status="pending" desc="Initialize dispatch progress">
228
- <field name="command">node ${workspace_root}/scripts/update-progress.js init --file ${iteration_path}/02.feature-design/DISPATCH-PROGRESS.json --stage 02_feature_design_analyze --tasks-file ${iteration_path}/02.feature-design/.tasks-temp.json</field>
229
- </block>
230
-
231
- <!-- MANDATORY: Dispatch prompt must contain ONLY skill path + context data parameters.
232
- DO NOT include execution instructions, step sequences, or output directives.
233
- Worker will read skill's workflow.agentflow.xml for execution plan. -->
234
- <!-- Dispatch Workers in batches of 6 -->
235
- <block type="loop" id="P3-L1" mode="batch" batch_size="6" desc="Dispatch analyze workers">
236
- <field name="items" value="${all_features}"/>
237
-
238
- <block type="task" id="P3-B3" action="dispatch-to-worker" status="pending" desc="Dispatch analyze worker">
239
- <field name="agent">speccrew-task-worker</field>
240
- <field name="skill">speccrew-fd-feature-analyze</field>
241
- <field name="context">
242
- workspace_path: ${workspace_root}
243
- prd_path: ${item.prd_path}
244
- feature_id: ${item.feature_id}
245
- feature_name: ${item.feature_name}
246
- feature_type: ${item.feature_type}
247
- iteration_id: ${iteration_path}
248
- frontend_platforms: ${frontend_platforms}
249
- skip_checkpoint: true
250
- </field>
251
- </block>
252
-
253
- <block type="task" id="P3-B4" action="run-script" status="pending" desc="Update worker progress">
254
- <field name="command">node ${workspace_root}/scripts/update-progress.js update-task --file ${iteration_path}/02.feature-design/DISPATCH-PROGRESS.json --task-id ${item.feature_id} --status ${worker_status}</field>
255
- </block>
256
- </block>
257
-
258
- <!-- All completed: Present summary -->
259
- <block type="event" id="P3-E2" action="log" desc="Display analyze summary">
260
- <field name="template">analyze-summary</field>
261
- <field name="data" value="${analyze_results}"/>
262
- </block>
263
-
264
- <block type="event" id="P3-E3" action="confirm" desc="HARD STOP for analyze confirmation">
265
- <field name="prompt">📊 Phase 3a (Analyze) complete. Does this function breakdown align with your understanding?</field>
266
- </block>
267
- </branch>
268
- </block>
269
-
270
- <!-- ========== Phase 3b: Design & Generate — Feature Spec Production ========== -->
271
- <block type="event" id="P3-E4" action="log" desc="Start Phase 3b">
272
- <field name="message">📊 Phase 3b: Design & Generate — Feature Spec Production</field>
273
- </block>
274
-
275
- <block type="gateway" id="P3-G2" mode="exclusive" desc="Dispatch mode for Phase 3b">
276
-
277
- <!-- Single Feature: Direct Invocation -->
278
- <branch test="${dispatch_mode} == 'direct'" name="Direct Invocation">
279
- <block type="task" id="P3-B5" action="run-skill" status="pending" desc="Invoke feature design skill">
280
- <field name="skill">speccrew-fd-feature-design</field>
281
- <field name="context">
282
- feature_analysis_path: ${analyze_result.output_path}
283
- prd_path: ${prd_files[0]}
284
- feature_id: ${feature_list.modules[0].features[0].feature_id}
285
- feature_name: ${feature_list.modules[0].features[0].feature_name}
286
- feature_type: ${feature_list.modules[0].features[0].feature_type}
287
- frontend_platforms: ${frontend_platforms}
288
- output_path: ${iteration_path}/02.feature-design/${feature_id}-${feature_name}-feature-spec.md
289
- </field>
290
- <field name="output" var="design_result"/>
291
- </block>
292
- </branch>
293
-
294
- <!-- Multiple Features: Worker Dispatch -->
295
- <branch test="${dispatch_mode} == 'worker'" name="Worker Dispatch">
296
-
297
- <!-- Initialize DISPATCH-PROGRESS.json for Design stage -->
298
- <block type="task" id="P3-B6" action="run-script" status="pending" desc="Initialize design dispatch progress">
299
228
  <field name="command">node ${workspace_root}/scripts/update-progress.js init --file ${iteration_path}/02.feature-design/DISPATCH-PROGRESS.json --stage 02_feature_design_spec --tasks-file ${iteration_path}/02.feature-design/.tasks-temp.json</field>
300
229
  </block>
301
230
 
@@ -303,26 +232,26 @@
303
232
  DO NOT include execution instructions, step sequences, or output directives.
304
233
  Worker will read skill's workflow.agentflow.xml for execution plan. -->
305
234
  <!-- Dispatch Workers in batches of 6 -->
306
- <block type="loop" id="P3-L2" mode="batch" batch_size="6" desc="Dispatch design workers">
235
+ <block type="loop" id="P3-L1" mode="batch" batch_size="6" desc="Dispatch design workers">
307
236
  <field name="items" value="${all_features}"/>
308
237
 
309
- <block type="task" id="P3-B7" action="dispatch-to-worker" status="pending" desc="Dispatch design worker">
238
+ <block type="task" id="P3-B3" action="dispatch-to-worker" status="pending" desc="Dispatch design worker">
310
239
  <field name="agent">speccrew-task-worker</field>
311
240
  <field name="skill">speccrew-fd-feature-design</field>
312
241
  <field name="context">
313
242
  workspace_path: ${workspace_root}
314
- feature_analysis_path: ${item.analysis_path}
315
243
  prd_path: ${item.prd_path}
316
244
  feature_id: ${item.feature_id}
317
245
  feature_name: ${item.feature_name}
318
246
  feature_type: ${item.feature_type}
247
+ iteration_id: ${iteration_path}
319
248
  frontend_platforms: ${frontend_platforms}
320
249
  output_path: ${iteration_path}/02.feature-design/${item.feature_id}-${item.feature_name}-feature-spec.md
321
- skip_checkpoint: true
250
+ skip_analysis_checkpoint: true
322
251
  </field>
323
252
  </block>
324
253
 
325
- <block type="task" id="P3-B8" action="run-script" status="pending" desc="Update worker progress">
254
+ <block type="task" id="P3-B4" action="run-script" status="pending" desc="Update worker progress">
326
255
  <field name="command">node ${workspace_root}/scripts/update-progress.js update-task --file ${iteration_path}/02.feature-design/DISPATCH-PROGRESS.json --task-id ${item.feature_id} --status ${worker_status}</field>
327
256
  </block>
328
257
  </block>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speccrew",
3
- "version": "0.7.30",
3
+ "version": "0.7.32",
4
4
  "description": "Spec-Driven Development toolkit for AI-powered IDEs",
5
5
  "author": "charlesmu99",
6
6
  "repository": {