@jspg-ai/coding-bb 0.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.
Files changed (183) hide show
  1. package/README.md +41 -0
  2. package/cbb/dev-standards/rules/cbb-ai-behavior.md +104 -0
  3. package/cbb/dev-standards/rules/cbb-coding-rule.md +50 -0
  4. package/cbb/dev-standards/rules/cbb-priority.md +56 -0
  5. package/cbb/dev-standards/skills/architecture-specs/SKILL.md +129 -0
  6. package/cbb/dev-standards/skills/coding-specs/SKILL.md +376 -0
  7. package/cbb/dev-standards/skills/coding-specs/references/concurrency.md +53 -0
  8. package/cbb/dev-standards/skills/coding-specs/references/config-center.md +16 -0
  9. package/cbb/dev-standards/skills/coding-specs/references/distributed.md +42 -0
  10. package/cbb/dev-standards/skills/coding-specs/references/es-coding.md +60 -0
  11. package/cbb/dev-standards/skills/coding-specs/references/scheduled-task.md +25 -0
  12. package/cbb/dev-standards/skills/coding-specs/references/security.md +11 -0
  13. package/cbb/dev-standards/skills/coding-specs/references/unit-testing.md +43 -0
  14. package/cbb/dev-standards/skills/es-design-specs/SKILL.md +104 -0
  15. package/cbb/dev-standards/skills/mysql-design-specs/SKILL.md +89 -0
  16. package/cbb/lib/install/claude-code.js +20 -0
  17. package/cbb/lib/install/cleanup.js +64 -0
  18. package/cbb/lib/install/init.js +1875 -0
  19. package/cbb/lib/install/qoder.js +20 -0
  20. package/cbb/lib/install/workspaces.js +232 -0
  21. package/cbb/lib/openspec/index.js +554 -0
  22. package/cbb/lib/superpowers/index.js +265 -0
  23. package/cbb/lib/utils/check-update.js +147 -0
  24. package/cbb/lib/utils/checkbox.js +383 -0
  25. package/cbb/lib/utils/gitignore.js +69 -0
  26. package/cbb/lib/utils/output.js +64 -0
  27. package/cbb/lib/utils/settings.js +119 -0
  28. package/cbb/lib/utils/version.js +135 -0
  29. package/cbb/lib/wiki/api-client.js +358 -0
  30. package/cbb/lib/wiki/cli.js +427 -0
  31. package/cbb/lib/wiki/convert.js +464 -0
  32. package/cbb/lib/wiki/index.js +218 -0
  33. package/cbb/lib/wiki/mermaid-guard.js +103 -0
  34. package/cbb/lib/wiki/split.js +131 -0
  35. package/cbb/tools/cbb-decompile-jar/SKILL.md +220 -0
  36. package/cbb/tools/cbb-decompile-jar/scripts/decompile.py +863 -0
  37. package/cbb/tools/cbb-design-to-wiki/SKILL.md +180 -0
  38. package/cbb/tools/cbb-mvn-guide/SKILL.md +281 -0
  39. package/cbb/tools/cbb-mvn-guide/scripts/mvn_jdk_manager.py +378 -0
  40. package/cbb/tools/cbb-mvn-guide/scripts/mvn_pom_jdk_reader.py +197 -0
  41. package/cbb/tools/cbb-plantuml-authoring/SKILL.md +448 -0
  42. package/cbb/tools/cbb-plantuml-authoring/references/drawing-templates.md +479 -0
  43. package/cbb/tools/cbb-wiki-ops/SKILL.md +134 -0
  44. package/cbb/tools/cbb-wiki-ops/scripts/check-auth.js +44 -0
  45. package/cbb/worktrees/_shared/scripts/find-target-worktree.js +96 -0
  46. package/cbb/worktrees/_shared/scripts/find-workspace-root.js +67 -0
  47. package/cbb/worktrees/_shared/scripts/push-core.js +136 -0
  48. package/cbb/worktrees/_shared/scripts/silence-popup.js +23 -0
  49. package/cbb/worktrees/commands/close.md +64 -0
  50. package/cbb/worktrees/commands/extend.md +65 -0
  51. package/cbb/worktrees/commands/init.md +55 -0
  52. package/cbb/worktrees/commands/push.md +42 -0
  53. package/cbb/worktrees/skills/openspec-close-worktree/SKILL.md +449 -0
  54. package/cbb/worktrees/skills/openspec-close-worktree/scripts/check-env.js +76 -0
  55. package/cbb/worktrees/skills/openspec-close-worktree/scripts/check-unarchived.js +48 -0
  56. package/cbb/worktrees/skills/openspec-close-worktree/scripts/delete-branches.js +136 -0
  57. package/cbb/worktrees/skills/openspec-close-worktree/scripts/discover-apps.js +76 -0
  58. package/cbb/worktrees/skills/openspec-close-worktree/scripts/find-target-worktree.js +96 -0
  59. package/cbb/worktrees/skills/openspec-close-worktree/scripts/find-workspace-root.js +67 -0
  60. package/cbb/worktrees/skills/openspec-close-worktree/scripts/remove-worktrees.js +124 -0
  61. package/cbb/worktrees/skills/openspec-close-worktree/scripts/safety-check.js +174 -0
  62. package/cbb/worktrees/skills/openspec-close-worktree/scripts/silence-popup.js +23 -0
  63. package/cbb/worktrees/skills/openspec-extend-worktree/SKILL.md +390 -0
  64. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/check-env.js +95 -0
  65. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/check-repos.js +98 -0
  66. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/create-branches-and-worktrees.js +135 -0
  67. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/find-target-worktree.js +96 -0
  68. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/find-workspace-root.js +67 -0
  69. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/install-ai.js +150 -0
  70. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/list-available-apps.js +88 -0
  71. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/push-core.js +136 -0
  72. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/silence-popup.js +23 -0
  73. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/sync-repos.js +93 -0
  74. package/cbb/worktrees/skills/openspec-init-worktree/SKILL.md +539 -0
  75. package/cbb/worktrees/skills/openspec-init-worktree/scripts/auto-open.js +136 -0
  76. package/cbb/worktrees/skills/openspec-init-worktree/scripts/check-env-deep.js +87 -0
  77. package/cbb/worktrees/skills/openspec-init-worktree/scripts/check-env.js +90 -0
  78. package/cbb/worktrees/skills/openspec-init-worktree/scripts/check-repos.js +171 -0
  79. package/cbb/worktrees/skills/openspec-init-worktree/scripts/create-branches.js +103 -0
  80. package/cbb/worktrees/skills/openspec-init-worktree/scripts/create-worktrees.js +154 -0
  81. package/cbb/worktrees/skills/openspec-init-worktree/scripts/find-workspace-root.js +67 -0
  82. package/cbb/worktrees/skills/openspec-init-worktree/scripts/generate-app-options.js +93 -0
  83. package/cbb/worktrees/skills/openspec-init-worktree/scripts/install-ai.js +177 -0
  84. package/cbb/worktrees/skills/openspec-init-worktree/scripts/parse-config.js +67 -0
  85. package/cbb/worktrees/skills/openspec-init-worktree/scripts/push-branches.js +101 -0
  86. package/cbb/worktrees/skills/openspec-init-worktree/scripts/push-core.js +136 -0
  87. package/cbb/worktrees/skills/openspec-init-worktree/scripts/silence-popup.js +23 -0
  88. package/cbb/worktrees/skills/openspec-init-worktree/scripts/sync-repos.js +95 -0
  89. package/cbb/worktrees/skills/openspec-init-worktree/scripts/update-gitignore.js +134 -0
  90. package/cbb/worktrees/skills/openspec-push-worktrees/SKILL.md +307 -0
  91. package/cbb/worktrees/skills/openspec-push-worktrees/scripts/commit-worktrees.js +269 -0
  92. package/cbb/worktrees/skills/openspec-push-worktrees/scripts/find-target-worktree.js +96 -0
  93. package/cbb/worktrees/skills/openspec-push-worktrees/scripts/find-workspace-root.js +67 -0
  94. package/cbb/worktrees/skills/openspec-push-worktrees/scripts/push-core.js +136 -0
  95. package/cbb/worktrees/skills/openspec-push-worktrees/scripts/push-worktrees.js +159 -0
  96. package/cbb/worktrees/skills/openspec-push-worktrees/scripts/silence-popup.js +23 -0
  97. package/config/cbb.yaml +6 -0
  98. package/config/config.sample.json +16 -0
  99. package/config/openspec/config.yaml +28 -0
  100. package/config/openspec/schemas/spec-driven/schema.yaml +247 -0
  101. package/config/openspec/schemas/spec-driven/templates/design.md +475 -0
  102. package/config/openspec/schemas/spec-driven/templates/proposal.md +58 -0
  103. package/config/openspec/schemas/spec-driven/templates/spec.md +8 -0
  104. package/config/openspec/schemas/spec-driven/templates/tasks.md +9 -0
  105. package/config/workspaces.json +15 -0
  106. package/openspec/.version +6 -0
  107. package/openspec/commands/apply.md +182 -0
  108. package/openspec/commands/archive.md +223 -0
  109. package/openspec/commands/bulk-archive.md +334 -0
  110. package/openspec/commands/continue.md +112 -0
  111. package/openspec/commands/explore.md +206 -0
  112. package/openspec/commands/ff.md +111 -0
  113. package/openspec/commands/new.md +70 -0
  114. package/openspec/commands/onboard.md +555 -0
  115. package/openspec/commands/propose.md +157 -0
  116. package/openspec/commands/sync.md +256 -0
  117. package/openspec/commands/update.md +85 -0
  118. package/openspec/commands/verify.md +169 -0
  119. package/openspec/skills/openspec-apply-change/SKILL.md +187 -0
  120. package/openspec/skills/openspec-archive-change/SKILL.md +181 -0
  121. package/openspec/skills/openspec-bulk-archive-change/SKILL.md +338 -0
  122. package/openspec/skills/openspec-continue-change/SKILL.md +117 -0
  123. package/openspec/skills/openspec-explore/SKILL.md +342 -0
  124. package/openspec/skills/openspec-ff-change/SKILL.md +116 -0
  125. package/openspec/skills/openspec-new-change/SKILL.md +76 -0
  126. package/openspec/skills/openspec-onboard/SKILL.md +560 -0
  127. package/openspec/skills/openspec-propose/SKILL.md +162 -0
  128. package/openspec/skills/openspec-sync-specs/SKILL.md +261 -0
  129. package/openspec/skills/openspec-update-change/SKILL.md +90 -0
  130. package/openspec/skills/openspec-verify-change/SKILL.md +174 -0
  131. package/package.json +46 -0
  132. package/superpowers/.version +6 -0
  133. package/superpowers/skills/brainstorming/SKILL.md +250 -0
  134. package/superpowers/skills/brainstorming/scripts/frame-template.html +213 -0
  135. package/superpowers/skills/brainstorming/scripts/helper.js +167 -0
  136. package/superpowers/skills/brainstorming/scripts/server.cjs +723 -0
  137. package/superpowers/skills/brainstorming/scripts/start-server.sh +209 -0
  138. package/superpowers/skills/brainstorming/scripts/stop-server.sh +120 -0
  139. package/superpowers/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  140. package/superpowers/skills/brainstorming/visual-companion.md +299 -0
  141. package/superpowers/skills/dispatching-parallel-agents/SKILL.md +167 -0
  142. package/superpowers/skills/executing-plans/SKILL.md +64 -0
  143. package/superpowers/skills/finishing-a-development-branch/SKILL.md +225 -0
  144. package/superpowers/skills/receiving-code-review/SKILL.md +205 -0
  145. package/superpowers/skills/requesting-code-review/SKILL.md +95 -0
  146. package/superpowers/skills/requesting-code-review/code-reviewer.md +181 -0
  147. package/superpowers/skills/subagent-driven-development/SKILL.md +568 -0
  148. package/superpowers/skills/subagent-driven-development/implementer-prompt.md +154 -0
  149. package/superpowers/skills/subagent-driven-development/re-review-prompt.md +115 -0
  150. package/superpowers/skills/subagent-driven-development/scripts/review-package +46 -0
  151. package/superpowers/skills/subagent-driven-development/scripts/sdd-workspace +40 -0
  152. package/superpowers/skills/subagent-driven-development/scripts/task-brief +41 -0
  153. package/superpowers/skills/subagent-driven-development/task-reviewer-prompt.md +207 -0
  154. package/superpowers/skills/systematic-debugging/CREATION-LOG.md +119 -0
  155. package/superpowers/skills/systematic-debugging/SKILL.md +283 -0
  156. package/superpowers/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  157. package/superpowers/skills/systematic-debugging/condition-based-waiting.md +115 -0
  158. package/superpowers/skills/systematic-debugging/defense-in-depth.md +122 -0
  159. package/superpowers/skills/systematic-debugging/find-polluter.sh +72 -0
  160. package/superpowers/skills/systematic-debugging/root-cause-tracing.md +169 -0
  161. package/superpowers/skills/systematic-debugging/test-academic.md +14 -0
  162. package/superpowers/skills/systematic-debugging/test-pressure-1.md +58 -0
  163. package/superpowers/skills/systematic-debugging/test-pressure-2.md +68 -0
  164. package/superpowers/skills/systematic-debugging/test-pressure-3.md +69 -0
  165. package/superpowers/skills/test-driven-development/SKILL.md +320 -0
  166. package/superpowers/skills/test-driven-development/writing-good-tests.md +198 -0
  167. package/superpowers/skills/using-git-worktrees/SKILL.md +167 -0
  168. package/superpowers/skills/using-superpowers/SKILL.md +63 -0
  169. package/superpowers/skills/using-superpowers/references/antigravity-tools.md +23 -0
  170. package/superpowers/skills/using-superpowers/references/codex-tools.md +108 -0
  171. package/superpowers/skills/using-superpowers/references/gemini-tools.md +63 -0
  172. package/superpowers/skills/using-superpowers/references/hermes-tools.md +56 -0
  173. package/superpowers/skills/using-superpowers/references/pi-tools.md +16 -0
  174. package/superpowers/skills/verification-before-completion/SKILL.md +120 -0
  175. package/superpowers/skills/writing-plans/SKILL.md +171 -0
  176. package/superpowers/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
  177. package/superpowers/skills/writing-skills/SKILL.md +679 -0
  178. package/superpowers/skills/writing-skills/anthropic-best-practices.md +1150 -0
  179. package/superpowers/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  180. package/superpowers/skills/writing-skills/graphviz-conventions.dot +172 -0
  181. package/superpowers/skills/writing-skills/persuasion-principles.md +187 -0
  182. package/superpowers/skills/writing-skills/render-graphs.js +169 -0
  183. package/superpowers/skills/writing-skills/testing-skills-with-subagents.md +384 -0
@@ -0,0 +1,475 @@
1
+ # 详细设计技术方案模板(AI版)
2
+
3
+ > **文档说明**
4
+ >
5
+ > 本模板用于编写详细设计技术方案,供AI理解和生成代码使用。
6
+ >
7
+ > **标记说明:**
8
+ >
9
+ > - `(必选)`:必须填写的内容
10
+ > - `(可选)`:根据实际情况选择填写,不涉及则删除整个章节
11
+ > - <span style="color: rgb(122,134,154);">*灰色斜体文字*</span>:模板说明/示例内容,实际使用时删除并替换为真实内容
12
+
13
+ ---
14
+
15
+ ## 零、知识库参考(必选)
16
+
17
+ <!-- AI理解要点:此章节记录本次设计参考了哪些知识库文档,确保设计基于已有知识而非凭空构思。
18
+ 通过知识库索引(INDEX.md)逐级定位后,列出实际读取的知识文档路径。 -->
19
+
20
+ | 序号 | 参考知识点 | 知识库路径 | 对应设计章节 | 备注 |
21
+ | ---- | ---------- | ---------- | ------------ | ---- |
22
+ | 1 | <!-- 知识点名称 --> | <!-- 从INDEX.md逐级定位的完整路径 --> | <!-- 架构设计/领域模型/... --> | <!-- 参考了什么 --> |
23
+
24
+ <!-- 知识库导航方式:
25
+ 1. 从知识库根索引 INDEX.md 出发
26
+ 2. 按业务域/技术域逐级定位到具体知识文档
27
+ 3. 将实际读取的文档路径填入上表
28
+ 4. 如果某章节无对应知识库文档,在备注中标注"知识库暂无覆盖,建议补充"
29
+ -->
30
+
31
+ ---
32
+
33
+ ## 一、需求或项目背景(必选)
34
+
35
+ <!-- AI理解要点:此章节提供需求的上下文信息,帮助理解业务背景和目标 -->
36
+
37
+ | 序号 | 事项 | 描述 |
38
+ | ---- | ----------------- | ------------------------------------------------------------ |
39
+ | 1 | 描述需求/项目背景 | <!-- 描述当前存在的问题或业务目标,例如:当前支付成功页有企业入驻广告位,但数据异常(日均UV10),且没有进行精细化运营,浪费了该优质广告位的资源,需要进行优化。 --> |
40
+ | 2 | PRD地址 | <!-- 产品需求文档链接 --> |
41
+ | 3 | DMPT地址 | <!-- 需求管理平台链接 --> |
42
+
43
+ ---
44
+
45
+ ## 二、Checklist事项(必选)
46
+
47
+ <!-- AI理解要点:此章节用于识别技术风险点,每项检查都有对应的注意事项 -->
48
+
49
+ | 序号 | 检查项 | 是否涉及 | 备注 |
50
+ | ---- | ---------------------------------------------------- | -------- |----------------------------------------------------------------------------------------------------------|
51
+ | 1 | 是否涉及新增应用,或新增接口 | 是/否 | **注意事项:** 需要进行容量评估和SLA签订(预估多大的QPS,需要多少个实例,限流阈值,数据库容量等),以及评估是否需要进行生产全链路压测,仅列举RPC或REST接口,内部逻辑不在此项范围内 |
52
+ | 2 | 是否涉及修改原有接口(出参字段、入参字段、结果码等) | 是/否 | **注意事项:** 技术方案需要评估新老逻辑的兼容情况,以及对上游相关业务的影响,核心场景还要有灰度能力 |
53
+ | 3 | 是否新增枚举类型 | 是/否 | **注意事项:** 要考虑调用方的兼容情况,调用方一般要做对应jar包的升级 |
54
+ | 4 | 是否涉及新增外部二方/三方服务依赖 | 是/否 | **注意事项:** 强弱依赖考虑,弱依赖是否可降级,降级方案是怎样的,需要设置合理的超时时间,跟下游二方依赖服务签订SLA |
55
+ | 5 | 是否新建表结构,或新增MQ Topic | 是/否 | **注意事项:** 需要考虑涉及的链路是否是压测覆盖的链路,如果是,需要新增对应的影子表和影子Topic;DDL变更需要同步大数据经分同学 |
56
+ | 6 | 是否应用新接入sentinel | 是/否 | **注意事项:** 由于流控平台默认开启default限流规则(过去一段时间早高峰峰值流量的2倍),但是对于新应用或者老应用新接入sentinel,没有过去的监控数据,所以需要在流控平台评估并手动设置流控规则 |
57
+ | 7 | 是否涉及安全敏感数据 | 是/否 | **注意事项:** 是否涉及敏感字段?是否需要脱敏等等?数据库存储是否加密 |
58
+ | 8 | 是否涉及增加新SQL,或原有SQL修改 | 是/否 | **注意事项:** 该场景一致性要求是否可以走从库查询;qps多大?是否走索引?尽可能做SQL优化避免慢SQL;数据量多大?是否要考虑分表分库 |
59
+ | 9 | 是否涉及历史数据,或历史接口 | 是/否 | **注意事项:** 需要考虑历史数据和接口的兼容性 |
60
+ | 10 | 是否使用redis缓存 | 是/否 | **注意事项:** 需要考虑redis的使用场景,redis只能当缓存,不能当数据库用;需要做到弱依赖redis;该场景qps是多大?要针对性的设计解决缓存击穿和雪崩问题 |
61
+ | 11 | 是否增加了验签字段 | 是/否 | **注意事项:** 需要考虑字段类型是否有默认值(用包装类,排除默认值);需要考虑调用方是否会对字段赋默认值;需要考虑上下游发布期间新老容器的兼容 |
62
+
63
+ ---
64
+
65
+ ## 三、功能拆解(必选)
66
+
67
+ <!-- AI理解要点:此章节将需求拆解为可执行的功能模块和功能点,是工作量和排期评估的依据 -->
68
+
69
+ <!--
70
+ 字段说明:
71
+
72
+ - 功能模块:对齐PRD中影响模块
73
+ - 功能点:功能模块拆解之后服务端工作量在0.5-1人天左右的工作量
74
+ - 改动内容:具体改动点,评估工作量的依据,是一个完整独立的小任务
75
+ - FTAPI:提供给前端的接口协议,或作为服务提供方提供的RPC接口
76
+ - 变更类型:新增/修改/删除
77
+ - 变更说明:结合是否新增、变更类型对本次变更做详细说明
78
+ - 工作量:基于改动内容评估的工作量,颗粒度0.5-1人天,再大说明任务拆分不合理
79
+ - 备注:其他情况说明
80
+ -->
81
+
82
+ | 功能模块 | 功能点 | 变更类型 | 改动内容 | 变更说明 | FTAPI(Rest/RPC) | 工作量 | 备注 |
83
+ | --------------- | ------------------- | -------------- | ------------------- | ----------------- | ----------------- | ------------- | ----------------- |
84
+ | <!-- 模块名 --> | <!-- 功能点名称 --> | 新增/修改/删除 | <!-- 具体改动点 --> | <!-- 详细说明 --> | <!-- 接口类型 --> | <!-- 人天 --> | <!-- 其他说明 --> |
85
+
86
+ ---
87
+
88
+ ## 四、架构设计(必选)
89
+
90
+ ### 4.1 模块划分
91
+
92
+ <!-- AI理解要点:重点体现改动的类所在的工程分层和模块 -->
93
+
94
+ <!-- 在此处描述模块划分 -->
95
+
96
+ ### 4.2 分层依赖关系
97
+
98
+ <!-- AI理解要点:重点体现改动的代码层级依赖关系 -->
99
+
100
+ <!-- 在此处描述分层依赖关系 -->
101
+
102
+ ---
103
+
104
+ ## 五、领域模型设计(可选)
105
+
106
+ <!-- AI理解要点:此章节描述领域模型的变更,包括新增/变更/废弃的领域对象。不涉及则删除整个章节 -->
107
+
108
+ ### 示例域(example)
109
+
110
+ | 领域对象 | 类型 | 字段 | 领域行为 | 描述 |
111
+ | --------------- | --------------------------- | ----------------- | ----------------- | ------------- |
112
+ | <!-- 对象名 --> | 聚合根/实体/值对象/领域事件 | <!-- 字段列表 --> | <!-- 行为列表 --> | <!-- 描述 --> |
113
+
114
+ <!-- 领域对象类型说明:
115
+
116
+ - 聚合根:一组相关对象的集合,作为修改对象的唯一入口
117
+ - 实体:有唯一标识的领域对象
118
+ - 值对象:无唯一标识,由属性值定义
119
+ - 领域事件:领域内发生的事情,用于解耦
120
+ -->
121
+
122
+ ---
123
+
124
+ ## 六、核心流程设计(必选)
125
+
126
+ <!-- AI理解要点:此章节描述跨服务间执行顺序和业务逻辑,是理解业务流程的关键 -->
127
+
128
+ <!-- 展现形式:
129
+
130
+ 1. 跨应用时序图,表示核心流程调用应用顺序
131
+ 2. 跨应用泳道图,表示核心流程在多个应用的重要逻辑
132
+ 3. 本应用流程图,表示核心流程在本应用的重要逻辑
133
+ 4. 状态机,表示状态枚举和动作
134
+ 5. 重要:所有图使用mermaid生成
135
+
136
+ 【时序图范围约束】
137
+ - 时序图仅在功能涉及跨应用调用时绘制
138
+ - participant 命名规则:应用使用英文名(如 OrderApp),外部操作角色使用中文名(如 用户、运营、管理员)
139
+ - 禁止使用类名作为 participant
140
+ - 同一应用禁止重复出现为多个 participant
141
+ - 单应用内部流程使用流程图或泳道图表达
142
+ - 禁止绘制类级别的时序图(代码设计章节同理)
143
+
144
+ 【修改型功能点规则】
145
+ 当功能点变更类型为"修改"时,流程图/时序图/类图必须包含:
146
+ 1. 触发入口:触发该流程的 REST 接口、RPC 调用、MQ 消费者或 Job
147
+ 2. 上游一层:直接调用变更点的调用方节点
148
+ 3. 下游一层:变更点直接调用的被调方节点
149
+ 4. 所有变更节点使用统一高亮色(配色规则参见 schema.yaml design instruction)
150
+
151
+ 【图表质量准则】
152
+ - 聚焦核心:每张图聚焦单一业务流程或功能点,避免一张图承载过多信息
153
+ - 层次鲜明:通过配色区分入口/新增/修改/删除/未变更节点(配色规则参见 schema.yaml design instruction)
154
+ - 粒度适中:节点粒度为方法或步骤级,避免过度展开内部实现细节
155
+ - 逻辑完整:图中所有路径应有入口和出口,不出现孤立节点或断链
156
+ - 配色丰富:每张图至少使用 3 种以上颜色,入口用 primary,变更用 modified/added/removed,未变更用 secondary
157
+ -->
158
+
159
+ ### 6.1 示例:跨应用时序图(新增型功能点)
160
+
161
+ <!-- 仅当功能涉及跨应用调用时才绘制时序图。participant 命名:应用用英文名,操作角色用中文名,禁止类名,同一应用不重复 -->
162
+
163
+ **主流程:**
164
+
165
+ 1. 客户端发起下单请求
166
+ 2. 订单服务创建订单
167
+ 3. 库存服务扣减库存
168
+ 4. 消息服务发送下单通知
169
+
170
+ ```mermaid
171
+ sequenceDiagram
172
+ participant 用户
173
+ participant OrderApp as 订单服务
174
+ participant InventoryApp as 库存服务
175
+ participant MQApp as 消息服务
176
+
177
+ 用户->>OrderApp: POST /api/order/create
178
+ OrderApp->>InventoryApp: RPC deductStock()
179
+ InventoryApp-->>OrderApp: 扣减结果
180
+ OrderApp->>MQApp: 发送下单成功消息
181
+ OrderApp-->>用户: 下单结果
182
+ ```
183
+
184
+ ### 6.2 示例:修改型功能点流程图(含触发入口 + 上下各一层上下文 + 变更高亮)
185
+
186
+ <!-- 修改型功能点必须展示触发入口、变更节点高亮、上下各一层上下文 -->
187
+
188
+ **变更说明:** 修改订单创建流程,新增库存预占逻辑
189
+
190
+ ```mermaid
191
+ flowchart TD
192
+ A[REST /api/order/create]:::primary --> B[OrderController.createOrder]:::secondary
193
+ B --> C[OrderService.createOrder]:::modified
194
+ C --> D[InventoryService.preDeduct]:::added
195
+ C --> E[OrderRepo.save]:::secondary
196
+ C --> F[MqProducer.sendOrderMsg]:::secondary
197
+ E --> G[(订单表)]:::info
198
+ D --> H{库存充足?}
199
+ H -->|是| I[扣减成功]:::success
200
+ H -->|否| J[返回库存不足]:::removed
201
+
202
+ classDef modified fill:#FFF3CD,stroke:#F0AD4E,stroke-width:2px
203
+ classDef added fill:#D4EDDA,stroke:#28A745,stroke-width:2px
204
+ classDef removed fill:#F8D7DA,stroke:#DC3545,stroke-width:2px
205
+ classDef info fill:#D1ECF1,stroke:#17A2B8,stroke-width:2px
206
+ classDef success fill:#C3E6CB,stroke:#28A745,stroke-width:2px
207
+ classDef primary fill:#CCE5FF,stroke:#007BFF,stroke-width:2px
208
+ classDef secondary fill:#E2E3E5,stroke:#6C757D,stroke-width:2px
209
+ ```
210
+
211
+ ### 6.3 示例流程C
212
+
213
+ **主流程:**
214
+
215
+ 1. 业务步骤1
216
+ 2. 业务步骤2
217
+ 3. 业务步骤3
218
+
219
+ ---
220
+
221
+ ## 七、代码设计(必选)
222
+
223
+ <!-- AI理解要点:此章节描述单个服务内部的代码组织、执行逻辑,是生成代码的关键参考 -->
224
+
225
+ <!-- 展现形式:
226
+
227
+ 1. 代码级别 UML 类图(展示类间依赖与调用关系)
228
+ 2. 重要:所有图使用 mermaid 生成
229
+ 3. 禁止绘制类级别的时序图 — 各层方法职责与调用关系在"八、分层设计"章节以文字描述
230
+
231
+ 【类图规则】
232
+ - 仅当涉及 ≥5 个类或依赖关系复杂时才画类图
233
+ - 修改型功能点:被修改的类使用 classDef modified 高亮
234
+ - 新增的类使用 classDef added 标记
235
+ - 配色规则参见 schema.yaml design instruction
236
+ -->
237
+
238
+ <!-- 涉及内容:
239
+
240
+ 1. 复杂查询逻辑体现
241
+ 2. 数据落表逻辑说明
242
+ 3. 对消费消息的处理细节
243
+ 4. 对JOB内部的处理细节
244
+ -->
245
+
246
+ ```mermaid
247
+ classDiagram
248
+ class OrderController {
249
+ +createOrder()
250
+ }
251
+ class OrderService {
252
+ +createOrder()
253
+ +validateOrder()
254
+ }
255
+ class OrderRepo {
256
+ +save()
257
+ +findByOrderNo()
258
+ }
259
+ class MqProducer {
260
+ +sendOrderMsg()
261
+ }
262
+ class InventoryService {
263
+ +preDeduct()
264
+ }
265
+
266
+ OrderController --> OrderService
267
+ OrderService --> OrderRepo
268
+ OrderService --> MqProducer
269
+ OrderService --> InventoryService
270
+
271
+ classDef modified fill:#FFF3CD,stroke:#F0AD4E,stroke-width:2px
272
+ classDef added fill:#D4EDDA,stroke:#28A745,stroke-width:2px
273
+ classDef primary fill:#CCE5FF,stroke:#007BFF,stroke-width:2px
274
+ classDef secondary fill:#E2E3E5,stroke:#6C757D,stroke-width:2px
275
+
276
+ class OrderService modified
277
+ class InventoryService added
278
+ class OrderController primary
279
+ class OrderRepo secondary
280
+ class MqProducer secondary
281
+ ```
282
+
283
+ ---
284
+
285
+ ## 八、分层设计(必选)
286
+
287
+ <!-- AI理解要点:此章节描述每一层的方法和职责,不需要具体实现,但需要明确接口契约 -->
288
+
289
+ ### 8.1 Controller层(Rest接口)
290
+
291
+ <!-- AI理解要点:重点体现改动的接口,最新的接口契约 -->
292
+
293
+ #### 接口契约设计
294
+
295
+ **接口地址:** `POST /api/v1/xxxx`
296
+
297
+ **请求参数:**
298
+
299
+ | 参数名称 | 参数类型 | 参数长度 | 是否必填 | 描述 | 新增/修改 |
300
+ | --------------- | ------------------ | ----------------- | -------- | ------------- | --------- |
301
+ | <!-- 参数名 --> | String/Integer/... | <!-- 长度限制 --> | 是/否 | <!-- 描述 --> | 新增/修改 |
302
+
303
+ **响应参数:**
304
+
305
+ | 参数名称 | 参数类型 | 是否必填 | 描述 | 新增/修改 |
306
+ | -------- | -------- | -------- | ------------- | --------- |
307
+ | success | boolean | 是 | 是否成功 | - |
308
+ | code | integer | 是 | 状态码 | - |
309
+ | data | object | 是 | 响应数据 | - |
310
+ | data.xxx | string | 否 | <!-- 描述 --> | 新增/修改 |
311
+
312
+ ### 8.2 Facade层(Rpc接口)
313
+
314
+ <!-- AI理解要点:重点体现改动的RPC接口,最新的接口契约 -->
315
+
316
+ #### 接口契约设计
317
+
318
+ **接口地址:** `xxxService.xxxMethod()`
319
+
320
+ **请求参数:**
321
+
322
+ | 参数名称 | 参数类型 | 参数长度 | 是否必填 | 描述 | 新增/修改 |
323
+ | --------------- | ------------------ | ----------------- | -------- | ------------- | --------- |
324
+ | <!-- 参数名 --> | String/Integer/... | <!-- 长度限制 --> | 是/否 | <!-- 描述 --> | 新增/修改 |
325
+
326
+ **响应参数:**
327
+
328
+ | 参数名称 | 参数类型 | 是否必填 | 描述 | 新增/修改 |
329
+ | --------------- | ------------- | -------- | ------------- | --------- |
330
+ | <!-- 参数名 --> | <!-- 类型 --> | 是/否 | <!-- 描述 --> | 新增/修改 |
331
+
332
+ ### 8.3 Service层
333
+
334
+ <!-- AI理解要点:重点体现改动的核心方法和职责 -->
335
+
336
+ #### XxxService
337
+
338
+ **核心方法:**
339
+
340
+ - `method1()`:方法说明
341
+
342
+ **职责:**
343
+
344
+ 1. 职责1
345
+ 2. 职责2
346
+
347
+ ### 8.4 Repo层
348
+
349
+ <!-- AI理解要点:重点体现改动的核心方法和职责 -->
350
+
351
+ #### XxxRepo
352
+
353
+ **核心方法:**
354
+
355
+ - `findById()`:根据ID查询
356
+ - `save()`:保存数据
357
+
358
+ **职责:**
359
+
360
+ 1. 数据持久化
361
+ 2. 数据查询
362
+
363
+ ### 8.5 依赖RPC(可选)
364
+
365
+ <!-- AI理解要点:描述依赖的外部RPC服务,包括强弱依赖、超时配置、异常处理等 -->
366
+
367
+ | 序号 | 接口地址 | 提供方 | 是否强依赖 | 超时时间 | 异常处理 | SLA要求 | 备注 |
368
+ | ---- | ----------------- | --------------------- | ---------- | ----------- | ----------------- | ------------ | ------------- |
369
+ | 1 | <!-- 接口地址 --> | <!-- 提供方应用名 --> | 是/否 | <!-- ms --> | <!-- 降级策略 --> | <!-- SLA --> | <!-- 备注 --> |
370
+
371
+ ---
372
+
373
+ ## 九、数据库模型设计(可选)
374
+
375
+ <!-- AI理解要点:此章节描述数据库表变更,不涉及则删除整个章节 -->
376
+
377
+ | 序号 | 表结构变更语句 | 变更类型 | 变更说明 | 备注 |
378
+ | ---- | --------------------------- | -------------- | ------------- | ------------- |
379
+ | 1 | ```sql <!-- DDL语句 --> ``` | 新增/变更/废弃 | <!-- 说明 --> | <!-- 备注 --> |
380
+
381
+ ---
382
+
383
+ ## 十、MQ设计(可选)
384
+
385
+ <!-- AI理解要点:此章节描述消息队列相关变更,不涉及则删除整个章节 -->
386
+
387
+ | 序号 | 使用场景 | 角色 | 集群名称 | Topic名称 | 应用名称 | 变更类型 | 是否延时 | 是否顺序 | 幂等方案 | 备注 |
388
+ | ---- | ------------- | ------------- | ------------- | -------------- | ------------- | -------------- | -------- | -------- | ----------------- | ------------- |
389
+ | 1 | <!-- 场景 --> | 生产者/消费者 | <!-- 集群 --> | <!-- Topic --> | <!-- 应用 --> | 新增/变更/废弃 | 是/否 | 是/否 | <!-- 幂等方案 --> | <!-- 备注 --> |
390
+
391
+ ---
392
+
393
+ ## 十一、JOB设计(可选)
394
+
395
+ <!-- AI理解要点:此章节描述定时任务相关变更,不涉及则删除整个章节 -->
396
+
397
+ | 序号 | 使用场景 | Job名称(JobHandler) | 执行参数格式 | Cron表达式 | 变更类型 | 备注 |
398
+ | ---- | ------------- | --------------------- | ----------------- | ------------- | -------------- | ------------- |
399
+ | 1 | <!-- 场景 --> | <!-- JobHandler名 --> | <!-- 参数格式 --> | <!-- Cron --> | 新增/变更/废弃 | <!-- 备注 --> |
400
+
401
+ ---
402
+
403
+ ## 十二、Redis设计(可选)
404
+
405
+ <!-- AI理解要点:此章节描述Redis缓存相关变更,不涉及则删除整个章节 -->
406
+
407
+ | 序号 | 使用场景 | 应用名 | 数据类型 | key | value | ttl |
408
+ | ---- | ------------- | --------------- | ------------------------- | ---------------- | ------------------ | ----------------- |
409
+ | 1 | <!-- 场景 --> | <!-- 应用名 --> | String/Hash/List/Set/ZSet | <!-- key格式 --> | <!-- value格式 --> | <!-- 过期时间 --> |
410
+
411
+ ---
412
+
413
+ ## 十三、配置设计(可选)
414
+
415
+ <!-- AI理解要点:此章节描述配置中心相关变更,不涉及则删除整个章节 -->
416
+
417
+ | 序号 | 应用 | Key | Value(QA) | Value(生产) | 值说明 | 变更类型 | 备注 |
418
+ | ---- | --------------- | ---------------- | ------------- | --------------- | ------------- | -------------- | ------------- |
419
+ | 1 | <!-- 应用名 --> | <!-- 配置key --> | <!-- QA值 --> | <!-- 生产值 --> | <!-- 说明 --> | 新增/变更/废弃 | <!-- 备注 --> |
420
+
421
+ ---
422
+
423
+ ## 十四、测试策略(必选)
424
+
425
+ <!-- AI理解要点:此章节描述单元测试场景,必须满足TDD(测试驱动开发) -->
426
+
427
+ | 测试场景 | 验证点 |
428
+ | -------------- | ---------------- |
429
+ | <!-- 场景1 --> | <!-- 验证点1 --> |
430
+ | <!-- 场景2 --> | <!-- 验证点2 --> |
431
+
432
+ ---
433
+
434
+ ## 十五、稳定性设计(必选)
435
+
436
+ <!-- AI理解要点:此章节描述系统稳定性保障措施,改动小可以简单描述,但必须有这个思考过程 -->
437
+
438
+ ### 15.1 发布方案(必选)
439
+
440
+ <!-- AI理解要点:描述发布整体方案设计、发布顺序、灰度发布、验证方案、新老兼容性考虑等 -->
441
+ <!-- 目的:避免没有验证的功能影响所有用户,从稳定性角度说就是减少影响范围 -->
442
+
443
+ ### 15.2 回滚方案(必选)
444
+
445
+ <!-- AI理解要点:描述回滚策略 -->
446
+ <!-- 目的:发现系统存在问题的情况下可以快速止损,从稳定性角度说就是减少影响时长 -->
447
+
448
+ ### 15.3 监控方案(必选)
449
+
450
+ <!-- AI理解要点:监控的目的是及时知道系统运行情况、判断是否合理、针对不合理的情况及时处理 -->
451
+
452
+ | 风险点 | 监控方案 | 告警策略 |
453
+ | --------------- | ---------------------- | ----------------- |
454
+ | <!-- 风险点 --> | <!-- 监控指标/方式 --> | <!-- 告警规则 --> |
455
+
456
+ ---
457
+
458
+ ## 十六、防资损设计(必选)
459
+
460
+ <!-- AI理解要点:此章节描述资金安全相关的设计,改动小可以简单描述,但必须有这个思考过程 -->
461
+
462
+ | 序号 | 资损场景 | 资金流 | 防控方案 | 资损监控方案 | 备注 |
463
+ | ---- | ----------------- | ----------------- | ----------------- | ----------------- | ------------- |
464
+ | 1 | <!-- 场景描述 --> | <!-- 资金流向 --> | <!-- 防控措施 --> | <!-- 监控方案 --> | <!-- 备注 --> |
465
+
466
+ ---
467
+
468
+ ## 十七、其他风险/遗留问题(可选)
469
+
470
+ <!-- AI理解要点:此章节描述其他需要关注的风险点或遗留问题,不涉及则删除整个章节 -->
471
+
472
+ - 风险点1
473
+ - 风险点2
474
+
475
+ ---
@@ -0,0 +1,58 @@
1
+ ## 一、为什么
2
+
3
+ <!-- 说明这次变更的动机。要解决什么问题?为什么是现在? -->
4
+
5
+ ## 二、变更摘要
6
+
7
+ <!-- 1-3 句话最精简易读地描述本需求要做的事情。 -->
8
+
9
+ ## 三、变更清单
10
+
11
+ <!-- 能力维度的变更盘点(新增 / 修改 / 删除)。每个能力对应 `openspec/specs/<name>/spec.md`。
12
+ 表格同时承载"能力本身的静态信息(identifier / 中文名 / 简述)"和"本次变更对它的动作"。
13
+ 第四章"代码改动清单"是落到代码层的具体改动点。两章通过 identifier 字段双向关联。
14
+ **identifier 与展示名解耦**:identifier 列填英文 kebab-case(用于 path / CLI / 跨引用);`中文名` 列填人类阅读用名,可与 identifier 不同。 -->
15
+
16
+ ### 新增能力
17
+
18
+ <!-- 引入的新能力。`能力名` 用 kebab-case,对应新建一份 `specs/<name>/spec.md`。 -->
19
+
20
+ | 能力名 | 中文名 | 简述 | 备注 |
21
+ | ------ | ------ | ---- | ---- |
22
+
23
+ ### 修改能力
24
+
25
+ <!-- REQUIREMENTS 将发生变化(不只是实现细节)的已有能力。每个对应一份 delta spec 文件,用 `openspec/specs/` 下已有的 spec 名;没有需求变更则留整段。 -->
26
+
27
+ | 现有 spec 名 | 中文名 | 需求级变更说明 | 备注 |
28
+ | ------------ | ------ | -------------- | ---- |
29
+
30
+ ### 删除能力
31
+
32
+ <!-- 整段能力下线。spec 文件**保留**并写 `## REMOVED Requirements` 段,避免后续误用。
33
+ 迁移路径在 design.md > 迁移设计 / proposal.md > 影响 的叙述里展开。
34
+ 没有删除则留整段。 -->
35
+
36
+ | 已废弃 spec 名 | 中文名 | 删除原因 | 迁移到 | 备注 |
37
+ | -------------- | ------ | -------- | ------ | ---- |
38
+
39
+ ## 四、代码改动清单
40
+
41
+ <!-- 代码入口级别的改动盘点:每个 entry = 一个具体代码入口(方法 / 接口 / SQL / 配置 / 常量 / 枚举 等)。
42
+ `所属能力` 列强制填写:填第三章的能力名(含删除能力);无对应能力的纯基础设施改动(SQL 数据迁移、监控埋点、公用 job 调度、独立 bug 修复)填 `(基础设施)`。 -->
43
+
44
+ | 应用 | 变更类型 | 代码入口类型 | 代码入口 | 所属能力 | 变更简述 | 备注 |
45
+ | ---- | -------- | ------------ | -------- | -------- | -------- | ---- |
46
+
47
+ ## 五、影响
48
+
49
+ <!-- 受影响的代码、接口、依赖、上下游系统。**复杂影响分析**(灰度步骤、回滚方案、跨团队协作清单)进入 § design 阶段。
50
+ 本节只承担上游 Impact 的"列出来谁会被波及"角色,单段或简短 bullet。 -->
51
+
52
+ ## 六、决策记录
53
+
54
+ <!-- 撰写 proposal 过程中,遇到需求逻辑矛盾、信息缺失、潜在风险、方案取舍等不确定的点,向用户确认后逐条记录于此。 -->
55
+
56
+ | 序号 | 决策点 | 用户决策 | 影响 |
57
+ | ---- | ------ | -------- | ---- |
58
+ | 1 | | | |
@@ -0,0 +1,8 @@
1
+ ## ADDED Requirements
2
+
3
+ ### Requirement: <!-- requirement name -->
4
+ <!-- requirement text -->
5
+
6
+ #### Scenario: <!-- scenario name -->
7
+ - **WHEN** <!-- condition -->
8
+ - **THEN** <!-- expected outcome -->
@@ -0,0 +1,9 @@
1
+ ## 1. <!-- Task Group Name -->
2
+
3
+ - [ ] 1.1 <!-- Task description -->
4
+ - [ ] 1.2 <!-- Task description -->
5
+
6
+ ## 2. <!-- Task Group Name -->
7
+
8
+ - [ ] 2.1 <!-- Task description -->
9
+ - [ ] 2.2 <!-- Task description -->
@@ -0,0 +1,15 @@
1
+ {
2
+ "_comment": "业务空间与 GitLab 仓库映射表,由本项目维护者配置。执行 `cbb setup` 时会列出本表中的所有业务空间让用户选择,并在当前目录自动检测/拉取对应仓库,再继续安装本项目的现有能力。name 用于显示,可含中文;repo 为 `git clone` 命令接受的地址,支持 SSH(git@host:path)与 HTTPS(https://host/path)两种形式;businessLine 用于业务归类(如:直采、增值、KA 等),便于后续按业务线筛选或分组展示。",
3
+ "workspaces": [
4
+ {
5
+ "name": "直采AI开发工作空间",
6
+ "repo": "git@code.amh-group.com:yzg/ymm-ka-ai-workspace.git",
7
+ "businessLine": "TMS"
8
+ },
9
+ {
10
+ "name": "ETC业务AI开发工作空间",
11
+ "repo": "git@code.amh-group.com:etc/etc-ai-workspace.git",
12
+ "businessLine": "TMS"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "sha": "9d4e5974e5c0d9a09b9c6c1e1eb0975e80ec4461",
3
+ "branch": "main",
4
+ "repo": "Fission-AI/OpenSpec",
5
+ "updatedAt": "2026-09-12T00:00:00.000Z"
6
+ }