cgraphx 1.1.0 → 1.3.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 (201) hide show
  1. package/README.md +0 -1
  2. package/dist/.claude-template/hooks/precommit-check/precommit-check.cjs +90 -0
  3. package/dist/.claude-template/skills/cgraphx/SKILL.md +3 -3
  4. package/dist/.claude-template/skills/cgraphx/agent-prompt.md +1 -1
  5. package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +94 -0
  6. package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +424 -0
  7. package/dist/.claude-template/skills/clarify-requirements/SKILL.md +19 -8
  8. package/dist/.claude-template/skills/code-impact-docgen/SKILL.md +186 -176
  9. package/dist/.claude-template/skills/code-impact-docgen/template-design-html.md +357 -0
  10. package/dist/.claude-template/skills/code-impact-docgen/template-design-md.md +164 -0
  11. package/dist/.claude-template/skills/code-impact-init/SKILL.md +47 -47
  12. package/dist/.claude-template/skills/developer-timeline/SKILL.md +9 -0
  13. package/dist/.claude-template/skills/precommit-review/SKILL.md +50 -0
  14. package/dist/.claude-template/skills/run-api-test/SKILL.md +187 -0
  15. package/dist/.claude-template/skills/run-api-test/assets/template-test-report.md +103 -0
  16. package/dist/.claude-template/skills/run-api-test/assets/template-test-verify.jsonl +5 -0
  17. package/dist/.claude-template/skills/run-api-test/references/bru-run.md +60 -0
  18. package/dist/.claude-template/skills/run-api-test/references/db-verification.md +81 -0
  19. package/dist/.claude-template/skills/run-api-test/references/report-format.md +104 -0
  20. package/dist/.claude-template/skills/run-api-test/references/service-readiness.md +61 -0
  21. package/dist/.claude-template/skills/run-api-test/references/test-scope.md +64 -0
  22. package/dist/.claude-template/skills/write-api/SKILL.md +150 -0
  23. package/dist/.claude-template/skills/write-api/assets/template-api-spec.md +112 -0
  24. package/dist/.claude-template/skills/write-api/assets/template-request.bru +75 -0
  25. package/dist/.claude-template/skills/write-api/references/ai-prompts.md +133 -0
  26. package/dist/.claude-template/skills/write-api/references/api-spec-format.md +108 -0
  27. package/dist/.claude-template/skills/write-api/references/bru-format.md +144 -0
  28. package/dist/.claude-template/skills/write-api/references/collection-layout.md +81 -0
  29. package/dist/.claude-template/skills/write-api/references/environment-setup.md +105 -0
  30. package/dist/.claude-template/skills/write-api/references/interface-scope.md +74 -0
  31. package/dist/.claude-template/skills/write-api-doc/SKILL.md +317 -0
  32. package/dist/.claude-template/skills/write-api-doc/template-api-html.md +422 -0
  33. package/dist/.claude-template/skills/write-plan/SKILL.md +38 -16
  34. package/dist/.claude-template/skills/write-prd/SKILL.md +32 -8
  35. package/dist/.claude-template/skills/write-spec/SKILL.md +34 -9
  36. package/dist/api-test/ai-fields.d.ts +37 -0
  37. package/dist/api-test/ai-fields.d.ts.map +1 -0
  38. package/dist/api-test/ai-fields.js +114 -0
  39. package/dist/api-test/ai-fields.js.map +1 -0
  40. package/dist/api-test/assemble.d.ts +76 -0
  41. package/dist/api-test/assemble.d.ts.map +1 -0
  42. package/dist/api-test/assemble.js +185 -0
  43. package/dist/api-test/assemble.js.map +1 -0
  44. package/dist/api-test/bru-cli-invoker.d.ts +72 -0
  45. package/dist/api-test/bru-cli-invoker.d.ts.map +1 -0
  46. package/dist/api-test/bru-cli-invoker.js +169 -0
  47. package/dist/api-test/bru-cli-invoker.js.map +1 -0
  48. package/dist/api-test/bru-report-parser.d.ts +24 -0
  49. package/dist/api-test/bru-report-parser.d.ts.map +1 -0
  50. package/dist/api-test/bru-report-parser.js +110 -0
  51. package/dist/api-test/bru-report-parser.js.map +1 -0
  52. package/dist/api-test/bru-runner.d.ts +101 -0
  53. package/dist/api-test/bru-runner.d.ts.map +1 -0
  54. package/dist/api-test/bru-runner.js +316 -0
  55. package/dist/api-test/bru-runner.js.map +1 -0
  56. package/dist/api-test/bru-writer.d.ts +52 -0
  57. package/dist/api-test/bru-writer.d.ts.map +1 -0
  58. package/dist/api-test/bru-writer.js +159 -0
  59. package/dist/api-test/bru-writer.js.map +1 -0
  60. package/dist/api-test/call-chain-extractor.d.ts +80 -0
  61. package/dist/api-test/call-chain-extractor.d.ts.map +1 -0
  62. package/dist/api-test/call-chain-extractor.js +179 -0
  63. package/dist/api-test/call-chain-extractor.js.map +1 -0
  64. package/dist/api-test/cli.d.ts +133 -0
  65. package/dist/api-test/cli.d.ts.map +1 -0
  66. package/dist/api-test/cli.js +1009 -0
  67. package/dist/api-test/cli.js.map +1 -0
  68. package/dist/api-test/config.d.ts +75 -0
  69. package/dist/api-test/config.d.ts.map +1 -0
  70. package/dist/api-test/config.js +406 -0
  71. package/dist/api-test/config.js.map +1 -0
  72. package/dist/api-test/db-query-cli.d.ts +51 -0
  73. package/dist/api-test/db-query-cli.d.ts.map +1 -0
  74. package/dist/api-test/db-query-cli.js +119 -0
  75. package/dist/api-test/db-query-cli.js.map +1 -0
  76. package/dist/api-test/enhance-prepare.d.ts +111 -0
  77. package/dist/api-test/enhance-prepare.d.ts.map +1 -0
  78. package/dist/api-test/enhance-prepare.js +425 -0
  79. package/dist/api-test/enhance-prepare.js.map +1 -0
  80. package/dist/api-test/enhance-write.d.ts +28 -0
  81. package/dist/api-test/enhance-write.d.ts.map +1 -0
  82. package/dist/api-test/enhance-write.js +145 -0
  83. package/dist/api-test/enhance-write.js.map +1 -0
  84. package/dist/api-test/errors.d.ts +48 -0
  85. package/dist/api-test/errors.d.ts.map +1 -0
  86. package/dist/api-test/errors.js +76 -0
  87. package/dist/api-test/errors.js.map +1 -0
  88. package/dist/api-test/field-extractor.d.ts +98 -0
  89. package/dist/api-test/field-extractor.d.ts.map +1 -0
  90. package/dist/api-test/field-extractor.js +327 -0
  91. package/dist/api-test/field-extractor.js.map +1 -0
  92. package/dist/api-test/impl-finder.d.ts +37 -0
  93. package/dist/api-test/impl-finder.d.ts.map +1 -0
  94. package/dist/api-test/impl-finder.js +54 -0
  95. package/dist/api-test/impl-finder.js.map +1 -0
  96. package/dist/api-test/index.d.ts +41 -0
  97. package/dist/api-test/index.d.ts.map +1 -0
  98. package/dist/api-test/index.js +124 -0
  99. package/dist/api-test/index.js.map +1 -0
  100. package/dist/api-test/java-parser.d.ts +89 -0
  101. package/dist/api-test/java-parser.d.ts.map +1 -0
  102. package/dist/api-test/java-parser.js +508 -0
  103. package/dist/api-test/java-parser.js.map +1 -0
  104. package/dist/api-test/md-writer.d.ts +49 -0
  105. package/dist/api-test/md-writer.d.ts.map +1 -0
  106. package/dist/api-test/md-writer.js +202 -0
  107. package/dist/api-test/md-writer.js.map +1 -0
  108. package/dist/api-test/parser-httpservice.d.ts +91 -0
  109. package/dist/api-test/parser-httpservice.d.ts.map +1 -0
  110. package/dist/api-test/parser-httpservice.js +271 -0
  111. package/dist/api-test/parser-httpservice.js.map +1 -0
  112. package/dist/api-test/report.d.ts +188 -0
  113. package/dist/api-test/report.d.ts.map +1 -0
  114. package/dist/api-test/report.js +522 -0
  115. package/dist/api-test/report.js.map +1 -0
  116. package/dist/api-test/snapshot.d.ts +26 -0
  117. package/dist/api-test/snapshot.d.ts.map +1 -0
  118. package/dist/api-test/snapshot.js +150 -0
  119. package/dist/api-test/snapshot.js.map +1 -0
  120. package/dist/api-test/test-history.d.ts +48 -0
  121. package/dist/api-test/test-history.d.ts.map +1 -0
  122. package/dist/api-test/test-history.js +122 -0
  123. package/dist/api-test/test-history.js.map +1 -0
  124. package/dist/api-test/types.d.ts +174 -0
  125. package/dist/api-test/types.d.ts.map +1 -0
  126. package/dist/api-test/types.js +13 -0
  127. package/dist/api-test/types.js.map +1 -0
  128. package/dist/api-test/verify-prepare.d.ts +30 -0
  129. package/dist/api-test/verify-prepare.d.ts.map +1 -0
  130. package/dist/api-test/verify-prepare.js +150 -0
  131. package/dist/api-test/verify-prepare.js.map +1 -0
  132. package/dist/api-test/verify-write.d.ts +31 -0
  133. package/dist/api-test/verify-write.d.ts.map +1 -0
  134. package/dist/api-test/verify-write.js +159 -0
  135. package/dist/api-test/verify-write.js.map +1 -0
  136. package/dist/bin/codegraph.js +0 -100
  137. package/dist/bin/codegraph.js.map +1 -1
  138. package/dist/dbquery/dump-schema.d.ts +46 -0
  139. package/dist/dbquery/dump-schema.d.ts.map +1 -0
  140. package/dist/dbquery/dump-schema.js +379 -0
  141. package/dist/dbquery/dump-schema.js.map +1 -0
  142. package/dist/installer/targets/claude.d.ts +15 -0
  143. package/dist/installer/targets/claude.d.ts.map +1 -1
  144. package/dist/installer/targets/claude.js +53 -0
  145. package/dist/installer/targets/claude.js.map +1 -1
  146. package/dist/resolution/index.d.ts.map +1 -1
  147. package/dist/resolution/index.js +13 -0
  148. package/dist/resolution/index.js.map +1 -1
  149. package/dist/resolution/scope-index.d.ts +86 -0
  150. package/dist/resolution/scope-index.d.ts.map +1 -0
  151. package/dist/resolution/scope-index.js +143 -0
  152. package/dist/resolution/scope-index.js.map +1 -0
  153. package/dist/resolution/stdlib-blocklist.d.ts +53 -0
  154. package/dist/resolution/stdlib-blocklist.d.ts.map +1 -0
  155. package/dist/resolution/stdlib-blocklist.js +143 -0
  156. package/dist/resolution/stdlib-blocklist.js.map +1 -0
  157. package/dist/search/ast-helpers.d.ts +42 -0
  158. package/dist/search/ast-helpers.d.ts.map +1 -0
  159. package/dist/search/ast-helpers.js +106 -0
  160. package/dist/search/ast-helpers.js.map +1 -0
  161. package/dist/search/call-sites.d.ts +398 -0
  162. package/dist/search/call-sites.d.ts.map +1 -0
  163. package/dist/search/call-sites.js +1433 -0
  164. package/dist/search/call-sites.js.map +1 -0
  165. package/dist/search/context.d.ts +134 -0
  166. package/dist/search/context.d.ts.map +1 -0
  167. package/dist/search/context.js +575 -0
  168. package/dist/search/context.js.map +1 -0
  169. package/dist/search/impact.d.ts +139 -0
  170. package/dist/search/impact.d.ts.map +1 -0
  171. package/dist/search/impact.js +646 -0
  172. package/dist/search/impact.js.map +1 -0
  173. package/dist/search/related.d.ts +178 -0
  174. package/dist/search/related.d.ts.map +1 -0
  175. package/dist/search/related.js +667 -0
  176. package/dist/search/related.js.map +1 -0
  177. package/dist/search/slice.d.ts +148 -0
  178. package/dist/search/slice.d.ts.map +1 -0
  179. package/dist/search/slice.js +460 -0
  180. package/dist/search/slice.js.map +1 -0
  181. package/dist/search/snr-constants.d.ts +41 -0
  182. package/dist/search/snr-constants.d.ts.map +1 -0
  183. package/dist/search/snr-constants.js +44 -0
  184. package/dist/search/snr-constants.js.map +1 -0
  185. package/dist/search/types.d.ts +28 -0
  186. package/dist/search/types.d.ts.map +1 -0
  187. package/dist/search/types.js +12 -0
  188. package/dist/search/types.js.map +1 -0
  189. package/dist/timeline/cli.d.ts.map +1 -1
  190. package/dist/timeline/cli.js +22 -3
  191. package/dist/timeline/cli.js.map +1 -1
  192. package/dist/timeline/store.d.ts +5 -0
  193. package/dist/timeline/store.d.ts.map +1 -1
  194. package/dist/timeline/store.js +23 -3
  195. package/dist/timeline/store.js.map +1 -1
  196. package/package.json +1 -1
  197. package/scripts/agent-eval/subagent-token-cost.py +188 -0
  198. package/dist/.claude-template/skills/code-impact-docgen/template-business-html.md +0 -242
  199. package/dist/.claude-template/skills/code-impact-docgen/template-business-md.md +0 -107
  200. package/dist/.claude-template/skills/code-impact-docgen/template-technical-html.md +0 -205
  201. package/dist/.claude-template/skills/code-impact-docgen/template-technical-md.md +0 -155
@@ -33,11 +33,11 @@ description: 用户给一段话描述(模糊想法/领导式指令/产品想法/
33
33
  你必须为下列每一项创建一个任务,并按顺序完成:
34
34
  1. **探索上下文**
35
35
  - 按需读项目结构、文档、代码、测试、schema、路由、模型、API、UI、既有约定
36
- - 项目里有这些工具可作为上下文补充:
37
- - `code-impact-api skill` — 查 docs/knowledge/ 历史决策、业务概念、项目经验
38
- - `db-query skill` — 查数据库、查 DDL
39
- - `codegraph_explore` MCP 工具 / `cgraphx query` / `cgraphx affected` CLI — 查代码调用关系、影响半径(MCP 优先;MCP 不可用时走 Bash CLI)
40
- - `developer-timeline skill` — 查用户最近做了什么(回顾开发历史)
36
+ - 项目里有这些工具可作为上下文补充, 对于符合的场景,必须使用:
37
+ - `code-impact-api skill` — 查 历史决策、业务概念、项目经验时必须使用
38
+ - `db-query skill` — 查数据库、查 DDL 时必须使用
39
+ - `codegraph_explore` MCP 工具 / `cgraphx query` / `cgraphx affected` CLI — 查代码调用关系、影响半径时必须使用
40
+ - `developer-timeline skill` — 查用户最近做了什么(回顾开发历史) 时必须使用
41
41
  - 调用前明确告诉用户"我需要先查 X 来理解背景"。收集完简要陈述发现,不要大段贴原文
42
42
  - 在假设任务形态之前,先识别当前行为和既有约束
43
43
 
@@ -360,6 +360,15 @@ description: 用户给一段话描述(模糊想法/领导式指令/产品想法/
360
360
 
361
361
  边界情况(任务量 2-3 个、文件 3-5 个)由主 agent 根据 plan 是否存在 + 任务独立性判断。
362
362
 
363
+ **事后沉淀环节(可选,不在实现前)**:无论选 `/implementation` 还是 `/subagent-implement`,实现推进过程中可按需触发两个事后文档 skill:
364
+
365
+ | skill | 触发时机 | 产物 | 主题 |
366
+ |---|---|---|---|
367
+ | `/write-api-doc` | 接口开发完毕(不必等所有自测) | `<文件前缀>-接口文档.html` | 仅本次 feature 新增的接口;从 spec 接口章节 + 代码反向提取 |
368
+ | `/code-impact-docgen` | 自测通过后 | `<文件前缀>-设计文档.md` | 整个 feature 的设计(架构/模块/决策);从 knowledge + spec + plan 合成 |
369
+
370
+ 两者互不替代:同一 feature 可以同时产出接口文档和设计文档,各自服务不同读者。默认输出路径都在 `docs/features/<feature-id>/`。
371
+
363
372
  ## 最终输出
364
373
 
365
374
  结束时,只输出一份澄清总结:
@@ -402,10 +411,12 @@ description: 用户给一段话描述(模糊想法/领导式指令/产品想法/
402
411
 
403
412
  **用户控制的下一步**
404
413
  接下来你可以选择:
405
- - 写 PRD(`/write-prd`)
406
- - 起草 spec(`/write-spec`)
407
- - 创建实现计划(`/write-plan`)
414
+ - 写 PRD(`/write-prd`)—— 产物 `<文件前缀>-需求文档.md`
415
+ - 起草 spec(`/write-spec`)—— 产物 `<文件前缀>-spec.md`
416
+ - 创建实现计划(`/write-plan`)—— 产物 `plan/<文件前缀>-index.md` 等
408
417
  - 开始实现 —— 根据任务规模选(`/implementation` 简单 / `/subagent-implement` 复杂,详见「下游实现 skill 选择」)
418
+ - 接口开发完毕后 —— 用 `/write-api-doc` 生成 `<文件前缀>-接口文档.html`(只覆盖新增接口,可选)
419
+ - 自测通过后 —— 用 `/code-impact-docgen` 生成 `<文件前缀>-设计文档.md` 沉淀到 feature 目录(可选)
409
420
  ```
410
421
 
411
422
  **输出这份总结后,不再继续。** 不自动调用任何下游 skill,不写代码,不写文档。
@@ -1,90 +1,122 @@
1
1
  ---
2
2
  name: code-impact-docgen
3
- description: 从本地图谱知识库召回 AI 导向的知识文档,合成面向人类阅读的业务/技术文档。支持 HTML 和 Markdown 两种输出格式,可按文档类型(business/technical)和章节结构进行配置。
3
+ description: 从本地图谱知识库(docs/knowledge/)和当前 feature 目录下的 spec/plan 召回素材,合成面向研发和技术负责人的"设计文档"。在 feature 自测通过后调用,默认输出到 docs/features/<feature-id>/<文件前缀>-设计文档.md。支持 HTML 和 Markdown 两种输出格式,可按章节结构进行配置。
4
4
  ---
5
5
 
6
6
  # Code Impact DocGen
7
7
 
8
- 从本地图谱知识库中召回 AI 导向的知识文档,智能合成面向人类阅读的正式文档。
8
+ 从本地图谱知识库和当前 feature 目录下的 spec/plan 召回素材,合成**面向研发和技术负责子的设计文档**。
9
9
 
10
- 本 skill `docs/knowledge/` 中为 AI 消费而设计的结构化知识文件(YAML frontmatter + 稳定英文标题)转化为面向业务或技术读者的连贯、精炼、可读性强的文档。输出的文档不包含 YAML frontmatter,不使用 AI 导向的稳定标题,而是按照用户选择的文档类型和章节结构组织内容。
10
+ 本 skill feature 实现自测通过后调用,把 `docs/knowledge/` 中的 AI 导向知识文档与当前 feature 目录下的 spec/plan 一起,合成为连贯、精炼、可读性强的设计文档。输出文档不含 YAML frontmatter,不使用 AI 导向的稳定标题,按设计文档的章节结构组织内容。
11
+
12
+ **典型场景**:用户完成 feature 实现 + 自测后,说"生成设计文档"、"写设计文档"、"用 docgen 沉淀一下"——本 skill 召回 knowledge + 读取 spec/plan,合成一份设计文档落到 feature 目录。
11
13
 
12
14
  ## Trigger
13
15
 
14
- 使用此 skill 当:
16
+ 使用此 skill 当:
15
17
 
16
- - 用户要求基于项目知识生成文档、报告或说明
17
- - 用户说"写一份文档"、"生成报告"、"整理成文档"、"写个说明"等
18
- - 用户要求对某个概念、领域、系统或模块生成人类可读的概述
19
- - 用户要求把知识库中的内容整理为可供分享或归档的文档
20
- - 用户要求生成 HTML 或 Markdown 格式的正式文档
18
+ - 用户完成 feature 自测后要求"生成设计文档"、"写设计文档"、"沉淀设计文档"
19
+ - 用户要求基于 spec/plan 和项目知识库合成一份技术文档
20
+ - 用户说"用 docgen 生成"、"自测完了,该写设计文档了"
21
+ - 用户要求把 spec + plan + knowledge 整理为一份可分享的设计文档
22
+ - 用户要求生成 HTML 或 Markdown 格式的设计文档
21
23
 
22
- 不要使用此 skill 当:
24
+ 不要使用此 skill 当:
23
25
 
24
- - 创建或编辑 AI 导向的知识文件(使用 `code-impact-markdown` skill
25
- - 查询知识以辅助代码编辑(使用 `code-impact-api` skill
26
- - 探索陌生项目(使用 `code-impact-init` skill
26
+ - 创建或编辑 AI 导向的知识文件(使用 `code-impact-markdown` skill)
27
+ - 查询知识以辅助代码编辑(使用 `code-impact-api` skill)
28
+ - 探索陌生项目(使用 `code-impact-init` skill)
29
+ - 写 PRD(使用 `write-prd` skill,设计文档是事后沉淀,PRD 是事前业务确认)
30
+ - 写 spec(使用 `write-spec` skill,设计文档不重新定义规格契约)
31
+ - 写 plan(使用 `write-plan` skill)
27
32
 
28
33
  ## 依赖
29
34
 
30
35
  - cgraphx 已安装(`cgraphx --version` 可跑)
31
36
  - 项目已跑过 `cgraphx docs index`,索引中有知识文档数据(用 `cgraphx docs concepts` 验证)
32
- - 若索引为空:先按 `code-impact-markdown` skill 写文档到 `docs/knowledge/`,再 `cgraphx docs index`
37
+ - knowledge 索引为空:先按 `code-impact-markdown` skill 写文档到 `docs/knowledge/`,再 `cgraphx docs index`
38
+ - 当前 feature 目录下应有 spec(`docs/features/<feature-id>/<文件前缀>-spec.md`)和/或 plan(`docs/features/<feature-id>/plan/`)
39
+
40
+ ## 内容来源规格
41
+
42
+ 设计文档的内容来源**必须包含两类**:
43
+
44
+ 1. **`docs/knowledge/` 中的 AI 导向知识文档** — 通过 `cgraphx docs find` 召回,提供项目级架构、决策、风险等背景
45
+ 2. **当前 feature 目录下的 spec 和 plan** — 直接 Read,提供本 feature 的目标、契约、任务拆分、技术约束
46
+
47
+ **两类来源都不可缺**:若 knowledge 为空且 feature 目录无 spec/plan,skill 必须拒绝生成,提示用户先准备素材。
48
+
49
+ ## feature-id 与文件前缀规则
50
+
51
+ **feature-id 识别(优先级从高到低)**:
52
+
53
+ 1. 用户调用时显式传 feature-id 或输出路径参数 → 使用用户指定
54
+ 2. skill 自动从 cwd 向上探测最近的 `docs/features/<feature-id>/` 目录 → 使用探测结果
55
+ 3. 都失败 → skill 报错并要求用户显式传 feature-id 或输出路径
56
+
57
+ **文件前缀算法**:
58
+
59
+ feature-id 格式:`YYYY-MM-DD-[业务ID-]<标题>`
60
+
61
+ - 有业务ID:文件前缀 = `<业务ID>-<标题>`(如 `CRM-req19230-号百商品详情查询接口`)
62
+ - 无业务ID:文件前缀 = `<标题>`(如 `features目录结构调整`)
63
+
64
+ 业务ID 段允许字母数字 + 连字符;标题段允许中文、英文或混合。**不得**对中文做英文 slug 转换。
33
65
 
34
- ## 知识召回流程
66
+ 文件名不得包含 `/`、`:`、`*`、`?`、`"`、`<`、`>`、`|`;若含敏感字符,要求用户重命名,不自动替换。
35
67
 
36
- 生成文档前,必须通过以下流程收集源材料。不要凭空编写内容——所有内容必须基于图谱中已有的知识文档。
68
+ **默认输出路径**:`docs/features/<feature-id>/<文件前缀>-设计文档.md`(或 `.html`)
37
69
 
38
- ### 第一步:确认需求
70
+ 用户可显式参数覆盖默认路径。
39
71
 
40
- 向用户确认(如果未明确指定):
72
+ ## 召回与生成流程
41
73
 
42
- 1. **主题范围** — 一个 concept 名称、一个 domain、一个系统/模块名称,或一个自由描述
43
- 2. **文档类型** — `business`(面向业务读者)或 `technical`(面向技术人员)
44
- 3. **输出格式** — `html` 或 `md`
45
- 4. **可选:目标章节** — 用户可以选择包含或排除哪些章节(见章节菜单)
74
+ 生成设计文档前,必须通过以下流程收集源材料。不要凭空编写内容——所有事实性内容必须来自上述两类来源。
46
75
 
47
- 如果用户未指定文档类型,根据主题范围自动判断:
76
+ ### 第一步:确认需求与识别 feature-id
48
77
 
49
- - 主题涉及业务流程、产品功能、项目规划 → 默认 `business`
50
- - 主题涉及代码架构、模块设计、技术实现 → 默认 `technical`
51
- - 不确定时向用户确认
78
+ 向用户确认(如果未明确指定):
52
79
 
53
- ### 第二步:召回知识文档
80
+ 1. **feature-id / 输出路径** — 默认按上方规则识别,用户可覆盖
81
+ 2. **输出格式** — `html` 或 `md`
82
+ 3. **可选:目标章节** — 用户可以选择包含或排除哪些章节(见章节菜单)
83
+ 4. **可选:主题范围补充** — 若 feature spec/plan 之外还有特定主题需要覆盖,用户可补充
54
84
 
55
- 根据主题范围选择召回方式(用 `cgraphx docs` CLI):
85
+ ### 第二步:召回 knowledge 文档
56
86
 
57
- **按概念精确过滤(推荐,召回最精准):**
87
+ 用 `cgraphx docs find` 按 concept/domain/keyword/tag 过滤(见下方命令)。
88
+
89
+ **按概念精确过滤(推荐,召回最精准)**:
58
90
 
59
91
  ```bash
60
92
  cgraphx docs find --concept=<concept-name> --limit=20
61
93
  ```
62
94
 
63
- **按 domain 过滤(覆盖整个业务领域):**
95
+ **按 domain 过滤(覆盖整个业务领域)**:
64
96
 
65
97
  ```bash
66
98
  cgraphx docs find --domain=<domain-name> --limit=20
67
99
  ```
68
100
 
69
- **按关键词子串匹配(适合模糊探索;LIKE on title + Summary):**
101
+ **按关键词子串匹配(适合模糊探索;LIKE on title + Summary)**:
70
102
 
71
103
  ```bash
72
104
  cgraphx docs find --q=<关键词> --limit=20
73
105
  ```
74
106
 
75
- **按 tag 过滤(横向主题分组):**
107
+ **按 tag 过滤(横向主题分组)**:
76
108
 
77
109
  ```bash
78
110
  cgraphx docs find --tag=<tag-name> --limit=20
79
111
  ```
80
112
 
81
- **组合多维过滤(交集):**
113
+ **组合多维过滤(交集)**:
82
114
 
83
115
  ```bash
84
116
  cgraphx docs find --concept=X --domain=Y --status=active --type=decision
85
117
  ```
86
118
 
87
- **列出全部 concept / domain / tag(找主题入口):**
119
+ **列出全部 concept / domain / tag(找主题入口)**:
88
120
 
89
121
  ```bash
90
122
  cgraphx docs concepts # 跨文档去重的 concept + 各自关联文档数 + 所属 domain
@@ -94,9 +126,19 @@ cgraphx docs tags
94
126
 
95
127
  `find` 输出每条结果包含 `title` / `document_type` / `status` / `updated` / `summary`(Summary 章节文本) / `path`(项目根相对,供 Read)。
96
128
 
97
- ### 第三步:读取文档详情
129
+ ### 第三步:读取 feature 目录下的 spec 和 plan
130
+
131
+ Read 以下文件(若存在):
132
+
133
+ - `docs/features/<feature-id>/<文件前缀>-spec.md` — 拿到目标、范围、业务规则、技术约束、不可留实现期决策
134
+ - `docs/features/<feature-id>/plan/<文件前缀>-index.md` — 拿到任务拆分、依赖图、改动范围
135
+ - `docs/features/<feature-id>/plan/<文件前缀>-01-schema.md` 等按需子文件 — 拿到具体 schema/接口/前端任务细节
98
136
 
99
- `find` 返回的 `summary` `## Summary` 章节内容,通常是文档的核心结论。**如果 Summary 不够,**用 `path` 字段直接 Read 原文件:
137
+ 如果 feature 目录下还没有 spec/plan(比如 plan 不存在),如实标注"无 plan 文件,任务拆分章节缺失",不要凭空补。
138
+
139
+ ### 第四步:读取 knowledge 详情
140
+
141
+ `find` 返回的 `summary` 是 `## Summary` 章节内容,通常是文档的核心结论。**如果 Summary 不够**,用 `path` 字段直接 Read 原文件:
100
142
 
101
143
  ```bash
102
144
  cgraphx docs show <doc-id-or-path> # 输出 frontmatter 元数据 + Summary
@@ -106,9 +148,9 @@ Read <path> # 拿到完整原文(含 Context / Deci
106
148
 
107
149
  **重要**:**只有 `## Summary` 进 cgraphx 索引**,其他章节(Context / Decisions / Findings / Steps / ...)留在文件里。生成文档时,这些章节的内容来源是 **Read 文件原文**,不是图谱字段。
108
150
 
109
- ### 第四步:探索关联知识(可选,按需)
151
+ ### 第五步:探索关联知识(可选,按需)
110
152
 
111
- 如果需要更全面的背景(文档间引用关系):
153
+ 如果需要更全面的背景(文档间引用关系):
112
154
 
113
155
  ```bash
114
156
  cgraphx docs refs <doc-id-or-path>
@@ -119,127 +161,94 @@ cgraphx docs refs <doc-id-or-path>
119
161
 
120
162
  适合"这个决策被哪些文档引用了"、"还有哪些相关文档"的扩展召回。
121
163
 
122
- ### 第五步:合成文档
164
+ ### 第六步:合成设计文档
123
165
 
124
- 基于召回的全部源材料,按照用户选择的文档类型和章节结构生成文档。见后续章节。
166
+ 基于 knowledge + spec/plan 两类来源,按章节菜单重组内容,生成设计文档。见后续章节。
125
167
 
126
- ## 文档类型
168
+ ## 设计文档定位
127
169
 
128
- 用户选择 `business` 或 `technical`,决定文档的读者定位、语气和结构。
170
+ - **读者**:研发工程师、架构师、技术负责人、后续维护者
171
+ - **语气**:精确、专业,包含技术细节
172
+ - **结构重点**:架构设计、核心模块、数据流、技术决策、已知限制、扩展方向
173
+ - **典型场景**:feature 实现自测通过后,作为事后技术沉淀归档
174
+ - **与 spec 的区别**:spec 是事前契约,设计文档是事后沉淀;设计文档不得重新定义 spec 的契约
129
175
 
130
- ### business(面向业务读者)
176
+ ## 章节菜单
131
177
 
132
- - **读者**:项目经理、产品经理、业务决策者、新成员
133
- - **语气**:非技术性,侧重价值、流程、决策理由
134
- - **结构重点**:背景与目标、业务流程、关键决策、影响与价值
135
- - **技术细节处理**:将技术概念转化为业务可理解的描述,必要时放在附录中
136
- - **默认章节**:背景与目标、核心能力、业务流程、关键决策、现状与展望
178
+ 用户可以选择包含哪些章节。以下为完整章节库。
137
179
 
138
- ### technical(面向技术读者)
180
+ ### 默认章节(用户未指定时全部包含)
139
181
 
140
- - **读者**:开发工程师、架构师、技术负责人
141
- - **语气**:精确、专业,包含技术细节
142
- - **结构重点**:架构设计、数据流、技术决策、已知问题、扩展方向
143
- - **默认章节**:概述、架构设计、核心模块、技术决策、已知限制、扩展方向
182
+ | 章节名 | 用途 | 主来源 |
183
+ |--------|------|--------|
184
+ | 概述 / Overview | 设计文档覆盖的主题、目标和定位 | spec 目标与范围 + knowledge Summary |
185
+ | 架构设计 / Architecture | 系统架构和数据流 | spec 系统行为 + knowledge Summary + Read 原文 |
186
+ | 核心模块 / Core Modules | 各模块职责和交互 | plan 任务拆分 + knowledge Summary |
187
+ | 技术决策 / Key Decisions | 重要技术决策及理由 | spec 不可留实现期决策 + knowledge Decisions |
188
+ | 已知限制 / Known Limits | 技术约束和已知问题 | spec 待确认项 + knowledge Findings/Risks |
189
+ | 扩展方向 / Extension Points | 可扩展点和改进方向 | knowledge Outlook |
144
190
 
145
- ## 章节菜单
191
+ ### 可选章节(按需添加)
146
192
 
147
- 用户可以选择包含哪些章节。以下为完整章节库,按文档类型标记适用范围。
148
-
149
- ### 通用章节(business + technical)
150
-
151
- | 章节名 | 用途 | business | technical |
152
- |--------|------|----------|-----------|
153
- | 背景与目标 / Overview | 文档覆盖的主题和目标 | 默认 | 默认(概述) |
154
- | 核心能力 / Key Capabilities | 系统或模块的主要能力 | 默认 | 默认 |
155
- | 关键决策 / Key Decisions | 重要技术或业务决策及理由 | 默认 | 默认 |
156
- | 现状与展望 / Status & Outlook | 当前状态、已知限制、未来方向 | 默认 | 默认 |
157
- | 术语表 / Glossary | 关键术语和定义 | 可选 | 可选 |
158
- | 相关资源 / References | 相关文档和代码链接 | 可选 | 可选 |
159
-
160
- ### business 专属章节
161
-
162
- | 章节名 | 用途 |
163
- |--------|------|
164
- | 业务流程 / Business Flow | 业务操作流程和规则 |
165
- | 用户场景 / Use Cases | 典型使用场景描述 |
166
- | 价值与影响 / Value & Impact | 对业务的价值和影响 |
167
- | 风险与注意事项 / Risks | 已知风险和注意事项 |
168
- | 常见问题 / FAQ | 业务层面的常见问题 |
169
-
170
- ### technical 专属章节
171
-
172
- | 章节名 | 用途 |
173
- |--------|------|
174
- | 架构设计 / Architecture | 系统架构和数据流 |
175
- | 核心模块 / Core Modules | 各模块职责和交互 |
176
- | 数据模型 / Data Model | 数据结构和存储方案 |
177
- | API 参考 / API Reference | 接口和端点说明 |
178
- | 性能特征 / Performance | 性能瓶颈和优化方向 |
179
- | 已知限制 / Known Limits | 技术约束和已知问题 |
180
- | 扩展方向 / Extension Points | 可扩展点和改进方向 |
181
- | 运维指南 / Operations | 部署、监控、故障排除 |
193
+ | 章节名 | 用途 | 主来源 |
194
+ |--------|------|--------|
195
+ | 数据模型 / Data Model | 数据结构和存储方案 | plan schema 任务 + spec 数据口径 |
196
+ | API 参考 / API Reference | 接口和端点说明 | spec 接口边界 + plan backend 任务 |
197
+ | 性能特征 / Performance | 性能瓶颈和优化方向 | knowledge Findings |
198
+ | 运维指南 / Operations | 部署、监控、故障排除 | knowledge Operations |
199
+ | 术语表 / Glossary | 关键术语和定义 | spec 术语章节 + knowledge 各字段术语 |
200
+ | 相关资源 / References | 相关文档和代码链接 | spec / plan / knowledge 引用 |
182
201
 
183
202
  ### 章节选择规则
184
203
 
185
204
  - 用户可以明确指定要包含的章节
186
205
  - 用户可以从默认章节中排除不需要的章节
187
- - 如果用户未指定,使用对应文档类型的默认章节
206
+ - 如果用户未指定,使用上述全部默认章节
188
207
  - 按照上述表格顺序排列章节
189
208
 
190
209
  ## 输出格式
191
210
 
192
211
  ### HTML 格式
193
212
 
194
- 生成单文件独立 HTML 文档,特点:
195
-
196
- - **内联 CSS**:不依赖外部样式表,所有样式写在 `<style>` 标签内
197
- - **响应式布局**:使用 CSS 变量控制主题,支持不同屏幕宽度
198
- - **打印友好**:包含 `@media print` 样式
199
- - **浅色阅读主题**:白色背景,高对比度,适合长时间阅读
200
- - **字体**:`-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif`
201
- - **代码块**:等宽字体,浅灰背景,圆角边框
202
- - **表格**:斑马纹行,边框分隔
203
- - **目录**:文档开头自动生成可点击目录(锚点链接)
213
+ 生成单文件独立 HTML 文档,特点:
204
214
 
205
- 生成前阅读对应模板文件获取完整 CSS 和结构参考:
215
+ - **内联 CSS**:不依赖外部样式表,所有样式写在 `<style>` 标签内
216
+ - **响应式布局**:使用 CSS 变量控制主题,支持不同屏幕宽度
217
+ - **打印友好**:包含 `@media print` 样式
218
+ - **浅色阅读主题**:白色背景,高对比度,适合长时间阅读
219
+ - **字体**:`-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif`
220
+ - **代码块**:等宽字体,浅灰背景,圆角边框
221
+ - **表格**:斑马纹行,边框分隔
222
+ - **目录**:文档开头自动生成可点击目录(锚点链接)
206
223
 
207
- | 文档类型 | 模板文件 |
208
- |----------|----------|
209
- | business | [template-business-html.md](template-business-html.md) |
210
- | technical | [template-technical-html.md](template-technical-html.md) |
224
+ 生成前阅读对应模板文件获取完整 CSS 和结构参考:[template-design-html.md](template-design-html.md)
211
225
 
212
226
  ### Markdown 格式
213
227
 
214
- 生成干净的 Markdown 文档,特点:
215
-
216
- - **无 YAML frontmatter**:与 `docs/knowledge/` 中的 AI 导向文档不同
217
- - **层级标题**:`#`(文档标题)、`##`(章节)、`###`(子章节)
218
- - **代码块**:三个反引号围栏代码块,标注语言
219
- - **表格**:标准 Markdown 表格
220
- - **链接**:`[文本](url)` 格式,优先使用相对路径
221
- - **目录**:文档开头用标题列表作为目录
222
- - **元信息**:文档开头用引用块注明生成日期和主题范围
228
+ 生成干净的 Markdown 文档,特点:
223
229
 
224
- 生成前阅读对应模板文件:
230
+ - **无 YAML frontmatter**:与 `docs/knowledge/` 中的 AI 导向文档不同
231
+ - **层级标题**:`#`(文档标题)、`##`(章节)、`###`(子章节)
232
+ - **代码块**:三个反引号围栏代码块,标注语言
233
+ - **表格**:标准 Markdown 表格
234
+ - **链接**:`[文本](url)` 格式,优先使用相对路径
235
+ - **目录**:文档开头用标题列表作为目录
236
+ - **元信息**:文档开头用引用块注明生成日期、主题范围、feature-id
225
237
 
226
- | 文档类型 | 模板文件 |
227
- |----------|----------|
228
- | business | [template-business-md.md](template-business-md.md) |
229
- | technical | [template-technical-md.md](template-technical-md.md) |
238
+ 生成前阅读对应模板文件:[template-design-md.md](template-design-md.md)
230
239
 
231
240
  ## 图表绘制
232
241
 
233
- 当文档中需要使用图表(流程图、时序图、架构图、状态图等)来辅助说明时,遵循以下规则:
242
+ 当文档中需要使用图表(流程图、时序图、架构图、状态图等)来辅助说明时,遵循以下规则:
234
243
 
235
- - **优先使用 Mermaid**:在保证表达效果的前提下,优先使用 Mermaid 语法绘制图表,以确保文档的纯文本可维护性和跨平台渲染一致性
236
- - 适用的图表类型包括但不限于:`flowchart`(流程图)、`sequenceDiagram`(时序图)、`classDiagram`(类图)、`stateDiagram`(状态图)、`erDiagram`(ER 图)、`gantt`(甘特图)
237
- - 图表应放在相关的章节中,紧跟在解释性文字之后
244
+ - **优先使用 Mermaid**:在保证表达效果的前提下,优先使用 Mermaid 语法绘制图表,以确保文档的纯文本可维护性和跨平台渲染一致性
245
+ - 适用的图表类型包括但不限于:`flowchart`(流程图)、`sequenceDiagram`(时序图)、`classDiagram`(类图)、`stateDiagram`(状态图)、`erDiagram`(ER 图)、`gantt`(甘特图)
246
+ - 图表应放在相关的章节中,紧跟在解释性文字之后
238
247
  - 每张图表前应有简短的文字说明其用途
239
- - 图表内容应精简,避免过于复杂;如果信息量过大,拆分为多张图表
240
- - 仅当 Mermaid 无法表达所需的视觉效果时(如复杂的手绘风格、特殊布局),才使用外部图片或 SVG
248
+ - 图表内容应精简,避免过于复杂;如果信息量过大,拆分为多张图表
249
+ - 仅当 Mermaid 无法表达所需的视觉效果时(如复杂的手绘风格、特殊布局),才使用外部图片或 SVG
241
250
 
242
- Markdown 格式中使用 Mermaid 代码块:
251
+ Markdown 格式中使用 Mermaid 代码块:
243
252
 
244
253
  ````markdown
245
254
  ```mermaid
@@ -250,7 +259,7 @@ flowchart TD
250
259
  ```
251
260
  ````
252
261
 
253
- HTML 格式中使用 Mermaid 代码块(依赖 Mermaid.js CDN 渲染),模板中需引入 Mermaid 脚本:
262
+ HTML 格式中使用 Mermaid 代码块(依赖 Mermaid.js CDN 渲染),模板中需引入 Mermaid 脚本:
254
263
 
255
264
  ```html
256
265
  <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
@@ -263,35 +272,39 @@ flowchart TD
263
272
 
264
273
  ## 合成规则
265
274
 
266
- 生成文档时遵循以下规则,确保从多个 AI 知识文档合成出连贯的人类文档。
275
+ 生成设计文档时遵循以下规则,确保从 knowledge + spec/plan 合成出连贯的人类文档。
267
276
 
268
277
  ### 内容来源
269
278
 
270
- - 所有事实性内容必须来自图谱中召回的知识文档
279
+ - 所有事实性内容必须来自 knowledge 文档或 feature 目录下的 spec/plan
271
280
  - 不要编造不存在的细节、数据或结论
272
- - 如果某个方面的知识缺失,在文档中如实标注"待补充"或省略该部分
273
- - 可以基于多个文档的内容进行归纳和总结,但归纳必须忠实于原文
281
+ - 如果某个方面的知识缺失,在文档中如实标注"待补充"或省略该部分
282
+ - 可以基于多个来源进行归纳和总结,但归纳必须忠实于原文
283
+ - 设计文档**不得**重新定义 spec 已锁定的契约;若发现 spec 与代码现实不符,标注【待确认】而不是自行解释
274
284
 
275
285
  ### 结构重组
276
286
 
277
- - AI 知识文档使用稳定英文标题(Summary、Findings、Decisions 等)按分析目的组织
278
- - 人类文档按阅读目的组织(背景、流程、决策等)
279
- - **必须重新组织内容结构**,不要照搬 AI 文档的标题和章节
280
- - 相关信息应合并到同一章节,避免内容分散
281
- - 去除重复信息:多个 AI 文档可能包含相同的背景信息,只需出现一次
287
+ - knowledge 用稳定英文标题(Summary、Findings、Decisions 等)按分析目的组织
288
+ - spec/plan 用研发视角章节(目标、范围、任务、约束等)按交付目的组织
289
+ - 设计文档按"知识传递"目的组织(概述、架构、模块、决策、限制、扩展)
290
+ - **必须重新组织内容结构**,不要照搬 knowledge 的标题或 spec/plan 的章节
291
+ - 相关信息应合并到同一章节,避免内容分散
292
+ - 去除重复信息:knowledge 和 spec/plan 可能包含相同的背景信息,只需出现一次
282
293
 
283
294
  ### 语气转换
284
295
 
285
- - AI 知识文档的语气是"分析记录"(记录观察、证据、影响)
286
- - 人类文档的语气是"知识传递"(解释、说明、指导)
296
+ - knowledge 的语气是"分析记录"(记录观察、证据、影响)
297
+ - spec/plan 的语气是"契约 / 任务清单"(规则、约束、步骤)
298
+ - 设计文档的语气是"知识传递"(解释、说明、指导)
287
299
  - 将被动描述转为主动解释
288
- - 将技术分析转为可操作的指导(technical 类型)或可理解的概述(business 类型)
300
+ - 将技术分析转为可操作的指导
289
301
 
290
302
  ### 引用和溯源
291
303
 
292
- - 不要在人类文档中引用 AI 文档的路径或文件名
293
- - 如需引用代码文件,使用相对路径
294
- - 如需引用外部文档,使用 URL 或文档标题
304
+ - 不要在设计文档中引用 knowledge 文档的路径或文件名
305
+ - 不要在文档中引用 spec/plan 的文件路径(读者已经在 feature 目录里)
306
+ - 如需引用代码文件,使用相对路径
307
+ - 如需引用外部文档,使用 URL 或文档标题
295
308
 
296
309
  ## 语言和风格规则
297
310
 
@@ -299,9 +312,9 @@ flowchart TD
299
312
 
300
313
  - 文档正文用**中文**编写
301
314
  - 技术术语、代码标识符、文件路径、函数名、类名保留原始英文
302
- - 章节标题可使用中英双语格式:"架构设计 / Architecture"(英文部分用于 HTML 锚点兼容性)
315
+ - 章节标题可使用中英双语格式:"架构设计 / Architecture"(英文部分用于 HTML 锚点兼容性)
303
316
  - 代码示例中的注释使用中文
304
- - 专有名词(如 Neo4j、pgvector、BM25、RRF)保留英文原名
317
+ - 专有名词(如 Neo4j、pgvector、BM25、RRF)保留英文原名
305
318
 
306
319
  ### 排版
307
320
 
@@ -310,57 +323,54 @@ flowchart TD
310
323
  - 重要概念第一次出现时加粗
311
324
  - 代码块标注语言类型
312
325
  - 表格使用标准格式
313
- - 列表项以动词或名词开头,保持一致
314
- - 避免过长的段落(超过 5 行应考虑拆分)
326
+ - 列表项以动词或名词开头,保持一致
327
+ - 避免过长的段落(超过 5 行应考虑拆分)
315
328
 
316
329
  ### 风格
317
330
 
318
331
  - 精炼、直接、避免冗余
319
- - 每句话传递信息,不写废话
332
+ - 每句话传递信息,不写废话
320
333
  - 使用主动语态
321
- - 避免模糊措辞(如"可能"、"也许"),除非表达不确定性
322
- - 不确定性用明确标注:"当前不确定"、"待验证"
334
+ - 避免模糊措辞(如"可能"、"也许"),除非表达不确定性
335
+ - 不确定性用明确标注:"当前不确定"、"待验证"
323
336
 
324
337
  ## 保存位置
325
338
 
326
- 生成的人类文档**必须**保存到 `docs/published/` 目录中,**不要**直接保存到 `docs/` 根目录,也**不要**保存到 `docs/knowledge/`(该目录专用于 AI 导向的知识文件)。
339
+ **默认保存路径**:`docs/features/<feature-id>/<文件前缀>-设计文档.md`(或 `.html`)
327
340
 
328
- `docs/published/` 目录不存在时创建。
341
+ feature-id 和文件前缀规则见上方"feature-id 与文件前缀规则"章节。用户可显式参数覆盖默认路径。
329
342
 
330
343
  ### 文件命名
331
344
 
332
- ```text
333
- # 格式:主题关键词.格式
334
- hybrid-search-architecture.md
335
- knowledge-pipeline-overview.html
336
- project-status-report.md
337
- ```
338
-
339
- - 使用英文短横线分隔
340
- - 文件名使用英文(便于 URL 兼容和跨平台)
341
- - 文件名应反映文档内容而非日期
345
+ - 使用 `<文件前缀>-设计文档.md` 或 `<文件前缀>-设计文档.html` 命名
346
+ - 文件前缀算法:有业务ID 时为 `<业务ID>-<标题>`,无业务ID 时为 `<标题>`
347
+ - 文件前缀允许中文(如 `features目录结构调整-设计文档.md`)
348
+ - 不做中文 → 英文 slug 转换
349
+ - 文件名不得包含敏感字符 `/`、`:`、`*`、`?`、`"`、`<`、`>`、`|`
342
350
 
343
351
  ### 生成后
344
352
 
345
- 保存文件后:
353
+ 保存文件后:
346
354
 
347
- 1. 告知用户文件保存位置
355
+ 1. 告知用户文件保存位置(默认 feature 目录路径)
348
356
  2. 简要说明文档覆盖的内容范围
349
- 3. 如有知识缺失(图谱中未覆盖的重要方面),列出"可能需要补充的知识"
350
- 4. 不触发分析(本 skill 只读取知识,不写入 `docs/knowledge/`)
357
+ 3. 如有知识缺失(knowledge 和 spec/plan 都未覆盖的重要方面),列出"可能需要补充的知识"
358
+ 4. 不触发分析(本 skill 只读取 knowledge + spec/plan,不写入 `docs/knowledge/`)
351
359
 
352
360
  ## 完整生成流程
353
361
 
354
- 1. **确认需求**与用户确认主题范围、文档类型(business/technical)、输出格式(html/md)、章节选择
355
- 2. **召回知识** — 用 `cgraphx docs find` 按概念/领域/关键词过滤,收集相关文档(Summary + path)
356
- 3. **读取详情** Summary 不够时,用 `cgraphx docs show` 或直接 `Read <path>` 拿完整原文
357
- 4. **评估覆盖度**检查召回的知识是否足够覆盖用户请求的主题,如果不足告知用户
358
- 5. **合成内容**按照选定的文档类型和章节结构,重组和改写知识内容
359
- 6. **格式化输出**按照 HTML Markdown 的格式规则生成完整文档
360
- 7. **质量检查**检查文档是否满足以下条件:
361
- - 所有事实性内容有知识来源
362
+ 1. **确认需求与识别 feature-id** 与用户确认输出格式、章节选择;按规则识别 feature-id 和文件前缀
363
+ 2. **召回 knowledge** — 用 `cgraphx docs find` 按概念/领域/关键词过滤,收集相关文档(Summary + path)
364
+ 3. **读取 feature 目录** Read spec、plan/index、plan/子文件,拿到本 feature 的契约和任务
365
+ 4. **读取 knowledge 详情** Summary 不够时,用 `cgraphx docs show` 或直接 `Read <path>` 拿完整原文
366
+ 5. **评估覆盖度**检查 knowledge + spec/plan 是否足够覆盖设计文档的章节;如果不足告知用户
367
+ 6. **合成内容**按照章节菜单,从 knowledge spec/plan 重组、改写、整合内容
368
+ 7. **格式化输出**按照 HTML 或 Markdown 的格式规则生成完整文档
369
+ 8. **质量检查** — 检查文档是否满足以下条件:
370
+ - 所有事实性内容有 knowledge 或 spec/plan 来源
362
371
  - 章节结构完整、逻辑连贯
363
- - 语言风格符合文档类型定位
372
+ - 语言风格符合设计文档定位
364
373
  - 格式正确、排版整洁
365
- 8. **保存文件** 写入 `docs/published/` 目录
366
- 9. **反馈**告知用户保存位置和内容范围,列出知识缺失(如有)
374
+ - 没有重新定义 spec 已锁定的契约
375
+ 9. **保存文件**写入 `docs/features/<feature-id>/<文件前缀>-设计文档.md`(或 `.html`)
376
+ 10. **反馈** — 告知用户保存位置和内容范围,列出知识缺失(如有)