dev-playbooks-cn 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +466 -0
  3. package/bin/devbooks.js +987 -0
  4. package/package.json +43 -0
  5. package/skills/Skills/344/275/277/347/224/250/350/257/264/346/230/216.md +446 -0
  6. package/skills/Skill/345/274/200/345/217/221/346/214/207/345/215/227.md +248 -0
  7. package/skills/_shared/context-detection-template.md +315 -0
  8. package/skills/_shared/mcp-enhancement-template.md +144 -0
  9. package/skills/_shared/references//351/200/232/347/224/250/345/256/210/351/227/250/345/215/217/350/256/256.md +114 -0
  10. package/skills/_template/config-discovery-template.md +126 -0
  11. package/skills/devbooks-brownfield-bootstrap/SKILL.md +167 -0
  12. package/skills/devbooks-brownfield-bootstrap/references//344/273/243/347/240/201/345/257/274/350/210/252/347/255/226/347/225/245.md +203 -0
  13. package/skills/devbooks-brownfield-bootstrap/references//345/255/230/351/207/217/351/241/271/347/233/256/345/210/235/345/247/213/345/214/226.md +96 -0
  14. package/skills/devbooks-brownfield-bootstrap/references//345/255/230/351/207/217/351/241/271/347/233/256/345/210/235/345/247/213/345/214/226/346/217/220/347/244/272/350/257/215.md +115 -0
  15. package/skills/devbooks-brownfield-bootstrap/references//346/234/257/350/257/255/350/241/250/346/250/241/346/235/277.md +42 -0
  16. package/skills/devbooks-brownfield-bootstrap/scripts/cod-update.sh +357 -0
  17. package/skills/devbooks-brownfield-bootstrap/templates/project-profile-template.md +172 -0
  18. package/skills/devbooks-c4-map/SKILL.md +151 -0
  19. package/skills/devbooks-c4-map/references/C4/346/236/266/346/236/204/345/234/260/345/233/276/346/217/220/347/244/272/350/257/215.md +33 -0
  20. package/skills/devbooks-c4-map/references//345/210/206/345/261/202/347/272/246/346/235/237/346/243/200/346/237/245/346/270/205/345/215/225.md +185 -0
  21. package/skills/devbooks-code-review/SKILL.md +175 -0
  22. package/skills/devbooks-code-review/references/PR/346/250/241/346/235/277/344/270/216/346/214/207/345/215/227.md +321 -0
  23. package/skills/devbooks-code-review/references//344/273/243/347/240/201/350/257/204/345/256/241/346/217/220/347/244/272/350/257/215.md +100 -0
  24. package/skills/devbooks-code-review/references//345/235/217/345/221/263/351/201/223/351/200/237/346/237/245/350/241/250.md +495 -0
  25. package/skills/devbooks-code-review/references//350/265/204/346/272/220/347/256/241/347/220/206/345/256/241/346/237/245/346/270/205/345/215/225.md +311 -0
  26. package/skills/devbooks-coder/SKILL.md +219 -0
  27. package/skills/devbooks-coder/references//344/273/243/347/240/201/345/256/236/347/216/260/346/217/220/347/244/272/350/257/215.md +70 -0
  28. package/skills/devbooks-coder/references//344/275/216/351/243/216/351/231/251/346/224/271/345/212/250/346/212/200/346/234/257.md +275 -0
  29. package/skills/devbooks-coder/references//346/227/245/345/277/227/350/247/204/350/214/203.md +329 -0
  30. package/skills/devbooks-coder/references//347/274/226/347/240/201/351/243/216/346/240/274/347/273/206/345/210/231.md +351 -0
  31. package/skills/devbooks-coder/references//351/224/231/350/257/257/347/240/201/350/247/204/350/214/203.md +463 -0
  32. package/skills/devbooks-delivery-workflow/SKILL.md +217 -0
  33. package/skills/devbooks-delivery-workflow/references//344/272/244/344/273/230/351/252/214/346/224/266/345/267/245/344/275/234/346/265/201.md +256 -0
  34. package/skills/devbooks-delivery-workflow/references//345/216/237/345/236/213-/347/224/237/344/272/247/345/217/214/350/275/250/346/250/241/345/274/217.md +168 -0
  35. package/skills/devbooks-delivery-workflow/references//345/217/230/346/233/264/351/252/214/350/257/201/344/270/216/350/277/275/346/272/257/346/250/241/346/235/277.md +133 -0
  36. package/skills/devbooks-delivery-workflow/scripts/ac-trace-check.sh +330 -0
  37. package/skills/devbooks-delivery-workflow/scripts/audit-scope.sh +262 -0
  38. package/skills/devbooks-delivery-workflow/scripts/change-check.sh +1040 -0
  39. package/skills/devbooks-delivery-workflow/scripts/change-codemod-scaffold.sh +135 -0
  40. package/skills/devbooks-delivery-workflow/scripts/change-evidence.sh +152 -0
  41. package/skills/devbooks-delivery-workflow/scripts/change-scaffold.sh +442 -0
  42. package/skills/devbooks-delivery-workflow/scripts/change-spec-delta-scaffold.sh +136 -0
  43. package/skills/devbooks-delivery-workflow/scripts/constitution-check.sh +237 -0
  44. package/skills/devbooks-delivery-workflow/scripts/env-match-check.sh +128 -0
  45. package/skills/devbooks-delivery-workflow/scripts/fitness-check.sh +387 -0
  46. package/skills/devbooks-delivery-workflow/scripts/guardrail-check.sh +519 -0
  47. package/skills/devbooks-delivery-workflow/scripts/handoff-check.sh +141 -0
  48. package/skills/devbooks-delivery-workflow/scripts/hygiene-check.sh +340 -0
  49. package/skills/devbooks-delivery-workflow/scripts/migrate-from-openspec.sh +385 -0
  50. package/skills/devbooks-delivery-workflow/scripts/migrate-to-v2-gates.sh +202 -0
  51. package/skills/devbooks-delivery-workflow/scripts/progress-dashboard.sh +319 -0
  52. package/skills/devbooks-delivery-workflow/scripts/prototype-promote.sh +341 -0
  53. package/skills/devbooks-delivery-workflow/scripts/spec-preview.sh +203 -0
  54. package/skills/devbooks-delivery-workflow/scripts/spec-promote.sh +118 -0
  55. package/skills/devbooks-delivery-workflow/scripts/spec-rollback.sh +124 -0
  56. package/skills/devbooks-delivery-workflow/scripts/spec-stage.sh +117 -0
  57. package/skills/devbooks-delivery-workflow/scripts/verify-all.sh +78 -0
  58. package/skills/devbooks-delivery-workflow/scripts/verify-npm-package.sh +123 -0
  59. package/skills/devbooks-delivery-workflow/scripts/verify-openspec-free.sh +81 -0
  60. package/skills/devbooks-delivery-workflow/scripts/verify-slash-commands.sh +146 -0
  61. package/skills/devbooks-delivery-workflow/templates/handoff.md +50 -0
  62. package/skills/devbooks-design-backport/SKILL.md +73 -0
  63. package/skills/devbooks-design-backport/references//345/233/236/345/206/231/350/256/276/350/256/241/346/226/207/346/241/243/346/217/220/347/244/272/350/257/215.md +196 -0
  64. package/skills/devbooks-design-doc/SKILL.md +121 -0
  65. package/skills/devbooks-design-doc/references//345/276/256/346/234/215/345/212/241/350/256/276/350/256/241/346/270/205/345/215/225.md +149 -0
  66. package/skills/devbooks-design-doc/references//350/256/276/350/256/241/346/226/207/346/241/243/346/217/220/347/244/272/350/257/215.md +189 -0
  67. package/skills/devbooks-design-doc/references//351/232/220/347/247/201/345/220/210/350/247/204/346/243/200/346/237/245/346/270/205/345/215/225.md +240 -0
  68. package/skills/devbooks-entropy-monitor/SKILL.md +188 -0
  69. package/skills/devbooks-entropy-monitor/references//347/206/265/345/272/246/351/207/217/346/226/271/346/263/225/350/256/272.md +223 -0
  70. package/skills/devbooks-entropy-monitor/scripts/entropy-measure.sh +449 -0
  71. package/skills/devbooks-entropy-monitor/scripts/entropy-report.sh +303 -0
  72. package/skills/devbooks-entropy-monitor/templates/thresholds.json +99 -0
  73. package/skills/devbooks-federation/SKILL.md +264 -0
  74. package/skills/devbooks-federation/scripts/federation-check.sh +144 -0
  75. package/skills/devbooks-federation/templates/federation.yaml +89 -0
  76. package/skills/devbooks-impact-analysis/SKILL.md +135 -0
  77. package/skills/devbooks-impact-analysis/references//345/275/261/345/223/215/345/210/206/346/236/220/346/217/220/347/244/272/350/257/215.md +82 -0
  78. package/skills/devbooks-impact-analysis/scripts/graph-cache.sh +214 -0
  79. package/skills/devbooks-implementation-plan/SKILL.md +83 -0
  80. package/skills/devbooks-implementation-plan/references//347/274/226/347/240/201/350/256/241/345/210/222/346/217/220/347/244/272/350/257/215.md +99 -0
  81. package/skills/devbooks-index-bootstrap/SKILL.md +240 -0
  82. package/skills/devbooks-proposal-author/SKILL.md +83 -0
  83. package/skills/devbooks-proposal-author/references//346/217/220/346/241/210/346/222/260/345/206/231/346/217/220/347/244/272/350/257/215.md +66 -0
  84. package/skills/devbooks-proposal-challenger/SKILL.md +86 -0
  85. package/skills/devbooks-proposal-challenger/references//344/274/246/347/220/206/344/270/216/345/220/210/350/247/204/346/243/200/346/237/245/346/270/205/345/215/225.md +176 -0
  86. package/skills/devbooks-proposal-challenger/references//346/217/220/346/241/210/350/264/250/347/226/221/346/217/220/347/244/272/350/257/215.md +57 -0
  87. package/skills/devbooks-proposal-debate-workflow/SKILL.md +78 -0
  88. package/skills/devbooks-proposal-debate-workflow/references//346/217/220/346/241/210/345/257/271/350/276/251/345/267/245/344/275/234/346/265/201.md +24 -0
  89. package/skills/devbooks-proposal-debate-workflow/references//346/217/220/346/241/210/345/257/271/350/276/251/346/250/241/346/235/277.md +35 -0
  90. package/skills/devbooks-proposal-debate-workflow/scripts/proposal-debate-check.sh +102 -0
  91. package/skills/devbooks-proposal-judge/SKILL.md +78 -0
  92. package/skills/devbooks-proposal-judge/references//346/217/220/346/241/210/350/243/201/345/206/263/346/217/220/347/244/272/350/257/215.md +37 -0
  93. package/skills/devbooks-router/SKILL.md +346 -0
  94. package/skills/devbooks-spec-contract/SKILL.md +191 -0
  95. package/skills/devbooks-spec-contract/references/API/350/256/276/350/256/241/346/214/207/345/215/227.md +349 -0
  96. package/skills/devbooks-spec-contract/references//345/245/221/347/272/246/344/270/216/346/225/260/346/215/256/345/256/232/344/271/211/346/217/220/347/244/272/350/257/215.md +85 -0
  97. package/skills/devbooks-spec-contract/references//350/247/204/346/240/274/345/217/230/346/233/264/346/217/220/347/244/272/350/257/215.md +63 -0
  98. package/skills/devbooks-spec-contract/references//351/232/220/345/274/217/345/217/230/346/233/264/346/243/200/346/265/213/346/217/220/347/244/272/350/257/215.md +183 -0
  99. package/skills/devbooks-spec-contract/scripts/implicit-change-detect.sh +378 -0
  100. package/skills/devbooks-spec-gardener/SKILL.md +72 -0
  101. package/skills/devbooks-spec-gardener/references//350/247/204/346/240/274/345/233/255/344/270/201/346/217/220/347/244/272/350/257/215.md +41 -0
  102. package/skills/devbooks-test-owner/SKILL.md +172 -0
  103. package/skills/devbooks-test-owner/references//345/217/230/346/233/264/351/252/214/350/257/201/344/270/216/350/277/275/346/272/257/346/250/241/346/235/277.md +228 -0
  104. package/skills/devbooks-test-owner/references//345/274/202/346/255/245/347/263/273/347/273/237/346/265/213/350/257/225/347/255/226/347/225/245.md +316 -0
  105. package/skills/devbooks-test-owner/references//346/265/213/350/257/225/344/273/243/347/240/201/346/217/220/347/244/272/350/257/215.md +208 -0
  106. package/skills/devbooks-test-owner/references//346/265/213/350/257/225/345/210/206/345/261/202/347/255/226/347/225/245.md +281 -0
  107. package/skills/devbooks-test-owner/references//346/265/213/350/257/225/351/251/261/345/212/250.md +394 -0
  108. package/skills/devbooks-test-owner/references//350/247/243/344/276/235/350/265/226/346/212/200/346/234/257/351/200/237/346/237/245/350/241/250.md +432 -0
  109. package/skills/devbooks-test-reviewer/SKILL.md +189 -0
  110. package/templates/.devbooks/config.yaml +88 -0
  111. package/templates/claude-commands/devbooks/apply.md +38 -0
  112. package/templates/claude-commands/devbooks/archive.md +33 -0
  113. package/templates/claude-commands/devbooks/backport.md +19 -0
  114. package/templates/claude-commands/devbooks/bootstrap.md +19 -0
  115. package/templates/claude-commands/devbooks/c4.md +19 -0
  116. package/templates/claude-commands/devbooks/challenger.md +19 -0
  117. package/templates/claude-commands/devbooks/code.md +19 -0
  118. package/templates/claude-commands/devbooks/debate.md +19 -0
  119. package/templates/claude-commands/devbooks/delivery.md +19 -0
  120. package/templates/claude-commands/devbooks/design.md +19 -0
  121. package/templates/claude-commands/devbooks/entropy.md +19 -0
  122. package/templates/claude-commands/devbooks/federation.md +19 -0
  123. package/templates/claude-commands/devbooks/gardener.md +19 -0
  124. package/templates/claude-commands/devbooks/impact.md +19 -0
  125. package/templates/claude-commands/devbooks/index.md +19 -0
  126. package/templates/claude-commands/devbooks/judge.md +19 -0
  127. package/templates/claude-commands/devbooks/plan.md +19 -0
  128. package/templates/claude-commands/devbooks/proposal.md +19 -0
  129. package/templates/claude-commands/devbooks/quick.md +42 -0
  130. package/templates/claude-commands/devbooks/review.md +19 -0
  131. package/templates/claude-commands/devbooks/router.md +19 -0
  132. package/templates/claude-commands/devbooks/spec.md +19 -0
  133. package/templates/claude-commands/devbooks/test-review.md +19 -0
  134. package/templates/claude-commands/devbooks/test.md +19 -0
  135. package/templates/dev-playbooks/README.md +458 -0
  136. package/templates/dev-playbooks/changes/.gitkeep +1 -0
  137. package/templates/dev-playbooks/constitution.md +116 -0
  138. package/templates/dev-playbooks/project.md +96 -0
  139. package/templates/dev-playbooks/scripts/.gitkeep +1 -0
  140. package/templates/dev-playbooks/specs/_meta/anti-patterns/.gitkeep +2 -0
  141. package/templates/dev-playbooks/specs/_meta/glossary.md +47 -0
  142. package/templates/dev-playbooks/specs/_meta/project-profile.md +79 -0
  143. package/templates/dev-playbooks/specs/architecture/fitness-rules.md +95 -0
@@ -0,0 +1,172 @@
1
+ # 项目画像模板(Project Profile Template)
2
+
3
+ ---
4
+
5
+ ## A) 语法层(Syntax Layer)
6
+
7
+ **目标**:建立代码的结构认知——技术栈、目录布局、构建命令。
8
+
9
+ ### A.1 技术栈概览
10
+
11
+ | 维度 | 值 |
12
+ |------|-----|
13
+ | 主语言 | `<language>` |
14
+ | 框架 | `<framework>` |
15
+ | 运行时 | `<runtime>` |
16
+ | 包管理器 | `<package-manager>` |
17
+ | 构建工具 | `<build-tool>` |
18
+
19
+ ### A.2 目录结构
20
+
21
+ ```
22
+ <project-root>/
23
+ ├── src/ # 源代码
24
+ │ ├── base/ # 基础层(平台无关)
25
+ │ ├── platform/ # 平台层(平台服务)
26
+ │ ├── domain/ # 领域层(业务逻辑)
27
+ │ ├── application/ # 应用层(用例编排)
28
+ │ └── ui/ # UI 层(用户交互)
29
+ ├── tests/ # 测试代码
30
+ ├── docs/ # 文档
31
+ └── scripts/ # 脚本
32
+ ```
33
+
34
+ ### A.3 关键命令
35
+
36
+ | 命令 | 用途 |
37
+ |------|------|
38
+ | `<install-cmd>` | 安装依赖 |
39
+ | `<build-cmd>` | 编译构建 |
40
+ | `<test-cmd>` | 运行测试 |
41
+ | `<lint-cmd>` | 代码检查 |
42
+ | `<start-cmd>` | 启动服务 |
43
+
44
+ ---
45
+
46
+ ## B) 语义层(Semantics Layer)
47
+
48
+ **目标**:理解代码的逻辑关系——模块依赖、API 边界、数据流向。
49
+
50
+ ### B.1 模块依赖图
51
+
52
+ > 由 `mcp__ckb__getArchitecture` 生成,或手动维护
53
+
54
+ ```
55
+ [base] ← [platform] ← [domain] ← [application] ← [ui]
56
+
57
+ [external-libs]
58
+ ```
59
+
60
+ **分层约束**(Layering Constraints):
61
+
62
+ | 层级 | 可依赖 | 禁止依赖 |
63
+ |------|--------|----------|
64
+ | base | (无) | 所有上层 |
65
+ | platform | base | domain, application, ui |
66
+ | domain | base, platform | application, ui |
67
+ | application | base, platform, domain | ui |
68
+ | ui | 所有层 | (无) |
69
+
70
+ ### B.2 核心能力(Capabilities)
71
+
72
+ | 能力 | 入口 | 负责模块 | 依赖 |
73
+ |------|------|----------|------|
74
+ | `<capability-1>` | `<entry-point>` | `<module>` | `<deps>` |
75
+ | `<capability-2>` | `<entry-point>` | `<module>` | `<deps>` |
76
+
77
+ ### B.3 对外契约
78
+
79
+ | 类型 | 位置 | 格式 |
80
+ |------|------|------|
81
+ | REST API | `src/api/` | OpenAPI 3.0 |
82
+ | 事件 | `src/events/` | CloudEvents |
83
+ | 数据 Schema | `src/schemas/` | JSON Schema |
84
+ | 配置 | `config/` | YAML |
85
+
86
+ ### B.4 边界识别
87
+
88
+ | 区域 | 路径模式 | 属性 |
89
+ |------|----------|------|
90
+ | **用户代码** | `src/**`, `lib/**` | 可修改 |
91
+ | **库代码** | `node_modules/**`, `vendor/**` | 不可变接口 |
92
+ | **生成代码** | `dist/**`, `*.generated.*` | 禁止手动修改 |
93
+ | **配置文件** | `*.config.*`, `.*rc` | 需要声明变更 |
94
+
95
+ ---
96
+
97
+ ## C) 上下文层(Context Layer)
98
+
99
+ **目标**:捕获项目的隐性知识——历史决策、团队约定、技术债务。
100
+
101
+ ### C.1 技术债热点
102
+
103
+ > 由 `mcp__ckb__getHotspots` 生成,或从 Git 历史计算
104
+
105
+ | 文件 | 变更频率 | 复杂度 | 热点分数 | 风险等级 |
106
+ |------|----------|--------|----------|----------|
107
+ | `<file-1>` | 高 | 高 | `<score>` | 🔴 Critical |
108
+ | `<file-2>` | 中 | 高 | `<score>` | 🟡 High |
109
+ | `<file-3>` | 高 | 低 | `<score>` | 🟢 Normal |
110
+
111
+ ### C.2 领域概念(Glossary)
112
+
113
+ > 由 `mcp__ckb__listKeyConcepts` 生成,或手动维护
114
+
115
+ | 术语 | 定义 | 代码位置 |
116
+ |------|------|----------|
117
+ | `<term-1>` | `<definition>` | `<location>` |
118
+ | `<term-2>` | `<definition>` | `<location>` |
119
+
120
+ ### C.3 架构决策记录(ADRs)
121
+
122
+ | 编号 | 标题 | 状态 | 日期 |
123
+ |------|------|------|------|
124
+ | ADR-001 | `<title>` | Accepted | `<date>` |
125
+ | ADR-002 | `<title>` | Superseded | `<date>` |
126
+
127
+ ### C.4 已知约束与限制
128
+
129
+ | 约束 | 原因 | 影响范围 |
130
+ |------|------|----------|
131
+ | `<constraint-1>` | `<reason>` | `<scope>` |
132
+ | `<constraint-2>` | `<reason>` | `<scope>` |
133
+
134
+ ### C.5 团队约定
135
+
136
+ | 类别 | 约定 | 强制程度 |
137
+ |------|------|----------|
138
+ | 命名规范 | `<convention>` | 必须 |
139
+ | 提交规范 | `<convention>` | 必须 |
140
+ | 分支策略 | `<convention>` | 必须 |
141
+ | 代码风格 | `<convention>` | Lint 强制 |
142
+
143
+ ---
144
+
145
+ ## D) 质量闸门(Quality Gates)
146
+
147
+ ### D.1 合并前检查
148
+
149
+ - [ ] 编译通过:`<build-cmd>`
150
+ - [ ] Lint 通过:`<lint-cmd>`
151
+ - [ ] 测试通过:`<test-cmd>`
152
+ - [ ] 分层约束通过:`guardrail-check.sh --check-layers`
153
+ - [ ] 无循环依赖:`guardrail-check.sh --check-cycles`
154
+
155
+ ### D.2 热点变更额外检查
156
+
157
+ 当变更触及热点文件时:
158
+
159
+ - [ ] 测试覆盖率 ≥ 80%
160
+ - [ ] 代码评审重点关注
161
+ - [ ] 圈复杂度未增加
162
+
163
+ ---
164
+
165
+ ## E) 元数据
166
+
167
+ | 字段 | 值 |
168
+ |------|-----|
169
+ | 创建日期 | `<date>` |
170
+ | 最后更新 | `<date>` |
171
+ | 维护者 | `<maintainer>` |
172
+ | 版本 | `<version>` |
@@ -0,0 +1,151 @@
1
+ ---
2
+ name: devbooks-c4-map
3
+ description: devbooks-c4-map:维护/更新项目的 C4 架构地图(当前真理),并按变更输出 C4 Delta。用户说"画架构图/C4/边界/依赖方向/模块地图/架构地图维护"等时使用。
4
+ tools:
5
+ - Glob
6
+ - Grep
7
+ - Read
8
+ - Write
9
+ - Edit
10
+ ---
11
+
12
+ # DevBooks:C4 架构地图
13
+
14
+ ## 前置:配置发现(协议无关)
15
+
16
+ - `<truth-root>`:当前真理目录根
17
+ - `<change-root>`:变更包目录根
18
+
19
+ 执行前**必须**按以下顺序查找配置(找到后停止):
20
+ 1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
21
+ 2. `dev-playbooks/project.md`(如存在)→ DevBooks 2.0 协议,使用默认映射
22
+ 4. `project.md`(如存在)→ template 协议,使用默认映射
23
+ 5. 若仍无法确定 → **停止并询问用户**
24
+
25
+ **关键约束**:
26
+ - 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
27
+ - 禁止猜测目录根
28
+ - 禁止跳过规则文档阅读
29
+
30
+ ## 产物落点
31
+
32
+ - 权威 C4 地图:`<truth-root>/architecture/c4.md`
33
+ - 分层约束定义:`<truth-root>/architecture/layering-constraints.md`(可选)
34
+
35
+ ## 分层依赖约束(Layering Constraints)
36
+
37
+ 借鉴 VS Code 的分层架构强制机制,C4 地图应包含**分层约束**章节:
38
+
39
+ ### 分层约束定义规则
40
+
41
+ 1. **单向依赖原则**:上层可依赖下层,下层禁止依赖上层
42
+ - 示例:`base ← platform ← domain ← application ← ui`
43
+ - 箭头方向表示"被依赖方向"
44
+
45
+ 2. **环境隔离原则**:`common` 层只能被 `browser`/`node` 层引用,不能反向
46
+ - `common`:平台无关代码
47
+ - `browser`:浏览器特定代码(DOM API)
48
+ - `node`:Node.js 特定代码(fs、process)
49
+
50
+ 3. **contrib 反向隔离**:贡献模块只能依赖核心,核心禁止依赖贡献模块
51
+ - 示例:`workbench/contrib/*` → `workbench/core`(允许)
52
+ - 示例:`workbench/core` → `workbench/contrib/*`(禁止)
53
+
54
+ ### 分层约束输出格式
55
+
56
+ 在 `c4.md` 的 `## Architecture Guardrails` 部分必须包含:
57
+
58
+ ```markdown
59
+ ### Layering Constraints
60
+
61
+ | 层级 | 可依赖 | 禁止依赖 |
62
+ |------|--------|----------|
63
+ | base | (无) | platform, domain, application, ui |
64
+ | platform | base | domain, application, ui |
65
+ | domain | base, platform | application, ui |
66
+ | application | base, platform, domain | ui |
67
+ | ui | base, platform, domain, application | (无) |
68
+
69
+ ### Environment Constraints
70
+
71
+ | 环境 | 可引用 | 禁止引用 |
72
+ |------|--------|----------|
73
+ | common | (平台无关库) | browser/*, node/* |
74
+ | browser | common/* | node/* |
75
+ | node | common/* | browser/* |
76
+ ```
77
+
78
+ ## 执行方式
79
+
80
+ 1) 先阅读并遵守:`_shared/references/通用守门协议.md`(可验证性 + 结构质量守门)。
81
+ 2) 严格按完整提示词输出:`references/C4架构地图提示词.md`。
82
+ 3) 参考分层约束检查清单:`references/分层约束检查清单.md`。
83
+
84
+ ---
85
+
86
+ ## 上下文感知
87
+
88
+ 本 Skill 在执行前自动检测上下文,选择合适的运行模式。
89
+
90
+ 检测规则参考:`skills/_shared/context-detection-template.md`
91
+
92
+ ### 检测流程
93
+
94
+ 1. 检测 `<truth-root>/architecture/c4.md` 是否存在
95
+ 2. 若提供 change-id,检测是否有 C4 相关变更
96
+ 3. 根据检测结果选择运行模式
97
+
98
+ ### 本 Skill 支持的模式
99
+
100
+ | 模式 | 触发条件 | 行为 |
101
+ |------|----------|------|
102
+ | **创建模式** | `c4.md` 不存在 | 分析代码库,生成完整 C4 各层级图(Context/Container/Component) |
103
+ | **更新模式** | `c4.md` 存在,有变更需要反映 | 读取变更内容,输出 C4 Delta,更新架构图 |
104
+
105
+ ### 检测输出示例
106
+
107
+ ```
108
+ 检测结果:
109
+ - 产物存在性:c4.md 存在
110
+ - 变更影响:检测到组件级变更(新增 templates/claude-commands/devbooks/ 15 个文件)
111
+ - 运行模式:更新模式
112
+ ```
113
+
114
+ ---
115
+
116
+ ## MCP 增强
117
+
118
+ 本 Skill 支持 MCP 运行时增强,自动检测并启用高级功能。
119
+
120
+ MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`
121
+
122
+ ### 依赖的 MCP 服务
123
+
124
+ | 服务 | 用途 | 超时 |
125
+ |------|------|------|
126
+ | `mcp__ckb__getArchitecture` | 获取模块依赖图 | 2s |
127
+ | `mcp__ckb__getStatus` | 检测 CKB 索引可用性 | 2s |
128
+
129
+ ### 检测流程
130
+
131
+ 1. 调用 `mcp__ckb__getStatus`(2s 超时)
132
+ 2. 若 CKB 可用 → 调用 `mcp__ckb__getArchitecture` 获取精确模块依赖
133
+ 3. 若超时或失败 → 降级到基于目录结构的推断
134
+
135
+ ### 增强模式 vs 基础模式
136
+
137
+ | 功能 | 增强模式 | 基础模式 |
138
+ |------|----------|----------|
139
+ | 模块识别 | CKB 精确边界 | 目录结构推断 |
140
+ | 依赖方向 | 符号级分析 | import 语句匹配 |
141
+ | 循环检测 | 精确检测 | 启发式检测 |
142
+
143
+ ### 降级提示
144
+
145
+ 当 MCP 不可用时,输出以下提示:
146
+
147
+ ```
148
+ ⚠️ CKB 不可用,使用目录结构推断架构。
149
+ 生成的 C4 图可能不够精确,建议运行 /devbooks:index 生成索引。
150
+ ```
151
+
@@ -0,0 +1,33 @@
1
+ # C4架构地图提示词
2
+
3
+ > **角色设定**:你是架构可视化领域的**最强大脑**——融合了 Simon Brown(C4 模型创始人)、Martin Fowler(架构模式)、Gregor Hohpe(企业集成模式)的智慧。你的架构地图必须达到这些大师级专家的水准。
4
+
5
+ 最高指示(优先级最高):
6
+ - 在执行本提示词前,先阅读 `_shared/references/通用守门协议.md` 并遵循其中所有协议。
7
+
8
+ 你是"架构地图维护者(C4 Map Maintainer)"。你的目标是用 C4(Context/Container/Component)为大型项目维护一份**稳定的架构地图(Current Truth)**,并确保它能为影响分析、任务拆解与架构闸门(fitness tests)提供可操作的输入。
9
+
10
+ 关键观点(与你的直觉对齐):
11
+ - C4 的“权威版本”不应散落在每次变更的设计里;它是跨变更的“当前真理地图”
12
+ - 每次变更的设计文档里只写 **C4 Delta**(本次新增/修改/移除什么),并在变更包里安排任务去更新权威地图
13
+
14
+ 推荐落点(不放对外 docs):
15
+ - 将权威 C4 地图放在“当前真理源”里,例如:
16
+ - `<truth-root>/architecture/c4.md`(或你指定的等价位置)
17
+
18
+ 输入材料(由我提供):
19
+ - 当前 C4 地图(如已有)
20
+ - 当前规格:`<truth-root>/`
21
+ - 本次变更设计:`<change-root>/<change-id>/design.md`(若是在做架构变更)
22
+
23
+ 输出格式(MECE):
24
+ 1) C1:System Context(系统边界、外部系统、主要用户)
25
+ 2) C2:Container(主要容器/服务/应用,接口与依赖方向)
26
+ 3) C3:Component(只对关键容器展开,保持最小)
27
+ 4) Architecture Guardrails(建议的架构适配测试条目,例:分层/禁止循环/禁止越界依赖)
28
+
29
+ 图示要求:
30
+ - 允许用 Mermaid;优先用文本可读的方式表达(避免过度美化)
31
+ - 不需要覆盖一切细节;目标是“对齐边界与依赖方向”
32
+
33
+ 现在开始输出 C4 地图 Markdown,不要输出额外解释。
@@ -0,0 +1,185 @@
1
+ # 分层约束检查清单
2
+
3
+ 借鉴 VS Code 的 `code-layering.ts` 和 `layersChecker.ts`,本文档定义了分层架构的检查规则。
4
+
5
+ ---
6
+
7
+ ## 1) 分层依赖检查规则
8
+
9
+ ### 1.1 单向依赖违规检测
10
+
11
+ **检查方式**:扫描 import/require 语句,验证依赖方向
12
+
13
+ ```typescript
14
+ // 违规示例:base 层引用 platform 层
15
+ // src/base/utils.ts
16
+ import { ConfigService } from '../platform/config'; // 违规!
17
+
18
+ // 正确示例:platform 层引用 base 层
19
+ // src/platform/config.ts
20
+ import { deepClone } from '../base/utils'; // 合法
21
+ ```
22
+
23
+ **检查命令示例**(使用 grep/rg):
24
+
25
+ ```bash
26
+ # 检查 base 层是否违规引用 platform
27
+ rg "from ['\"].*platform" src/base/ --type ts
28
+
29
+ # 检查 common 层是否违规引用 browser/node
30
+ rg "from ['\"].*(browser|node)" src/common/ --type ts
31
+ ```
32
+
33
+ ### 1.2 环境隔离违规检测
34
+
35
+ | 环境 | 禁止的 API | 检测正则 |
36
+ |------|-----------|---------|
37
+ | common | DOM API | `document\.|window\.|navigator\.` |
38
+ | common | Node API | `require\(['"]fs['"]\)|process\.|__dirname` |
39
+ | browser | Node API | `require\(['"]fs['"]\)|child_process` |
40
+ | node | DOM API | `document\.|window\.|DOM\.` |
41
+
42
+ ### 1.3 contrib 反向依赖检测
43
+
44
+ ```bash
45
+ # 检查 core 是否违规引用 contrib
46
+ rg "from ['\"].*contrib" src/core/ --type ts
47
+ rg "from ['\"].*contrib" src/workbench/services/ --type ts
48
+ ```
49
+
50
+ ---
51
+
52
+ ## 2) 分层约束定义模板
53
+
54
+ 在 `<truth-root>/architecture/c4.md` 中添加:
55
+
56
+ ```markdown
57
+ ## Architecture Guardrails
58
+
59
+ ### Layering Constraints
60
+
61
+ 本项目采用 N 层架构,依赖方向为:base ← platform ← domain ← application ← ui
62
+
63
+ | 层级 | 目录 | 职责 | 可依赖 | 禁止依赖 |
64
+ |------|------|------|--------|----------|
65
+ | base | src/base/ | 基础工具、跨平台抽象 | (无) | 所有其他层 |
66
+ | platform | src/platform/ | 平台服务、依赖注入 | base | domain, app, ui |
67
+ | domain | src/domain/ | 业务逻辑、领域模型 | base, platform | app, ui |
68
+ | application | src/app/ | 应用服务、用例编排 | base, platform, domain | ui |
69
+ | ui | src/ui/ | 用户界面、交互逻辑 | 所有层 | (无) |
70
+
71
+ ### Environment Constraints
72
+
73
+ | 环境目录 | 可引用 | 禁止引用 |
74
+ |----------|--------|----------|
75
+ | */common/ | 平台无关库 | */browser/*, */node/* |
76
+ | */browser/ | */common/* | */node/* |
77
+ | */node/ | */common/* | */browser/* |
78
+
79
+ ### Validation Commands
80
+
81
+ ```bash
82
+ # 分层违规检查
83
+ npm run valid-layers-check
84
+
85
+ # 或手动检查
86
+ rg "from ['\"].*platform" src/base/ --type ts && echo "FAIL: base→platform" || echo "OK"
87
+ ```
88
+ ```
89
+
90
+ ---
91
+
92
+ ## 3) 分层违规的严重程度
93
+
94
+ | 违规类型 | 严重程度 | 处理方式 |
95
+ |----------|----------|----------|
96
+ | 下层引用上层 | **Critical** | 必须立即修复,阻止合并 |
97
+ | common 引用 browser/node | **Critical** | 必须立即修复 |
98
+ | 跨层深度导入 Internal 模块 | **High** | 应使用公共 API |
99
+ | contrib 被 core 引用 | **High** | 违反扩展点设计 |
100
+ | 循环依赖 | **High** | 需要重构解耦 |
101
+
102
+ ---
103
+
104
+ ## 4) 分层检查集成
105
+
106
+ ### 4.1 在 ESLint 中配置(推荐)
107
+
108
+ ```javascript
109
+ // eslint.config.js
110
+ module.exports = {
111
+ rules: {
112
+ 'import/no-restricted-paths': ['error', {
113
+ zones: [
114
+ // base 禁止引用 platform
115
+ { target: './src/base', from: './src/platform', message: 'base cannot import platform' },
116
+ // platform 禁止引用 domain
117
+ { target: './src/platform', from: './src/domain', message: 'platform cannot import domain' },
118
+ // common 禁止引用 browser/node
119
+ { target: './src/**/common', from: './src/**/browser', message: 'common cannot import browser' },
120
+ { target: './src/**/common', from: './src/**/node', message: 'common cannot import node' },
121
+ ]
122
+ }]
123
+ }
124
+ };
125
+ ```
126
+
127
+ ### 4.2 在 TypeScript 中配置
128
+
129
+ 为每个层创建独立的 tsconfig:
130
+
131
+ ```json
132
+ // tsconfig.base.json
133
+ {
134
+ "compilerOptions": {
135
+ "paths": {
136
+ // base 层只能看到自己
137
+ }
138
+ },
139
+ "include": ["src/base/**/*"],
140
+ "exclude": ["src/platform/**/*", "src/domain/**/*"]
141
+ }
142
+ ```
143
+
144
+ ### 4.3 在 CI 中配置
145
+
146
+ ```yaml
147
+ # .github/workflows/pr.yml
148
+ - name: Check layer constraints
149
+ run: |
150
+ # 检查分层违规
151
+ ./scripts/valid-layers-check.sh || exit 1
152
+ ```
153
+
154
+ ---
155
+
156
+ ## 5) 分层重构指南
157
+
158
+ 当发现分层违规时:
159
+
160
+ 1. **识别违规原因**
161
+ - 是否是合理的依赖?(可能需要调整分层定义)
162
+ - 是否可以通过接口抽象解耦?
163
+ - 是否应该将代码移动到正确的层?
164
+
165
+ 2. **解耦策略**
166
+ - **依赖注入**:上层通过接口注入,下层不直接依赖实现
167
+ - **事件机制**:下层发布事件,上层订阅
168
+ - **回调传递**:下层接收回调函数,不关心调用者
169
+
170
+ 3. **代码移动**
171
+ - 如果代码确实属于下层,移动到正确位置
172
+ - 更新所有引用路径
173
+ - 运行分层检查确认修复
174
+
175
+ ---
176
+
177
+ ## 6) 审查检查项
178
+
179
+ 在 Code Review 时,检查以下项目:
180
+
181
+ - [ ] 新增的 import 是否遵守分层约束?
182
+ - [ ] 是否引入了 Internal 模块的深度导入?
183
+ - [ ] common 目录下的代码是否使用了平台特定 API?
184
+ - [ ] contrib 模块是否被 core 模块引用?
185
+ - [ ] 是否存在循环依赖?