speccrew 0.1.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 (153) hide show
  1. package/.speccrew/agents/speccrew-feature-designer.md +142 -0
  2. package/.speccrew/agents/speccrew-product-manager.md +61 -0
  3. package/.speccrew/agents/speccrew-system-designer.md +200 -0
  4. package/.speccrew/agents/speccrew-system-developer.md +238 -0
  5. package/.speccrew/agents/speccrew-task-worker.md +80 -0
  6. package/.speccrew/agents/speccrew-team-leader.md +92 -0
  7. package/.speccrew/agents/speccrew-test-manager.md +313 -0
  8. package/.speccrew/skills/speccrew-create-agents/SKILL.md +98 -0
  9. package/.speccrew/skills/speccrew-create-agents/templates/agents/designer-agent.md +54 -0
  10. package/.speccrew/skills/speccrew-create-agents/templates/agents/dev-agent.md +79 -0
  11. package/.speccrew/skills/speccrew-create-agents/templates/agents/test-agent.md +80 -0
  12. package/.speccrew/skills/speccrew-dev-backend/SKILL.md +205 -0
  13. package/.speccrew/skills/speccrew-dev-backend/templates/TASK-RECORD-TEMPLATE.md +118 -0
  14. package/.speccrew/skills/speccrew-dev-desktop/SKILL.md +258 -0
  15. package/.speccrew/skills/speccrew-dev-desktop/templates/TASK-RECORD-TEMPLATE.md +161 -0
  16. package/.speccrew/skills/speccrew-dev-frontend/SKILL.md +202 -0
  17. package/.speccrew/skills/speccrew-dev-frontend/templates/TASK-RECORD-TEMPLATE.md +115 -0
  18. package/.speccrew/skills/speccrew-dev-mobile/SKILL.md +200 -0
  19. package/.speccrew/skills/speccrew-dev-mobile/templates/TASK-RECORD-TEMPLATE.md +125 -0
  20. package/.speccrew/skills/speccrew-fd-api-contract/SKILL.md +73 -0
  21. package/.speccrew/skills/speccrew-fd-api-contract/templates/API-CONTRACT-TEMPLATE.md +96 -0
  22. package/.speccrew/skills/speccrew-fd-feature-design/SKILL.md +395 -0
  23. package/.speccrew/skills/speccrew-fd-feature-design/templates/FEATURE-SPEC-TEMPLATE.md +387 -0
  24. package/.speccrew/skills/speccrew-get-timestamp/SKILL.md +80 -0
  25. package/.speccrew/skills/speccrew-get-timestamp/scripts/get-timestamp.js +35 -0
  26. package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/SKILL.md +1116 -0
  27. package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE-FASTAPI.md +462 -0
  28. package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE-JAVA.md +480 -0
  29. package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE-NET.md +464 -0
  30. package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE.md +480 -0
  31. package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/MODULE-OVERVIEW-TEMPLATE.md +367 -0
  32. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/SKILL.md +667 -0
  33. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/STATUS-FORMATS.md +74 -0
  34. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/batch-orchestrator.js +176 -0
  35. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/get-next-batch.js +150 -0
  36. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/get-pending-features.js +106 -0
  37. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/mark-stale.js +249 -0
  38. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/process-batch-results.js +848 -0
  39. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/update-feature-status.js +226 -0
  40. package/.speccrew/skills/speccrew-knowledge-bizs-init-features/SKILL.md +264 -0
  41. package/.speccrew/skills/speccrew-knowledge-bizs-init-features/examples/features.json +34 -0
  42. package/.speccrew/skills/speccrew-knowledge-bizs-init-features/scripts/generate-inventory.js +867 -0
  43. package/.speccrew/skills/speccrew-knowledge-bizs-init-features/scripts/test-inventory.js +26 -0
  44. package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/SKILL.md +165 -0
  45. package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/scripts/apply-module-mapping.js +208 -0
  46. package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/scripts/extract-module-summary.js +180 -0
  47. package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/scripts/reindex-modules.js +358 -0
  48. package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/SKILL.md +1055 -0
  49. package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-DESKTOP.md +303 -0
  50. package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-ELECTRON.md +327 -0
  51. package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-MINIAPP.md +292 -0
  52. package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-MOBILE.md +281 -0
  53. package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI.md +324 -0
  54. package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract/SKILL.md +270 -0
  55. package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract/templates/COMPONENT-PATTERN-TEMPLATE.md +33 -0
  56. package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract/templates/LAYOUT-PATTERN-TEMPLATE.md +33 -0
  57. package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract/templates/PAGE-TYPE-TEMPLATE.md +33 -0
  58. package/.speccrew/skills/speccrew-knowledge-graph-query/SKILL.md +229 -0
  59. package/.speccrew/skills/speccrew-knowledge-graph-query/scripts/graph-query.js +549 -0
  60. package/.speccrew/skills/speccrew-knowledge-graph-write/SKILL.md +181 -0
  61. package/.speccrew/skills/speccrew-knowledge-graph-write/scripts/graph-write.js +651 -0
  62. package/.speccrew/skills/speccrew-knowledge-module-summarize/SKILL.md +305 -0
  63. package/.speccrew/skills/speccrew-knowledge-module-summarize/templates/MODULE-OVERVIEW-TEMPLATE.md +400 -0
  64. package/.speccrew/skills/speccrew-knowledge-system-summarize/SKILL.md +351 -0
  65. package/.speccrew/skills/speccrew-knowledge-system-summarize/templates/SYSTEM-OVERVIEW-TEMPLATE.md +294 -0
  66. package/.speccrew/skills/speccrew-knowledge-techs-dispatch/SKILL.md +683 -0
  67. package/.speccrew/skills/speccrew-knowledge-techs-dispatch/STATUS-FORMATS.md +550 -0
  68. package/.speccrew/skills/speccrew-knowledge-techs-dispatch/templates/techs-manifest-EXAMPLE.json +35 -0
  69. package/.speccrew/skills/speccrew-knowledge-techs-generate/SKILL.md +1087 -0
  70. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/ARCHITECTURE-TEMPLATE.md +240 -0
  71. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/COLOR-SYSTEM-TEMPLATE.md +68 -0
  72. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/COMPONENT-LIBRARY-TEMPLATE.md +86 -0
  73. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-BUILD-TEMPLATE.md +466 -0
  74. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-DATA-TEMPLATE.md +432 -0
  75. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-DESIGN-TEMPLATE.md +1209 -0
  76. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-DEV-TEMPLATE.md +1433 -0
  77. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-SYSTEM-TEST-TEMPLATE.md +1052 -0
  78. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-UNIT-TEST-TEMPLATE.md +946 -0
  79. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/INDEX-TEMPLATE.md +29 -0
  80. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/PAGE-LAYOUTS-TEMPLATE.md +69 -0
  81. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/PAGE-TYPE-SUMMARY-TEMPLATE.md +74 -0
  82. package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/TECH-STACK-TEMPLATE.md +232 -0
  83. package/.speccrew/skills/speccrew-knowledge-techs-generate-conventions/SKILL.md +628 -0
  84. package/.speccrew/skills/speccrew-knowledge-techs-generate-ui-style/SKILL.md +392 -0
  85. package/.speccrew/skills/speccrew-knowledge-techs-index/SKILL.md +489 -0
  86. package/.speccrew/skills/speccrew-knowledge-techs-index/templates/INDEX-TEMPLATE.md +243 -0
  87. package/.speccrew/skills/speccrew-knowledge-techs-init/SKILL.md +269 -0
  88. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/SKILL.md +562 -0
  89. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/BUSINESS-COMPONENTS-TEMPLATE.md +171 -0
  90. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/COMMON-COMPONENTS-TEMPLATE.md +177 -0
  91. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/COMPONENT-INDIVIDUAL-TEMPLATE.md +80 -0
  92. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/COMPONENT-LIBRARY-TEMPLATE.md +118 -0
  93. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/LAYOUT-INDIVIDUAL-TEMPLATE.md +97 -0
  94. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/LAYOUT-PATTERNS-TEMPLATE.md +208 -0
  95. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/NAVIGATION-PATTERNS-TEMPLATE.md +157 -0
  96. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/PAGE-TYPE-INDIVIDUAL-TEMPLATE.md +123 -0
  97. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/PAGE-TYPE-SUMMARY-TEMPLATE.md +58 -0
  98. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/SPACING-TEMPLATE.md +119 -0
  99. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/STYLE-SYSTEM-TEMPLATE.md +117 -0
  100. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/TYPOGRAPHY-TEMPLATE.md +107 -0
  101. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/UI-STYLE-GUIDE-TEMPLATE.md +171 -0
  102. package/.speccrew/skills/speccrew-pm-requirement-analysis/SKILL.md +434 -0
  103. package/.speccrew/skills/speccrew-pm-requirement-analysis/templates/BIZS-MODELING-TEMPLATE.md +332 -0
  104. package/.speccrew/skills/speccrew-pm-requirement-analysis/templates/PRD-TEMPLATE.md +200 -0
  105. package/.speccrew/skills/speccrew-pm-requirement-assess/SKILL.md +195 -0
  106. package/.speccrew/skills/speccrew-project-diagnosis/SKILL.md +208 -0
  107. package/.speccrew/skills/speccrew-project-diagnosis/templates/DIAGNOSIS-REPORT-TEMPLATE.md +202 -0
  108. package/.speccrew/skills/speccrew-sd-backend/SKILL.md +188 -0
  109. package/.speccrew/skills/speccrew-sd-backend/templates/INDEX-TEMPLATE.md +85 -0
  110. package/.speccrew/skills/speccrew-sd-backend/templates/SD-BACKEND-TEMPLATE.md +269 -0
  111. package/.speccrew/skills/speccrew-sd-desktop/SKILL.md +192 -0
  112. package/.speccrew/skills/speccrew-sd-desktop/templates/INDEX-TEMPLATE.md +271 -0
  113. package/.speccrew/skills/speccrew-sd-desktop/templates/SD-DESKTOP-TEMPLATE.md +673 -0
  114. package/.speccrew/skills/speccrew-sd-frontend/SKILL.md +176 -0
  115. package/.speccrew/skills/speccrew-sd-frontend/templates/INDEX-TEMPLATE.md +184 -0
  116. package/.speccrew/skills/speccrew-sd-frontend/templates/SD-FRONTEND-TEMPLATE.md +382 -0
  117. package/.speccrew/skills/speccrew-sd-mobile/SKILL.md +189 -0
  118. package/.speccrew/skills/speccrew-sd-mobile/templates/INDEX-TEMPLATE.md +219 -0
  119. package/.speccrew/skills/speccrew-sd-mobile/templates/SD-MOBILE-TEMPLATE.md +534 -0
  120. package/.speccrew/skills/speccrew-test-case-design/SKILL.md +284 -0
  121. package/.speccrew/skills/speccrew-test-case-design/templates/TEST-CASE-DESIGN-TEMPLATE.md +263 -0
  122. package/.speccrew/skills/speccrew-test-code-gen/SKILL.md +313 -0
  123. package/.speccrew/skills/speccrew-test-code-gen/templates/TEST-CODE-PLAN-TEMPLATE.md +180 -0
  124. package/.speccrew/skills/speccrew-test-execute/SKILL.md +283 -0
  125. package/.speccrew/skills/speccrew-test-execute/templates/BUG-REPORT-TEMPLATE.md +50 -0
  126. package/.speccrew/skills/speccrew-test-execute/templates/TEST-REPORT-TEMPLATE.md +57 -0
  127. package/.speccrew/skills/speccrew-workflow-diagnose/SKILL.md +155 -0
  128. package/LICENSE +21 -0
  129. package/README.ar.md +318 -0
  130. package/README.en.md +318 -0
  131. package/README.es.md +318 -0
  132. package/README.md +340 -0
  133. package/bin/cli.js +62 -0
  134. package/lib/commands/doctor.js +138 -0
  135. package/lib/commands/init.js +231 -0
  136. package/lib/commands/list.js +114 -0
  137. package/lib/commands/uninstall.js +117 -0
  138. package/lib/commands/update.js +351 -0
  139. package/lib/ide-adapters.js +73 -0
  140. package/lib/utils.js +104 -0
  141. package/package.json +28 -0
  142. package/workspace-template/docs/configs/document-templates.json +667 -0
  143. package/workspace-template/docs/configs/platform-mapping.json +194 -0
  144. package/workspace-template/docs/configs/tech-stack-mappings.json +313 -0
  145. package/workspace-template/docs/configs/validation-rules.json +87 -0
  146. package/workspace-template/docs/rules/mermaid-rule.md +114 -0
  147. package/workspace-template/docs/solutions/Agent/346/212/200/350/203/275/345/256/232/344/271/211+/351/234/200/346/261/202/346/226/207/346/241/243+UML/344/275/277/347/224/250/346/250/241/346/235/277/357/274/210ISA-95/345/205/255/346/256/265/345/274/217/350/236/215/345/220/210/347/211/210/357/274/211.md +586 -0
  148. package/workspace-template/docs/solutions/agent-knowledge-map.md +238 -0
  149. package/workspace-template/docs/solutions/bizs-knowledge-pipeline.md +678 -0
  150. package/workspace-template/docs/solutions/harness.md +410 -0
  151. package/workspace-template/docs/solutions/knowledge-incremental-sync-spec.md +943 -0
  152. package/workspace-template/docs/solutions/techs-knowledge-pipeline.md +803 -0
  153. package/workspace-template/docs/solutions/workspace-structure.md +318 -0
@@ -0,0 +1,550 @@
1
+ # Status File Formats (Techs Pipeline)
2
+
3
+ This document defines the JSON formats for techs pipeline status tracking files.
4
+
5
+ ## File Locations
6
+
7
+ | Stage | File Path |
8
+ |-------|-----------|
9
+ | Stage 2 | `speccrew-workspace/knowledges/base/sync-state/knowledge-techs/stage2-status.json` |
10
+ | Stage 3 | `speccrew-workspace/knowledges/base/sync-state/knowledge-techs/stage3-status.json` |
11
+
12
+ ---
13
+
14
+ ## Stage 2: Platform Document Generation
15
+
16
+ **Generation Timing**: After Stage 2.5 Quality Synchronization completes
17
+
18
+ **Schema**:
19
+ ```json
20
+ {
21
+ "generated_at": "ISO-8601 timestamp",
22
+ "stage": "platform-doc-generation",
23
+ "total_platforms": "number",
24
+ "completed": "number",
25
+ "incomplete": "number",
26
+ "failed": "number",
27
+ "language": "string",
28
+ "quality_checks": {
29
+ "all_required_docs_present": "boolean",
30
+ "language_consistent": "boolean",
31
+ "traceability_verified": "boolean",
32
+ "ui_analyzer_results": {
33
+ "full": ["array of platform_ids"],
34
+ "minimal": ["array of platform_ids"],
35
+ "reference_only": ["array of platform_ids"],
36
+ "not_applicable": ["array of platform_ids"]
37
+ }
38
+ },
39
+ "platforms": [
40
+ {
41
+ "platform_id": "string",
42
+ "platform_type": "string",
43
+ "framework": "string",
44
+ "status": "complete | incomplete | failed",
45
+ "workers": {
46
+ "conventions": {
47
+ "status": "completed | failed",
48
+ "skill": "string",
49
+ "done_file": "string",
50
+ "analysis_file": "string"
51
+ },
52
+ "ui_style": {
53
+ "status": "completed | skipped | failed",
54
+ "skill": "string",
55
+ "done_file": "string",
56
+ "analysis_file": "string"
57
+ }
58
+ },
59
+ "documents_generated": ["array of filenames"],
60
+ "documents_missing": ["array of filenames"],
61
+ "ui_style_level": "full | minimal | reference_only | not_applicable",
62
+ "output_path": "string"
63
+ }
64
+ ]
65
+ }
66
+ ```
67
+
68
+ **Example**:
69
+ ```json
70
+ {
71
+ "generated_at": "2024-01-15T10:30:00Z",
72
+ "stage": "platform-doc-generation",
73
+ "total_platforms": 3,
74
+ "completed": 3,
75
+ "incomplete": 0,
76
+ "failed": 0,
77
+ "language": "zh",
78
+ "quality_checks": {
79
+ "all_required_docs_present": true,
80
+ "language_consistent": true,
81
+ "traceability_verified": true,
82
+ "ui_analyzer_results": {
83
+ "full": ["web-react"],
84
+ "minimal": [],
85
+ "reference_only": [],
86
+ "not_applicable": ["backend-nestjs"]
87
+ }
88
+ },
89
+ "platforms": [
90
+ {
91
+ "platform_id": "web-react",
92
+ "platform_type": "web",
93
+ "framework": "react",
94
+ "status": "complete",
95
+ "workers": {
96
+ "conventions": {
97
+ "status": "completed",
98
+ "skill": "speccrew-knowledge-techs-generate-conventions",
99
+ "done_file": "web-react.done-conventions.json",
100
+ "analysis_file": "web-react.analysis-conventions.json"
101
+ },
102
+ "ui_style": {
103
+ "status": "completed",
104
+ "skill": "speccrew-knowledge-techs-generate-ui-style",
105
+ "done_file": "web-react.done-ui-style.json",
106
+ "analysis_file": "web-react.analysis-ui-style.json"
107
+ }
108
+ },
109
+ "content_quality": "good",
110
+ "documents_generated": [
111
+ "INDEX.md",
112
+ "tech-stack.md",
113
+ "architecture.md",
114
+ "conventions-design.md",
115
+ "conventions-dev.md",
116
+ "conventions-unit-test.md",
117
+ "conventions-system-test.md",
118
+ "conventions-build.md"
119
+ ],
120
+ "documents_missing": [],
121
+ "ui_style_level": "full",
122
+ "ui_style_complete": true,
123
+ "ui_analysis_level": "full",
124
+ "topics_coverage": 83,
125
+ "topics_missing": ["logging"],
126
+ "min_doc_lines": 45,
127
+ "checks": {
128
+ "doc_existence": "pass",
129
+ "language_check": "pass",
130
+ "source_traceability": "pass",
131
+ "content_non_empty": "pass",
132
+ "topic_coverage": "pass",
133
+ "ui_style_completeness": "pass"
134
+ },
135
+ "output_path": "speccrew-workspace/knowledges/techs/web-react/"
136
+ },
137
+ {
138
+ "platform_id": "mobile-uniapp",
139
+ "platform_type": "mobile",
140
+ "framework": "uniapp",
141
+ "status": "complete",
142
+ "workers": {
143
+ "conventions": {
144
+ "status": "completed",
145
+ "skill": "speccrew-knowledge-techs-generate-conventions",
146
+ "done_file": "mobile-uniapp.done-conventions.json",
147
+ "analysis_file": "mobile-uniapp.analysis-conventions.json"
148
+ },
149
+ "ui_style": {
150
+ "status": "completed",
151
+ "skill": "speccrew-knowledge-techs-generate-ui-style",
152
+ "done_file": "mobile-uniapp.done-ui-style.json",
153
+ "analysis_file": "mobile-uniapp.analysis-ui-style.json"
154
+ }
155
+ },
156
+ "content_quality": "warning",
157
+ "documents_generated": [
158
+ "INDEX.md",
159
+ "tech-stack.md",
160
+ "architecture.md",
161
+ "conventions-design.md",
162
+ "conventions-dev.md",
163
+ "conventions-unit-test.md",
164
+ "conventions-system-test.md",
165
+ "conventions-build.md"
166
+ ],
167
+ "documents_missing": [],
168
+ "ui_style_level": "minimal",
169
+ "ui_style_complete": false,
170
+ "ui_analysis_level": "minimal",
171
+ "topics_coverage": 52,
172
+ "topics_missing": ["i18n", "logging", "file_upload"],
173
+ "min_doc_lines": 18,
174
+ "checks": {
175
+ "doc_existence": "pass",
176
+ "language_check": "pass",
177
+ "source_traceability": "pass",
178
+ "content_non_empty": "warning",
179
+ "topic_coverage": "warning",
180
+ "ui_style_completeness": "fail"
181
+ },
182
+ "output_path": "speccrew-workspace/knowledges/techs/mobile-uniapp/"
183
+ },
184
+ {
185
+ "platform_id": "backend-nestjs",
186
+ "platform_type": "backend",
187
+ "framework": "nestjs",
188
+ "status": "complete",
189
+ "workers": {
190
+ "conventions": {
191
+ "status": "completed",
192
+ "skill": "speccrew-knowledge-techs-generate-conventions",
193
+ "done_file": "backend-nestjs.done-conventions.json",
194
+ "analysis_file": "backend-nestjs.analysis-conventions.json"
195
+ },
196
+ "ui_style": {
197
+ "status": "skipped",
198
+ "reason": "Backend platform - ui-style not applicable"
199
+ }
200
+ },
201
+ "content_quality": "good",
202
+ "documents_generated": [
203
+ "INDEX.md",
204
+ "tech-stack.md",
205
+ "architecture.md",
206
+ "conventions-design.md",
207
+ "conventions-dev.md",
208
+ "conventions-unit-test.md",
209
+ "conventions-system-test.md",
210
+ "conventions-build.md",
211
+ "conventions-data.md"
212
+ ],
213
+ "documents_missing": [],
214
+ "ui_style_level": "not_applicable",
215
+ "ui_style_complete": false,
216
+ "ui_analysis_level": "none",
217
+ "topics_coverage": 78,
218
+ "topics_missing": [],
219
+ "min_doc_lines": 62,
220
+ "checks": {
221
+ "doc_existence": "pass",
222
+ "language_check": "pass",
223
+ "source_traceability": "pass",
224
+ "content_non_empty": "pass",
225
+ "topic_coverage": "pass",
226
+ "ui_style_completeness": "not_applicable"
227
+ },
228
+ "output_path": "speccrew-workspace/knowledges/techs/backend-nestjs/"
229
+ }
230
+ ],
231
+ "cross_platform_checks": {
232
+ "coverage_imbalance": true,
233
+ "max_coverage_diff": 31,
234
+ "details": "web-react (83%) vs mobile-uniapp (52%) - difference exceeds 30% threshold"
235
+ },
236
+ "overall_quality": "warning",
237
+ "summary": "3 platforms analyzed. 2 good, 1 warning. mobile-uniapp needs attention: low topic coverage and incomplete ui-style."
238
+ }
239
+ ```
240
+
241
+ ---
242
+
243
+ ## Stage 3: Root Index Generation
244
+
245
+ **Generation Timing**: After Stage 3 Worker completes
246
+
247
+ **Schema**:
248
+ ```json
249
+ {
250
+ "generated_at": "ISO-8601 timestamp",
251
+ "stage": "root-index-generation",
252
+ "status": "completed | failed",
253
+ "platforms_indexed": "number",
254
+ "index_file": "string (path to INDEX.md)"
255
+ }
256
+ ```
257
+
258
+ **Example**:
259
+ ```json
260
+ {
261
+ "generated_at": "2024-01-15T10:35:00Z",
262
+ "stage": "root-index-generation",
263
+ "status": "completed",
264
+ "platforms_indexed": 3,
265
+ "index_file": "speccrew-workspace/knowledges/techs/INDEX.md"
266
+ }
267
+ ```
268
+
269
+ ---
270
+
271
+ ## Field Reference
272
+
273
+ | Field | Type | Description |
274
+ |-------|------|-------------|
275
+ | `generated_at` | string | ISO 8601 timestamp |
276
+ | `stage` | string | Pipeline stage identifier |
277
+ | `total_platforms` | number | Total platforms dispatched (Stage 2) |
278
+ | `completed` | number | Platforms with all required documents (Stage 2) |
279
+ | `incomplete` | number | Platforms with missing required documents (Stage 2) |
280
+ | `failed` | number | Platforms with missing INDEX.md (Stage 2) |
281
+ | `language` | string | Language code used for document generation |
282
+ | `quality_checks` | object | Quality verification results from Stage 2.5 |
283
+ | `quality_checks.all_required_docs_present` | boolean | Whether all platforms have 8 required documents |
284
+ | `quality_checks.language_consistent` | boolean | Whether all documents match the target language |
285
+ | `quality_checks.traceability_verified` | boolean | Whether source traceability (<cite> blocks) verified |
286
+ | `quality_checks.ui_analyzer_results` | object | UI style analysis level per platform category |
287
+ | `quality_checks.ui_analyzer_results.full` | array | Platform IDs with full UI analysis |
288
+ | `quality_checks.ui_analyzer_results.minimal` | array | Platform IDs with minimal UI analysis |
289
+ | `quality_checks.ui_analyzer_results.reference_only` | array | Platform IDs with reference-only UI analysis |
290
+ | `quality_checks.ui_analyzer_results.not_applicable` | array | Backend platform IDs (no UI analysis) |
291
+ | `platforms[].platform_id` | string | Platform identifier |
292
+ | `platforms[].platform_type` | string | Platform type (web, mobile, backend, desktop) |
293
+ | `platforms[].framework` | string | Framework name |
294
+ | `platforms[].status` | string | Platform status: complete, incomplete, or failed |
295
+ | `platforms[].workers` | object | Worker status for conventions and ui-style |
296
+ | `platforms[].workers.conventions` | object | Conventions worker status |
297
+ | `platforms[].workers.conventions.status` | string | `completed` \| `failed` |
298
+ | `platforms[].workers.conventions.skill` | string | Skill name for conventions worker |
299
+ | `platforms[].workers.conventions.done_file` | string | Path to .done-conventions.json |
300
+ | `platforms[].workers.conventions.analysis_file` | string | Path to .analysis-conventions.json |
301
+ | `platforms[].workers.ui_style` | object | UI-style worker status |
302
+ | `platforms[].workers.ui_style.status` | string | `completed` \| `skipped` \| `failed` |
303
+ | `platforms[].workers.ui_style.skill` | string | Skill name for ui-style worker (when not skipped) |
304
+ | `platforms[].workers.ui_style.done_file` | string | Path to .done-ui-style.json (when not skipped) |
305
+ | `platforms[].workers.ui_style.analysis_file` | string | Path to .analysis-ui-style.json (when not skipped) |
306
+ | `platforms[].workers.ui_style.reason` | string | Reason for skipped status (backend platforms) |
307
+ | `platforms[].content_quality` | string | Overall quality: `good` \| `warning` \| `poor` |
308
+ | `platforms[].documents_generated` | array | List of generated document filenames |
309
+ | `platforms[].documents_missing` | array | List of missing required document filenames |
310
+ | `platforms[].ui_style_level` | string | UI analysis level: full, minimal, reference_only, not_applicable |
311
+ | `platforms[].ui_style_complete` | boolean | Whether all 5 ui-style files exist (frontend only) |
312
+ | `platforms[].ui_analysis_level` | string | From .done.json: `full` / `minimal` / `reference_only` / `none` |
313
+ | `platforms[].topics_coverage` | number | 0-100, from analysis.json coverage_percent |
314
+ | `platforms[].topics_missing` | array | List of topic names with status "not_found" |
315
+ | `platforms[].min_doc_lines` | number | Minimum line count across all generated documents |
316
+ | `platforms[].checks` | object | Per-check pass/warning/fail status |
317
+ | `platforms[].checks.doc_existence` | string | Document existence check result |
318
+ | `platforms[].checks.language_check` | string | Language consistency check result |
319
+ | `platforms[].checks.source_traceability` | string | Source traceability check result |
320
+ | `platforms[].checks.content_non_empty` | string | Content non-empty verification result |
321
+ | `platforms[].checks.topic_coverage` | string | Topic coverage verification result |
322
+ | `platforms[].checks.ui_style_completeness` | string | UI style completeness check result |
323
+ | `cross_platform_checks` | object | Cross-platform comparison results (top-level) |
324
+ | `cross_platform_checks.coverage_imbalance` | boolean | Whether coverage difference exceeds threshold |
325
+ | `cross_platform_checks.max_coverage_diff` | number | Maximum coverage difference between platforms |
326
+ | `cross_platform_checks.details` | string | Human-readable comparison details |
327
+ | `overall_quality` | string | Worst quality classification across all platforms |
328
+ | `summary` | string | Human-readable summary of quality status |
329
+ | `platforms_indexed` | number | Number of platforms in root index (Stage 3) |
330
+ | `index_file` | string | Path to generated INDEX.md (Stage 3) |
331
+
332
+ ---
333
+
334
+ ## Document Classification
335
+
336
+ ### Required Documents (8)
337
+ All platforms MUST generate these documents:
338
+
339
+ 1. `INDEX.md` - Platform overview and navigation
340
+ 2. `tech-stack.md` - Technology stack specifications
341
+ 3. `architecture.md` - Architecture patterns and decisions
342
+ 4. `conventions-design.md` - Design conventions and patterns
343
+ 5. `conventions-dev.md` - Development conventions and coding standards
344
+ 6. `conventions-unit-test.md` - Unit testing conventions and practices
345
+ 7. `conventions-system-test.md` - System testing conventions (E2E, integration, API contract)
346
+ 8. `conventions-build.md` - Build configuration and deployment conventions
347
+
348
+ ### Optional Documents (1)
349
+ Generated conditionally based on platform type and data layer detection:
350
+
351
+ - `conventions-data.md` - Data layer conventions (ORM, modeling, caching)
352
+ - **Required for**: `backend` platforms
353
+ - **Optional for**: `web`, `mobile`, `desktop` platforms (only if using ORM/data layer like Prisma, TypeORM, etc.)
354
+
355
+ ### Platform-Specific Directories
356
+
357
+ - `ui-style/` - UI style documentation (frontend platforms only: web, mobile, desktop)
358
+ - `ui-style-guide.md` - Generated by techs Stage 2
359
+ - `styles/` - Generated by techs Stage 2
360
+ - `page-types/`, `components/`, `layouts/` - Populated by bizs pipeline Stage 3.5
361
+
362
+ ---
363
+
364
+ ## Worker Completion Markers
365
+
366
+ After splitting techs-generate into two Workers (conventions + ui-style), completion markers are now separated by worker type.
367
+
368
+ ### {platform_id}.done-conventions.json
369
+
370
+ Created by conventions Worker after completing conventions document generation.
371
+
372
+ ```json
373
+ {
374
+ "platform_id": "web-vue",
375
+ "worker_type": "conventions",
376
+ "status": "completed",
377
+ "documents_generated": [
378
+ "INDEX.md",
379
+ "tech-stack.md",
380
+ "architecture.md",
381
+ "conventions-design.md",
382
+ "conventions-dev.md",
383
+ "conventions-unit-test.md",
384
+ "conventions-system-test.md",
385
+ "conventions-build.md",
386
+ "conventions-data.md"
387
+ ],
388
+ "analysis_file": "web-vue.analysis-conventions.json",
389
+ "completed_at": "2026-04-06T10:30:00Z"
390
+ }
391
+ ```
392
+
393
+ | Field | Type | Required | Description |
394
+ |-------|------|----------|-------------|
395
+ | `platform_id` | string | Yes | Platform identifier |
396
+ | `worker_type` | string | Yes | Always `"conventions"` |
397
+ | `status` | string | Yes | `completed` \| `failed` |
398
+ | `documents_generated` | string[] | Yes | List of generated document filenames |
399
+ | `analysis_file` | string | Yes | Path to corresponding analysis file |
400
+ | `completed_at` | string | Yes | ISO 8601 timestamp |
401
+
402
+ ### {platform_id}.done-ui-style.json
403
+
404
+ Created by ui-style Worker after completing UI style document generation.
405
+
406
+ ```json
407
+ {
408
+ "platform_id": "web-vue",
409
+ "worker_type": "ui-style",
410
+ "status": "completed",
411
+ "ui_analysis_level": "full",
412
+ "documents_generated": [
413
+ "ui-style/ui-style-guide.md",
414
+ "ui-style/page-types/page-type-summary.md",
415
+ "ui-style/components/component-library.md",
416
+ "ui-style/components/common-components.md",
417
+ "ui-style/components/business-components.md",
418
+ "ui-style/layouts/page-layouts.md",
419
+ "ui-style/layouts/navigation-patterns.md",
420
+ "ui-style/styles/color-system.md",
421
+ "ui-style/styles/typography.md",
422
+ "ui-style/styles/spacing-system.md"
423
+ ],
424
+ "analysis_file": "web-vue.analysis-ui-style.json",
425
+ "completed_at": "2026-04-06T10:35:00Z"
426
+ }
427
+ ```
428
+
429
+ | Field | Type | Required | Description |
430
+ |-------|------|----------|-------------|
431
+ | `platform_id` | string | Yes | Platform identifier |
432
+ | `worker_type` | string | Yes | Always `"ui-style"` |
433
+ | `status` | string | Yes | `completed` \| `failed` |
434
+ | `ui_analysis_level` | string | Yes | `full` \| `minimal` \| `reference_only` |
435
+ | `documents_generated` | string[] | Yes | List of generated document filenames |
436
+ | `analysis_file` | string | Yes | Path to corresponding analysis file |
437
+ | `completed_at` | string | Yes | ISO 8601 timestamp |
438
+
439
+ ---
440
+
441
+ ## Analysis Report Formats
442
+
443
+ ### {platform_id}.analysis-conventions.json
444
+
445
+ Created by conventions Worker containing source code coverage analysis for conventions topics.
446
+
447
+ ```json
448
+ {
449
+ "platform_id": "web-vue",
450
+ "platform_type": "web",
451
+ "worker_type": "conventions",
452
+ "analyzed_at": "2026-04-06T10:30:00Z",
453
+ "topics": {
454
+ "i18n": { "status": "found", "files_analyzed": [...], "notes": "..." },
455
+ "authorization": { "status": "found", "files_analyzed": [...], "notes": "..." },
456
+ "menu_registration": { "status": "found", "files_analyzed": [...], "notes": "..." },
457
+ "data_dictionary": { "status": "not_found", "files_analyzed": [], "notes": "..." },
458
+ "logging": { "status": "found", "files_analyzed": [...], "notes": "..." },
459
+ "api_request_layer": { "status": "found", "files_analyzed": [...], "notes": "..." },
460
+ "data_validation": { "status": "found", "files_analyzed": [...], "notes": "..." },
461
+ "file_upload": { "status": "partial", "files_analyzed": [...], "notes": "..." }
462
+ },
463
+ "config_files_analyzed": ["package.json", "tsconfig.json", ".eslintrc.js", ...],
464
+ "source_dirs_scanned": ["src/utils/", "src/store/", "src/router/", ...],
465
+ "documents_generated": ["INDEX.md", "tech-stack.md", ...],
466
+ "coverage_summary": {
467
+ "total_topics": 8,
468
+ "found": 5,
469
+ "not_found": 1,
470
+ "partial": 2,
471
+ "coverage_percent": 75
472
+ }
473
+ }
474
+ ```
475
+
476
+ | Field | Type | Required | Description |
477
+ |-------|------|----------|-------------|
478
+ | `platform_id` | string | Yes | Platform identifier |
479
+ | `platform_type` | string | Yes | Platform type |
480
+ | `worker_type` | string | Yes | Always `"conventions"` |
481
+ | `analyzed_at` | string | Yes | ISO 8601 timestamp |
482
+ | `topics` | object | Yes | Map of topic_name → { status, files_analyzed, notes } |
483
+ | `config_files_analyzed` | string[] | Yes | Config files read during analysis |
484
+ | `source_dirs_scanned` | string[] | Yes | Directories scanned |
485
+ | `documents_generated` | string[] | Yes | Documents created |
486
+ | `coverage_summary` | object | Yes | { total_topics, found, not_found, partial, coverage_percent } |
487
+
488
+ ### {platform_id}.analysis-ui-style.json
489
+
490
+ Created by ui-style Worker containing source code coverage analysis for UI style topics.
491
+
492
+ ```json
493
+ {
494
+ "platform_id": "web-vue",
495
+ "platform_type": "web",
496
+ "worker_type": "ui-style",
497
+ "analyzed_at": "2026-04-06T10:35:00Z",
498
+ "ui_analysis_level": "full",
499
+ "topics": {
500
+ "page_types": { "status": "found", "count": 5, "files_analyzed": [...], "notes": "..." },
501
+ "components": { "status": "found", "common_count": 12, "business_count": 8, "files_analyzed": [...], "notes": "..." },
502
+ "layouts": { "status": "found", "count": 3, "files_analyzed": [...], "notes": "..." },
503
+ "styles": { "status": "found", "files_analyzed": [...], "notes": "..." }
504
+ },
505
+ "source_dirs_scanned": ["src/views/", "src/components/", "src/layouts/", "src/styles/"],
506
+ "documents_generated": ["ui-style/ui-style-guide.md", ...],
507
+ "coverage_summary": {
508
+ "total_topics": 4,
509
+ "found": 4,
510
+ "not_found": 0,
511
+ "partial": 0,
512
+ "coverage_percent": 100
513
+ }
514
+ }
515
+ ```
516
+
517
+ | Field | Type | Required | Description |
518
+ |-------|------|----------|-------------|
519
+ | `platform_id` | string | Yes | Platform identifier |
520
+ | `platform_type` | string | Yes | Platform type |
521
+ | `worker_type` | string | Yes | Always `"ui-style"` |
522
+ | `analyzed_at` | string | Yes | ISO 8601 timestamp |
523
+ | `ui_analysis_level` | string | Yes | `full` \| `minimal` \| `reference_only` |
524
+ | `topics` | object | Yes | Map of topic_name → { status, count/common_count/business_count, files_analyzed, notes } |
525
+ | `source_dirs_scanned` | string[] | Yes | Directories scanned |
526
+ | `documents_generated` | string[] | Yes | Documents created |
527
+ | `coverage_summary` | object | Yes | { total_topics, found, not_found, partial, coverage_percent } |
528
+
529
+ ### File Location
530
+
531
+ All marker files are stored in: `{knowledges_base}/techs/.sync-status/`
532
+
533
+ This directory should be created by the Dispatcher before launching Workers if it doesn't exist.
534
+
535
+ ---
536
+
537
+ ## Platform Completion Status Rules
538
+
539
+ A platform's overall status is determined by the combined status of its workers:
540
+
541
+ | conventions Worker | ui_style Worker | Platform Status | Notes |
542
+ |-------------------|-----------------|-----------------|-------|
543
+ | completed | completed | completed | All docs generated successfully |
544
+ | completed | skipped | completed | Backend platform, ui-style N/A |
545
+ | completed | failed | partial | Conventions usable, ui-style missing |
546
+ | failed | completed | failed | Core docs missing, platform unusable |
547
+ | failed | failed | failed | Complete failure |
548
+ | failed | skipped | failed | Backend platform, core docs missing |
549
+
550
+ **Key rule**: A platform is "completed" only when ALL expected workers have succeeded. For backend platforms, only the conventions worker is expected.
@@ -0,0 +1,35 @@
1
+ {
2
+ "generated_at": "2024-01-15T10:30:00Z",
3
+ "source_path": "/project",
4
+ "language": "zh",
5
+ "platforms": [
6
+ {
7
+ "platform_id": "web-react",
8
+ "platform_type": "web",
9
+ "framework": "react",
10
+ "language": "typescript",
11
+ "source_path": "src/web",
12
+ "config_files": ["package.json", "tsconfig.json", "vite.config.ts"],
13
+ "convention_files": [".eslintrc.js", ".prettierrc"],
14
+ "status": "pending",
15
+ "startedAt": null,
16
+ "completedAt": null,
17
+ "analysisLevel": null,
18
+ "topicsCoverage": null
19
+ },
20
+ {
21
+ "platform_id": "backend-nestjs",
22
+ "platform_type": "backend",
23
+ "framework": "nestjs",
24
+ "language": "typescript",
25
+ "source_path": "src/server",
26
+ "config_files": ["package.json", "nest-cli.json", "tsconfig.json"],
27
+ "convention_files": [".eslintrc.js"],
28
+ "status": "pending",
29
+ "startedAt": null,
30
+ "completedAt": null,
31
+ "analysisLevel": null,
32
+ "topicsCoverage": null
33
+ }
34
+ ]
35
+ }