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,628 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: speccrew-knowledge-techs-generate-conventions
|
|
3
|
+
description: Generate technology convention documents (INDEX, tech-stack, architecture, conventions-*) for a specific platform. Extracts tech stack, architecture, and development conventions from configuration files and source code. Split from techs-generate for parallel execution with ui-style worker.
|
|
4
|
+
tools: Read, Write, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Stage 2: Generate Platform Convention Documents
|
|
8
|
+
|
|
9
|
+
Generate comprehensive convention documentation for a specific platform by analyzing its configuration files and source code structure. This skill focuses on conventions documents only; UI style analysis is handled by the separate techs-generate-ui-style worker.
|
|
10
|
+
|
|
11
|
+
## Language Adaptation
|
|
12
|
+
|
|
13
|
+
**CRITICAL**: Generate all content in the language specified by the `language` parameter.
|
|
14
|
+
|
|
15
|
+
- `language: "zh"` → Generate all content in 中文
|
|
16
|
+
- `language: "en"` → Generate all content in English
|
|
17
|
+
- Other languages → Use the specified language
|
|
18
|
+
|
|
19
|
+
## Trigger Scenarios
|
|
20
|
+
|
|
21
|
+
- "Generate convention documents for {platform}"
|
|
22
|
+
- "Create tech stack and architecture documentation"
|
|
23
|
+
- "Extract development conventions from {platform}"
|
|
24
|
+
- "Generate platform conventions docs"
|
|
25
|
+
- "Create INDEX, tech-stack, and conventions-* files"
|
|
26
|
+
|
|
27
|
+
## User
|
|
28
|
+
|
|
29
|
+
Worker Agent (speccrew-task-worker)
|
|
30
|
+
|
|
31
|
+
## Input
|
|
32
|
+
|
|
33
|
+
- `platform_id`: Platform identifier (e.g., "web-react", "backend-nestjs")
|
|
34
|
+
- `platform_type`: Platform type (web, mobile, backend, desktop)
|
|
35
|
+
- `framework`: Primary framework (react, nestjs, flutter, etc.)
|
|
36
|
+
- `source_path`: Platform source directory
|
|
37
|
+
- `config_files`: List of configuration file paths
|
|
38
|
+
- `convention_files`: List of convention file paths (eslint, prettier, etc.)
|
|
39
|
+
- `output_path`: Output directory for generated documents (e.g., `speccrew-workspace/knowledges/techs/{platform_id}/`)
|
|
40
|
+
- `language`: Target language (e.g., "zh", "en") - **REQUIRED**
|
|
41
|
+
- `completed_dir`: (Optional) Directory for analysis coverage report output. If provided, the analysis JSON will be written here instead of the knowledges directory
|
|
42
|
+
|
|
43
|
+
## Output
|
|
44
|
+
|
|
45
|
+
Generate the following documents in `{output_path}/`:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
{output_path}/
|
|
49
|
+
├── INDEX.md # Platform technology index (Required)
|
|
50
|
+
├── tech-stack.md # Technology stack details (Required)
|
|
51
|
+
├── architecture.md # Architecture conventions (Required)
|
|
52
|
+
├── conventions-design.md # Design conventions (Required)
|
|
53
|
+
├── conventions-dev.md # Development conventions (Required)
|
|
54
|
+
├── conventions-unit-test.md # Unit testing conventions (Required)
|
|
55
|
+
├── conventions-system-test.md # System testing conventions (Required)
|
|
56
|
+
├── conventions-build.md # Build & Deployment conventions (Required)
|
|
57
|
+
└── conventions-data.md # Data conventions (Optional)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Platform Type to Document Mapping
|
|
61
|
+
|
|
62
|
+
| Platform Type | Required Documents | Optional Documents | Generate conventions-data.md? |
|
|
63
|
+
|---------------|-------------------|-------------------|------------------------------|
|
|
64
|
+
| `backend` | All 8 docs | - | **Must Generate** - Contains ORM, data modeling, caching strategy |
|
|
65
|
+
| `web` | All 8 docs | conventions-data.md | **Conditional** - Only when using ORM/data layer (Prisma, TypeORM, Sequelize, etc.) |
|
|
66
|
+
| `mobile` | All 8 docs | conventions-data.md | **Default No** - Based on actual tech stack |
|
|
67
|
+
| `desktop` | All 8 docs | conventions-data.md | **Default No** - Based on actual tech stack |
|
|
68
|
+
| `api` | All 8 docs | conventions-data.md | **Conditional** - Based on whether data layer exists |
|
|
69
|
+
|
|
70
|
+
### Decision Logic for conventions-data.md
|
|
71
|
+
|
|
72
|
+
**Step 1: Check Platform Type**
|
|
73
|
+
- If `backend` → **Generate** (always)
|
|
74
|
+
- If `web`/`mobile`/`desktop`/`api` → Proceed to Step 2
|
|
75
|
+
|
|
76
|
+
**Step 2: Detect Data Layer (for non-backend platforms)**
|
|
77
|
+
|
|
78
|
+
Check configuration files for data layer indicators:
|
|
79
|
+
|
|
80
|
+
| Indicator | Technology | Action |
|
|
81
|
+
|-----------|------------|--------|
|
|
82
|
+
| `prisma` in package.json dependencies | Prisma ORM | Generate conventions-data.md |
|
|
83
|
+
| `typeorm` in package.json dependencies | TypeORM | Generate conventions-data.md |
|
|
84
|
+
| `sequelize` in package.json dependencies | Sequelize | Generate conventions-data.md |
|
|
85
|
+
| `mongoose` in package.json dependencies | Mongoose | Generate conventions-data.md |
|
|
86
|
+
| `drizzle-orm` in package.json dependencies | Drizzle ORM | Generate conventions-data.md |
|
|
87
|
+
| `firebase` / `@react-native-firebase` | Firebase | Generate conventions-data.md (lightweight) |
|
|
88
|
+
| `sqlite` / `realm` / `@realm/react` | SQLite/Realm | Generate conventions-data.md (lightweight) |
|
|
89
|
+
| `core-data` in iOS project | Core Data | Generate conventions-data.md |
|
|
90
|
+
| `room` in Android project | Room Persistence | Generate conventions-data.md |
|
|
91
|
+
| None detected | - | **Skip** conventions-data.md |
|
|
92
|
+
|
|
93
|
+
**Step 3: Report Decision**
|
|
94
|
+
```
|
|
95
|
+
Platform: {platform_id}
|
|
96
|
+
Type: {platform_type}
|
|
97
|
+
Framework: {framework}
|
|
98
|
+
Data Layer Detected: {yes/no/technology}
|
|
99
|
+
Generate conventions-data.md: {yes/no}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Workflow
|
|
103
|
+
|
|
104
|
+
```mermaid
|
|
105
|
+
flowchart TD
|
|
106
|
+
Start --> Step0[Step 0: Read Document Templates]
|
|
107
|
+
Step0 --> Step1[Step 1: Read Configuration Files]
|
|
108
|
+
Step1 --> Step2[Step 2: Extract Technology Stack]
|
|
109
|
+
Step2 --> Step3[Step 3: Analyze Conventions]
|
|
110
|
+
Step3 --> Step4[Step 4: Generate Documents]
|
|
111
|
+
Step4 --> Step5[Step 5: Write Output Files]
|
|
112
|
+
Step5 --> Step6[Step 6: Generate Analysis Coverage Report]
|
|
113
|
+
Step6 --> Step7[Step 7: Report Results]
|
|
114
|
+
Step7 --> End
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Step 0: Read Document Templates
|
|
118
|
+
|
|
119
|
+
Before processing, read all template files to understand the required content structure for each document type:
|
|
120
|
+
- **Read**: `../speccrew-knowledge-techs-generate/templates/INDEX-TEMPLATE.md` - Platform overview and navigation hub structure
|
|
121
|
+
- **Read**: `../speccrew-knowledge-techs-generate/templates/TECH-STACK-TEMPLATE.md` - Technology stack details structure
|
|
122
|
+
- **Read**: `../speccrew-knowledge-techs-generate/templates/ARCHITECTURE-TEMPLATE.md` - Architecture patterns and conventions structure
|
|
123
|
+
- **Read**: `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-DESIGN-TEMPLATE.md` - Design principles and patterns structure
|
|
124
|
+
- **Read**: `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-DEV-TEMPLATE.md` - Development conventions structure
|
|
125
|
+
- **Read**: `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-UNIT-TEST-TEMPLATE.md` - Unit testing conventions structure
|
|
126
|
+
- **Read**: `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-SYSTEM-TEST-TEMPLATE.md` - System testing conventions structure
|
|
127
|
+
- **Read**: `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-BUILD-TEMPLATE.md` - Build and deployment conventions structure
|
|
128
|
+
- **Read**: `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-DATA-TEMPLATE.md` - Data layer conventions structure (if applicable)
|
|
129
|
+
- **Purpose**: Understand each template's chapters and example content requirements
|
|
130
|
+
- **Key principle**: Extract information from source code according to template section requirements
|
|
131
|
+
|
|
132
|
+
### Step 1: Read Configuration Files
|
|
133
|
+
|
|
134
|
+
Read and parse all configuration files for the platform:
|
|
135
|
+
|
|
136
|
+
**Primary Config Files:**
|
|
137
|
+
- package.json / pom.xml / requirements.txt / pubspec.yaml / go.mod
|
|
138
|
+
- tsconfig.json / jsconfig.json
|
|
139
|
+
- Build config: vite.config.* / webpack.config.* / next.config.* / nest-cli.json
|
|
140
|
+
|
|
141
|
+
**Convention Files:**
|
|
142
|
+
- ESLint: .eslintrc.* / eslint.config.*
|
|
143
|
+
- Prettier: .prettierrc.* / prettier.config.*
|
|
144
|
+
- Testing: jest.config.* / vitest.config.* / pytest.ini
|
|
145
|
+
- Git: .gitignore, .gitattributes
|
|
146
|
+
|
|
147
|
+
### Step 2: Extract Technology Stack
|
|
148
|
+
|
|
149
|
+
Parse configuration files to extract:
|
|
150
|
+
|
|
151
|
+
**Core Framework:**
|
|
152
|
+
- Name and version from dependencies
|
|
153
|
+
- Primary language (TypeScript, JavaScript, Dart, etc.)
|
|
154
|
+
|
|
155
|
+
**Dependencies:**
|
|
156
|
+
- Production dependencies (grouped by purpose)
|
|
157
|
+
- Development dependencies
|
|
158
|
+
- Key library versions
|
|
159
|
+
|
|
160
|
+
**Build Tools:**
|
|
161
|
+
- Bundler (Vite, Webpack, Rollup)
|
|
162
|
+
- Transpiler (TypeScript, Babel)
|
|
163
|
+
- Task runner (npm scripts, Gradle, Maven)
|
|
164
|
+
|
|
165
|
+
**Example Extraction:**
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"framework": "React",
|
|
169
|
+
"framework_version": "18.2.0",
|
|
170
|
+
"language": "TypeScript",
|
|
171
|
+
"language_version": "5.3.0",
|
|
172
|
+
"build_tool": "Vite 5.0.0",
|
|
173
|
+
"key_dependencies": [
|
|
174
|
+
{ "name": "react-router-dom", "version": "6.20.0", "purpose": "Routing" },
|
|
175
|
+
{ "name": "zustand", "version": "4.4.0", "purpose": "State Management" }
|
|
176
|
+
]
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Step 3: Analyze Conventions
|
|
181
|
+
|
|
182
|
+
1. **Read Configuration**:
|
|
183
|
+
- Read `speccrew-workspace/docs/rules/mermaid-rule.md` - Get Mermaid diagram compatibility guidelines
|
|
184
|
+
|
|
185
|
+
2. **Extract conventions from configuration files:**
|
|
186
|
+
|
|
187
|
+
**From ESLint Config:**
|
|
188
|
+
- Enabled rules
|
|
189
|
+
- Code style preferences
|
|
190
|
+
- Import/export patterns
|
|
191
|
+
|
|
192
|
+
**From Prettier Config:**
|
|
193
|
+
- Formatting rules (semi, quotes, tabWidth)
|
|
194
|
+
- Print width
|
|
195
|
+
|
|
196
|
+
**From Project Structure:**
|
|
197
|
+
- Directory conventions (src/, components/, utils/)
|
|
198
|
+
- File naming patterns
|
|
199
|
+
- Module organization
|
|
200
|
+
|
|
201
|
+
3. **Apply Mermaid Rules**:
|
|
202
|
+
- Follow compatibility guidelines from `mermaid-rule.md`
|
|
203
|
+
- See: [Mermaid Diagram Guide](#mermaid-diagram-guide)
|
|
204
|
+
|
|
205
|
+
### Domain-Specific Convention Extraction (MANDATORY)
|
|
206
|
+
|
|
207
|
+
In addition to the general conventions above, you MUST actively search for and extract the following domain-specific topics. These are critical for downstream Agents (solution, design, development, testing).
|
|
208
|
+
|
|
209
|
+
**For Frontend Platforms (web-vue, mobile-uniapp, etc.):**
|
|
210
|
+
|
|
211
|
+
| Topic | What to Search For | Where to Look |
|
|
212
|
+
|-------|-------------------|---------------|
|
|
213
|
+
| **i18n/Internationalization** | i18n framework config, locale files, translation key patterns | `locales/`, `i18n/`, `lang/`, package.json deps |
|
|
214
|
+
| **Authorization & Permissions** | Permission directives (`v-hasPermi`), route guards, permission stores | `permission/`, `router/`, `store/`, `utils/auth` |
|
|
215
|
+
| **Menu Registration** | Menu config, dynamic menu loading, menu-to-route mapping | `router/`, `store/`, `layout/`, API calls for menus |
|
|
216
|
+
| **Data Dictionary** | Dict components (`DictTag`), dict stores, dict API calls | `components/Dict`, `utils/dict`, `store/` |
|
|
217
|
+
| **Logging** | Error reporting service, console policy, error boundaries | `utils/log`, `plugins/sentry`, error handling config |
|
|
218
|
+
| **API Request Layer** | Axios/fetch instance, interceptors, token refresh, base URL config | `utils/request`, `api/`, `config/`, `interceptors/` |
|
|
219
|
+
| **Data Validation** | Form validation rules, custom validators, validation timing | `utils/validate`, form schemas, component props validation |
|
|
220
|
+
| **File Upload** | Upload components, upload API calls, file size limits | `components/Upload`, `api/file`, `utils/upload` |
|
|
221
|
+
|
|
222
|
+
**For Backend Platforms (backend-spring, etc.):**
|
|
223
|
+
|
|
224
|
+
| Topic | What to Search For | Where to Look |
|
|
225
|
+
|-------|-------------------|---------------|
|
|
226
|
+
| **Authorization & Permissions** | `@PreAuthorize`, `@DataPermission`, security config, permission enums | Security config, controller annotations, framework modules |
|
|
227
|
+
| **Data Dictionary** | Dict entity, dict service, dict cache, dict enum patterns | `dict/`, `system/` module, enum classes |
|
|
228
|
+
| **Multi-tenancy** | Tenant interceptor/plugin, tenant column, tenant context, `@TenantIgnore` | MyBatis plugins, framework config, base entity |
|
|
229
|
+
| **Backend i18n** | messages.properties, MessageSource, i18n config, ValidationMessages | `resources/i18n/`, `messages*.properties`, i18n config beans |
|
|
230
|
+
| **Logging** | Logger usage, log config (logback.xml/log4j2), operation log annotation, audit trail | `logback*.xml`, `log4j2*.xml`, `@OperateLog`, `operatelog/` module |
|
|
231
|
+
| **Exception Handling** | GlobalExceptionHandler, business exceptions, error codes, error response format | `handler/`, `exception/`, `enums/ErrorCode`, `GlobalExceptionHandler` |
|
|
232
|
+
| **Caching** | @Cacheable, RedisTemplate, cache key patterns, cache config | `cache/`, `redis/`, `CacheConfig`, `@Cacheable` annotations |
|
|
233
|
+
| **Data Validation** | @Valid, @Validated, custom validators, validation groups | DTO classes, `validator/`, `@NotNull/@Size` patterns |
|
|
234
|
+
| **Scheduled Jobs** | @Scheduled, Quartz config, XXL-Job handler, cron expressions | `job/`, `task/`, `schedule/`, `@Scheduled` methods |
|
|
235
|
+
| **File Storage** | FileService, upload API, OSS/S3 config, file path patterns | `file/`, `infra/file/`, `FileClient`, storage config |
|
|
236
|
+
|
|
237
|
+
**If a topic is not found in the source code**, explicitly state "Not applicable" in the corresponding template section. Do NOT leave the section empty or skip it silently.
|
|
238
|
+
|
|
239
|
+
### Analysis Tracking (MANDATORY)
|
|
240
|
+
|
|
241
|
+
During Step 3, you MUST maintain an internal tracking record for each topic you search. For every topic in the tables above:
|
|
242
|
+
|
|
243
|
+
1. **Search** the source code using the "Where to Look" paths
|
|
244
|
+
2. **Record** the result:
|
|
245
|
+
- `found` — Topic implementation found, relevant files identified
|
|
246
|
+
- `not_found` — Searched all suggested paths, no implementation exists
|
|
247
|
+
- `partial` — Some aspects found but incomplete
|
|
248
|
+
3. **List** all files you actually read/analyzed for that topic
|
|
249
|
+
|
|
250
|
+
This tracking data will be used in Step 6 to generate the analysis coverage report. Do NOT skip any topic — if a topic is not applicable to this platform type, record it as `not_found` with a note.
|
|
251
|
+
|
|
252
|
+
**Topic Checklist by Platform Type:**
|
|
253
|
+
|
|
254
|
+
**Frontend Topics (web, mobile, desktop):**
|
|
255
|
+
1. i18n / Internationalization
|
|
256
|
+
2. Authorization & Permissions
|
|
257
|
+
3. Menu Registration & Routing
|
|
258
|
+
4. Data Dictionary Usage
|
|
259
|
+
5. Logging & Error Reporting
|
|
260
|
+
6. API Request Layer (Axios/fetch)
|
|
261
|
+
7. Data Validation
|
|
262
|
+
8. File Upload & Storage
|
|
263
|
+
9. UI Style System is handled by the separate techs-generate-ui-style worker
|
|
264
|
+
|
|
265
|
+
**Backend Topics (backend):**
|
|
266
|
+
1. Backend Internationalization
|
|
267
|
+
2. Authorization & Permissions (annotations, data permission)
|
|
268
|
+
3. Data Dictionary Management
|
|
269
|
+
4. Logging & Audit Trail
|
|
270
|
+
5. Exception Handling & Error Codes
|
|
271
|
+
6. Caching Strategy
|
|
272
|
+
7. Data Validation (JSR 380, custom validators)
|
|
273
|
+
8. Scheduled Jobs & Task Scheduling
|
|
274
|
+
9. File Storage
|
|
275
|
+
10. Multi-tenancy
|
|
276
|
+
|
|
277
|
+
### Step 4: Generate Documents (MANDATORY: Copy Template + Fill)
|
|
278
|
+
|
|
279
|
+
**CRITICAL**: This step MUST follow the template fill workflow - copy template first, then fill sections.
|
|
280
|
+
|
|
281
|
+
1. **For Each Document, Follow This Workflow**:
|
|
282
|
+
|
|
283
|
+
**Step 4.1: Copy Template File**
|
|
284
|
+
- Copy the corresponding template file to the output path:
|
|
285
|
+
- `../speccrew-knowledge-techs-generate/templates/INDEX-TEMPLATE.md` → `{output_path}/INDEX.md`
|
|
286
|
+
- `../speccrew-knowledge-techs-generate/templates/TECH-STACK-TEMPLATE.md` → `{output_path}/tech-stack.md`
|
|
287
|
+
- `../speccrew-knowledge-techs-generate/templates/ARCHITECTURE-TEMPLATE.md` → `{output_path}/architecture.md`
|
|
288
|
+
- `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-DESIGN-TEMPLATE.md` → `{output_path}/conventions-design.md`
|
|
289
|
+
- `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-DEV-TEMPLATE.md` → `{output_path}/conventions-dev.md`
|
|
290
|
+
- `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-UNIT-TEST-TEMPLATE.md` → `{output_path}/conventions-unit-test.md`
|
|
291
|
+
- `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-SYSTEM-TEST-TEMPLATE.md` → `{output_path}/conventions-system-test.md`
|
|
292
|
+
- `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-BUILD-TEMPLATE.md` → `{output_path}/conventions-build.md`
|
|
293
|
+
- `../speccrew-knowledge-techs-generate/templates/CONVENTIONS-DATA-TEMPLATE.md` → `{output_path}/conventions-data.md` (if applicable)
|
|
294
|
+
|
|
295
|
+
**Step 4.2: Fill Template Sections with search_replace**
|
|
296
|
+
- Use `search_replace` tool to fill each section of the template
|
|
297
|
+
- Replace placeholder content with actual analyzed data
|
|
298
|
+
- Follow [Document Structure Standard](#document-structure-standard)
|
|
299
|
+
- Apply [Source Traceability Requirements](#source-traceability-requirements)
|
|
300
|
+
|
|
301
|
+
**MANDATORY RULES**:
|
|
302
|
+
- **Do NOT use create_file to rewrite the entire document**
|
|
303
|
+
- **Do NOT delete or skip any template section**
|
|
304
|
+
- Only replace the placeholder content within each section
|
|
305
|
+
- Preserve all template section headers and structure
|
|
306
|
+
|
|
307
|
+
2. **Document Generation Order**:
|
|
308
|
+
- Generate: INDEX.md, tech-stack.md, architecture.md, conventions-design.md, conventions-dev.md, conventions-unit-test.md, conventions-system-test.md, conventions-build.md, conventions-data.md (if applicable)
|
|
309
|
+
|
|
310
|
+
3. **UI Design Conventions Reference in conventions-design.md**:
|
|
311
|
+
In conventions-design.md, ALWAYS include UI reference section:
|
|
312
|
+
```markdown
|
|
313
|
+
## UI Design Conventions
|
|
314
|
+
|
|
315
|
+
Refer to [UI Style Guide](ui-style/ui-style-guide.md) for design system details.
|
|
316
|
+
Note: UI style documents are generated by the separate ui-style worker.
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Step 5: Write Output Files
|
|
320
|
+
|
|
321
|
+
Create output directory if not exists, then write all generated documents.
|
|
322
|
+
|
|
323
|
+
### Step 6: Generate Analysis Coverage Report (MANDATORY)
|
|
324
|
+
|
|
325
|
+
After completing all document generation, you MUST create an analysis coverage report as a JSON file.
|
|
326
|
+
|
|
327
|
+
**Output file**: `{completed_dir}/{platform_id}.analysis-conventions.json`
|
|
328
|
+
|
|
329
|
+
Where `{completed_dir}` is the directory passed via the `completed_dir` parameter (if provided). If `completed_dir` is not provided, output to the platform's knowledges directory.
|
|
330
|
+
|
|
331
|
+
**Report Format**:
|
|
332
|
+
|
|
333
|
+
```json
|
|
334
|
+
{
|
|
335
|
+
"platform_id": "{platform_id}",
|
|
336
|
+
"platform_type": "{platform_type}",
|
|
337
|
+
"worker_type": "conventions",
|
|
338
|
+
"analyzed_at": "{ISO 8601 timestamp}",
|
|
339
|
+
"topics": {
|
|
340
|
+
"i18n": {
|
|
341
|
+
"status": "found",
|
|
342
|
+
"files_analyzed": ["src/i18n/index.ts", "locales/zh-CN.ts"],
|
|
343
|
+
"notes": "Vue I18n with 2 locale files"
|
|
344
|
+
},
|
|
345
|
+
"authorization": {
|
|
346
|
+
"status": "found",
|
|
347
|
+
"files_analyzed": ["src/permission/index.ts", "src/router/guard.ts"],
|
|
348
|
+
"notes": "RBAC with route guards and v-hasPermi directive"
|
|
349
|
+
},
|
|
350
|
+
"data_dictionary": {
|
|
351
|
+
"status": "not_found",
|
|
352
|
+
"files_analyzed": [],
|
|
353
|
+
"notes": "No dictionary implementation found in suggested paths"
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
"config_files_analyzed": [
|
|
357
|
+
"package.json",
|
|
358
|
+
"vite.config.ts",
|
|
359
|
+
"tsconfig.json"
|
|
360
|
+
],
|
|
361
|
+
"source_dirs_scanned": [
|
|
362
|
+
"src/components/",
|
|
363
|
+
"src/views/",
|
|
364
|
+
"src/utils/",
|
|
365
|
+
"src/store/"
|
|
366
|
+
],
|
|
367
|
+
"documents_generated": [
|
|
368
|
+
"INDEX.md",
|
|
369
|
+
"tech-stack.md",
|
|
370
|
+
"architecture.md",
|
|
371
|
+
"conventions-dev.md",
|
|
372
|
+
"conventions-design.md",
|
|
373
|
+
"conventions-unit-test.md",
|
|
374
|
+
"conventions-build.md"
|
|
375
|
+
],
|
|
376
|
+
"coverage_summary": {
|
|
377
|
+
"topics_found": 7,
|
|
378
|
+
"topics_partial": 1,
|
|
379
|
+
"topics_not_found": 1,
|
|
380
|
+
"topics_total": 9,
|
|
381
|
+
"coverage_percent": 78
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
**Rules**:
|
|
387
|
+
- Every topic from the Topic Checklist in Step 3 MUST appear in the `topics` object
|
|
388
|
+
- `files_analyzed` MUST list the actual file paths you read (relative to source_path)
|
|
389
|
+
- `status` MUST be one of: `found`, `not_found`, `partial`
|
|
390
|
+
- `coverage_percent` = (topics_found + topics_partial) / topics_total * 100, rounded to integer
|
|
391
|
+
- `documents_generated` MUST list all .md files actually created
|
|
392
|
+
- Use `create_file` to write this JSON file (this is the ONE exception where create_file is allowed — for JSON output files)
|
|
393
|
+
|
|
394
|
+
### Step 7: Report Results
|
|
395
|
+
|
|
396
|
+
```
|
|
397
|
+
Platform Convention Documents Generated: {{platform_id}}
|
|
398
|
+
- INDEX.md: ✓
|
|
399
|
+
- tech-stack.md: ✓
|
|
400
|
+
- architecture.md: ✓
|
|
401
|
+
- conventions-design.md: ✓
|
|
402
|
+
- conventions-dev.md: ✓
|
|
403
|
+
- conventions-unit-test.md: ✓
|
|
404
|
+
- conventions-system-test.md: ✓
|
|
405
|
+
- conventions-build.md: ✓
|
|
406
|
+
- conventions-data.md: ✓ (or skipped if not applicable)
|
|
407
|
+
- {{platform_id}}.analysis-conventions.json: ✓ (analysis coverage report)
|
|
408
|
+
- Output Directory: {{output_path}}
|
|
409
|
+
- Analysis Report: {{completed_dir}}/{{platform_id}}.analysis-conventions.json (or knowledges dir if completed_dir not provided)
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
**Completion Marker File**:
|
|
413
|
+
|
|
414
|
+
Create a done file to signal completion:
|
|
415
|
+
```json
|
|
416
|
+
{
|
|
417
|
+
"platform_id": "{platform_id}",
|
|
418
|
+
"worker_type": "conventions",
|
|
419
|
+
"status": "completed",
|
|
420
|
+
"documents_generated": ["INDEX.md", "tech-stack.md", "architecture.md", "conventions-design.md", "conventions-dev.md", "conventions-unit-test.md", "conventions-system-test.md", "conventions-build.md"],
|
|
421
|
+
"analysis_file": "{platform_id}.analysis-conventions.json",
|
|
422
|
+
"completed_at": "{ISO timestamp}"
|
|
423
|
+
}
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## Reference Guides
|
|
429
|
+
|
|
430
|
+
### Document Structure Standard
|
|
431
|
+
|
|
432
|
+
All generated documents must follow this structure:
|
|
433
|
+
|
|
434
|
+
```markdown
|
|
435
|
+
# {{platform_name}} {{document_type}}
|
|
436
|
+
|
|
437
|
+
<cite>
|
|
438
|
+
**Files Referenced in This Document**
|
|
439
|
+
{{source_files}}
|
|
440
|
+
</cite>
|
|
441
|
+
|
|
442
|
+
> **Target Audience**: devcrew-designer-{{platform_id}}, devcrew-dev-{{platform_id}}, devcrew-test-{{platform_id}}
|
|
443
|
+
|
|
444
|
+
## Table of Contents
|
|
445
|
+
1. [Introduction](#introduction)
|
|
446
|
+
2. [Project Structure](#project-structure)
|
|
447
|
+
3. [Core Components](#core-components)
|
|
448
|
+
4. [Architecture Overview](#architecture-overview)
|
|
449
|
+
5. [Detailed Component Analysis](#detailed-component-analysis)
|
|
450
|
+
6. [Dependency Analysis](#dependency-analysis)
|
|
451
|
+
7. [Performance Considerations](#performance-considerations)
|
|
452
|
+
8. [Troubleshooting Guide](#troubleshooting-guide)
|
|
453
|
+
9. [Conclusion](#conclusion)
|
|
454
|
+
10. [Appendix](#appendix)
|
|
455
|
+
|
|
456
|
+
... content sections ...
|
|
457
|
+
|
|
458
|
+
**Section Source**
|
|
459
|
+
- [file.ext](../../../../path/to/file#Lstart-Lend)
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
### Source Traceability Requirements
|
|
463
|
+
|
|
464
|
+
**CRITICAL: All source file links MUST use RELATIVE PATHS. Absolute paths and `file://` protocol are STRICTLY FORBIDDEN.**
|
|
465
|
+
|
|
466
|
+
**FORBIDDEN:**
|
|
467
|
+
- Do NOT use absolute paths (e.g., `d:/dev/ruoyi-vue-pro/...`)
|
|
468
|
+
- Do NOT use `file://` protocol (e.g., `file://d:/dev/...`)
|
|
469
|
+
- Do NOT hardcode machine-specific paths
|
|
470
|
+
- ALWAYS use relative paths calculated from the document's location
|
|
471
|
+
|
|
472
|
+
**Dynamic Relative Path Calculation:**
|
|
473
|
+
|
|
474
|
+
Documents are located at: `speccrew-workspace/knowledges/techs/{platform_id}/{document}.md`
|
|
475
|
+
This is 4 levels deep from the project root:
|
|
476
|
+
- speccrew-workspace (1)
|
|
477
|
+
- knowledges (2)
|
|
478
|
+
- techs (3)
|
|
479
|
+
- {platform_id} (4)
|
|
480
|
+
|
|
481
|
+
Therefore, to reference a source file from the project root, use `../../../../` as the prefix.
|
|
482
|
+
|
|
483
|
+
Example calculation:
|
|
484
|
+
- Document: `speccrew-workspace/knowledges/techs/backend-spring/architecture.md`
|
|
485
|
+
- Source file: `yudao-server/src/main/java/.../YudaoServerApplication.java`
|
|
486
|
+
- Relative path: `../../../../yudao-server/src/main/java/.../YudaoServerApplication.java`
|
|
487
|
+
|
|
488
|
+
For root INDEX.md (one level less deep):
|
|
489
|
+
- Document: `speccrew-workspace/knowledges/techs/INDEX.md`
|
|
490
|
+
- Prefix: `../../../` (3 levels)
|
|
491
|
+
|
|
492
|
+
**1. File Reference Block (`<cite>`)**
|
|
493
|
+
|
|
494
|
+
Place at the beginning of each document:
|
|
495
|
+
|
|
496
|
+
```markdown
|
|
497
|
+
<cite>
|
|
498
|
+
**Files Referenced in This Document**
|
|
499
|
+
- [package.json](../../../../yudao-ui/yudao-ui-admin-vue3/package.json)
|
|
500
|
+
- [tsconfig.json](../../../../yudao-ui/yudao-ui-admin-vue3/tsconfig.json)
|
|
501
|
+
</cite>
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
**2. Diagram Source Annotation**
|
|
505
|
+
|
|
506
|
+
After each Mermaid diagram:
|
|
507
|
+
|
|
508
|
+
```markdown
|
|
509
|
+
**Diagram Source**
|
|
510
|
+
- [file-name.ext](../../../../yudao-server/src/main/java/...#L10-L50)
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
**3. Section Source Annotation**
|
|
514
|
+
|
|
515
|
+
At the end of each major section:
|
|
516
|
+
|
|
517
|
+
```markdown
|
|
518
|
+
**Section Source**
|
|
519
|
+
- [file-name.ext](../../../../yudao-server/src/main/java/...#L10-L50)
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
For generic guidance sections without specific file references:
|
|
523
|
+
|
|
524
|
+
```markdown
|
|
525
|
+
[This section provides general guidance, no specific file reference required]
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
### Mermaid Diagram Guide
|
|
529
|
+
|
|
530
|
+
When generating Mermaid diagrams, follow these compatibility guidelines:
|
|
531
|
+
|
|
532
|
+
**Key Requirements:**
|
|
533
|
+
- Use only basic node definitions: `A[text content]`
|
|
534
|
+
- No HTML tags (e.g., `<br/>`)
|
|
535
|
+
- No nested subgraphs
|
|
536
|
+
- No `direction` keyword
|
|
537
|
+
- No `style` definitions
|
|
538
|
+
- Use standard `graph TB/LR` syntax only
|
|
539
|
+
|
|
540
|
+
**Diagram Types:**
|
|
541
|
+
|
|
542
|
+
| Diagram Type | Use Case | Example Scenario |
|
|
543
|
+
|--------------|----------|------------------|
|
|
544
|
+
| `graph TB/LR` | Structure & Dependency | Module relationships, component hierarchy |
|
|
545
|
+
| `flowchart TD` | Business Logic Flow | Request processing, decision trees |
|
|
546
|
+
| `sequenceDiagram` | Interaction Flow | API calls, service communication |
|
|
547
|
+
| `classDiagram` | Class Structure | Entity relationships, inheritance |
|
|
548
|
+
| `erDiagram` | Database Schema | Table relationships, data model |
|
|
549
|
+
| `stateDiagram-v2` | State Machine | Order status, workflow states |
|
|
550
|
+
|
|
551
|
+
### Quality Requirements
|
|
552
|
+
|
|
553
|
+
#### Be Specific
|
|
554
|
+
|
|
555
|
+
Extract actual values from config files:
|
|
556
|
+
- ✓ "React 18.2.0" (from package.json)
|
|
557
|
+
- ✗ "React (version varies)"
|
|
558
|
+
|
|
559
|
+
#### Be Concise
|
|
560
|
+
|
|
561
|
+
Focus on actionable conventions:
|
|
562
|
+
- ✓ "Use PascalCase for component files: UserProfile.tsx"
|
|
563
|
+
- ✗ "There are many naming conventions to consider..."
|
|
564
|
+
|
|
565
|
+
#### Include Examples
|
|
566
|
+
|
|
567
|
+
Wherever possible, include concrete examples:
|
|
568
|
+
```markdown
|
|
569
|
+
### Component Naming
|
|
570
|
+
- ✓ UserProfile.tsx
|
|
571
|
+
- ✓ OrderList.tsx
|
|
572
|
+
- ✗ userProfile.tsx
|
|
573
|
+
- ✗ order-list.tsx
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
### Error Handling
|
|
577
|
+
|
|
578
|
+
**Template Not Found:**
|
|
579
|
+
- If a template file is missing, report error and skip that document
|
|
580
|
+
- Continue with other documents
|
|
581
|
+
|
|
582
|
+
**Configuration File Missing:**
|
|
583
|
+
- If expected config file not found, note in analysis report
|
|
584
|
+
- Use defaults or skip related sections
|
|
585
|
+
|
|
586
|
+
**Source Code Not Found:**
|
|
587
|
+
- If source directory structure doesn't match expectations
|
|
588
|
+
- Document actual structure found
|
|
589
|
+
- Mark topics as "not_found" in analysis report
|
|
590
|
+
|
|
591
|
+
---
|
|
592
|
+
|
|
593
|
+
## Checklist
|
|
594
|
+
|
|
595
|
+
### Pre-Generation
|
|
596
|
+
- [ ] All configuration files read and parsed
|
|
597
|
+
- [ ] Technology stack extracted accurately
|
|
598
|
+
- [ ] Conventions analyzed from config files
|
|
599
|
+
|
|
600
|
+
### Document Generation Decision
|
|
601
|
+
- [ ] Platform type identified (web/mobile/backend/desktop/api)
|
|
602
|
+
- [ ] Data layer detection completed for non-backend platforms
|
|
603
|
+
- [ ] Decision made on whether to generate conventions-data.md
|
|
604
|
+
- [ ] Backend platform → Always generate
|
|
605
|
+
- [ ] Other platforms → Generate only if data layer detected
|
|
606
|
+
|
|
607
|
+
### Required Documents (All Platforms)
|
|
608
|
+
- [ ] INDEX.md generated with navigation
|
|
609
|
+
- [ ] tech-stack.md generated with dependency tables
|
|
610
|
+
- [ ] architecture.md generated with platform-specific patterns
|
|
611
|
+
- [ ] conventions-design.md generated with design principles
|
|
612
|
+
- [ ] conventions-dev.md generated with naming and style rules
|
|
613
|
+
- [ ] conventions-unit-test.md generated with unit testing requirements
|
|
614
|
+
- [ ] conventions-system-test.md generated with system testing requirements
|
|
615
|
+
- [ ] conventions-build.md generated with build and deployment conventions
|
|
616
|
+
|
|
617
|
+
### Optional Document
|
|
618
|
+
- [ ] conventions-data.md generated (only if applicable per platform type mapping)
|
|
619
|
+
|
|
620
|
+
### Quality Checks
|
|
621
|
+
- [ ] All files written to output_path
|
|
622
|
+
- [ ] **Source traceability**: `<cite>` block added to each document
|
|
623
|
+
- [ ] **Source traceability**: Diagram Source annotations added after each Mermaid diagram
|
|
624
|
+
- [ ] **Source traceability**: Section Source annotations added at end of major sections
|
|
625
|
+
- [ ] **Mermaid compatibility**: No `style`, `direction`, `<br/>`, or nested subgraphs
|
|
626
|
+
- [ ] **Document completeness**: Verify all 8 required documents exist (INDEX.md, tech-stack.md, architecture.md, conventions-design.md, conventions-dev.md, conventions-unit-test.md, conventions-system-test.md, conventions-build.md)
|
|
627
|
+
- [ ] **Analysis Coverage Report**: `{platform_id}.analysis-conventions.json` generated with all topics tracked
|
|
628
|
+
- [ ] Results reported with conventions-data.md generation status
|