speccrew 0.6.54 → 0.6.55

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.
@@ -132,7 +132,7 @@ Stage 4: System Summary
132
132
  <field name="max_concurrent_workers" required="false" type="number" default="5" desc="Maximum parallel Worker count"/>
133
133
  <field name="workspace_path" required="true" type="string" desc="Absolute path to speccrew-workspace directory"/>
134
134
  <field name="sync_state_bizs_dir" required="true" type="string" desc="Absolute path to knowledges/base/sync-state/knowledge-bizs/"/>
135
- <field name="ide_skills_dir" required="true" type="string" desc="Absolute path to IDE skills directory (e.g., .qoder/skills, .cursor/skills)"/>
135
+ <field name="speccrew_skills_dir" required="true" type="string" desc="Absolute path to .speccrew/skills/ directory containing skill scripts"/>
136
136
  <field name="configs_dir" required="true" type="string" desc="Absolute path to docs/configs/ directory"/>
137
137
  <field name="graph_root" required="false" type="string" desc="Graph data output root path (absolute path preferred)" default="${workspace_path}/knowledges/bizs/graph"/>
138
138
  <field name="completed_dir" required="true" type="string" desc="Marker file output directory for Worker results (absolute path required)"/>
@@ -263,6 +263,10 @@ Continue with knowledge base generation?
263
263
  <field name="verify" value="${platforms.length} > 0"/>
264
264
  </block>
265
265
 
266
+ <block type="task" id="S0-B5" action="run-script" status="pending" desc="Update Stage 0 progress to completed">
267
+ <field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage0 --status completed --output "Detected ${platforms.length} platforms"</field>
268
+ </block>
269
+
266
270
  <block type="event" id="S0-E4" action="log" level="info" desc="Report detected platform list">
267
271
  <field name="message">Detected ${platforms.length} platforms: ${platforms.names}</field>
268
272
  </block>
@@ -301,6 +305,10 @@ Continue with knowledge base generation?
301
305
  <field name="file" value="${sync_state_bizs_dir}/.progress.json"/>
302
306
  <field name="verify" value="true"/>
303
307
  </block>
308
+
309
+ <block type="task" id="S1a-B2" action="run-script" status="pending" desc="Update Stage 1a progress to completed">
310
+ <field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage1a --status completed --output "Entry directories recognized for all platforms"</field>
311
+ </block>
304
312
  </sequence>
305
313
 
306
314
  <!-- ============================================================
@@ -316,7 +324,7 @@ Continue with knowledge base generation?
316
324
  <block type="loop" id="S1b-L1" over="${platforms}" as="platform" desc="Generate Feature inventory for each platform">
317
325
  <!-- Step 1: Read platform mapping config -->
318
326
  <block type="task" id="S1b-B1" action="run-script" status="pending" desc="Read platform mapping config">
319
- <field name="command">node "${ide_skills_dir}/speccrew-knowledge-bizs-init-features/scripts/generate-inventory.js"</field>
327
+ <field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-init-features/scripts/generate-inventory.js"</field>
320
328
  <field name="arg">--entryDirsFile</field>
321
329
  <field name="arg">${sync_state_bizs_dir}/entry-dirs-${platform.platformId}.json</field>
322
330
  <field name="output" var="features_${platform.platformId}"/>
@@ -333,6 +341,10 @@ Continue with knowledge base generation?
333
341
  <field name="verify" value="${all_features.length} > 0"/>
334
342
  </block>
335
343
 
344
+ <block type="task" id="S1b-B2" action="run-script" status="pending" desc="Update Stage 1b progress to completed">
345
+ <field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage1b --status completed --output "${feature_count} features across ${platform_count} platforms"</field>
346
+ </block>
347
+
336
348
  <block type="event" id="S1b-E1" action="log" level="info" desc="Report Feature inventory statistics">
337
349
  <field name="message">Feature inventory initialized. ${feature_count} features across ${platform_count} platforms.</field>
338
350
  </block>
@@ -352,7 +364,7 @@ Continue with knowledge base generation?
352
364
  <branch test="${sync_mode} == 'incremental'" name="Incremental mode">
353
365
  <!-- Step 1: Execute Feature merge -->
354
366
  <block type="task" id="S1c-B1" action="run-script" status="pending" desc="Merge new and existing Feature inventories">
355
- <field name="command">node "${ide_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/merge-features.js"</field>
367
+ <field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/merge-features.js"</field>
356
368
  <field name="arg">--syncStatePath</field>
357
369
  <field name="arg">${sync_state_bizs_dir}</field>
358
370
  <field name="arg">--completedDir</field>
@@ -373,7 +385,7 @@ Continue with knowledge base generation?
373
385
 
374
386
  <!-- Step 3: Mark stale Features -->
375
387
  <block type="task" id="S1c-B2" action="run-script" status="pending" desc="Clean up documents and markers for deleted Features">
376
- <field name="command">node "${ide_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/mark-stale.js"</field>
388
+ <field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/mark-stale.js"</field>
377
389
  <field name="arg">--syncStatePath</field>
378
390
  <field name="arg">${sync_state_bizs_dir}</field>
379
391
  <field name="arg">--completedDir</field>
@@ -391,13 +403,21 @@ Continue with knowledge base generation?
391
403
  <field name="file" value="${sync_state_bizs_dir}/.progress.json"/>
392
404
  <field name="passed" value="true"/>
393
405
  </block>
406
+
407
+ <block type="task" id="S1c-B3" action="run-script" status="pending" desc="Update Stage 1c progress to completed">
408
+ <field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage1c --status completed</field>
409
+ </block>
394
410
  </sequence>
395
411
 
396
412
  <!-- ============================================================
397
413
  Stage 2: Feature Analysis (Batch Processing)
398
414
  ============================================================ -->
399
415
  <sequence id="S2" name="Stage 2: Feature Analysis" status="pending" desc="Batch process Feature analysis, dispatch Workers to execute">
400
-
416
+
417
+ <block type="task" id="S2-B-Start" action="run-script" status="pending" desc="Update Stage 2 progress to in_progress">
418
+ <field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage2 --status in_progress</field>
419
+ </block>
420
+
401
421
  <block type="rule" id="S2-R1" level="mandatory" desc="Stage 2 mandatory rules">
402
422
  <field name="text">MUST use batch-orchestrator for batch management — DO NOT manually track batches</field>
403
423
  <field name="text">MUST dispatch Workers for feature analysis — DO NOT analyze features yourself</field>
@@ -426,7 +446,7 @@ Continue with knowledge base generation?
426
446
 
427
447
  <!-- Step 1: Get next batch -->
428
448
  <block type="task" id="S2-B1" action="run-script" status="pending" desc="Get next batch of pending Features">
429
- <field name="command">node "${ide_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/batch-orchestrator.js" get-batch</field>
449
+ <field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/batch-orchestrator.js" get-batch</field>
430
450
  <field name="arg">--syncStatePath</field>
431
451
  <field name="arg">${sync_state_bizs_dir}</field>
432
452
  <field name="arg">--batchSize</field>
@@ -598,7 +618,7 @@ Requirements:
598
618
 
599
619
  <!-- Step 3: Process batch results -->
600
620
  <block type="task" id="S2-B3" action="run-script" status="pending" desc="Collect and process batch Worker results">
601
- <field name="command">node "${ide_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/batch-orchestrator.js" process-results</field>
621
+ <field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/batch-orchestrator.js" process-results</field>
602
622
  <field name="arg">--syncStatePath</field>
603
623
  <field name="arg">${sync_state_bizs_dir}</field>
604
624
  <field name="arg">--graphRoot</field>
@@ -620,6 +640,10 @@ Requirements:
620
640
  <field name="verify" value="${pending_features.length} == 0"/>
621
641
  </block>
622
642
 
643
+ <block type="task" id="S2-B-End" action="run-script" status="pending" desc="Update Stage 2 progress to completed">
644
+ <field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage2 --status completed --output "${analyzed_count} features analyzed"</field>
645
+ </block>
646
+
623
647
  <block type="event" id="S2-E-Final" action="log" level="info" desc="Stage 2 complete">
624
648
  <field name="message">Stage 2 Milestone: Feature analysis complete. ${analyzed_count} features analyzed, ${failed_count} failed. ${graph_count} graph data files generated.</field>
625
649
  </block>
@@ -684,6 +708,10 @@ Requirements:
684
708
  <field name="passed" value="true"/>
685
709
  </block>
686
710
 
711
+ <block type="task" id="S3-B5" action="run-script" status="pending" desc="Update Stage 3 progress to completed">
712
+ <field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage3 --status completed --output "${module_count} modules summarized"</field>
713
+ </block>
714
+
687
715
  <block type="event" id="S3-E1" action="log" level="info" desc="Stage 3 complete">
688
716
  <field name="message">Stage 3 Milestone: Module summaries complete. ${module_count} modules summarized.</field>
689
717
  </block>
@@ -739,6 +767,10 @@ Requirements:
739
767
  <block type="event" id="S35-E2" action="log" level="info" desc="Stage 3.5 complete">
740
768
  <field name="message">Stage 3.5 Milestone: UI style patterns extracted. ${pattern_count} patterns extracted from ${frontend_platform_count} platforms.</field>
741
769
  </block>
770
+
771
+ <block type="task" id="S35-B2" action="run-script" status="pending" desc="Update Stage 3.5 progress to completed">
772
+ <field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage3.5 --status completed --output "${pattern_count} patterns extracted"</field>
773
+ </block>
742
774
  </sequence>
743
775
 
744
776
  <!-- ============================================================
@@ -786,6 +818,10 @@ Requirements:
786
818
  <field name="passed" value="true"/>
787
819
  </block>
788
820
 
821
+ <block type="task" id="S4-B3" action="run-script" status="pending" desc="Update Stage 4 progress to completed">
822
+ <field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage4 --status completed --output "System overview generated"</field>
823
+ </block>
824
+
789
825
  <block type="event" id="S4-E1" action="log" level="info" desc="Stage 4 complete">
790
826
  <field name="message">Stage 4 Milestone: System overview generated. All stages complete. Pipeline finished successfully.</field>
791
827
  </block>
@@ -803,7 +839,7 @@ Requirements:
803
839
  <field name="message">Worker ${error.worker} failed: ${error.message}</field>
804
840
  </block>
805
841
  <block type="task" id="EH1-B1" action="run-script" desc="Update failed status">
806
- <field name="command">node "${ide_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/update-feature-status.js"</field>
842
+ <field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/update-feature-status.js"</field>
807
843
  <field name="arg">--featureId</field>
808
844
  <field name="arg">${error.feature_id}</field>
809
845
  <field name="arg">--status</field>
@@ -72,7 +72,7 @@ Analyze one specific UI feature from source code, extract business functionality
72
72
  }
73
73
  ```
74
74
 
75
- > **Note**: Graph data construction (nodes, edges, marker files) is handled by `speccrew-knowledge-bizs-ui-graph` Skill. This Skill only generates feature documentation.
75
+ > **Note**: Graph data (.graph.json) is handled by `speccrew-knowledge-bizs-ui-graph` Skill. This Skill generates feature documentation AND writes `.done.json` completion marker.
76
76
 
77
77
  ## Workflow
78
78
 
@@ -404,6 +404,49 @@ Analyze one specific UI feature from source code, extract business functionality
404
404
  </block>
405
405
  </sequence>
406
406
 
407
+ <!-- ==================== STEP 7: WRITE COMPLETION MARKERS ==================== -->
408
+ <!-- Calculate Subpath from Source Path -->
409
+ <block type="task" id="B29" action="calculate-subpath" desc="Calculate subpath">
410
+ <field name="sourcePath" value="${sourcePath}"/>
411
+ <field name="output" var="subpath" from="calculation.subpath"/>
412
+ </block>
413
+
414
+ <!-- Generate Marker File Name -->
415
+ <block type="task" id="B30" action="generate-marker-name" desc="Generate marker name">
416
+ <field name="module" value="${module}"/>
417
+ <field name="subpath" value="${subpath}"/>
418
+ <field name="fileName" value="${fileName}"/>
419
+ <field name="output" var="markerName" from="generation.name"/>
420
+ </block>
421
+
422
+ <!-- Pre-write Verification -->
423
+ <block type="checkpoint" id="CP6" name="pre-write-check" desc="Pre-write verification">
424
+ <field name="verify" value="${fileName} does-not-contain '.' AND ${sourceFile} matches 'features-*.json'"/>
425
+ </block>
426
+
427
+ <!-- Write .done.json File -->
428
+ <block type="task" id="B31" action="create-file" desc="Write done marker file">
429
+ <field name="target" value="${completed_dir}/${markerName}.done.json"/>
430
+ <field name="content" value="{
431
+ &quot;fileName&quot;: &quot;${fileName}&quot;,
432
+ &quot;sourcePath&quot;: &quot;${sourcePath}&quot;,
433
+ &quot;sourceFile&quot;: &quot;${sourceFile}&quot;,
434
+ &quot;module&quot;: &quot;${module}&quot;,
435
+ &quot;documentPath&quot;: &quot;${documentPath}&quot;,
436
+ &quot;status&quot;: &quot;${status}&quot;,
437
+ &quot;analysisNotes&quot;: &quot;${message}&quot;
438
+ }"/>
439
+ </block>
440
+
441
+ <!-- Verify Marker File Written -->
442
+ <block type="checkpoint" id="CP7" name="marker-written" desc="Marker file written">
443
+ <field name="verify" value="file.exists(${completed_dir}/${markerName}.done.json)"/>
444
+ </block>
445
+
446
+ <block type="event" id="E10" action="log" level="info" desc="Log marker status">
447
+ <field name="message" value="Step 7 Status: COMPLETED - Done marker file written to ${completed_dir}/${markerName}.done.json"/>
448
+ </block>
449
+
407
450
  <!-- ==================== FINAL OUTPUT ==================== -->
408
451
  <block type="output" id="O1" desc="UI feature analysis output results">
409
452
  <field name="status" value="success"/>
@@ -473,8 +516,9 @@ When the task is complete, report the following:
473
516
 
474
517
  **Files Generated:**
475
518
  - `{{documentPath}}` - Feature documentation
519
+ - `completed_dir/markerName.done.json` - Completion marker
476
520
 
477
- **Note:** Graph data construction (nodes, edges, marker files) is handled by `speccrew-knowledge-bizs-ui-graph` Skill.
521
+ **Note:** Graph data (.graph.json) is handled by `speccrew-knowledge-bizs-ui-graph` Skill. The `.done.json` completion marker is written by this Skill in Step 7.
478
522
 
479
523
  ## Checklist
480
524
 
@@ -487,3 +531,4 @@ When the task is complete, report the following:
487
531
  - [ ] All sections filled using search_replace
488
532
  - [ ] All content in target language (`{{language}}`)
489
533
  - [ ] Results reported in JSON format
534
+ - [ ] Done marker file written to completed_dir
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speccrew",
3
- "version": "0.6.54",
3
+ "version": "0.6.55",
4
4
  "description": "Spec-Driven Development toolkit for AI-powered IDEs",
5
5
  "author": "charlesmu99",
6
6
  "repository": {