speccrew 0.6.47 → 0.6.49
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.
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze-xml/SKILL.md +4 -1
- package/.speccrew/skills/speccrew-knowledge-bizs-api-graph-xml/SKILL.md +11 -8
- package/.speccrew/skills/speccrew-knowledge-bizs-dispatch-xml/SKILL.md +33 -26
- package/.speccrew/skills/speccrew-knowledge-bizs-identify-entries-xml/SKILL.md +10 -3
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze-xml/SKILL.md +17 -14
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-graph-xml/SKILL.md +9 -6
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract-xml/SKILL.md +13 -4
- package/.speccrew/skills/speccrew-knowledge-module-summarize-xml/SKILL.md +11 -8
- package/.speccrew/skills/speccrew-knowledge-system-summarize-xml/SKILL.md +12 -9
- package/.speccrew/skills/speccrew-knowledge-techs-dispatch-xml/SKILL.md +23 -20
- package/.speccrew/skills/speccrew-knowledge-techs-generate-conventions-xml/SKILL.md +4 -1
- package/.speccrew/skills/speccrew-knowledge-techs-generate-quality-xml/SKILL.md +136 -228
- package/.speccrew/skills/speccrew-knowledge-techs-generate-ui-style-xml/SKILL.md +132 -159
- package/.speccrew/skills/speccrew-knowledge-techs-generate-xml/SKILL.md +8 -5
- package/.speccrew/skills/speccrew-knowledge-techs-index-xml/SKILL.md +6 -3
- package/.speccrew/skills/speccrew-knowledge-techs-init-xml/SKILL.md +4 -1
- package/package.json +1 -1
- package/workspace-template/docs/rules/xml-workflow-spec.md +13 -5
|
@@ -105,8 +105,10 @@ Before executing the workflow, verify the following inputs:
|
|
|
105
105
|
|
|
106
106
|
## Workflow
|
|
107
107
|
|
|
108
|
-
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `docs/rules/xml-workflow-spec.md`
|
|
108
|
+
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `speccrew-workspace/docs/rules/xml-workflow-spec.md`
|
|
109
109
|
|
|
110
|
+
```xml
|
|
111
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
110
112
|
<workflow id="api-controller-analysis" status="pending" version="1.0" desc="API controller analysis workflow">
|
|
111
113
|
|
|
112
114
|
<!-- ==================== INPUT PARAMETERS ==================== -->
|
|
@@ -616,6 +618,7 @@ Before executing the workflow, verify the following inputs:
|
|
|
616
618
|
</block>
|
|
617
619
|
|
|
618
620
|
</workflow>
|
|
621
|
+
```
|
|
619
622
|
|
|
620
623
|
## Reference Guides
|
|
621
624
|
|
|
@@ -71,8 +71,10 @@ This skill operates in **strict sequential execution mode**:
|
|
|
71
71
|
|
|
72
72
|
## Workflow
|
|
73
73
|
|
|
74
|
-
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `docs/rules/xml-workflow-spec.md`
|
|
74
|
+
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `speccrew-workspace/docs/rules/xml-workflow-spec.md`
|
|
75
75
|
|
|
76
|
+
```xml
|
|
77
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
76
78
|
<workflow id="api-knowledge-graph-construction" version="1.0" status="pending" desc="API knowledge graph construction workflow">
|
|
77
79
|
|
|
78
80
|
<!-- Input Parameters -->
|
|
@@ -137,7 +139,7 @@ This skill operates in **strict sequential execution mode**:
|
|
|
137
139
|
</block>
|
|
138
140
|
|
|
139
141
|
<block type="event" id="E1" action="log" level="info" desc="Log step 1 completion">
|
|
140
|
-
Step 1 Status: COMPLETED - Read ${api_analysis_path}, Found ${endpoints.length} endpoints
|
|
142
|
+
<field name="message">Step 1 Status: COMPLETED - Read ${api_analysis_path}, Found ${endpoints.length} endpoints</field>
|
|
141
143
|
</block>
|
|
142
144
|
</sequence>
|
|
143
145
|
|
|
@@ -212,7 +214,7 @@ Step 1 Status: COMPLETED - Read ${api_analysis_path}, Found ${endpoints.length}
|
|
|
212
214
|
</block>
|
|
213
215
|
|
|
214
216
|
<block type="event" id="E2" action="log" level="info" desc="Log step 2 completion">
|
|
215
|
-
Step 2 Status: COMPLETED - Extracted graph nodes (${apiNodes.length} APIs, ${serviceNodes.length} services, ${tableNodes.length} tables, ${dtoNodes.length} DTOs)
|
|
217
|
+
<field name="message">Step 2 Status: COMPLETED - Extracted graph nodes (${apiNodes.length} APIs, ${serviceNodes.length} services, ${tableNodes.length} tables, ${dtoNodes.length} DTOs)</field>
|
|
216
218
|
</block>
|
|
217
219
|
</sequence>
|
|
218
220
|
|
|
@@ -291,7 +293,7 @@ Step 2 Status: COMPLETED - Extracted graph nodes (${apiNodes.length} APIs, ${ser
|
|
|
291
293
|
</block>
|
|
292
294
|
|
|
293
295
|
<block type="event" id="E3" action="log" level="info" desc="Log step 3 completion">
|
|
294
|
-
Step 3 Status: COMPLETED - Extracted graph edges (${operatesEdges.length + invokesEdges.length + referencesEdges.length + dependsOnEdges.length + mapsToEdges.length} total)
|
|
296
|
+
<field name="message">Step 3 Status: COMPLETED - Extracted graph edges (${operatesEdges.length + invokesEdges.length + referencesEdges.length + dependsOnEdges.length + mapsToEdges.length} total)</field>
|
|
295
297
|
</block>
|
|
296
298
|
</sequence>
|
|
297
299
|
|
|
@@ -315,7 +317,7 @@ Step 3 Status: COMPLETED - Extracted graph edges (${operatesEdges.length + invok
|
|
|
315
317
|
</block>
|
|
316
318
|
|
|
317
319
|
<block type="event" id="E4" action="log" level="info" desc="Log step 4 completion">
|
|
318
|
-
Step 4 Status: COMPLETED - Graph JSON written to ${output_dir}/${markerFilename}.graph.json
|
|
320
|
+
<field name="message">Step 4 Status: COMPLETED - Graph JSON written to ${output_dir}/${markerFilename}.graph.json</field>
|
|
319
321
|
</block>
|
|
320
322
|
</sequence>
|
|
321
323
|
|
|
@@ -331,7 +333,7 @@ Step 4 Status: COMPLETED - Graph JSON written to ${output_dir}/${markerFilename}
|
|
|
331
333
|
</block>
|
|
332
334
|
|
|
333
335
|
<block type="event" id="E5" action="log" level="info" desc="Log step 5 completion">
|
|
334
|
-
Step 5 Status: COMPLETED - Graph completion marker written to ${output_dir}/${markerFilename}.graph-done.json
|
|
336
|
+
<field name="message">Step 5 Status: COMPLETED - Graph completion marker written to ${output_dir}/${markerFilename}.graph-done.json</field>
|
|
335
337
|
</block>
|
|
336
338
|
</sequence>
|
|
337
339
|
|
|
@@ -340,12 +342,12 @@ Step 5 Status: COMPLETED - Graph completion marker written to ${output_dir}/${ma
|
|
|
340
342
|
<block type="gateway" id="G6" mode="exclusive" desc="Determine result status">
|
|
341
343
|
<branch test="${success} == true" name="Success">
|
|
342
344
|
<block type="event" id="E6a" action="log" level="info" desc="Log success">
|
|
343
|
-
Step 6 Status: COMPLETED - Graph construction success: Generated graph data with ${node_count} nodes and ${edge_count} edges
|
|
345
|
+
<field name="message">Step 6 Status: COMPLETED - Graph construction success: Generated graph data with ${node_count} nodes and ${edge_count} edges</field>
|
|
344
346
|
</block>
|
|
345
347
|
</branch>
|
|
346
348
|
<branch test="${success} == false" name="Failure">
|
|
347
349
|
<block type="event" id="E6b" action="log" level="error" desc="Log failure">
|
|
348
|
-
Step 6 Status: COMPLETED - Graph construction failed: ${error_message}
|
|
350
|
+
<field name="message">Step 6 Status: COMPLETED - Graph construction failed: ${error_message}</field>
|
|
349
351
|
</block>
|
|
350
352
|
</branch>
|
|
351
353
|
</block>
|
|
@@ -383,6 +385,7 @@ Step 6 Status: COMPLETED - Graph construction failed: ${error_message}
|
|
|
383
385
|
</block>
|
|
384
386
|
|
|
385
387
|
</workflow>
|
|
388
|
+
```
|
|
386
389
|
|
|
387
390
|
## Node ID Naming Convention
|
|
388
391
|
|
|
@@ -6,7 +6,7 @@ tools: Read, Write, Task, Bash
|
|
|
6
6
|
|
|
7
7
|
> **⚠️ MANDATORY EXECUTION PROTOCOL — READ BEFORE EXECUTING ANY BLOCK**
|
|
8
8
|
>
|
|
9
|
-
> **Step 1**: Load XML workflow specification: `docs/rules/xml-workflow-spec.md` — this defines all block types and action-to-tool mappings
|
|
9
|
+
> **Step 1**: Load XML workflow specification: `speccrew-workspace/docs/rules/xml-workflow-spec.md` — this defines all block types and action-to-tool mappings
|
|
10
10
|
>
|
|
11
11
|
> **Step 2**: Execute this SKILL.md's XML workflow **block by block in document order**:
|
|
12
12
|
> - `action="run-script"` → Execute via **Terminal tool** (PowerShell/Bash)
|
|
@@ -98,6 +98,10 @@ Stage 4: System Summary
|
|
|
98
98
|
|
|
99
99
|
## XML Workflow Definition
|
|
100
100
|
|
|
101
|
+
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `speccrew-workspace/docs/rules/xml-workflow-spec.md`
|
|
102
|
+
|
|
103
|
+
```xml
|
|
104
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
101
105
|
<workflow id="bizs-dispatch-main" status="pending" version="1.0" desc="bizs knowledge base generation 5-stage pipeline">
|
|
102
106
|
|
|
103
107
|
<!-- ============================================================
|
|
@@ -186,7 +190,7 @@ Stage 4: System Summary
|
|
|
186
190
|
<field name="message">Skipping empty directory: ${module.name}</field>
|
|
187
191
|
</block>
|
|
188
192
|
<block type="event" id="S0-E1" action="log" level="info" desc="Log backend module">
|
|
189
|
-
Discovered backend module: ${module.name} → Platform type: backend-${module.business_name}
|
|
193
|
+
<field name="message">Discovered backend module: ${module.name} → Platform type: backend-${module.business_name}</field>
|
|
190
194
|
</block>
|
|
191
195
|
</block>
|
|
192
196
|
|
|
@@ -199,7 +203,7 @@ Discovered backend module: ${module.name} → Platform type: backend-${module.bu
|
|
|
199
203
|
<field name="message">Skipping non-frontend directory: ${frontend.name}</field>
|
|
200
204
|
</block>
|
|
201
205
|
<block type="event" id="S0-E2" action="log" level="info" desc="Log frontend platform">
|
|
202
|
-
Discovered frontend platform: ${frontend.name} → Tech stack: Vue/React/UniApp
|
|
206
|
+
<field name="message">Discovered frontend platform: ${frontend.name} → Tech stack: Vue/React/UniApp</field>
|
|
203
207
|
</block>
|
|
204
208
|
</block>
|
|
205
209
|
|
|
@@ -221,17 +225,19 @@ Discovered frontend platform: ${frontend.name} → Tech stack: Vue/React/UniApp
|
|
|
221
225
|
<block type="event" id="S0-E3" action="confirm" title="Confirm Platform List" type="yesno" desc="Wait for user to confirm detected platform list">
|
|
222
226
|
<field name="preview">
|
|
223
227
|
Detected ${platforms.length} platforms:
|
|
224
|
-
|
|
225
|
-
- ${platform.platformId}: ${platform.sourcePath} (${platform.platformType}/${platform.platformSubtype})
|
|
226
|
-
</loop>
|
|
228
|
+
(For each platform in ${platforms}, display: ${platform.platformId}: ${sourcePath} (${platformType}/${platformSubtype}))
|
|
227
229
|
|
|
228
230
|
Continue with knowledge base generation?
|
|
229
231
|
</field>
|
|
230
232
|
<on-confirm>
|
|
231
|
-
<block type="event" action="log" level="info" desc="User confirmed">
|
|
233
|
+
<block type="event" action="log" level="info" desc="User confirmed">
|
|
234
|
+
<field name="message">User confirmed platform list, continuing</field>
|
|
235
|
+
</block>
|
|
232
236
|
</on-confirm>
|
|
233
237
|
<on-cancel>
|
|
234
|
-
<block type="event" action="log" level="warn" desc="User cancelled">
|
|
238
|
+
<block type="event" action="log" level="warn" desc="User cancelled">
|
|
239
|
+
<field name="message">User cancelled, terminating workflow</field>
|
|
240
|
+
</block>
|
|
235
241
|
<field name="workflow.status" value="cancelled"/>
|
|
236
242
|
</on-cancel>
|
|
237
243
|
</block>
|
|
@@ -243,7 +249,7 @@ Continue with knowledge base generation?
|
|
|
243
249
|
</block>
|
|
244
250
|
|
|
245
251
|
<block type="event" id="S0-E4" action="log" level="info" desc="Report detected platform list">
|
|
246
|
-
Detected ${platforms.length} platforms: ${platforms.names}
|
|
252
|
+
<field name="message">Detected ${platforms.length} platforms: ${platforms.names}</field>
|
|
247
253
|
</block>
|
|
248
254
|
</sequence>
|
|
249
255
|
|
|
@@ -313,7 +319,7 @@ Detected ${platforms.length} platforms: ${platforms.names}
|
|
|
313
319
|
</block>
|
|
314
320
|
|
|
315
321
|
<block type="event" id="S1b-E1" action="log" level="info" desc="Report Feature inventory statistics">
|
|
316
|
-
Feature inventory initialized. ${feature_count} features across ${platform_count} platforms
|
|
322
|
+
<field name="message">Feature inventory initialized. ${feature_count} features across ${platform_count} platforms.</field>
|
|
317
323
|
</block>
|
|
318
324
|
</sequence>
|
|
319
325
|
|
|
@@ -343,11 +349,11 @@ Feature inventory initialized. ${feature_count} features across ${platform_count
|
|
|
343
349
|
|
|
344
350
|
<!-- Step 2: Report merge result -->
|
|
345
351
|
<block type="event" id="S1c-E1" action="log" level="info" desc="Report merge result">
|
|
346
|
-
Feature merge complete:
|
|
352
|
+
<field name="message">Feature merge complete:
|
|
347
353
|
- Added: ${merge_result.added}
|
|
348
354
|
- Removed: ${merge_result.removed}
|
|
349
355
|
- Changed: ${merge_result.changed} (reset for re-analysis)
|
|
350
|
-
- Unchanged: ${merge_result.unchanged} (analysis state preserved)
|
|
356
|
+
- Unchanged: ${merge_result.unchanged} (analysis state preserved)</field>
|
|
351
357
|
</block>
|
|
352
358
|
|
|
353
359
|
<!-- Step 3: Mark stale Features -->
|
|
@@ -361,7 +367,7 @@ Feature merge complete:
|
|
|
361
367
|
</branch>
|
|
362
368
|
<branch default="true" name="Full mode">
|
|
363
369
|
<block type="event" id="S1c-E2" action="log" level="info" desc="Full mode skip merge">
|
|
364
|
-
Full mode, skipping Feature merge step
|
|
370
|
+
<field name="message">Full mode, skipping Feature merge step</field>
|
|
365
371
|
</block>
|
|
366
372
|
</branch>
|
|
367
373
|
</block>
|
|
@@ -417,7 +423,7 @@ Full mode, skipping Feature merge step
|
|
|
417
423
|
<block type="gateway" id="S2-G0" mode="exclusive" desc="Determine batch response">
|
|
418
424
|
<branch test="${batch_response.action} == 'done'" name="All Features processed">
|
|
419
425
|
<block type="event" id="S2-E-Done" action="log" level="info" desc="All Features processed">
|
|
420
|
-
All Features analyzed, exiting Stage 2 loop
|
|
426
|
+
<field name="message">All Features analyzed, exiting Stage 2 loop</field>
|
|
421
427
|
</block>
|
|
422
428
|
<field name="stage2_complete" value="true"/>
|
|
423
429
|
</branch>
|
|
@@ -425,7 +431,7 @@ All Features analyzed, exiting Stage 2 loop
|
|
|
425
431
|
|
|
426
432
|
<!-- Step 2: Prepare analysis task specifications -->
|
|
427
433
|
<block type="event" id="S2-E-Batch" action="log" level="info" desc="Report current batch">
|
|
428
|
-
Processing batch: ${batch_response.batch.length} Features
|
|
434
|
+
<field name="message">Processing batch: ${batch_response.batch.length} Features</field>
|
|
429
435
|
</block>
|
|
430
436
|
|
|
431
437
|
<!-- Step 2: Dispatch Worker for each Feature -->
|
|
@@ -507,7 +513,7 @@ Requirements:
|
|
|
507
513
|
|
|
508
514
|
<!-- Step 2.5: Graph Worker Task Preparation -->
|
|
509
515
|
<block type="event" id="S2-E-Graph" action="log" level="info" desc="Prepare Graph Worker tasks">
|
|
510
|
-
Preparing Graph data generation for completed Features
|
|
516
|
+
<field name="message">Preparing Graph data generation for completed Features</field>
|
|
511
517
|
</block>
|
|
512
518
|
|
|
513
519
|
<!-- Step 2.5: Dispatch Graph Worker -->
|
|
@@ -588,7 +594,7 @@ Requirements:
|
|
|
588
594
|
</block>
|
|
589
595
|
|
|
590
596
|
<block type="event" id="S2-E-Result" action="log" level="info" desc="Report batch processing result">
|
|
591
|
-
Batch processing complete: ${batch_result.success} succeeded, ${batch_result.failed} failed
|
|
597
|
+
<field name="message">Batch processing complete: ${batch_result.success} succeeded, ${batch_result.failed} failed</field>
|
|
592
598
|
</block>
|
|
593
599
|
</branch>
|
|
594
600
|
</block>
|
|
@@ -600,7 +606,7 @@ Batch processing complete: ${batch_result.success} succeeded, ${batch_result.fai
|
|
|
600
606
|
</block>
|
|
601
607
|
|
|
602
608
|
<block type="event" id="S2-E-Final" action="log" level="info" desc="Stage 2 complete">
|
|
603
|
-
Stage 2 Milestone: Feature analysis complete. ${analyzed_count} features analyzed, ${failed_count} failed. ${graph_count} graph data files generated
|
|
609
|
+
<field name="message">Stage 2 Milestone: Feature analysis complete. ${analyzed_count} features analyzed, ${failed_count} failed. ${graph_count} graph data files generated.</field>
|
|
604
610
|
</block>
|
|
605
611
|
</sequence>
|
|
606
612
|
|
|
@@ -664,7 +670,7 @@ Requirements:
|
|
|
664
670
|
</block>
|
|
665
671
|
|
|
666
672
|
<block type="event" id="S3-E1" action="log" level="info" desc="Stage 3 complete">
|
|
667
|
-
Stage 3 Milestone: Module summaries complete. ${module_count} modules summarized
|
|
673
|
+
<field name="message">Stage 3 Milestone: Module summaries complete. ${module_count} modules summarized.</field>
|
|
668
674
|
</block>
|
|
669
675
|
</sequence>
|
|
670
676
|
|
|
@@ -709,14 +715,14 @@ Requirements:
|
|
|
709
715
|
</branch>
|
|
710
716
|
<branch default="true" name="Non-UI platform">
|
|
711
717
|
<block type="event" id="S35-E1" action="log" level="info" desc="Backend platform skip style extraction">
|
|
712
|
-
Backend platform ${platform.platformId} skipping UI style extraction
|
|
718
|
+
<field name="message">Backend platform ${platform.platformId} skipping UI style extraction</field>
|
|
713
719
|
</block>
|
|
714
720
|
</branch>
|
|
715
721
|
</block>
|
|
716
722
|
</block>
|
|
717
723
|
|
|
718
724
|
<block type="event" id="S35-E2" action="log" level="info" desc="Stage 3.5 complete">
|
|
719
|
-
Stage 3.5 Milestone: UI style patterns extracted. ${pattern_count} patterns extracted from ${frontend_platform_count} platforms
|
|
725
|
+
<field name="message">Stage 3.5 Milestone: UI style patterns extracted. ${pattern_count} patterns extracted from ${frontend_platform_count} platforms.</field>
|
|
720
726
|
</block>
|
|
721
727
|
</sequence>
|
|
722
728
|
|
|
@@ -766,7 +772,7 @@ Requirements:
|
|
|
766
772
|
</block>
|
|
767
773
|
|
|
768
774
|
<block type="event" id="S4-E1" action="log" level="info" desc="Stage 4 complete">
|
|
769
|
-
Stage 4 Milestone: System overview generated. All stages complete. Pipeline finished successfully
|
|
775
|
+
<field name="message">Stage 4 Milestone: System overview generated. All stages complete. Pipeline finished successfully.</field>
|
|
770
776
|
</block>
|
|
771
777
|
</sequence>
|
|
772
778
|
|
|
@@ -779,7 +785,7 @@ Stage 4 Milestone: System overview generated. All stages complete. Pipeline fini
|
|
|
779
785
|
</try>
|
|
780
786
|
<catch on="worker_failed">
|
|
781
787
|
<block type="event" id="EH1-E1" action="log" level="warn" desc="Worker failed, log error and continue">
|
|
782
|
-
Worker ${error.worker} failed: ${error.message}
|
|
788
|
+
<field name="message">Worker ${error.worker} failed: ${error.message}</field>
|
|
783
789
|
</block>
|
|
784
790
|
<block type="task" id="EH1-B1" action="run-script" desc="Update failed status">
|
|
785
791
|
<field name="command">node "${ide_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/update-feature-status.js"</field>
|
|
@@ -793,15 +799,15 @@ Worker ${error.worker} failed: ${error.message}
|
|
|
793
799
|
</catch>
|
|
794
800
|
<catch on="script_error">
|
|
795
801
|
<block type="event" id="EH1-E2" action="log" level="error" desc="Script execution failed">
|
|
796
|
-
Script ${error.script} execution failed: ${error.message}
|
|
802
|
+
<field name="message">Script ${error.script} execution failed: ${error.message}</field>
|
|
797
803
|
</block>
|
|
798
804
|
</catch>
|
|
799
805
|
<catch on="stage_abort">
|
|
800
806
|
<block type="event" id="EH1-E3" action="log" level="error" desc="Stage aborted">
|
|
801
|
-
Stage ${error.stage} execution aborted: ${error.message}
|
|
807
|
+
<field name="message">Stage ${error.stage} execution aborted: ${error.message}</field>
|
|
802
808
|
</block>
|
|
803
809
|
<block type="event" id="EH1-E4" action="log" level="warn" desc="High failure rate">
|
|
804
|
-
Failure rate exceeds 50%, terminating entire pipeline
|
|
810
|
+
<field name="message">Failure rate exceeds 50%, terminating entire pipeline</field>
|
|
805
811
|
</block>
|
|
806
812
|
</catch>
|
|
807
813
|
</block>
|
|
@@ -820,6 +826,7 @@ Failure rate exceeds 50%, terminating entire pipeline
|
|
|
820
826
|
<field name="graph_root" from="${graph_root}" type="string" desc="Graph data output directory"/>
|
|
821
827
|
</block>
|
|
822
828
|
</workflow>
|
|
829
|
+
```
|
|
823
830
|
|
|
824
831
|
---
|
|
825
832
|
|
|
@@ -38,8 +38,10 @@ For each platform, generates:
|
|
|
38
38
|
|
|
39
39
|
## Workflow
|
|
40
40
|
|
|
41
|
-
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `docs/rules/xml-workflow-spec.md`
|
|
41
|
+
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `speccrew-workspace/docs/rules/xml-workflow-spec.md`
|
|
42
42
|
|
|
43
|
+
```xml
|
|
44
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
43
45
|
<workflow id="identify-entries-main" status="pending" version="1.0" desc="Identify business module entry directories for each platform">
|
|
44
46
|
|
|
45
47
|
<!-- ============================================================
|
|
@@ -166,7 +168,9 @@ For each platform, generates:
|
|
|
166
168
|
<branch test="${validation_result.status} == 'failed'">
|
|
167
169
|
<block type="error-handler" id="EH1" desc="Handle validation failure">
|
|
168
170
|
<catch error-type="validation_failed">
|
|
169
|
-
<block type="event" id="E1" action="log" level="warn" desc="Log validation failure">
|
|
171
|
+
<block type="event" id="E1" action="log" level="warn" desc="Log validation failure">
|
|
172
|
+
<field name="message">Entry directory recognition failed for platform ${platform.platformId}</field>
|
|
173
|
+
</block>
|
|
170
174
|
<block type="task" id="B7" action="analyze" desc="Re-analyze the directory tree due to validation failure">
|
|
171
175
|
<field name="input" value="${directory_tree}"/>
|
|
172
176
|
<field name="output" var="re_analyzed_entries"/>
|
|
@@ -175,7 +179,9 @@ For each platform, generates:
|
|
|
175
179
|
</block>
|
|
176
180
|
</branch>
|
|
177
181
|
<branch test="${validation_result.status} == 'passed'">
|
|
178
|
-
<block type="event" id="E2" action="log" level="info" desc="Log validation success">
|
|
182
|
+
<block type="event" id="E2" action="log" level="info" desc="Log validation success">
|
|
183
|
+
<field name="message">Platform ${platform.platformId} entry-dirs validation passed</field>
|
|
184
|
+
</block>
|
|
179
185
|
</branch>
|
|
180
186
|
</block>
|
|
181
187
|
|
|
@@ -192,6 +198,7 @@ For each platform, generates:
|
|
|
192
198
|
</block>
|
|
193
199
|
|
|
194
200
|
</workflow>
|
|
201
|
+
```
|
|
195
202
|
|
|
196
203
|
## Output JSON Format
|
|
197
204
|
|
|
@@ -76,8 +76,10 @@ Analyze one specific UI feature from source code, extract business functionality
|
|
|
76
76
|
|
|
77
77
|
## Workflow
|
|
78
78
|
|
|
79
|
-
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `docs/rules/xml-workflow-spec.md`
|
|
79
|
+
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `speccrew-workspace/docs/rules/xml-workflow-spec.md`
|
|
80
80
|
|
|
81
|
+
```xml
|
|
82
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
81
83
|
<workflow id="ui-feature-analysis" version="1.0" status="pending" desc="UI feature analysis workflow">
|
|
82
84
|
|
|
83
85
|
<!-- ==================== INPUT PARAMETERS ==================== -->
|
|
@@ -133,7 +135,7 @@ Analyze one specific UI feature from source code, extract business functionality
|
|
|
133
135
|
<block type="gateway" id="G0" mode="exclusive" desc="Check analyzed status">
|
|
134
136
|
<branch test="${analyzed} == true" name="Already analyzed">
|
|
135
137
|
<block type="event" id="E0a" action="log" level="info" desc="Skip already analyzed feature">
|
|
136
|
-
Step 0 Status: SKIPPED (already analyzed)
|
|
138
|
+
<field name="message">Step 0 Status: SKIPPED (already analyzed)</field>
|
|
137
139
|
</block>
|
|
138
140
|
<block type="output" id="O0a" desc="Skip output">
|
|
139
141
|
<field name="status" value="skipped"/>
|
|
@@ -145,7 +147,7 @@ Step 0 Status: SKIPPED (already analyzed)
|
|
|
145
147
|
</branch>
|
|
146
148
|
<branch test="${analyzed} == false" name="Proceed with analysis">
|
|
147
149
|
<block type="event" id="E0b" action="log" level="info" desc="Proceed with analysis">
|
|
148
|
-
Step 0 Status: PROCEEDING (analysis required)
|
|
150
|
+
<field name="message">Step 0 Status: PROCEEDING (analysis required)</field>
|
|
149
151
|
</block>
|
|
150
152
|
</branch>
|
|
151
153
|
</block>
|
|
@@ -183,7 +185,7 @@ Step 0 Status: PROCEEDING (analysis required)
|
|
|
183
185
|
<field name="verify" value="${templateContent} != null AND ${templateContent} != ''"/>
|
|
184
186
|
</block>
|
|
185
187
|
<block type="event" id="E1" action="log" level="info" desc="Log template read">
|
|
186
|
-
Step 1 Status: COMPLETED - Read template for ${platform_type}/${platform_subtype}
|
|
188
|
+
<field name="message">Step 1 Status: COMPLETED - Read template for ${platform_type}/${platform_subtype}</field>
|
|
187
189
|
</block>
|
|
188
190
|
</sequence>
|
|
189
191
|
|
|
@@ -211,7 +213,7 @@ Step 1 Status: COMPLETED - Read template for ${platform_type}/${platform_subtype
|
|
|
211
213
|
<field name="verify" value="${sourceContent} != null"/>
|
|
212
214
|
</block>
|
|
213
215
|
<block type="event" id="E2" action="log" level="info" desc="Log source analysis">
|
|
214
|
-
Step 2 Status: COMPLETED - Read ${sourcePath}, Analyzed ${componentCount} components, ${eventCount} events
|
|
216
|
+
<field name="message">Step 2 Status: COMPLETED - Read ${sourcePath}, Analyzed ${componentCount} components, ${eventCount} events</field>
|
|
215
217
|
</block>
|
|
216
218
|
</sequence>
|
|
217
219
|
|
|
@@ -251,7 +253,7 @@ Step 2 Status: COMPLETED - Read ${sourcePath}, Analyzed ${componentCount} compon
|
|
|
251
253
|
<field name="verify" value="${flows.length} > 0 OR ${wireframes.length} > 0"/>
|
|
252
254
|
</block>
|
|
253
255
|
<block type="event" id="E3" action="log" level="info" desc="Log feature extraction">
|
|
254
|
-
Step 3 Status: COMPLETED - Extracted ${wireframes.length} wireframes, ${flows.length} business flows
|
|
256
|
+
<field name="message">Step 3 Status: COMPLETED - Extracted ${wireframes.length} wireframes, ${flows.length} business flows</field>
|
|
255
257
|
</block>
|
|
256
258
|
</sequence>
|
|
257
259
|
|
|
@@ -277,7 +279,7 @@ Step 3 Status: COMPLETED - Extracted ${wireframes.length} wireframes, ${flows.le
|
|
|
277
279
|
</block>
|
|
278
280
|
|
|
279
281
|
<block type="event" id="E4" action="log" level="info" desc="Log reference search">
|
|
280
|
-
Step 4 Status: COMPLETED - Found ${referencingPages.length} referencing pages
|
|
282
|
+
<field name="message">Step 4 Status: COMPLETED - Found ${referencingPages.length} referencing pages</field>
|
|
281
283
|
</block>
|
|
282
284
|
</sequence>
|
|
283
285
|
|
|
@@ -301,7 +303,7 @@ Step 4 Status: COMPLETED - Found ${referencingPages.length} referencing pages
|
|
|
301
303
|
<field name="verify" value="file.exists(${documentPath})"/>
|
|
302
304
|
</block>
|
|
303
305
|
<block type="event" id="E5a" action="log" level="info" desc="Log template copy">
|
|
304
|
-
Step 5a Status: COMPLETED - Template copied to ${documentPath}
|
|
306
|
+
<field name="message">Step 5a Status: COMPLETED - Template copied to ${documentPath}</field>
|
|
305
307
|
</block>
|
|
306
308
|
</sequence>
|
|
307
309
|
|
|
@@ -367,14 +369,14 @@ Step 5a Status: COMPLETED - Template copied to ${documentPath}
|
|
|
367
369
|
<field name="verify" value="all.sections.filled"/>
|
|
368
370
|
</block>
|
|
369
371
|
<block type="event" id="E5b" action="log" level="info" desc="Log section filling">
|
|
370
|
-
Step 5b Status: COMPLETED - All sections filled using search_replace
|
|
372
|
+
<field name="message">Step 5b Status: COMPLETED - All sections filled using search_replace</field>
|
|
371
373
|
</block>
|
|
372
374
|
</sequence>
|
|
373
375
|
|
|
374
376
|
<!-- ==================== STEP 6: REPORT RESULTS ==================== -->
|
|
375
377
|
<sequence id="S6" name="Step 6: Report Results" status="pending" desc="Report analysis results">
|
|
376
378
|
<block type="event" id="E6" action="log" level="info" desc="Log final status">
|
|
377
|
-
Step 6 Status: COMPLETED - Analysis success: Successfully analyzed ${fileName} feature from ${sourcePath}
|
|
379
|
+
<field name="message">Step 6 Status: COMPLETED - Analysis success: Successfully analyzed ${fileName} feature from ${sourcePath}</field>
|
|
378
380
|
</block>
|
|
379
381
|
</sequence>
|
|
380
382
|
|
|
@@ -395,33 +397,34 @@ Step 6 Status: COMPLETED - Analysis success: Successfully analyzed ${fileName} f
|
|
|
395
397
|
</try>
|
|
396
398
|
<catch error-type="file-not-found">
|
|
397
399
|
<block type="event" id="EH1-E1" action="log" level="error" desc="File not found error">
|
|
398
|
-
Source file not found: ${sourcePath}
|
|
400
|
+
<field name="message">Source file not found: ${sourcePath}</field>
|
|
399
401
|
</block>
|
|
400
402
|
<field name="status" value="failed"/>
|
|
401
403
|
<field name="message" value="Source file not found: ${sourcePath}"/>
|
|
402
404
|
</catch>
|
|
403
405
|
<catch error-type="template-error">
|
|
404
406
|
<block type="event" id="EH1-E2" action="log" level="error" desc="Template error">
|
|
405
|
-
Template processing error
|
|
407
|
+
<field name="message">Template processing error</field>
|
|
406
408
|
</block>
|
|
407
409
|
<field name="status" value="failed"/>
|
|
408
410
|
<field name="message" value="Failed to process template"/>
|
|
409
411
|
</catch>
|
|
410
412
|
<catch error-type="validation-error">
|
|
411
413
|
<block type="event" id="EH1-E3" action="log" level="error" desc="Validation error">
|
|
412
|
-
Validation failed: ${error.message}
|
|
414
|
+
<field name="message">Validation failed: ${error.message}</field>
|
|
413
415
|
</block>
|
|
414
416
|
<field name="status" value="partial"/>
|
|
415
417
|
<field name="message" value="Analysis completed with validation errors"/>
|
|
416
418
|
</catch>
|
|
417
419
|
<finally>
|
|
418
420
|
<block type="event" id="EH1-E4" action="log" level="info" desc="Workflow completed">
|
|
419
|
-
Workflow execution completed
|
|
421
|
+
<field name="message">Workflow execution completed</field>
|
|
420
422
|
</block>
|
|
421
423
|
</finally>
|
|
422
424
|
</block>
|
|
423
425
|
|
|
424
426
|
</workflow>
|
|
427
|
+
```
|
|
425
428
|
|
|
426
429
|
## Constraints
|
|
427
430
|
|
|
@@ -44,8 +44,10 @@ This skill automatically adapts to the user's input language. All documentation
|
|
|
44
44
|
|
|
45
45
|
## Workflow
|
|
46
46
|
|
|
47
|
-
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `docs/rules/xml-workflow-spec.md`
|
|
47
|
+
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `speccrew-workspace/docs/rules/xml-workflow-spec.md`
|
|
48
48
|
|
|
49
|
+
```xml
|
|
50
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
49
51
|
<workflow id="ui-knowledge-graph-construction" version="1.0" status="pending" desc="Construct graph data from UI analysis results">
|
|
50
52
|
|
|
51
53
|
<!-- ============================================================
|
|
@@ -102,7 +104,7 @@ This skill automatically adapts to the user's input language. All documentation
|
|
|
102
104
|
</block>
|
|
103
105
|
|
|
104
106
|
<block type="event" id="E1" action="log" level="info" desc="Log Step 1 completion">
|
|
105
|
-
Step 1 Status: COMPLETED - Read ${sourcePath}, found ${apiImports.count} APIs, ${componentUsage.count} components, ${navigationPatterns.count} navigations
|
|
107
|
+
<field name="message">Step 1 Status: COMPLETED - Read ${sourcePath}, found ${apiImports.count} APIs, ${componentUsage.count} components, ${navigationPatterns.count} navigations</field>
|
|
106
108
|
</block>
|
|
107
109
|
|
|
108
110
|
<block type="checkpoint" id="CP1" name="step-1-read-source" desc="Source file read complete">
|
|
@@ -143,7 +145,7 @@ Step 1 Status: COMPLETED - Read ${sourcePath}, found ${apiImports.count} APIs, $
|
|
|
143
145
|
</block>
|
|
144
146
|
|
|
145
147
|
<block type="event" id="E2" action="log" level="info" desc="Log Step 2 completion">
|
|
146
|
-
Step 2 Status: COMPLETED - Constructed ${nodeCount} nodes
|
|
148
|
+
<field name="message">Step 2 Status: COMPLETED - Constructed ${nodeCount} nodes</field>
|
|
147
149
|
</block>
|
|
148
150
|
|
|
149
151
|
<block type="checkpoint" id="CP2" name="step-2-construct-nodes" desc="Graph nodes constructed">
|
|
@@ -193,7 +195,7 @@ Step 2 Status: COMPLETED - Constructed ${nodeCount} nodes
|
|
|
193
195
|
</block>
|
|
194
196
|
|
|
195
197
|
<block type="event" id="E3" action="log" level="info" desc="Log Step 3 completion">
|
|
196
|
-
Step 3 Status: COMPLETED - Constructed ${edgeCount} edges (${apiEdges.count} API calls, ${navEdges.count} navigations, ${useEdges.count} component uses)
|
|
198
|
+
<field name="message">Step 3 Status: COMPLETED - Constructed ${edgeCount} edges (${apiEdges.count} API calls, ${navEdges.count} navigations, ${useEdges.count} component uses)</field>
|
|
197
199
|
</block>
|
|
198
200
|
|
|
199
201
|
<block type="checkpoint" id="CP3" name="step-3-construct-edges" desc="Graph edges constructed">
|
|
@@ -232,7 +234,7 @@ Step 3 Status: COMPLETED - Constructed ${edgeCount} edges (${apiEdges.count} API
|
|
|
232
234
|
</block>
|
|
233
235
|
|
|
234
236
|
<block type="event" id="E4" action="log" level="info" desc="Log Step 4 completion">
|
|
235
|
-
Step 4 Status: COMPLETED - Graph JSON written to ${completed_dir}/${markerFilename}.graph.json
|
|
237
|
+
<field name="message">Step 4 Status: COMPLETED - Graph JSON written to ${completed_dir}/${markerFilename}.graph.json</field>
|
|
236
238
|
</block>
|
|
237
239
|
|
|
238
240
|
<block type="checkpoint" id="CP4" name="step-4-write-graph-json" desc="Graph JSON written">
|
|
@@ -265,7 +267,7 @@ Step 4 Status: COMPLETED - Graph JSON written to ${completed_dir}/${markerFilena
|
|
|
265
267
|
</block>
|
|
266
268
|
|
|
267
269
|
<block type="event" id="E5" action="log" level="info" desc="Log Step 5 completion">
|
|
268
|
-
Step 5 Status: COMPLETED - Graph completion marker written to ${completed_dir}/${markerFilename}.graph-done.json
|
|
270
|
+
<field name="message">Step 5 Status: COMPLETED - Graph completion marker written to ${completed_dir}/${markerFilename}.graph-done.json</field>
|
|
269
271
|
</block>
|
|
270
272
|
|
|
271
273
|
<block type="checkpoint" id="CP5" name="step-5-write-marker" desc="Completion marker written">
|
|
@@ -300,6 +302,7 @@ Step 5 Status: COMPLETED - Graph completion marker written to ${completed_dir}/$
|
|
|
300
302
|
</block>
|
|
301
303
|
|
|
302
304
|
</workflow>
|
|
305
|
+
```
|
|
303
306
|
|
|
304
307
|
## Node Structure Reference
|
|
305
308
|
|
|
@@ -68,8 +68,10 @@ Extract and aggregate **UI design patterns** from bizs pipeline analyzed feature
|
|
|
68
68
|
|
|
69
69
|
## Workflow
|
|
70
70
|
|
|
71
|
-
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `docs/rules/xml-workflow-spec.md`
|
|
71
|
+
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `speccrew-workspace/docs/rules/xml-workflow-spec.md`
|
|
72
72
|
|
|
73
|
+
```xml
|
|
74
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
73
75
|
<workflow id="ui-style-extract-main" status="pending" version="1.0" desc="Extract and aggregate UI design patterns from feature documents">
|
|
74
76
|
|
|
75
77
|
<!-- ============================================================
|
|
@@ -115,7 +117,9 @@ Extract and aggregate **UI design patterns** from bizs pipeline analyzed feature
|
|
|
115
117
|
============================================================ -->
|
|
116
118
|
<block type="gateway" id="G1" mode="exclusive" desc="Check platform type for UI pattern extraction">
|
|
117
119
|
<branch test="${platform_type} NOT IN ['web', 'mobile', 'desktop']" name="Backend platform">
|
|
118
|
-
<block type="event" id="E1" action="log" level="info" desc="Log skip reason">
|
|
120
|
+
<block type="event" id="E1" action="log" level="info" desc="Log skip reason">
|
|
121
|
+
<field name="message">Skipping skill: backend platforms do not have UI patterns</field>
|
|
122
|
+
</block>
|
|
119
123
|
<block type="task" id="B1" action="analyze" desc="Return skip status">
|
|
120
124
|
<field name="status" value="skipped"/>
|
|
121
125
|
<field name="reason" value="Backend platform does not have UI patterns"/>
|
|
@@ -210,7 +214,9 @@ Extract and aggregate **UI design patterns** from bizs pipeline analyzed feature
|
|
|
210
214
|
============================================================ -->
|
|
211
215
|
<block type="gateway" id="G3" mode="exclusive" desc="Check if patterns were identified">
|
|
212
216
|
<branch test="${identified_patterns.length} == 0" name="No patterns">
|
|
213
|
-
<block type="event" id="E2" action="log" level="warn" desc="Log no patterns">
|
|
217
|
+
<block type="event" id="E2" action="log" level="warn" desc="Log no patterns">
|
|
218
|
+
<field name="message">No patterns identified from feature documents</field>
|
|
219
|
+
</block>
|
|
214
220
|
<block type="task" id="B8" action="analyze" desc="Return empty result">
|
|
215
221
|
<field name="status" value="completed"/>
|
|
216
222
|
<field name="platform_id" value="${platform_id}"/>
|
|
@@ -299,7 +305,9 @@ Extract and aggregate **UI design patterns** from bizs pipeline analyzed feature
|
|
|
299
305
|
|
|
300
306
|
</branch>
|
|
301
307
|
<branch test="${completed_features.length} == 0" name="No completed features">
|
|
302
|
-
<block type="event" id="E3" action="log" level="warn" desc="Log no features">
|
|
308
|
+
<block type="event" id="E3" action="log" level="warn" desc="Log no features">
|
|
309
|
+
<field name="message">No completed features found - returning empty result</field>
|
|
310
|
+
</block>
|
|
303
311
|
<block type="task" id="B15" action="analyze" desc="Return empty summary">
|
|
304
312
|
<field name="status" value="completed"/>
|
|
305
313
|
<field name="platform_id" value="${platform_id}"/>
|
|
@@ -324,6 +332,7 @@ Extract and aggregate **UI design patterns** from bizs pipeline analyzed feature
|
|
|
324
332
|
</block>
|
|
325
333
|
|
|
326
334
|
</workflow>
|
|
335
|
+
```
|
|
327
336
|
|
|
328
337
|
## Generation Rules
|
|
329
338
|
|