speccrew 0.6.69 → 0.7.0

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 (134) hide show
  1. package/.speccrew/agents/speccrew-task-worker.md +1 -1
  2. package/.speccrew/agents/speccrew-team-leader.md +336 -189
  3. package/.speccrew/skills/speccrew-agentflow-manager/SKILL.md +161 -0
  4. package/.speccrew/skills/speccrew-agentflow-manager/workflow.agentflow.xml +347 -0
  5. package/.speccrew/skills/speccrew-deploy-build/SKILL.md +3 -56
  6. package/.speccrew/skills/speccrew-deploy-build/workflow.agentflow.xml +125 -0
  7. package/.speccrew/skills/speccrew-deploy-migrate/SKILL.md +3 -64
  8. package/.speccrew/skills/speccrew-deploy-migrate/workflow.agentflow.xml +135 -0
  9. package/.speccrew/skills/speccrew-deploy-smoke-test/SKILL.md +4 -156
  10. package/.speccrew/skills/speccrew-deploy-smoke-test/workflow.agentflow.xml +178 -0
  11. package/.speccrew/skills/speccrew-deploy-startup/SKILL.md +3 -135
  12. package/.speccrew/skills/speccrew-deploy-startup/workflow.agentflow.xml +223 -0
  13. package/.speccrew/skills/speccrew-dev-backend/SKILL.md +10 -2
  14. package/.speccrew/skills/speccrew-dev-backend/workflow.agentflow.xml +254 -0
  15. package/.speccrew/skills/speccrew-dev-desktop-electron/SKILL.md +10 -2
  16. package/.speccrew/skills/speccrew-dev-desktop-electron/workflow.agentflow.xml +259 -0
  17. package/.speccrew/skills/speccrew-dev-desktop-tauri/SKILL.md +10 -2
  18. package/.speccrew/skills/speccrew-dev-desktop-tauri/workflow.agentflow.xml +245 -0
  19. package/.speccrew/skills/speccrew-dev-frontend/SKILL.md +10 -2
  20. package/.speccrew/skills/speccrew-dev-frontend/workflow.agentflow.xml +262 -0
  21. package/.speccrew/skills/speccrew-dev-mobile/SKILL.md +10 -2
  22. package/.speccrew/skills/speccrew-dev-mobile/workflow.agentflow.xml +244 -0
  23. package/.speccrew/skills/speccrew-dev-review-backend/SKILL.md +10 -2
  24. package/.speccrew/skills/speccrew-dev-review-backend/workflow.agentflow.xml +251 -0
  25. package/.speccrew/skills/speccrew-dev-review-desktop/SKILL.md +10 -2
  26. package/.speccrew/skills/speccrew-dev-review-desktop/workflow.agentflow.xml +214 -0
  27. package/.speccrew/skills/speccrew-dev-review-frontend/SKILL.md +10 -2
  28. package/.speccrew/skills/speccrew-dev-review-frontend/workflow.agentflow.xml +213 -0
  29. package/.speccrew/skills/speccrew-dev-review-mobile/SKILL.md +10 -2
  30. package/.speccrew/skills/speccrew-dev-review-mobile/workflow.agentflow.xml +214 -0
  31. package/.speccrew/skills/speccrew-fd-api-contract/SKILL.md +7 -1
  32. package/.speccrew/skills/speccrew-fd-api-contract/workflow.agentflow.xml +222 -0
  33. package/.speccrew/skills/speccrew-fd-feature-analyze/SKILL.md +7 -1
  34. package/.speccrew/skills/speccrew-fd-feature-analyze/workflow.agentflow.xml +223 -0
  35. package/.speccrew/skills/speccrew-fd-feature-design/SKILL.md +7 -1
  36. package/.speccrew/skills/speccrew-fd-feature-design/workflow.agentflow.xml +322 -0
  37. package/.speccrew/skills/speccrew-get-timestamp/SKILL.md +3 -39
  38. package/.speccrew/skills/speccrew-get-timestamp/workflow.agentflow.xml +43 -0
  39. package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/SKILL.md +57 -508
  40. package/.speccrew/skills/{speccrew-knowledge-bizs-api-analyze-xml/SKILL.md → speccrew-knowledge-bizs-api-analyze/workflow.agentflow.xml} +1 -154
  41. package/.speccrew/skills/speccrew-knowledge-bizs-api-graph/SKILL.md +73 -283
  42. package/.speccrew/skills/{speccrew-knowledge-bizs-api-graph-xml/SKILL.md → speccrew-knowledge-bizs-api-graph/workflow.agentflow.xml} +0 -298
  43. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/SKILL.md +931 -801
  44. package/.speccrew/skills/{speccrew-knowledge-bizs-dispatch-xml/SKILL.md → speccrew-knowledge-bizs-dispatch/workflow.agentflow.xml} +42 -272
  45. package/.speccrew/skills/speccrew-knowledge-bizs-identify-entries/SKILL.md +263 -71
  46. package/.speccrew/skills/{speccrew-knowledge-bizs-identify-entries-xml/SKILL.md → speccrew-knowledge-bizs-identify-entries/workflow.agentflow.xml} +8 -184
  47. package/.speccrew/skills/speccrew-knowledge-bizs-init-features/SKILL.md +200 -181
  48. package/.speccrew/skills/{speccrew-knowledge-bizs-init-features-xml/SKILL.md → speccrew-knowledge-bizs-init-features/workflow.agentflow.xml} +7 -134
  49. package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/SKILL.md +5 -89
  50. package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/workflow.agentflow.xml +129 -0
  51. package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/SKILL.md +454 -326
  52. package/.speccrew/skills/{speccrew-knowledge-bizs-ui-analyze-xml/SKILL.md → speccrew-knowledge-bizs-ui-analyze/workflow.agentflow.xml} +8 -128
  53. package/.speccrew/skills/speccrew-knowledge-bizs-ui-graph/SKILL.md +302 -247
  54. package/.speccrew/skills/{speccrew-knowledge-bizs-ui-graph-xml/SKILL.md → speccrew-knowledge-bizs-ui-graph/workflow.agentflow.xml} +7 -199
  55. package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract/SKILL.md +267 -156
  56. package/.speccrew/skills/{speccrew-knowledge-bizs-ui-style-extract-xml/SKILL.md → speccrew-knowledge-bizs-ui-style-extract/workflow.agentflow.xml} +7 -151
  57. package/.speccrew/skills/speccrew-knowledge-graph-query/SKILL.md +3 -122
  58. package/.speccrew/skills/speccrew-knowledge-graph-query/workflow.agentflow.xml +106 -0
  59. package/.speccrew/skills/speccrew-knowledge-graph-write/SKILL.md +3 -80
  60. package/.speccrew/skills/speccrew-knowledge-graph-write/workflow.agentflow.xml +152 -0
  61. package/.speccrew/skills/speccrew-knowledge-module-summarize/SKILL.md +371 -265
  62. package/.speccrew/skills/{speccrew-knowledge-module-summarize-xml/SKILL.md → speccrew-knowledge-module-summarize/workflow.agentflow.xml} +7 -197
  63. package/.speccrew/skills/speccrew-knowledge-system-summarize/SKILL.md +45 -333
  64. package/.speccrew/skills/{speccrew-knowledge-system-summarize-xml/SKILL.md → speccrew-knowledge-system-summarize/workflow.agentflow.xml} +0 -177
  65. package/.speccrew/skills/speccrew-knowledge-techs-dispatch/SKILL.md +174 -727
  66. package/.speccrew/skills/{speccrew-knowledge-techs-dispatch-xml/SKILL.md → speccrew-knowledge-techs-dispatch/workflow.agentflow.xml} +10 -351
  67. package/.speccrew/skills/speccrew-knowledge-techs-generate/SKILL.md +20 -150
  68. package/.speccrew/skills/{speccrew-knowledge-techs-generate-xml/SKILL.md → speccrew-knowledge-techs-generate/workflow.agentflow.xml} +0 -169
  69. package/.speccrew/skills/speccrew-knowledge-techs-generate-conventions/SKILL.md +75 -587
  70. package/.speccrew/skills/{speccrew-knowledge-techs-generate-conventions-xml/SKILL.md → speccrew-knowledge-techs-generate-conventions/workflow.agentflow.xml} +0 -153
  71. package/.speccrew/skills/speccrew-knowledge-techs-generate-quality/SKILL.md +463 -297
  72. package/.speccrew/skills/{speccrew-knowledge-techs-generate-quality-xml/SKILL.md → speccrew-knowledge-techs-generate-quality/workflow.agentflow.xml} +0 -164
  73. package/.speccrew/skills/speccrew-knowledge-techs-generate-ui-style/SKILL.md +57 -292
  74. package/.speccrew/skills/{speccrew-knowledge-techs-generate-ui-style-xml/SKILL.md → speccrew-knowledge-techs-generate-ui-style/workflow.agentflow.xml} +2 -193
  75. package/.speccrew/skills/speccrew-knowledge-techs-index/SKILL.md +49 -335
  76. package/.speccrew/skills/{speccrew-knowledge-techs-index-xml/SKILL.md → speccrew-knowledge-techs-index/workflow.agentflow.xml} +0 -167
  77. package/.speccrew/skills/speccrew-knowledge-techs-init/SKILL.md +28 -109
  78. package/.speccrew/skills/{speccrew-knowledge-techs-init-xml/SKILL.md → speccrew-knowledge-techs-init/workflow.agentflow.xml} +0 -189
  79. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/SKILL.md +3 -487
  80. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/workflow.agentflow.xml +278 -0
  81. package/.speccrew/skills/speccrew-pm-knowledge-detector/SKILL.md +3 -71
  82. package/.speccrew/skills/speccrew-pm-knowledge-detector/workflow.agentflow.xml +108 -0
  83. package/.speccrew/skills/speccrew-pm-module-initializer/SKILL.md +3 -107
  84. package/.speccrew/skills/speccrew-pm-module-initializer/workflow.agentflow.xml +139 -0
  85. package/.speccrew/skills/speccrew-pm-module-matcher/SKILL.md +3 -115
  86. package/.speccrew/skills/speccrew-pm-module-matcher/workflow.agentflow.xml +146 -0
  87. package/.speccrew/skills/speccrew-pm-requirement-analysis/SKILL.md +3 -343
  88. package/.speccrew/skills/speccrew-pm-requirement-analysis/workflow.agentflow.xml +174 -0
  89. package/.speccrew/skills/speccrew-pm-requirement-assess/SKILL.md +3 -91
  90. package/.speccrew/skills/speccrew-pm-requirement-assess/workflow.agentflow.xml +173 -0
  91. package/.speccrew/skills/speccrew-pm-requirement-clarify/SKILL.md +3 -224
  92. package/.speccrew/skills/speccrew-pm-requirement-clarify/workflow.agentflow.xml +159 -0
  93. package/.speccrew/skills/speccrew-pm-requirement-model/SKILL.md +3 -275
  94. package/.speccrew/skills/speccrew-pm-requirement-model/workflow.agentflow.xml +210 -0
  95. package/.speccrew/skills/speccrew-pm-requirement-simple/SKILL.md +3 -76
  96. package/.speccrew/skills/speccrew-pm-requirement-simple/workflow.agentflow.xml +120 -0
  97. package/.speccrew/skills/speccrew-pm-sub-prd-generate/SKILL.md +7 -1
  98. package/.speccrew/skills/speccrew-pm-sub-prd-generate/workflow.agentflow.xml +218 -0
  99. package/.speccrew/skills/speccrew-sd-backend/SKILL.md +7 -1
  100. package/.speccrew/skills/speccrew-sd-backend/workflow.agentflow.xml +264 -0
  101. package/.speccrew/skills/speccrew-sd-desktop/SKILL.md +7 -1
  102. package/.speccrew/skills/speccrew-sd-desktop/workflow.agentflow.xml +288 -0
  103. package/.speccrew/skills/speccrew-sd-framework-evaluate/SKILL.md +7 -1
  104. package/.speccrew/skills/speccrew-sd-framework-evaluate/workflow.agentflow.xml +235 -0
  105. package/.speccrew/skills/speccrew-sd-frontend/SKILL.md +7 -1
  106. package/.speccrew/skills/speccrew-sd-frontend/workflow.agentflow.xml +299 -0
  107. package/.speccrew/skills/speccrew-sd-mobile/SKILL.md +7 -1
  108. package/.speccrew/skills/speccrew-sd-mobile/workflow.agentflow.xml +301 -0
  109. package/.speccrew/skills/speccrew-test-case-design/SKILL.md +165 -284
  110. package/.speccrew/skills/speccrew-test-case-design/workflow.agentflow.xml +210 -0
  111. package/.speccrew/skills/speccrew-test-code-gen/SKILL.md +204 -324
  112. package/.speccrew/skills/speccrew-test-code-gen/workflow.agentflow.xml +265 -0
  113. package/.speccrew/skills/speccrew-test-reporter/SKILL.md +205 -184
  114. package/.speccrew/skills/speccrew-test-reporter/workflow.agentflow.xml +284 -0
  115. package/.speccrew/skills/speccrew-test-runner/SKILL.md +242 -241
  116. package/.speccrew/skills/speccrew-test-runner/workflow.agentflow.xml +314 -0
  117. package/bin/cli.js +8 -1
  118. package/lib/commands/validate.js +565 -0
  119. package/package.json +1 -1
  120. package/workspace-template/docs/rules/{xml-workflow-spec.md → agentflow-spec.md} +5 -5
  121. package/workspace-template/scripts/validate-agentflow.js +637 -0
  122. package/.speccrew/agents/speccrew-team-leader-xml.md +0 -480
  123. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/STATUS-FORMATS.md +0 -99
  124. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/batch-orchestrator.js +0 -176
  125. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/get-next-batch.js +0 -150
  126. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/get-pending-features.js +0 -106
  127. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/mark-stale.js +0 -249
  128. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/merge-features.js +0 -300
  129. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/process-batch-results.js +0 -915
  130. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/update-feature-status.js +0 -226
  131. package/.speccrew/skills/speccrew-knowledge-bizs-init-features/examples/features.json +0 -34
  132. package/.speccrew/skills/speccrew-knowledge-bizs-init-features/scripts/generate-inventory.js +0 -1087
  133. package/.speccrew/skills/speccrew-knowledge-bizs-init-features/scripts/test-inventory.js +0 -26
  134. package/.speccrew/skills/speccrew-knowledge-techs-dispatch/STATUS-FORMATS.md +0 -550
@@ -1,53 +1,4 @@
1
- ---
2
- name: speccrew-knowledge-bizs-ui-graph-xml
3
- description: Constructs knowledge graph data (nodes, edges, relationships) from UI analysis results using XML workflow blocks. Generates graph JSON files and completion markers for the bizs knowledge pipeline.
4
- tools: Read, Write, Glob, Grep, Bash
5
- ---
6
-
7
- # UI Knowledge Graph Constructor (XML Workflow)
8
-
9
- > **CRITICAL CONSTRAINT**: DO NOT create temporary scripts, batch files, or workaround code files (`.py`, `.bat`, `.sh`, `.ps1`, etc.) under any circumstances.
10
-
11
- Construct knowledge graph data (nodes, edges, relationships) from UI feature analysis results and write completion marker files for the bizs knowledge pipeline.
12
-
13
- ## Language Adaptation
14
-
15
- This skill automatically adapts to the user's input language. All documentation and output will be generated in the same language as the user's query.
16
-
17
- ## Trigger Scenarios
18
-
19
- - "Construct graph data for UI feature {fileName}"
20
- - "Generate graph nodes and edges from UI analysis"
21
- - "Write completion markers for feature {fileName}"
22
-
23
- ## Input Variables
24
-
25
- | Variable | Type | Description | Example |
26
- |----------|------|-------------|---------|
27
- | `{{feature}}` | object | Complete feature object from features.json | - |
28
- | `{{fileName}}` | string | Feature file name | `"index"`, `"UserForm"` |
29
- | `{{sourcePath}}` | string | Relative path to source file | `"frontend-web/src/views/system/user/index.vue"` |
30
- | `{{documentPath}}` | string | Path to generated documentation | `"speccrew-workspace/knowledges/bizs/..."` |
31
- | `{{module}}` | string | Business module name | `"system"`, `"trade"`, `"_root"` |
32
- | `{{platform_type}}` | string | Platform type | `"web"`, `"mobile"` |
33
- | `{{platform_subtype}}` | string | Platform subtype | `"vue"`, `"react"` |
34
- | `{{completed_dir}}` | string | Marker files output directory | `"speccrew-workspace/knowledges/base/sync-state/knowledge-bizs/completed"` |
35
- | `{{sourceFile}}` | string | Source features JSON file name | `"features-web-vue.json"` |
36
- | `{{status}}` | string | Analysis status from UI analysis | `"success"`, `"partial"`, `"failed"` |
37
- | `{{analysisNotes}}` | string | Analysis notes from UI analysis | `"Successfully analyzed..."` |
38
-
39
- ## Output
40
-
41
- **Generated Files (MANDATORY):**
42
- 1. `{{completed_dir}}/{module}-{subpath}-{fileName}.graph.json` - Graph data with nodes and edges
43
- 2. `{{completed_dir}}/{module}-{subpath}-{fileName}.graph-done.json` - Graph completion marker
44
-
45
- ## Workflow
46
-
47
- > **REQUIRED**: Before executing this workflow, read the XML workflow specification: `speccrew-workspace/docs/rules/xml-workflow-spec.md`
48
-
49
- ```xml
50
- <?xml version="1.0" encoding="UTF-8"?>
1
+ <?xml version="1.0" encoding="UTF-8"?>
51
2
  <workflow id="ui-knowledge-graph-construction" version="1.0" status="pending" desc="Construct graph data from UI analysis results">
52
3
 
53
4
  <!-- ============================================================
@@ -70,13 +21,13 @@ This skill automatically adapts to the user's input language. All documentation
70
21
  <!-- ============================================================
71
22
  Global Continuous Execution Rules
72
23
  ============================================================ -->
73
- <block type="rule" id="GLOBAL-R1" level="forbidden" desc="Continuous execution constraints NEVER violate">
24
+ <block type="rule" id="GLOBAL-R1" level="forbidden" desc="Continuous execution constraints 鈥?NEVER violate">
74
25
  <field name="text">DO NOT ask user "Should I continue?" or "How would you like to proceed?" during execution</field>
75
- <field name="text">DO NOT offer options like "Full execution / Partial / Stop" always execute ALL tasks to completion</field>
76
- <field name="text">DO NOT suggest "Due to context window limits, let me pause" complete current task, use checkpoint for resumption</field>
77
- <field name="text">DO NOT estimate workload and suggest breaking it into phases execute ALL items in sequence</field>
78
- <field name="text">DO NOT warn about "large number of files" or "this may take a while" proceed with generation</field>
79
- <field name="text">Context window management: if approaching limit, save progress to checkpoint file and resume do NOT ask user for guidance</field>
26
+ <field name="text">DO NOT offer options like "Full execution / Partial / Stop" 鈥?always execute ALL tasks to completion</field>
27
+ <field name="text">DO NOT suggest "Due to context window limits, let me pause" 鈥?complete current task, use checkpoint for resumption</field>
28
+ <field name="text">DO NOT estimate workload and suggest breaking it into phases 鈥?execute ALL items in sequence</field>
29
+ <field name="text">DO NOT warn about "large number of files" or "this may take a while" 鈥?proceed with generation</field>
30
+ <field name="text">Context window management: if approaching limit, save progress to checkpoint file and resume 鈥?do NOT ask user for guidance</field>
80
31
  </block>
81
32
 
82
33
  <!-- ============================================================
@@ -302,146 +253,3 @@ This skill automatically adapts to the user's input language. All documentation
302
253
  </block>
303
254
 
304
255
  </workflow>
305
- ```
306
-
307
- ## Node Structure Reference
308
-
309
- ```json
310
- {
311
- "id": "page-{module}-{feature-name}",
312
- "type": "page",
313
- "name": "<display name>",
314
- "module": "{{module}}",
315
- "sourcePath": "{{sourcePath}}",
316
- "documentPath": "{{documentPath}}",
317
- "description": "...",
318
- "tags": [...],
319
- "keywords": [...],
320
- "context": {
321
- "route": "...",
322
- "components": [...],
323
- "platform": "{{platform_type}}-{{platform_subtype}}"
324
- }
325
- }
326
- ```
327
-
328
- ## Edge Structure Reference
329
-
330
- ```json
331
- {
332
- "source": "page-{module}-{name}",
333
- "target": "api-{module}-{api-name}",
334
- "type": "calls",
335
- "metadata": {
336
- "trigger": "onClick|onMounted|onSubmit|...",
337
- "method": "getUserList",
338
- "context": "Page initialization - load user list"
339
- }
340
- }
341
- ```
342
-
343
- ## Node ID Naming Convention
344
-
345
- ```
346
- {type}-{module}-{name}
347
-
348
- Examples:
349
- page-system-user-list
350
- page-system-user-detail
351
- component-system-user-form
352
- component-shared-delete-confirm
353
- ```
354
-
355
- ## Marker File Naming Convention
356
-
357
- ```
358
- {completed_dir}/{module}-{subpath}-{fileName}.graph.json
359
- ```
360
-
361
- **Naming Rule Explanation:**
362
-
363
- The marker filename MUST follow the composite naming pattern `{module}-{subpath}-{fileName}` to prevent conflicts between same-named source files.
364
-
365
- **How to Extract Each Component from `{{sourcePath}}`:**
366
-
367
- 1. **module**: Use `{{module}}` input variable directly (e.g., `system`, `trade`, `bpm`)
368
-
369
- 2. **subpath**: Extract the middle path between the platform source root and the file name:
370
- - Remove the top-level directory prefix (e.g., `yudao-ui/yudao-ui-admin-vue3/src/views/`)
371
- - Remove the file name at the end
372
- - Replace path separators (`/`) with hyphens (`-`)
373
- - If the file is at the module root directory, subpath will be empty → omit from filename
374
-
375
- 3. **fileName**: Use `{{fileName}}` input variable (file name WITHOUT extension)
376
-
377
- **Examples:**
378
-
379
- | sourcePath | module | subpath | fileName | Marker Filename |
380
- |------------|--------|---------|----------|-----------------|
381
- | `yudao-ui/.../system/notify/message/index.vue` | `system` | `notify-message` | `index` | `system-notify-message-index.graph.json` |
382
- | `yudao-ui/.../system/user/index.vue` | `system` | `user` | `index` | `system-user-index.graph.json` |
383
- | `yudao-ui/.../bpm/process-instance/index.vue` | `bpm` | `process-instance` | `index` | `bpm-process-instance-index.graph.json` |
384
-
385
- **Special Case - Empty subpath:**
386
- - If the file is directly in the module root directory: `{module}-{fileName}.graph.json`
387
- - Example: `yudao-ui/.../system/index.vue` → `system-index.graph.json`
388
-
389
- ## Edge Types Reference
390
-
391
- | Edge Type | Direction | When to Create |
392
- |-----------|-----------|----------------|
393
- | `calls` | page → api | Page calls an API endpoint |
394
- | `navigates-to` | page → page | Page navigates to another page |
395
- | `uses` | page → component | Page uses a shared/local component |
396
-
397
- ## API Coverage Verification Checklist
398
-
399
- - [ ] List ALL imported API functions from the source file
400
- - [ ] For each imported API, verify there is a corresponding `calls` edge
401
- - [ ] Check event handlers for API calls
402
- - [ ] Check lifecycle hooks for initialization API calls
403
- - [ ] Check status toggles, action buttons for special operation APIs
404
- - [ ] Verify no imported API is left unmapped
405
-
406
- ## Pre-write Verification Checklist
407
-
408
- ### Graph JSON Verification:
409
- - [ ] Filename follows `{module}-{subpath}-{fileName}.graph.json` pattern
410
- - [ ] JSON is valid (no trailing commas, all strings quoted)
411
- - [ ] Root-level `module` field is present
412
- - [ ] `nodes` and `edges` are arrays
413
- - [ ] ALL imported API functions are represented as `calls` edges
414
-
415
- ### Completion Marker Verification:
416
- - [ ] Filename follows `{module}-{subpath}-{fileName}.graph-done.json` pattern
417
- - [ ] JSON is valid
418
- - [ ] `fileName` does NOT contain file extension
419
- - [ ] `sourceFile` matches `features-{platform}.json` pattern
420
- - [ ] `module` field is present and non-empty
421
- - [ ] `documentPath` is `"N/A"` when no document exists (not empty string)
422
- - [ ] `nodeCount` and `edgeCount` match actual graph data
423
-
424
- ## Constraints
425
-
426
- 1. **100% API coverage** - ALL imported API functions MUST be represented as `calls` edges
427
- 2. **Valid JSON format** - Both `.graph.json` and `.graph-done.json` MUST be valid JSON
428
- 3. **Root-level module field** - `.graph.json` MUST include `module` at root level
429
- 4. **Correct filename pattern** - Use `{module}-{subpath}-{fileName}` composite naming
430
- 5. **No file extension in fileName** - The `fileName` field in `.graph-done.json` MUST NOT include extension
431
- 6. **documentPath as N/A** - Use `"N/A"` when no document exists, never empty string
432
-
433
- ## Task Completion Report
434
-
435
- When the task is complete, report the following:
436
-
437
- **Status:** `success` | `partial` | `failed`
438
-
439
- **Summary:**
440
- - Feature: `{{fileName}}`
441
- - Module: `{{module}}`
442
- - Nodes constructed: `{{nodeCount}}`
443
- - Edges constructed: `{{edgeCount}}`
444
-
445
- **Files Generated:**
446
- - `{{completed_dir}}/{marker-filename}.graph.json`
447
- - `{{completed_dir}}/{marker-filename}.graph-done.json`