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.
- package/.speccrew/agents/speccrew-feature-designer.md +142 -0
- package/.speccrew/agents/speccrew-product-manager.md +61 -0
- package/.speccrew/agents/speccrew-system-designer.md +200 -0
- package/.speccrew/agents/speccrew-system-developer.md +238 -0
- package/.speccrew/agents/speccrew-task-worker.md +80 -0
- package/.speccrew/agents/speccrew-team-leader.md +92 -0
- package/.speccrew/agents/speccrew-test-manager.md +313 -0
- package/.speccrew/skills/speccrew-create-agents/SKILL.md +98 -0
- package/.speccrew/skills/speccrew-create-agents/templates/agents/designer-agent.md +54 -0
- package/.speccrew/skills/speccrew-create-agents/templates/agents/dev-agent.md +79 -0
- package/.speccrew/skills/speccrew-create-agents/templates/agents/test-agent.md +80 -0
- package/.speccrew/skills/speccrew-dev-backend/SKILL.md +205 -0
- package/.speccrew/skills/speccrew-dev-backend/templates/TASK-RECORD-TEMPLATE.md +118 -0
- package/.speccrew/skills/speccrew-dev-desktop/SKILL.md +258 -0
- package/.speccrew/skills/speccrew-dev-desktop/templates/TASK-RECORD-TEMPLATE.md +161 -0
- package/.speccrew/skills/speccrew-dev-frontend/SKILL.md +202 -0
- package/.speccrew/skills/speccrew-dev-frontend/templates/TASK-RECORD-TEMPLATE.md +115 -0
- package/.speccrew/skills/speccrew-dev-mobile/SKILL.md +200 -0
- package/.speccrew/skills/speccrew-dev-mobile/templates/TASK-RECORD-TEMPLATE.md +125 -0
- package/.speccrew/skills/speccrew-fd-api-contract/SKILL.md +73 -0
- package/.speccrew/skills/speccrew-fd-api-contract/templates/API-CONTRACT-TEMPLATE.md +96 -0
- package/.speccrew/skills/speccrew-fd-feature-design/SKILL.md +395 -0
- package/.speccrew/skills/speccrew-fd-feature-design/templates/FEATURE-SPEC-TEMPLATE.md +387 -0
- package/.speccrew/skills/speccrew-get-timestamp/SKILL.md +80 -0
- package/.speccrew/skills/speccrew-get-timestamp/scripts/get-timestamp.js +35 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/SKILL.md +1116 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE-FASTAPI.md +462 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE-JAVA.md +480 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE-NET.md +464 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/FEATURE-DETAIL-TEMPLATE.md +480 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/templates/MODULE-OVERVIEW-TEMPLATE.md +367 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/SKILL.md +667 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/STATUS-FORMATS.md +74 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/batch-orchestrator.js +176 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/get-next-batch.js +150 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/get-pending-features.js +106 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/mark-stale.js +249 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/process-batch-results.js +848 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/scripts/update-feature-status.js +226 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-init-features/SKILL.md +264 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-init-features/examples/features.json +34 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-init-features/scripts/generate-inventory.js +867 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-init-features/scripts/test-inventory.js +26 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/SKILL.md +165 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/scripts/apply-module-mapping.js +208 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/scripts/extract-module-summary.js +180 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/scripts/reindex-modules.js +358 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/SKILL.md +1055 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-DESKTOP.md +303 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-ELECTRON.md +327 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-MINIAPP.md +292 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI-MOBILE.md +281 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/templates/FEATURE-DETAIL-TEMPLATE-UI.md +324 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract/SKILL.md +270 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract/templates/COMPONENT-PATTERN-TEMPLATE.md +33 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract/templates/LAYOUT-PATTERN-TEMPLATE.md +33 -0
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract/templates/PAGE-TYPE-TEMPLATE.md +33 -0
- package/.speccrew/skills/speccrew-knowledge-graph-query/SKILL.md +229 -0
- package/.speccrew/skills/speccrew-knowledge-graph-query/scripts/graph-query.js +549 -0
- package/.speccrew/skills/speccrew-knowledge-graph-write/SKILL.md +181 -0
- package/.speccrew/skills/speccrew-knowledge-graph-write/scripts/graph-write.js +651 -0
- package/.speccrew/skills/speccrew-knowledge-module-summarize/SKILL.md +305 -0
- package/.speccrew/skills/speccrew-knowledge-module-summarize/templates/MODULE-OVERVIEW-TEMPLATE.md +400 -0
- package/.speccrew/skills/speccrew-knowledge-system-summarize/SKILL.md +351 -0
- package/.speccrew/skills/speccrew-knowledge-system-summarize/templates/SYSTEM-OVERVIEW-TEMPLATE.md +294 -0
- package/.speccrew/skills/speccrew-knowledge-techs-dispatch/SKILL.md +683 -0
- package/.speccrew/skills/speccrew-knowledge-techs-dispatch/STATUS-FORMATS.md +550 -0
- package/.speccrew/skills/speccrew-knowledge-techs-dispatch/templates/techs-manifest-EXAMPLE.json +35 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/SKILL.md +1087 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/ARCHITECTURE-TEMPLATE.md +240 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/COLOR-SYSTEM-TEMPLATE.md +68 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/COMPONENT-LIBRARY-TEMPLATE.md +86 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-BUILD-TEMPLATE.md +466 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-DATA-TEMPLATE.md +432 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-DESIGN-TEMPLATE.md +1209 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-DEV-TEMPLATE.md +1433 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-SYSTEM-TEST-TEMPLATE.md +1052 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/CONVENTIONS-UNIT-TEST-TEMPLATE.md +946 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/INDEX-TEMPLATE.md +29 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/PAGE-LAYOUTS-TEMPLATE.md +69 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/PAGE-TYPE-SUMMARY-TEMPLATE.md +74 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate/templates/TECH-STACK-TEMPLATE.md +232 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate-conventions/SKILL.md +628 -0
- package/.speccrew/skills/speccrew-knowledge-techs-generate-ui-style/SKILL.md +392 -0
- package/.speccrew/skills/speccrew-knowledge-techs-index/SKILL.md +489 -0
- package/.speccrew/skills/speccrew-knowledge-techs-index/templates/INDEX-TEMPLATE.md +243 -0
- package/.speccrew/skills/speccrew-knowledge-techs-init/SKILL.md +269 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/SKILL.md +562 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/BUSINESS-COMPONENTS-TEMPLATE.md +171 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/COMMON-COMPONENTS-TEMPLATE.md +177 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/COMPONENT-INDIVIDUAL-TEMPLATE.md +80 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/COMPONENT-LIBRARY-TEMPLATE.md +118 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/LAYOUT-INDIVIDUAL-TEMPLATE.md +97 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/LAYOUT-PATTERNS-TEMPLATE.md +208 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/NAVIGATION-PATTERNS-TEMPLATE.md +157 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/PAGE-TYPE-INDIVIDUAL-TEMPLATE.md +123 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/PAGE-TYPE-SUMMARY-TEMPLATE.md +58 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/SPACING-TEMPLATE.md +119 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/STYLE-SYSTEM-TEMPLATE.md +117 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/TYPOGRAPHY-TEMPLATE.md +107 -0
- package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/templates/UI-STYLE-GUIDE-TEMPLATE.md +171 -0
- package/.speccrew/skills/speccrew-pm-requirement-analysis/SKILL.md +434 -0
- package/.speccrew/skills/speccrew-pm-requirement-analysis/templates/BIZS-MODELING-TEMPLATE.md +332 -0
- package/.speccrew/skills/speccrew-pm-requirement-analysis/templates/PRD-TEMPLATE.md +200 -0
- package/.speccrew/skills/speccrew-pm-requirement-assess/SKILL.md +195 -0
- package/.speccrew/skills/speccrew-project-diagnosis/SKILL.md +208 -0
- package/.speccrew/skills/speccrew-project-diagnosis/templates/DIAGNOSIS-REPORT-TEMPLATE.md +202 -0
- package/.speccrew/skills/speccrew-sd-backend/SKILL.md +188 -0
- package/.speccrew/skills/speccrew-sd-backend/templates/INDEX-TEMPLATE.md +85 -0
- package/.speccrew/skills/speccrew-sd-backend/templates/SD-BACKEND-TEMPLATE.md +269 -0
- package/.speccrew/skills/speccrew-sd-desktop/SKILL.md +192 -0
- package/.speccrew/skills/speccrew-sd-desktop/templates/INDEX-TEMPLATE.md +271 -0
- package/.speccrew/skills/speccrew-sd-desktop/templates/SD-DESKTOP-TEMPLATE.md +673 -0
- package/.speccrew/skills/speccrew-sd-frontend/SKILL.md +176 -0
- package/.speccrew/skills/speccrew-sd-frontend/templates/INDEX-TEMPLATE.md +184 -0
- package/.speccrew/skills/speccrew-sd-frontend/templates/SD-FRONTEND-TEMPLATE.md +382 -0
- package/.speccrew/skills/speccrew-sd-mobile/SKILL.md +189 -0
- package/.speccrew/skills/speccrew-sd-mobile/templates/INDEX-TEMPLATE.md +219 -0
- package/.speccrew/skills/speccrew-sd-mobile/templates/SD-MOBILE-TEMPLATE.md +534 -0
- package/.speccrew/skills/speccrew-test-case-design/SKILL.md +284 -0
- package/.speccrew/skills/speccrew-test-case-design/templates/TEST-CASE-DESIGN-TEMPLATE.md +263 -0
- package/.speccrew/skills/speccrew-test-code-gen/SKILL.md +313 -0
- package/.speccrew/skills/speccrew-test-code-gen/templates/TEST-CODE-PLAN-TEMPLATE.md +180 -0
- package/.speccrew/skills/speccrew-test-execute/SKILL.md +283 -0
- package/.speccrew/skills/speccrew-test-execute/templates/BUG-REPORT-TEMPLATE.md +50 -0
- package/.speccrew/skills/speccrew-test-execute/templates/TEST-REPORT-TEMPLATE.md +57 -0
- package/.speccrew/skills/speccrew-workflow-diagnose/SKILL.md +155 -0
- package/LICENSE +21 -0
- package/README.ar.md +318 -0
- package/README.en.md +318 -0
- package/README.es.md +318 -0
- package/README.md +340 -0
- package/bin/cli.js +62 -0
- package/lib/commands/doctor.js +138 -0
- package/lib/commands/init.js +231 -0
- package/lib/commands/list.js +114 -0
- package/lib/commands/uninstall.js +117 -0
- package/lib/commands/update.js +351 -0
- package/lib/ide-adapters.js +73 -0
- package/lib/utils.js +104 -0
- package/package.json +28 -0
- package/workspace-template/docs/configs/document-templates.json +667 -0
- package/workspace-template/docs/configs/platform-mapping.json +194 -0
- package/workspace-template/docs/configs/tech-stack-mappings.json +313 -0
- package/workspace-template/docs/configs/validation-rules.json +87 -0
- package/workspace-template/docs/rules/mermaid-rule.md +114 -0
- 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
- package/workspace-template/docs/solutions/agent-knowledge-map.md +238 -0
- package/workspace-template/docs/solutions/bizs-knowledge-pipeline.md +678 -0
- package/workspace-template/docs/solutions/harness.md +410 -0
- package/workspace-template/docs/solutions/knowledge-incremental-sync-spec.md +943 -0
- package/workspace-template/docs/solutions/techs-knowledge-pipeline.md +803 -0
- 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.
|
package/.speccrew/skills/speccrew-knowledge-techs-dispatch/templates/techs-manifest-EXAMPLE.json
ADDED
|
@@ -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
|
+
}
|