cc-devflow 1.0.1
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/.claude/CLAUDE.md +83 -0
- package/.claude/agents/architecture-designer.md +443 -0
- package/.claude/agents/bug-analyzer.md +382 -0
- package/.claude/agents/checklist-agent.md +175 -0
- package/.claude/agents/clarify-analyst.md +50 -0
- package/.claude/agents/code-reviewer.md +71 -0
- package/.claude/agents/codex-analyzer.md +39 -0
- package/.claude/agents/compatibility-checker.md +580 -0
- package/.claude/agents/consistency-checker.md +532 -0
- package/.claude/agents/impact-analyzer.md +441 -0
- package/.claude/agents/planner.md +230 -0
- package/.claude/agents/prd-writer.md +320 -0
- package/.claude/agents/project-guidelines-generator.md +1329 -0
- package/.claude/agents/qa-tester.md +313 -0
- package/.claude/agents/release-manager.md +295 -0
- package/.claude/agents/security-reviewer.md +314 -0
- package/.claude/agents/style-guide-generator.md +458 -0
- package/.claude/agents/tech-architect.md +516 -0
- package/.claude/agents/ui-designer.md +485 -0
- package/.claude/commands/code-review-high.md +58 -0
- package/.claude/commands/core-architecture.md +429 -0
- package/.claude/commands/core-guidelines.md +486 -0
- package/.claude/commands/core-roadmap.md +439 -0
- package/.claude/commands/core-style.md +293 -0
- package/.claude/commands/flow-archive.md +245 -0
- package/.claude/commands/flow-checklist.md +260 -0
- package/.claude/commands/flow-clarify.md +136 -0
- package/.claude/commands/flow-constitution.md +82 -0
- package/.claude/commands/flow-dev.md +134 -0
- package/.claude/commands/flow-epic.md +150 -0
- package/.claude/commands/flow-fix.md +104 -0
- package/.claude/commands/flow-ideate.md +214 -0
- package/.claude/commands/flow-init.md +313 -0
- package/.claude/commands/flow-new.md +394 -0
- package/.claude/commands/flow-prd.md +131 -0
- package/.claude/commands/flow-qa.md +93 -0
- package/.claude/commands/flow-release.md +92 -0
- package/.claude/commands/flow-restart.md +98 -0
- package/.claude/commands/flow-status.md +64 -0
- package/.claude/commands/flow-tech.md +142 -0
- package/.claude/commands/flow-ui.md +189 -0
- package/.claude/commands/flow-update.md +111 -0
- package/.claude/commands/flow-upgrade.md +115 -0
- package/.claude/commands/flow-verify.md +96 -0
- package/.claude/commands/problem-analyzer.md +60 -0
- package/.claude/config/quality-rules.yml +161 -0
- package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +426 -0
- package/.claude/docs/design/consistency-conflict-detection-algorithms.md +658 -0
- package/.claude/docs/design/intent-driven-input-design.md +380 -0
- package/.claude/docs/design/prd-version-management-design.md +437 -0
- package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +117 -0
- package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +151 -0
- package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +188 -0
- package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +338 -0
- package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +633 -0
- package/.claude/docs/templates/BACKLOG_TEMPLATE.md +261 -0
- package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +52 -0
- package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +206 -0
- package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +71 -0
- package/.claude/docs/templates/EPIC_TEMPLATE.md +805 -0
- package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +213 -0
- package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +57 -0
- package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +148 -0
- package/.claude/docs/templates/PRD_TEMPLATE.md +562 -0
- package/.claude/docs/templates/RESEARCH_TEMPLATE.md +276 -0
- package/.claude/docs/templates/REVIEW-HIGH.md +57 -0
- package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +198 -0
- package/.claude/docs/templates/ROADMAP_TEMPLATE.md +310 -0
- package/.claude/docs/templates/STYLE_TEMPLATE.md +1266 -0
- package/.claude/docs/templates/TASKS_TEMPLATE.md +523 -0
- package/.claude/docs/templates/TECH_DESIGN_TEMPLATE.md +1019 -0
- package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +1436 -0
- package/.claude/guides/agent-guides/agent-coordination-guide.md +459 -0
- package/.claude/guides/project-guidelines-system.md +463 -0
- package/.claude/guides/technical-guides/datetime-handling-guide.md +563 -0
- package/.claude/guides/technical-guides/git-github-guide.md +642 -0
- package/.claude/guides/technical-guides/test-execution-guide.md +618 -0
- package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +217 -0
- package/.claude/guides/workflow-guides/flow-orchestrator.md +282 -0
- package/.claude/hooks/checklist-gate.js +397 -0
- package/.claude/hooks/error-handling-reminder.sh +12 -0
- package/.claude/hooks/error-handling-reminder.ts +459 -0
- package/.claude/hooks/post-tool-use-tracker.sh +280 -0
- package/.claude/hooks/pre-tool-use-guardrail.sh +36 -0
- package/.claude/hooks/pre-tool-use-guardrail.ts +342 -0
- package/.claude/hooks/skill-activation-prompt.sh +36 -0
- package/.claude/hooks/skill-activation-prompt.ts +214 -0
- package/.claude/hooks/state/skills-used-test-guard.json +3 -0
- package/.claude/rules/devflow-conventions.md +305 -0
- package/.claude/rules/project-constitution.md +748 -0
- package/.claude/schemas/constitution.schema.json +43 -0
- package/.claude/scripts/analyze-upgrade-impact.sh +200 -0
- package/.claude/scripts/archive-requirement.sh +351 -0
- package/.claude/scripts/calculate-checklist-completion.sh +243 -0
- package/.claude/scripts/calculate-quarter.sh +206 -0
- package/.claude/scripts/check-dependencies.sh +409 -0
- package/.claude/scripts/check-prerequisites.sh +232 -0
- package/.claude/scripts/check-task-status.sh +264 -0
- package/.claude/scripts/checklist-errors.sh +131 -0
- package/.claude/scripts/common.sh +570 -0
- package/.claude/scripts/consolidate-research.sh +182 -0
- package/.claude/scripts/create-requirement.sh +426 -0
- package/.claude/scripts/export-contracts.sh +117 -0
- package/.claude/scripts/extract-data-model.sh +78 -0
- package/.claude/scripts/generate-clarification-questions.sh +377 -0
- package/.claude/scripts/generate-clarification-report.sh +463 -0
- package/.claude/scripts/generate-quickstart.sh +146 -0
- package/.claude/scripts/generate-research-tasks.sh +157 -0
- package/.claude/scripts/generate-status-report.sh +523 -0
- package/.claude/scripts/generate-tech-analysis.sh +46 -0
- package/.claude/scripts/locate-requirement-in-roadmap.sh +233 -0
- package/.claude/scripts/manage-constitution.sh +602 -0
- package/.claude/scripts/mark-task-complete.sh +198 -0
- package/.claude/scripts/populate-research-tasks.sh +259 -0
- package/.claude/scripts/recover-workflow.sh +460 -0
- package/.claude/scripts/run-clarify-scan.sh +601 -0
- package/.claude/scripts/run-high-review.sh +62 -0
- package/.claude/scripts/run-problem-analysis.sh +68 -0
- package/.claude/scripts/setup-epic.sh +173 -0
- package/.claude/scripts/sync-roadmap-progress.sh +300 -0
- package/.claude/scripts/sync-task-marks.sh +199 -0
- package/.claude/scripts/test-clarify-scan.sh +515 -0
- package/.claude/scripts/update-agent-context.sh +806 -0
- package/.claude/scripts/validate-constitution.sh +567 -0
- package/.claude/scripts/validate-hooks.sh +487 -0
- package/.claude/scripts/validate-research.sh +332 -0
- package/.claude/scripts/validate-scope-boundary.sh +493 -0
- package/.claude/scripts/verify-setup.sh +37 -0
- package/.claude/settings.json +76 -0
- package/.claude/skills/_reference-implementations/README.md +96 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +302 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +451 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +307 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +638 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +275 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +224 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +213 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +756 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +336 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +789 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +235 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +754 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +399 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +331 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +872 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +502 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +767 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +502 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +501 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +406 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +364 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +428 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +418 -0
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +229 -0
- package/.claude/skills/constitution-guardian/SKILL.md +306 -0
- package/.claude/skills/devflow-constitution-quick-ref/SKILL.md +374 -0
- package/.claude/skills/devflow-file-standards/SKILL.md +353 -0
- package/.claude/skills/devflow-tdd-enforcer/SKILL.md +192 -0
- package/.claude/skills/skill-developer/ADVANCED.md +197 -0
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
- package/.claude/skills/skill-developer/SKILL.md +426 -0
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
- package/.claude/skills/skill-rules.json +213 -0
- package/.claude/tests/README.md +300 -0
- package/.claude/tests/TODO.md +69 -0
- package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/constitution/run_all_constitution_tests.sh +111 -0
- package/.claude/tests/constitution/test_agent_assignment.sh +207 -0
- package/.claude/tests/constitution/test_article_coverage.sh +201 -0
- package/.claude/tests/constitution/test_template_completeness.sh +150 -0
- package/.claude/tests/constitution/test_version_consistency.sh +120 -0
- package/.claude/tests/fixtures/spec_delta_full.md +16 -0
- package/.claude/tests/fixtures/tasks_progress_sample.md +5 -0
- package/.claude/tests/run-all-tests.sh +229 -0
- package/.claude/tests/scripts/run.sh +30 -0
- package/.claude/tests/scripts/test-framework.sh +128 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh +511 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak +504 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +505 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +506 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +507 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +508 -0
- package/.claude/tests/scripts/test_check_task_status.sh +499 -0
- package/.claude/tests/scripts/test_common.sh +244 -0
- package/.claude/tests/scripts/test_generate_status_report.sh +71 -0
- package/.claude/tests/scripts/test_mark_task_complete.sh +441 -0
- package/.claude/tests/scripts/test_mark_task_complete.sh.backup +410 -0
- package/.claude/tests/scripts/test_recover_workflow.sh +304 -0
- package/.claude/tests/scripts/test_setup_epic.sh +437 -0
- package/.claude/tests/scripts/test_sync_task_marks.sh +196 -0
- package/.claude/tests/scripts/test_validate_constitution.sh +74 -0
- package/.claude/tests/scripts/test_validate_research.sh +462 -0
- package/.claude/tests/slugify.bats +82 -0
- package/.claude/tests/test-framework.sh +732 -0
- package/.claude/tests/test_analyze_upgrade_impact.py +34 -0
- package/.claude/tests/test_consolidate_research.py +48 -0
- package/.claude/tests/test_export_contracts.py +43 -0
- package/.claude/tests/test_extract_data_model.py +33 -0
- package/.claude/tests/test_generate_quickstart.py +50 -0
- package/.claude/tests/test_generate_research_tasks.py +52 -0
- package/.claude/tsc-cache/6e64f818-6398-49ca-8623-581a9af85c44/edited-files.log +1 -0
- package/.claude/tsc-cache/795ba6e3-b98a-423b-bab2-51aa62812569/affected-repos.txt +1 -0
- package/.claude/tsc-cache/795ba6e3-b98a-423b-bab2-51aa62812569/edited-files.log +1 -0
- package/.claude/tsc-cache/ae335694-be5a-4ba4-a1a0-b676c09a7906/affected-repos.txt +1 -0
- package/.claude/tsc-cache/ae335694-be5a-4ba4-a1a0-b676c09a7906/edited-files.log +1 -0
- package/CHANGELOG.md +507 -0
- package/LICENSE +21 -0
- package/README.md +534 -0
- package/README.zh-CN.md +530 -0
- package/bin/adapt.js +240 -0
- package/bin/cc-devflow-cli.js +185 -0
- package/bin/cc-devflow.js +78 -0
- package/config/adapters.yml +5 -0
- package/config/schema/adapters.schema.json +44 -0
- package/docs/CLAUDE.md +26 -0
- package/docs/commands/README.md +61 -0
- package/docs/commands/README.zh-CN.md +55 -0
- package/docs/commands/core-roadmap.md +106 -0
- package/docs/commands/core-roadmap.zh-CN.md +102 -0
- package/docs/commands/core-style.md +405 -0
- package/docs/commands/core-style.zh-CN.md +405 -0
- package/docs/commands/flow-init.md +134 -0
- package/docs/commands/flow-init.zh-CN.md +163 -0
- package/docs/commands/flow-new.md +274 -0
- package/docs/commands/flow-new.zh-CN.md +270 -0
- package/docs/guides/getting-started.md +204 -0
- package/docs/guides/getting-started.zh-CN.md +152 -0
- package/lib/adapters/adapter-interface.js +57 -0
- package/lib/adapters/claude-adapter.js +74 -0
- package/lib/adapters/codex-adapter.js +40 -0
- package/lib/adapters/config-validator.js +68 -0
- package/lib/adapters/logger.js +42 -0
- package/lib/adapters/registry.js +153 -0
- package/lib/compiler/CLAUDE.md +92 -0
- package/lib/compiler/__tests__/drift.test.js +215 -0
- package/lib/compiler/__tests__/errors.test.js +184 -0
- package/lib/compiler/__tests__/incremental.test.js +174 -0
- package/lib/compiler/__tests__/integration.test.js +174 -0
- package/lib/compiler/__tests__/manifest.test.js +233 -0
- package/lib/compiler/__tests__/parser.test.js +456 -0
- package/lib/compiler/__tests__/schemas.test.js +301 -0
- package/lib/compiler/__tests__/skills-registry.test.js +125 -0
- package/lib/compiler/__tests__/transformer.test.js +286 -0
- package/lib/compiler/emitters/antigravity-emitter.js +171 -0
- package/lib/compiler/emitters/base-emitter.js +73 -0
- package/lib/compiler/emitters/codex-emitter.js +52 -0
- package/lib/compiler/emitters/cursor-emitter.js +31 -0
- package/lib/compiler/emitters/index.js +50 -0
- package/lib/compiler/emitters/qwen-emitter.js +39 -0
- package/lib/compiler/errors.js +119 -0
- package/lib/compiler/index.js +256 -0
- package/lib/compiler/manifest.js +242 -0
- package/lib/compiler/parser.js +258 -0
- package/lib/compiler/platforms.js +113 -0
- package/lib/compiler/resource-copier.js +320 -0
- package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +191 -0
- package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +109 -0
- package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +123 -0
- package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +123 -0
- package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +253 -0
- package/lib/compiler/rules-emitters/base-rules-emitter.js +83 -0
- package/lib/compiler/rules-emitters/codex-rules-emitter.js +116 -0
- package/lib/compiler/rules-emitters/cursor-rules-emitter.js +98 -0
- package/lib/compiler/rules-emitters/index.js +71 -0
- package/lib/compiler/rules-emitters/qwen-rules-emitter.js +70 -0
- package/lib/compiler/schemas.js +144 -0
- package/lib/compiler/skills-registry.js +225 -0
- package/lib/compiler/transformer.js +236 -0
- package/package.json +50 -0
|
@@ -0,0 +1,633 @@
|
|
|
1
|
+
# Project Architecture: {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
**Version**: {{VERSION}}
|
|
4
|
+
**Created**: {{CREATED_DATE}} 北京时间
|
|
5
|
+
**Updated**: {{UPDATED_DATE}} 北京时间
|
|
6
|
+
**Architecture Type**: {{ARCH_TYPE}}
|
|
7
|
+
**Deployment Model**: {{DEPLOYMENT_MODEL}}
|
|
8
|
+
|
|
9
|
+
**Input**:
|
|
10
|
+
- devflow/ROADMAP.md (路线图,包含所有 RM-IDs 和需求)
|
|
11
|
+
- devflow/requirements/REQ-*/TECH_DESIGN.md (已有需求的技术设计)
|
|
12
|
+
- devflow/project.md (技术栈信息)
|
|
13
|
+
- devflow/ARCHITECTURE.md (如果存在,用于更新模式)
|
|
14
|
+
|
|
15
|
+
**Prerequisites**: ROADMAP.md 已生成,至少有 1 个已完成的需求
|
|
16
|
+
|
|
17
|
+
## Execution Flow (Architecture 生成流程)
|
|
18
|
+
```
|
|
19
|
+
1. Load inputs
|
|
20
|
+
→ Read devflow/ROADMAP.md (extract RM-IDs, dependencies)
|
|
21
|
+
→ Read devflow/requirements/REQ-*/TECH_DESIGN.md (analyze tech stack, modules)
|
|
22
|
+
→ Read devflow/project.md (extract tech stack)
|
|
23
|
+
→ Check if devflow/ARCHITECTURE.md exists (update vs create mode)
|
|
24
|
+
|
|
25
|
+
2. Load ARCHITECTURE_TEMPLATE.md
|
|
26
|
+
→ Read template from .claude/docs/templates/ARCHITECTURE_TEMPLATE.md
|
|
27
|
+
→ Prepare to fill all sections
|
|
28
|
+
|
|
29
|
+
3. Analyze architecture type
|
|
30
|
+
→ Extract from project.md or infer from requirements
|
|
31
|
+
→ Architecture Type: Monolith | Microservices | Frontend-Backend | Serverless
|
|
32
|
+
→ Deployment Model: Desktop | Web | Mobile | CLI | Hybrid
|
|
33
|
+
→ Fill header metadata
|
|
34
|
+
|
|
35
|
+
4. Analyze tech stack
|
|
36
|
+
→ From project.md: extract Frontend, Backend, Database, Integration technologies
|
|
37
|
+
→ From TECH_DESIGN.md: extract additional libraries, frameworks
|
|
38
|
+
→ Organize by layer (Presentation, Business, Data, Integration)
|
|
39
|
+
|
|
40
|
+
5. Generate Diagram 1: Feature Architecture (功能架构图)
|
|
41
|
+
→ From ROADMAP.md: extract all RM-IDs and REQ-IDs
|
|
42
|
+
→ Group related features into clusters (Core, Business, Support)
|
|
43
|
+
→ Identify dependencies from ROADMAP.md dependency graph
|
|
44
|
+
→ Generate Mermaid graph syntax
|
|
45
|
+
→ Validate syntax (no missing brackets, valid node IDs)
|
|
46
|
+
|
|
47
|
+
6. Generate Diagram 2: Technical Architecture (技术架构图)
|
|
48
|
+
→ Design layered architecture (Presentation → Business → Data → Integration)
|
|
49
|
+
→ Map technologies to layers from tech stack analysis
|
|
50
|
+
→ Show interactions between layers
|
|
51
|
+
→ Generate Mermaid graph syntax
|
|
52
|
+
→ Validate syntax
|
|
53
|
+
|
|
54
|
+
7. Generate Diagram 3: Module Structure (模块划分图)
|
|
55
|
+
→ Scan actual codebase structure (src/, .claude/, devflow/, etc.)
|
|
56
|
+
→ Identify key directories and their relationships
|
|
57
|
+
→ Generate Mermaid graph syntax
|
|
58
|
+
→ Validate syntax
|
|
59
|
+
|
|
60
|
+
8. Generate Diagram 4: Requirement Dependency (需求依赖图)
|
|
61
|
+
→ From ROADMAP.md: extract dependency relationships
|
|
62
|
+
→ Include both REQ-to-RM and RM-to-RM dependencies
|
|
63
|
+
→ Color-code by status:
|
|
64
|
+
• Completed REQs: #90EE90 (green)
|
|
65
|
+
• In-progress REQs: #FFD700 (gold)
|
|
66
|
+
• Planned RMs: #D3D3D3 (gray)
|
|
67
|
+
→ Generate Mermaid graph syntax
|
|
68
|
+
→ Validate syntax
|
|
69
|
+
|
|
70
|
+
9. Fill Architecture Decision Records (ADR)
|
|
71
|
+
→ For each major architectural decision:
|
|
72
|
+
• What: Decision made
|
|
73
|
+
• Why: Rationale
|
|
74
|
+
• When: Date
|
|
75
|
+
• Impact: Consequences
|
|
76
|
+
→ Include decisions from TECH_DESIGN.md
|
|
77
|
+
→ Format as structured sections
|
|
78
|
+
|
|
79
|
+
10. Validate completeness
|
|
80
|
+
→ All 4 diagrams generated
|
|
81
|
+
→ All Mermaid syntax valid
|
|
82
|
+
→ No {{PLACEHOLDER}} remaining
|
|
83
|
+
→ Architecture reflects ROADMAP.md content
|
|
84
|
+
→ If incomplete: ERROR "Complete missing sections"
|
|
85
|
+
|
|
86
|
+
11. Write devflow/ARCHITECTURE.md
|
|
87
|
+
→ Write complete file
|
|
88
|
+
→ Use UTF-8 encoding
|
|
89
|
+
→ Ensure markdown formatting correct
|
|
90
|
+
|
|
91
|
+
12. Return: SUCCESS (ARCHITECTURE.md generated)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**重要**: 这是一个自执行模板。architecture-designer agent 应该按照 Execution Flow 生成完整的 ARCHITECTURE.md 文件。
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 架构类型
|
|
99
|
+
|
|
100
|
+
- **应用类型**: {{ARCH_TYPE}}
|
|
101
|
+
- Monolith (单体应用)
|
|
102
|
+
- Microservices (微服务)
|
|
103
|
+
- Frontend-Backend Separation (前后端分离)
|
|
104
|
+
- Serverless (无服务器)
|
|
105
|
+
|
|
106
|
+
- **部署方式**: {{DEPLOYMENT_MODEL}}
|
|
107
|
+
- Desktop Application (桌面应用 - Electron)
|
|
108
|
+
- Web Application (Web 应用)
|
|
109
|
+
- Mobile Application (移动应用)
|
|
110
|
+
- CLI Tool (命令行工具)
|
|
111
|
+
- Hybrid (混合模式)
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 技术栈
|
|
116
|
+
|
|
117
|
+
### Frontend
|
|
118
|
+
{{FRONTEND_STACK}}
|
|
119
|
+
|
|
120
|
+
_示例:_
|
|
121
|
+
- **Framework**: React 18 + TypeScript
|
|
122
|
+
- **State Management**: Redux Toolkit
|
|
123
|
+
- **UI Library**: Ant Design
|
|
124
|
+
- **Build Tool**: Vite
|
|
125
|
+
|
|
126
|
+
### Backend
|
|
127
|
+
{{BACKEND_STACK}}
|
|
128
|
+
|
|
129
|
+
_示例:_
|
|
130
|
+
- **Runtime**: Node.js 20
|
|
131
|
+
- **Framework**: Express.js
|
|
132
|
+
- **Language**: TypeScript
|
|
133
|
+
- **API Style**: RESTful
|
|
134
|
+
|
|
135
|
+
### Database
|
|
136
|
+
{{DATABASE_STACK}}
|
|
137
|
+
|
|
138
|
+
_示例:_
|
|
139
|
+
- **Primary**: SQLite (embedded)
|
|
140
|
+
- **Cache**: Redis (optional)
|
|
141
|
+
- **Migration**: Knex.js
|
|
142
|
+
|
|
143
|
+
### Integration
|
|
144
|
+
{{INTEGRATION_STACK}}
|
|
145
|
+
|
|
146
|
+
_示例:_
|
|
147
|
+
- **AI**: Claude API
|
|
148
|
+
- **MCP**: Model Context Protocol Servers
|
|
149
|
+
- **External APIs**: GitHub API, npm Registry
|
|
150
|
+
|
|
151
|
+
### DevOps & Tools
|
|
152
|
+
{{DEVOPS_STACK}}
|
|
153
|
+
|
|
154
|
+
_示例:_
|
|
155
|
+
- **Package Manager**: npm
|
|
156
|
+
- **Testing**: Jest + React Testing Library
|
|
157
|
+
- **Linting**: ESLint + Prettier
|
|
158
|
+
- **Build**: Electron Builder
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 1. 功能架构图(Feature Architecture)
|
|
163
|
+
|
|
164
|
+
### 核心模块划分
|
|
165
|
+
|
|
166
|
+
本项目按照功能领域划分为三层架构:
|
|
167
|
+
|
|
168
|
+
- **核心层 (Core)**: 提供基础认证、权限、安全等核心能力
|
|
169
|
+
- **业务层 (Business)**: 实现具体业务功能,如会话管理、数据处理
|
|
170
|
+
- **支撑层 (Support)**: 提供配置、日志、监控等支撑服务
|
|
171
|
+
|
|
172
|
+
{{FEATURE_ARCHITECTURE_DESCRIPTION}}
|
|
173
|
+
|
|
174
|
+
### 架构图
|
|
175
|
+
|
|
176
|
+
```mermaid
|
|
177
|
+
graph TB
|
|
178
|
+
subgraph "核心层 Core"
|
|
179
|
+
{{CORE_MODULE_1}}[{{CORE_LABEL_1}}]
|
|
180
|
+
{{CORE_MODULE_2}}[{{CORE_LABEL_2}}]
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
subgraph "业务层 Business"
|
|
184
|
+
{{BUSINESS_MODULE_1}}[{{BUSINESS_LABEL_1}}]
|
|
185
|
+
{{BUSINESS_MODULE_2}}[{{BUSINESS_LABEL_2}}]
|
|
186
|
+
{{BUSINESS_MODULE_3}}[{{BUSINESS_LABEL_3}}]
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
subgraph "支撑层 Support"
|
|
190
|
+
{{SUPPORT_MODULE_1}}[{{SUPPORT_LABEL_1}}]
|
|
191
|
+
{{SUPPORT_MODULE_2}}[{{SUPPORT_LABEL_2}}]
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
{{BUSINESS_MODULE_1}} --> {{CORE_MODULE_1}}
|
|
195
|
+
{{BUSINESS_MODULE_2}} --> {{CORE_MODULE_2}}
|
|
196
|
+
{{BUSINESS_MODULE_3}} --> {{BUSINESS_MODULE_1}}
|
|
197
|
+
{{SUPPORT_MODULE_1}} --> {{CORE_MODULE_1}}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
_填充规则:_
|
|
201
|
+
- Module ID 格式: 无空格无破折号(例如: `Auth`, `Session`, `Config`)
|
|
202
|
+
- Label 格式: 中文简短描述(例如: `用户认证`, `会话管理`)
|
|
203
|
+
- 箭头表示依赖关系:A → B 表示 A 依赖 B
|
|
204
|
+
- 从 ROADMAP.md 提取模块名称和依赖关系
|
|
205
|
+
|
|
206
|
+
_示例(完整图):_
|
|
207
|
+
```mermaid
|
|
208
|
+
graph TB
|
|
209
|
+
subgraph "核心层 Core"
|
|
210
|
+
Auth[用户认证 REQ-001]
|
|
211
|
+
Perm[权限管理 REQ-002]
|
|
212
|
+
MultiAcc[多账号支持 RM-003]
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
subgraph "业务层 Business"
|
|
216
|
+
Session[会话管理 REQ-008]
|
|
217
|
+
Input[输入增强 RM-001]
|
|
218
|
+
Analysis[数据分析 RM-004]
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
subgraph "支撑层 Support"
|
|
222
|
+
Perf[性能优化 RM-002]
|
|
223
|
+
Config[配置管理]
|
|
224
|
+
Log[日志系统]
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
MultiAcc --> Perm
|
|
228
|
+
Session --> Auth
|
|
229
|
+
Input --> Session
|
|
230
|
+
Analysis --> Session
|
|
231
|
+
Perf --> Input
|
|
232
|
+
Config --> Auth
|
|
233
|
+
Log --> Session
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## 2. 技术架构图(Technical Architecture)
|
|
239
|
+
|
|
240
|
+
### 分层设计
|
|
241
|
+
|
|
242
|
+
本项目采用经典四层架构,确保关注点分离和可维护性:
|
|
243
|
+
|
|
244
|
+
- **表现层 (Presentation)**: 用户界面和交互逻辑
|
|
245
|
+
- **业务层 (Business)**: 核心业务逻辑和规则
|
|
246
|
+
- **数据层 (Data)**: 数据持久化和访问
|
|
247
|
+
- **集成层 (Integration)**: 外部系统集成
|
|
248
|
+
|
|
249
|
+
{{TECHNICAL_ARCHITECTURE_DESCRIPTION}}
|
|
250
|
+
|
|
251
|
+
### 架构图
|
|
252
|
+
|
|
253
|
+
```mermaid
|
|
254
|
+
graph TB
|
|
255
|
+
subgraph "表现层 Presentation"
|
|
256
|
+
{{PRES_COMPONENT_1}}[{{PRES_LABEL_1}}]
|
|
257
|
+
{{PRES_COMPONENT_2}}[{{PRES_LABEL_2}}]
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
subgraph "业务层 Business"
|
|
261
|
+
{{BUS_COMPONENT_1}}[{{BUS_LABEL_1}}]
|
|
262
|
+
{{BUS_COMPONENT_2}}[{{BUS_LABEL_2}}]
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
subgraph "数据层 Data"
|
|
266
|
+
{{DATA_COMPONENT_1}}[{{DATA_LABEL_1}}]
|
|
267
|
+
{{DATA_COMPONENT_2}}[{{DATA_LABEL_2}}]
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
subgraph "集成层 Integration"
|
|
271
|
+
{{INT_COMPONENT_1}}[{{INT_LABEL_1}}]
|
|
272
|
+
{{INT_COMPONENT_2}}[{{INT_LABEL_2}}]
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
{{PRES_COMPONENT_1}} --> {{PRES_COMPONENT_2}}
|
|
276
|
+
{{PRES_COMPONENT_2}} --> {{BUS_COMPONENT_1}}
|
|
277
|
+
{{BUS_COMPONENT_1}} --> {{BUS_COMPONENT_2}}
|
|
278
|
+
{{BUS_COMPONENT_2}} --> {{DATA_COMPONENT_1}}
|
|
279
|
+
{{BUS_COMPONENT_2}} --> {{DATA_COMPONENT_2}}
|
|
280
|
+
{{BUS_COMPONENT_1}} --> {{INT_COMPONENT_1}}
|
|
281
|
+
{{BUS_COMPONENT_1}} --> {{INT_COMPONENT_2}}
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
_填充规则:_
|
|
285
|
+
- 从技术栈部分提取组件(React, Express, SQLite, Claude API, etc.)
|
|
286
|
+
- Component ID: 技术简称无空格(例如: `UI`, `State`, `API`, `DB`)
|
|
287
|
+
- Label: 技术全称(例如: `React + TypeScript`, `SQLite`)
|
|
288
|
+
- 箭头表示调用关系或数据流向
|
|
289
|
+
|
|
290
|
+
_示例(完整图):_
|
|
291
|
+
```mermaid
|
|
292
|
+
graph TB
|
|
293
|
+
subgraph "表现层 Presentation"
|
|
294
|
+
UI[React + TypeScript]
|
|
295
|
+
State[Redux Toolkit]
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
subgraph "业务层 Business"
|
|
299
|
+
API[Express.js API]
|
|
300
|
+
BL[Business Logic]
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
subgraph "数据层 Data"
|
|
304
|
+
DB[(SQLite)]
|
|
305
|
+
Cache[(Redis)]
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
subgraph "集成层 Integration"
|
|
309
|
+
MCP[MCP Server]
|
|
310
|
+
Claude[Claude API]
|
|
311
|
+
GitHub[GitHub API]
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
UI --> State
|
|
315
|
+
State --> API
|
|
316
|
+
API --> BL
|
|
317
|
+
BL --> DB
|
|
318
|
+
BL --> Cache
|
|
319
|
+
API --> MCP
|
|
320
|
+
API --> Claude
|
|
321
|
+
BL --> GitHub
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## 3. 模块划分图(Module Structure)
|
|
327
|
+
|
|
328
|
+
### 代码组织
|
|
329
|
+
|
|
330
|
+
本项目代码仓库按职责划分为以下主要模块:
|
|
331
|
+
|
|
332
|
+
{{MODULE_STRUCTURE_DESCRIPTION}}
|
|
333
|
+
|
|
334
|
+
### 架构图
|
|
335
|
+
|
|
336
|
+
```mermaid
|
|
337
|
+
graph LR
|
|
338
|
+
subgraph "{{PROJECT_NAME}}"
|
|
339
|
+
subgraph "{{DIR_GROUP_1}}"
|
|
340
|
+
{{DIR_1_1}}[{{DIR_LABEL_1_1}}]
|
|
341
|
+
{{DIR_1_2}}[{{DIR_LABEL_1_2}}]
|
|
342
|
+
{{DIR_1_3}}[{{DIR_LABEL_1_3}}]
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
subgraph "{{DIR_GROUP_2}}"
|
|
346
|
+
{{DIR_2_1}}[{{DIR_LABEL_2_1}}]
|
|
347
|
+
{{DIR_2_2}}[{{DIR_LABEL_2_2}}]
|
|
348
|
+
{{DIR_2_3}}[{{DIR_LABEL_2_3}}]
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
subgraph "{{DIR_GROUP_3}}"
|
|
352
|
+
{{DIR_3_1}}[{{DIR_LABEL_3_1}}]
|
|
353
|
+
{{DIR_3_2}}[{{DIR_LABEL_3_2}}]
|
|
354
|
+
end
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
{{DIR_2_2}} --> {{DIR_2_1}}
|
|
358
|
+
{{DIR_2_1}} --> {{DIR_2_3}}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
_填充规则:_
|
|
362
|
+
- 扫描实际目录结构: src/, .claude/, devflow/, etc.
|
|
363
|
+
- Dir Group: 主要目录(例如: "src/", ".claude/")
|
|
364
|
+
- Dir Label: 子目录名称(例如: "components/", "services/")
|
|
365
|
+
- 箭头表示依赖关系(可选)
|
|
366
|
+
|
|
367
|
+
_示例(完整图):_
|
|
368
|
+
```mermaid
|
|
369
|
+
graph LR
|
|
370
|
+
subgraph "anna-agent"
|
|
371
|
+
subgraph "src/"
|
|
372
|
+
Comp[components/]
|
|
373
|
+
Serv[services/]
|
|
374
|
+
Utils[utils/]
|
|
375
|
+
Types[types/]
|
|
376
|
+
end
|
|
377
|
+
|
|
378
|
+
subgraph ".claude/"
|
|
379
|
+
Agents[agents/]
|
|
380
|
+
Cmds[commands/]
|
|
381
|
+
Scripts[scripts/]
|
|
382
|
+
Docs[docs/]
|
|
383
|
+
end
|
|
384
|
+
|
|
385
|
+
subgraph "devflow/"
|
|
386
|
+
Reqs[requirements/]
|
|
387
|
+
Roadmap[ROADMAP.md]
|
|
388
|
+
Arch[ARCHITECTURE.md]
|
|
389
|
+
end
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
Cmds --> Agents
|
|
393
|
+
Cmds --> Scripts
|
|
394
|
+
Agents --> Docs
|
|
395
|
+
Comp --> Serv
|
|
396
|
+
Serv --> Utils
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
## 4. 需求依赖图(Requirement Dependency)
|
|
402
|
+
|
|
403
|
+
### 依赖关系
|
|
404
|
+
|
|
405
|
+
需求间依赖关系展示了功能演进的顺序和关系:
|
|
406
|
+
|
|
407
|
+
{{REQUIREMENT_DEPENDENCY_DESCRIPTION}}
|
|
408
|
+
|
|
409
|
+
### 架构图
|
|
410
|
+
|
|
411
|
+
```mermaid
|
|
412
|
+
graph TD
|
|
413
|
+
{{REQ_NODE_1}}[{{REQ_LABEL_1}}] --> {{REQ_NODE_2}}[{{REQ_LABEL_2}}]
|
|
414
|
+
{{REQ_NODE_2}} --> {{RM_NODE_1}}[{{RM_LABEL_1}}]
|
|
415
|
+
{{REQ_NODE_3}}[{{REQ_LABEL_3}}] --> {{RM_NODE_2}}[{{RM_LABEL_2}}]
|
|
416
|
+
|
|
417
|
+
style {{REQ_NODE_1}} fill:#90EE90
|
|
418
|
+
style {{REQ_NODE_2}} fill:#90EE90
|
|
419
|
+
style {{REQ_NODE_3}} fill:#FFD700
|
|
420
|
+
style {{RM_NODE_1}} fill:#D3D3D3
|
|
421
|
+
style {{RM_NODE_2}} fill:#D3D3D3
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
_填充规则:_
|
|
425
|
+
- 从 ROADMAP.md 的 Dependency Graph 提取依赖关系
|
|
426
|
+
- Node ID: 去除破折号(REQ001, REQ010, RM001)
|
|
427
|
+
- Node Label: 带破折号和标题(`REQ-001: 用户认证`)
|
|
428
|
+
- 颜色编码:
|
|
429
|
+
- #90EE90 (浅绿): 已完成的 REQ
|
|
430
|
+
- #FFD700 (金色): 进行中的 REQ
|
|
431
|
+
- #D3D3D3 (浅灰): 计划中的 RM
|
|
432
|
+
- 箭头方向: 依赖项 → 被依赖项
|
|
433
|
+
|
|
434
|
+
_示例(完整图):_
|
|
435
|
+
```mermaid
|
|
436
|
+
graph TD
|
|
437
|
+
REQ001[REQ-001: 用户认证] --> REQ002[REQ-002: 权限管理]
|
|
438
|
+
REQ008[REQ-008: 会话管理] --> REQ001
|
|
439
|
+
REQ009[REQ-009: 输入增强] --> REQ008
|
|
440
|
+
|
|
441
|
+
REQ002 --> RM003[RM-003: 多账号支持]
|
|
442
|
+
REQ009 --> RM001[RM-001: 输入框 v2.0]
|
|
443
|
+
REQ010[REQ-010: 数据分析] --> RM004[RM-004: 数据分析增强]
|
|
444
|
+
|
|
445
|
+
style REQ001 fill:#90EE90
|
|
446
|
+
style REQ002 fill:#90EE90
|
|
447
|
+
style REQ008 fill:#90EE90
|
|
448
|
+
style REQ009 fill:#90EE90
|
|
449
|
+
style REQ010 fill:#FFD700
|
|
450
|
+
style RM001 fill:#D3D3D3
|
|
451
|
+
style RM003 fill:#D3D3D3
|
|
452
|
+
style RM004 fill:#D3D3D3
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
## 架构决策记录(Architecture Decision Records)
|
|
458
|
+
|
|
459
|
+
### ADR-{{ADR_NUMBER}}: {{DECISION_TITLE}}
|
|
460
|
+
|
|
461
|
+
- **日期**: {{ADR_DATE}} 北京时间
|
|
462
|
+
- **状态**: {{ADR_STATUS}} (Proposed | Accepted | Deprecated | Superseded)
|
|
463
|
+
- **决策者**: {{DECISION_MAKER}}
|
|
464
|
+
|
|
465
|
+
**背景 (Context)**:
|
|
466
|
+
{{ADR_CONTEXT}}
|
|
467
|
+
|
|
468
|
+
**决策 (Decision)**:
|
|
469
|
+
{{ADR_DECISION}}
|
|
470
|
+
|
|
471
|
+
**理由 (Rationale)**:
|
|
472
|
+
{{ADR_RATIONALE}}
|
|
473
|
+
|
|
474
|
+
**影响 (Consequences)**:
|
|
475
|
+
- **正面影响**:
|
|
476
|
+
- {{POSITIVE_CONSEQUENCE_1}}
|
|
477
|
+
- {{POSITIVE_CONSEQUENCE_2}}
|
|
478
|
+
|
|
479
|
+
- **负面影响**:
|
|
480
|
+
- {{NEGATIVE_CONSEQUENCE_1}}
|
|
481
|
+
- {{NEGATIVE_CONSEQUENCE_2}}
|
|
482
|
+
|
|
483
|
+
- **中性影响**:
|
|
484
|
+
- {{NEUTRAL_CONSEQUENCE_1}}
|
|
485
|
+
|
|
486
|
+
**替代方案 (Alternatives Considered)**:
|
|
487
|
+
1. {{ALTERNATIVE_1}}
|
|
488
|
+
- 优势: {{ALT_1_PROS}}
|
|
489
|
+
- 劣势: {{ALT_1_CONS}}
|
|
490
|
+
- 为何未选择: {{ALT_1_REASON}}
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
494
|
+
_填充规则:_
|
|
495
|
+
- ADR Number: 序号 001, 002, 003...
|
|
496
|
+
- 从 TECH_DESIGN.md 提取架构决策
|
|
497
|
+
- Status: 标记决策的当前状态
|
|
498
|
+
- Context: 说明为什么需要做这个决策(问题或需求)
|
|
499
|
+
- Decision: 明确说明做了什么决策
|
|
500
|
+
- Rationale: 为什么选择这个决策(技术、业务、团队等因素)
|
|
501
|
+
- Consequences: 这个决策带来的影响(好的、坏的、中性的)
|
|
502
|
+
- Alternatives: 考虑过但未选择的其他方案
|
|
503
|
+
|
|
504
|
+
_示例:_
|
|
505
|
+
|
|
506
|
+
### ADR-001: 选择 Electron 作为桌面应用框架
|
|
507
|
+
|
|
508
|
+
- **日期**: 2024-12-01 北京时间
|
|
509
|
+
- **状态**: Accepted
|
|
510
|
+
- **决策者**: Tech Team
|
|
511
|
+
|
|
512
|
+
**背景**: 需要开发跨平台桌面应用,支持 macOS、Windows、Linux。
|
|
513
|
+
|
|
514
|
+
**决策**: 使用 Electron 框架构建桌面应用。
|
|
515
|
+
|
|
516
|
+
**理由**:
|
|
517
|
+
- 团队熟悉 Web 技术栈(React + TypeScript)
|
|
518
|
+
- Electron 拥有成熟的生态系统和社区支持
|
|
519
|
+
- 可复用 Web 开发经验和组件库
|
|
520
|
+
- VS Code、Slack 等成功案例证明其可行性
|
|
521
|
+
|
|
522
|
+
**影响**:
|
|
523
|
+
- **正面影响**:
|
|
524
|
+
- 开发效率高,团队无需学习新技术栈
|
|
525
|
+
- 跨平台支持开箱即用
|
|
526
|
+
- 丰富的第三方库和工具
|
|
527
|
+
|
|
528
|
+
- **负面影响**:
|
|
529
|
+
- 内存占用较高(Chromium 内核)
|
|
530
|
+
- 应用包体积较大(100MB+)
|
|
531
|
+
- 启动速度相对原生应用较慢
|
|
532
|
+
|
|
533
|
+
- **中性影响**:
|
|
534
|
+
- 需要额外关注性能优化
|
|
535
|
+
|
|
536
|
+
**替代方案**:
|
|
537
|
+
1. **Tauri (Rust + Web)**
|
|
538
|
+
- 优势: 更小的包体积、更低的内存占用
|
|
539
|
+
- 劣势: 团队不熟悉 Rust、生态系统相对不成熟
|
|
540
|
+
- 为何未选择: 学习成本高,时间紧迫
|
|
541
|
+
|
|
542
|
+
2. **原生开发(Swift/Kotlin/C++)**
|
|
543
|
+
- 优势: 性能最优、用户体验最佳
|
|
544
|
+
- 劣势: 需要为每个平台单独开发,成本高
|
|
545
|
+
- 为何未选择: 资源有限,无法支撑多平台原生开发
|
|
546
|
+
|
|
547
|
+
---
|
|
548
|
+
|
|
549
|
+
## 架构演进路径
|
|
550
|
+
|
|
551
|
+
### 当前状态(As-Is)
|
|
552
|
+
|
|
553
|
+
{{CURRENT_STATE}}
|
|
554
|
+
|
|
555
|
+
_描述当前架构的状态、已实现的功能模块、技术债务等_
|
|
556
|
+
|
|
557
|
+
### 目标状态(To-Be)
|
|
558
|
+
|
|
559
|
+
{{TARGET_STATE}}
|
|
560
|
+
|
|
561
|
+
_根据 ROADMAP.md 描述未来 3 个月的目标架构状态_
|
|
562
|
+
|
|
563
|
+
### 演进计划
|
|
564
|
+
|
|
565
|
+
| Phase | Timeline | Focus | Key Changes |
|
|
566
|
+
|-------|----------|-------|-------------|
|
|
567
|
+
| Phase 1 | {{PHASE_1_TIMELINE}} | {{PHASE_1_FOCUS}} | {{PHASE_1_CHANGES}} |
|
|
568
|
+
| Phase 2 | {{PHASE_2_TIMELINE}} | {{PHASE_2_FOCUS}} | {{PHASE_2_CHANGES}} |
|
|
569
|
+
| Phase 3 | {{PHASE_3_TIMELINE}} | {{PHASE_3_FOCUS}} | {{PHASE_3_CHANGES}} |
|
|
570
|
+
|
|
571
|
+
_填充规则:_
|
|
572
|
+
- 基于 ROADMAP.md 的季度规划
|
|
573
|
+
- 描述架构如何随路线图演进
|
|
574
|
+
- 标注关键变化点(新增模块、重构、技术升级)
|
|
575
|
+
|
|
576
|
+
---
|
|
577
|
+
|
|
578
|
+
## 非功能性需求(NFRs)
|
|
579
|
+
|
|
580
|
+
### 性能要求
|
|
581
|
+
|
|
582
|
+
| Metric | Current | Target | Timeline |
|
|
583
|
+
|--------|---------|--------|----------|
|
|
584
|
+
| 应用启动时间 | {{CURRENT_STARTUP}} | {{TARGET_STARTUP}} | {{STARTUP_TIMELINE}} |
|
|
585
|
+
| 内存占用 | {{CURRENT_MEMORY}} | {{TARGET_MEMORY}} | {{MEMORY_TIMELINE}} |
|
|
586
|
+
| API 响应时间 | {{CURRENT_API_LATENCY}} | {{TARGET_API_LATENCY}} | {{API_TIMELINE}} |
|
|
587
|
+
|
|
588
|
+
### 可扩展性要求
|
|
589
|
+
|
|
590
|
+
{{SCALABILITY_REQUIREMENTS}}
|
|
591
|
+
|
|
592
|
+
_描述如何支持用户增长、数据增长、功能扩展_
|
|
593
|
+
|
|
594
|
+
### 安全要求
|
|
595
|
+
|
|
596
|
+
{{SECURITY_REQUIREMENTS}}
|
|
597
|
+
|
|
598
|
+
_描述认证、授权、加密、审计等安全机制_
|
|
599
|
+
|
|
600
|
+
### 可维护性要求
|
|
601
|
+
|
|
602
|
+
{{MAINTAINABILITY_REQUIREMENTS}}
|
|
603
|
+
|
|
604
|
+
_描述代码质量、测试覆盖率、文档完整性等要求_
|
|
605
|
+
|
|
606
|
+
---
|
|
607
|
+
|
|
608
|
+
## Validation Checklist
|
|
609
|
+
|
|
610
|
+
验证此架构文档是否完整:
|
|
611
|
+
|
|
612
|
+
- [ ] 所有 4 种架构图已生成
|
|
613
|
+
- [ ] 所有 Mermaid 代码语法正确
|
|
614
|
+
- [ ] 架构图反映 ROADMAP.md 内容
|
|
615
|
+
- [ ] 技术栈与 project.md 一致
|
|
616
|
+
- [ ] 至少有 1 条 ADR 记录
|
|
617
|
+
- [ ] 架构演进路径清晰
|
|
618
|
+
- [ ] NFRs 已定义
|
|
619
|
+
|
|
620
|
+
**Ready for Team Review**: {{READY_STATUS}}
|
|
621
|
+
|
|
622
|
+
_填充规则:_
|
|
623
|
+
- 每个 checkbox 应被标记为 `[x]` 或 `[ ]`
|
|
624
|
+
- Ready Status: YES | NO (with reasons)
|
|
625
|
+
|
|
626
|
+
---
|
|
627
|
+
|
|
628
|
+
**生成说明**:
|
|
629
|
+
1. 所有 `{{PLACEHOLDER}}` 必须被实际内容替换
|
|
630
|
+
2. 所有 Mermaid 代码必须语法正确且能渲染
|
|
631
|
+
3. 架构图应基于 ROADMAP.md 和实际代码结构生成
|
|
632
|
+
4. ADR 应从 TECH_DESIGN.md 提取或新创建
|
|
633
|
+
5. 所有日期使用北京时间 + ISO 8601 格式
|