@aigne/doc-smith 0.9.10 → 0.9.11-beta

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 (308) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +189 -219
  3. package/README.zh.md +270 -0
  4. package/agents/bash-executor/index.mjs +347 -0
  5. package/agents/clear/ai/intent.md +142 -0
  6. package/agents/clear/choose-contents.mjs +13 -65
  7. package/agents/clear/clear-auth-tokens.mjs +17 -21
  8. package/agents/clear/clear-deployment-config.mjs +33 -24
  9. package/agents/clear/index.yaml +1 -9
  10. package/agents/content-checker/ai/intent.md +209 -0
  11. package/agents/content-checker/clean-invalid-docs.mjs +254 -0
  12. package/agents/content-checker/index.mjs +191 -0
  13. package/agents/content-checker/validate-content.mjs +983 -0
  14. package/agents/generate-images/generate-image.yaml +75 -0
  15. package/agents/generate-images/generate-summary.mjs +213 -0
  16. package/agents/generate-images/index.yaml +39 -0
  17. package/agents/generate-images/prepare-generation.mjs +286 -0
  18. package/agents/generate-images/prepare-image-generation.mjs +130 -0
  19. package/{prompts/detail/diagram/generate-image-system.md → agents/generate-images/prompts/system.md} +22 -56
  20. package/agents/generate-images/prompts/user.md +85 -0
  21. package/agents/generate-images/save-image-result.mjs +247 -0
  22. package/agents/generate-images/scan-image-slots.mjs +247 -0
  23. package/agents/localize/index.yaml +19 -42
  24. package/{prompts/translate → agents/localize/prompts}/translate-document.md +0 -139
  25. package/agents/localize/translate-documents/generate-summary.mjs +163 -0
  26. package/agents/localize/translate-documents/load-glossary.mjs +52 -0
  27. package/agents/localize/translate-documents/prepare-translation.mjs +249 -0
  28. package/agents/localize/translate-documents/save-translation.mjs +171 -0
  29. package/agents/localize/translate-documents/translate-document-to-language.mjs +209 -0
  30. package/agents/localize/translate-documents/translate-document.yaml +23 -0
  31. package/agents/localize/translate-documents/translate-to-languages.yaml +10 -0
  32. package/agents/localize/translate-images/check-image-translation.mjs +225 -0
  33. package/agents/localize/translate-images/detect-text/detect-and-update-shared.mjs +148 -0
  34. package/agents/localize/translate-images/detect-text/detect-image-text.yaml +44 -0
  35. package/agents/localize/translate-images/detect-text/detect-images-text.yaml +21 -0
  36. package/agents/localize/translate-images/detect-text/prompts/detect-image-text-system.md +43 -0
  37. package/agents/localize/translate-images/detect-text/prompts/detect-image-text-user.md +14 -0
  38. package/agents/localize/translate-images/detect-text/save-text-detection.mjs +105 -0
  39. package/agents/localize/translate-images/prepare-image-input.mjs +124 -0
  40. package/agents/localize/translate-images/save-image-translation.mjs +172 -0
  41. package/agents/localize/translate-images/scan-doc-images.mjs +165 -0
  42. package/agents/localize/translate-images/translate-doc-images.yaml +24 -0
  43. package/agents/localize/{translate-diagram.yaml → translate-images/translate-image.yaml} +25 -14
  44. package/agents/publish/ai/intent.md +182 -0
  45. package/agents/publish/check.mjs +107 -0
  46. package/agents/publish/index.yaml +9 -14
  47. package/agents/publish/publish-docs.mjs +81 -61
  48. package/agents/publish/translate-meta.mjs +79 -58
  49. package/agents/save-document/index.mjs +260 -0
  50. package/agents/structure-checker/index.mjs +307 -0
  51. package/agents/structure-checker/validate-structure.mjs +477 -0
  52. package/agents/update-image/analyze-feedback.yaml +37 -0
  53. package/agents/update-image/index.yaml +78 -0
  54. package/agents/update-image/load-existing-image.mjs +211 -0
  55. package/agents/update-image/prompts/analyze-feedback-system.md +43 -0
  56. package/agents/update-image/prompts/analyze-feedback-user.md +15 -0
  57. package/aigne.yaml +26 -139
  58. package/package.json +16 -48
  59. package/scripts/README.md +90 -0
  60. package/scripts/install.sh +86 -0
  61. package/scripts/uninstall.sh +52 -0
  62. package/skills/doc-smith/SKILL.md +285 -0
  63. package/skills/doc-smith/ai/intent/sources-improve.md +290 -0
  64. package/skills/doc-smith/references/changeset-guide.md +171 -0
  65. package/skills/doc-smith/references/document-content-guide.md +214 -0
  66. package/skills/doc-smith/references/document-structure-schema.md +138 -0
  67. package/skills/doc-smith/references/patch-guide.md +96 -0
  68. package/skills/doc-smith/references/structure-confirmation-guide.md +133 -0
  69. package/skills/doc-smith/references/structure-planning-guide.md +149 -0
  70. package/skills/doc-smith/references/update-workflow.md +108 -0
  71. package/skills/doc-smith/references/user-intent-guide.md +175 -0
  72. package/skills/doc-smith/references/workspace-initialization.md +376 -0
  73. package/skills/doc-smith-docs-detail/SKILL.md +356 -0
  74. package/skills/doc-smith-docs-detail/ai/intent.md +271 -0
  75. package/skills-entry/doc-smith/ai/intent.md +260 -0
  76. package/skills-entry/doc-smith/index.mjs +66 -0
  77. package/skills-entry/doc-smith/prompt.md +57 -0
  78. package/skills-entry/doc-smith/utils.mjs +27 -0
  79. package/skills-entry/doc-smith-docs-detail/batch.yaml +56 -0
  80. package/skills-entry/doc-smith-docs-detail/index.mjs +95 -0
  81. package/skills-entry/doc-smith-docs-detail/prompt.md +64 -0
  82. package/utils/afs-factory.mjs +183 -0
  83. package/utils/agent-constants.mjs +97 -0
  84. package/utils/{auth-utils.mjs → auth.mjs} +6 -9
  85. package/{agents/utils/update-branding.mjs → utils/branding.mjs} +3 -4
  86. package/utils/config.mjs +261 -0
  87. package/utils/constants.mjs +32 -0
  88. package/utils/deploy.mjs +3 -3
  89. package/utils/docs-converter.mjs +454 -0
  90. package/utils/docs.mjs +212 -0
  91. package/utils/document-paths.mjs +172 -0
  92. package/utils/files.mjs +74 -0
  93. package/utils/git.mjs +65 -0
  94. package/utils/{blocklet.mjs → http.mjs} +18 -0
  95. package/utils/image-slots.mjs +57 -0
  96. package/utils/image-utils.mjs +114 -0
  97. package/utils/project.mjs +95 -0
  98. package/utils/sources-path-resolver.mjs +76 -0
  99. package/utils/{upload-files.mjs → upload.mjs} +3 -3
  100. package/utils/workspace.mjs +371 -0
  101. package/agents/chat/chat-system.md +0 -38
  102. package/agents/chat/index.mjs +0 -59
  103. package/agents/chat/skills/generate-document.yaml +0 -15
  104. package/agents/chat/skills/list-documents.mjs +0 -15
  105. package/agents/chat/skills/update-document.yaml +0 -24
  106. package/agents/clear/clear-document-config.mjs +0 -36
  107. package/agents/clear/clear-document-structure.mjs +0 -102
  108. package/agents/clear/clear-generated-docs.mjs +0 -142
  109. package/agents/clear/clear-media-description.mjs +0 -129
  110. package/agents/create/aggregate-document-structure.mjs +0 -21
  111. package/agents/create/analyze-diagram-type-llm.yaml +0 -159
  112. package/agents/create/analyze-diagram-type.mjs +0 -455
  113. package/agents/create/check-document-structure.yaml +0 -30
  114. package/agents/create/check-need-generate-structure.mjs +0 -138
  115. package/agents/create/document-structure-tools/add-document.mjs +0 -85
  116. package/agents/create/document-structure-tools/delete-document.mjs +0 -116
  117. package/agents/create/document-structure-tools/move-document.mjs +0 -109
  118. package/agents/create/document-structure-tools/update-document.mjs +0 -84
  119. package/agents/create/generate-diagram-image.yaml +0 -91
  120. package/agents/create/generate-structure.yaml +0 -106
  121. package/agents/create/index.yaml +0 -45
  122. package/agents/create/refine-document-structure.yaml +0 -12
  123. package/agents/create/replace-d2-with-image.mjs +0 -610
  124. package/agents/create/update-document-structure.yaml +0 -54
  125. package/agents/create/user-add-document/add-documents-to-structure.mjs +0 -90
  126. package/agents/create/user-add-document/find-documents-to-add-links.yaml +0 -47
  127. package/agents/create/user-add-document/index.yaml +0 -46
  128. package/agents/create/user-add-document/prepare-documents-to-translate.mjs +0 -22
  129. package/agents/create/user-add-document/print-add-document-summary.mjs +0 -63
  130. package/agents/create/user-add-document/review-documents-with-new-links.mjs +0 -110
  131. package/agents/create/user-remove-document/find-documents-with-invalid-links.mjs +0 -78
  132. package/agents/create/user-remove-document/index.yaml +0 -40
  133. package/agents/create/user-remove-document/prepare-documents-to-translate.mjs +0 -22
  134. package/agents/create/user-remove-document/print-remove-document-summary.mjs +0 -53
  135. package/agents/create/user-remove-document/remove-documents-from-structure.mjs +0 -99
  136. package/agents/create/user-remove-document/review-documents-with-invalid-links.mjs +0 -115
  137. package/agents/create/user-review-document-structure.mjs +0 -139
  138. package/agents/create/utils/init-current-content.mjs +0 -34
  139. package/agents/create/utils/merge-document-structures.mjs +0 -36
  140. package/agents/evaluate/code-snippet.mjs +0 -97
  141. package/agents/evaluate/document-structure.yaml +0 -67
  142. package/agents/evaluate/document.yaml +0 -82
  143. package/agents/evaluate/generate-report.mjs +0 -85
  144. package/agents/evaluate/index.yaml +0 -46
  145. package/agents/history/index.yaml +0 -6
  146. package/agents/history/view.mjs +0 -78
  147. package/agents/init/check.mjs +0 -16
  148. package/agents/init/index.mjs +0 -643
  149. package/agents/init/validate.mjs +0 -16
  150. package/agents/localize/choose-language.mjs +0 -107
  151. package/agents/localize/record-translation-history.mjs +0 -23
  152. package/agents/localize/save-doc-translation-or-skip.mjs +0 -18
  153. package/agents/localize/set-review-content.mjs +0 -58
  154. package/agents/localize/translate-document-wrapper.mjs +0 -34
  155. package/agents/localize/translate-document.yaml +0 -24
  156. package/agents/localize/translate-multilingual.yaml +0 -57
  157. package/agents/localize/translate-or-skip-diagram.mjs +0 -52
  158. package/agents/media/batch-generate-media-description.yaml +0 -46
  159. package/agents/media/generate-media-description.yaml +0 -50
  160. package/agents/media/load-media-description.mjs +0 -454
  161. package/agents/prefs/index.mjs +0 -203
  162. package/agents/schema/document-structure-item.yaml +0 -26
  163. package/agents/schema/document-structure-refine-item.yaml +0 -23
  164. package/agents/schema/document-structure.yaml +0 -29
  165. package/agents/update/batch-generate-document.yaml +0 -27
  166. package/agents/update/batch-update-document.yaml +0 -7
  167. package/agents/update/check-diagram-flag.mjs +0 -116
  168. package/agents/update/check-document.mjs +0 -162
  169. package/agents/update/check-generate-diagram.mjs +0 -106
  170. package/agents/update/check-update-is-single.mjs +0 -53
  171. package/agents/update/document-tools/update-document-content.mjs +0 -303
  172. package/agents/update/generate-diagram.yaml +0 -80
  173. package/agents/update/generate-document.yaml +0 -70
  174. package/agents/update/handle-document-update.yaml +0 -103
  175. package/agents/update/index.yaml +0 -69
  176. package/agents/update/pre-check-generate-diagram.yaml +0 -44
  177. package/agents/update/save-and-translate-document.mjs +0 -80
  178. package/agents/update/update-document-detail.yaml +0 -71
  179. package/agents/update/update-single/update-single-document-detail.mjs +0 -322
  180. package/agents/update/update-single-document.yaml +0 -7
  181. package/agents/update/user-review-document.mjs +0 -272
  182. package/agents/utils/action-success.mjs +0 -16
  183. package/agents/utils/analyze-document-feedback-intent.yaml +0 -32
  184. package/agents/utils/analyze-feedback-intent.mjs +0 -253
  185. package/agents/utils/analyze-structure-feedback-intent.yaml +0 -29
  186. package/agents/utils/check-detail-result.mjs +0 -51
  187. package/agents/utils/check-feedback-refiner.mjs +0 -81
  188. package/agents/utils/choose-docs.mjs +0 -251
  189. package/agents/utils/document-icon-generate.yaml +0 -52
  190. package/agents/utils/document-title-streamline.yaml +0 -48
  191. package/agents/utils/ensure-document-icons.mjs +0 -129
  192. package/agents/utils/exit.mjs +0 -6
  193. package/agents/utils/feedback-refiner.yaml +0 -50
  194. package/agents/utils/find-item-by-path.mjs +0 -114
  195. package/agents/utils/find-user-preferences-by-path.mjs +0 -37
  196. package/agents/utils/format-document-structure.mjs +0 -35
  197. package/agents/utils/generate-document-or-skip.mjs +0 -41
  198. package/agents/utils/handle-diagram-operations.mjs +0 -263
  199. package/agents/utils/load-all-document-content.mjs +0 -30
  200. package/agents/utils/load-document-all-content.mjs +0 -96
  201. package/agents/utils/load-sources.mjs +0 -405
  202. package/agents/utils/map-reasoning-effort-level.mjs +0 -15
  203. package/agents/utils/post-generate.mjs +0 -133
  204. package/agents/utils/read-current-document-content.mjs +0 -46
  205. package/agents/utils/save-doc-translation.mjs +0 -30
  206. package/agents/utils/save-doc.mjs +0 -54
  207. package/agents/utils/save-output.mjs +0 -26
  208. package/agents/utils/save-sidebar.mjs +0 -38
  209. package/agents/utils/skip-if-content-exists.mjs +0 -27
  210. package/agents/utils/streamline-document-titles-if-needed.mjs +0 -88
  211. package/agents/utils/transform-detail-data-sources.mjs +0 -45
  212. package/assets/report-template/report.html +0 -198
  213. package/docs-mcp/analyze-content-relevance.yaml +0 -50
  214. package/docs-mcp/analyze-docs-relevance.yaml +0 -59
  215. package/docs-mcp/docs-search.yaml +0 -42
  216. package/docs-mcp/get-docs-detail.mjs +0 -41
  217. package/docs-mcp/get-docs-structure.mjs +0 -16
  218. package/docs-mcp/read-doc-content.mjs +0 -119
  219. package/prompts/common/document/content-rules-core.md +0 -20
  220. package/prompts/common/document/markdown-syntax-rules.md +0 -65
  221. package/prompts/common/document/media-file-list-usage-rules.md +0 -18
  222. package/prompts/common/document/openapi-usage-rules.md +0 -189
  223. package/prompts/common/document/role-and-personality.md +0 -16
  224. package/prompts/common/document/user-preferences.md +0 -9
  225. package/prompts/common/document-structure/conflict-resolution-guidance.md +0 -16
  226. package/prompts/common/document-structure/document-icon-generate.md +0 -116
  227. package/prompts/common/document-structure/document-structure-rules.md +0 -43
  228. package/prompts/common/document-structure/document-title-streamline.md +0 -86
  229. package/prompts/common/document-structure/glossary.md +0 -7
  230. package/prompts/common/document-structure/intj-traits.md +0 -5
  231. package/prompts/common/document-structure/openapi-usage-rules.md +0 -28
  232. package/prompts/common/document-structure/output-constraints.md +0 -18
  233. package/prompts/common/document-structure/user-locale-rules.md +0 -10
  234. package/prompts/common/document-structure/user-preferences.md +0 -9
  235. package/prompts/detail/custom/admonition-usage-rules.md +0 -94
  236. package/prompts/detail/custom/code-block-usage-rules.md +0 -163
  237. package/prompts/detail/custom/custom-components/x-card-usage-rules.md +0 -63
  238. package/prompts/detail/custom/custom-components/x-cards-usage-rules.md +0 -83
  239. package/prompts/detail/custom/custom-components/x-field-desc-usage-rules.md +0 -120
  240. package/prompts/detail/custom/custom-components/x-field-group-usage-rules.md +0 -80
  241. package/prompts/detail/custom/custom-components/x-field-usage-rules.md +0 -189
  242. package/prompts/detail/custom/custom-components-usage-rules.md +0 -18
  243. package/prompts/detail/diagram/generate-image-user.md +0 -81
  244. package/prompts/detail/diagram/guide.md +0 -29
  245. package/prompts/detail/diagram/official-examples.md +0 -712
  246. package/prompts/detail/diagram/pre-check.md +0 -23
  247. package/prompts/detail/diagram/role-and-personality.md +0 -2
  248. package/prompts/detail/diagram/rules.md +0 -46
  249. package/prompts/detail/diagram/system-prompt.md +0 -1139
  250. package/prompts/detail/diagram/user-prompt.md +0 -43
  251. package/prompts/detail/generate/detail-example.md +0 -457
  252. package/prompts/detail/generate/document-rules.md +0 -45
  253. package/prompts/detail/generate/system-prompt.md +0 -61
  254. package/prompts/detail/generate/user-prompt.md +0 -99
  255. package/prompts/detail/jsx/rules.md +0 -6
  256. package/prompts/detail/update/system-prompt.md +0 -121
  257. package/prompts/detail/update/user-prompt.md +0 -41
  258. package/prompts/evaluate/document-structure.md +0 -93
  259. package/prompts/evaluate/document.md +0 -149
  260. package/prompts/media/media-description/system-prompt.md +0 -43
  261. package/prompts/media/media-description/user-prompt.md +0 -17
  262. package/prompts/structure/check-document-structure.md +0 -93
  263. package/prompts/structure/document-rules.md +0 -21
  264. package/prompts/structure/find-documents-to-add-links.md +0 -52
  265. package/prompts/structure/generate/system-prompt.md +0 -13
  266. package/prompts/structure/generate/user-prompt.md +0 -137
  267. package/prompts/structure/review/structure-review-system.md +0 -81
  268. package/prompts/structure/structure-example.md +0 -89
  269. package/prompts/structure/structure-getting-started.md +0 -10
  270. package/prompts/structure/update/system-prompt.md +0 -93
  271. package/prompts/structure/update/user-prompt.md +0 -43
  272. package/prompts/translate/admonition.md +0 -20
  273. package/prompts/translate/code-block.md +0 -33
  274. package/prompts/utils/analyze-document-feedback-intent.md +0 -54
  275. package/prompts/utils/analyze-structure-feedback-intent.md +0 -43
  276. package/prompts/utils/feedback-refiner.md +0 -105
  277. package/types/document-schema.mjs +0 -55
  278. package/types/document-structure-schema.mjs +0 -261
  279. package/utils/check-document-has-diagram.mjs +0 -95
  280. package/utils/conflict-detector.mjs +0 -149
  281. package/utils/constants/index.mjs +0 -620
  282. package/utils/constants/linter.mjs +0 -102
  283. package/utils/d2-utils.mjs +0 -205
  284. package/utils/debug.mjs +0 -3
  285. package/utils/delete-diagram-images.mjs +0 -99
  286. package/utils/diagram-version-utils.mjs +0 -14
  287. package/utils/docs-finder-utils.mjs +0 -548
  288. package/utils/evaluate/report-utils.mjs +0 -132
  289. package/utils/extract-api.mjs +0 -32
  290. package/utils/file-utils.mjs +0 -960
  291. package/utils/history-utils.mjs +0 -203
  292. package/utils/icon-map.mjs +0 -26
  293. package/utils/image-compress.mjs +0 -154
  294. package/utils/kroki-utils.mjs +0 -173
  295. package/utils/linter/index.mjs +0 -50
  296. package/utils/load-config.mjs +0 -78
  297. package/utils/markdown/index.mjs +0 -26
  298. package/utils/markdown-checker.mjs +0 -694
  299. package/utils/mermaid-validator.mjs +0 -140
  300. package/utils/mermaid-worker-pool.mjs +0 -250
  301. package/utils/mermaid-worker.mjs +0 -233
  302. package/utils/openapi/index.mjs +0 -28
  303. package/utils/preferences-utils.mjs +0 -175
  304. package/utils/request.mjs +0 -10
  305. package/utils/sync-diagram-to-translations.mjs +0 -272
  306. package/utils/translate-diagram-images.mjs +0 -807
  307. package/utils/utils.mjs +0 -1354
  308. /package/{prompts/translate → agents/localize/prompts}/glossary.md +0 -0
@@ -0,0 +1,175 @@
1
+ # 用户意图推断指南
2
+
3
+ **文件位置**: `intent/user-intent.md`
4
+ **权限**: 仅在用户确认后写入,AI 可起草但不可直接修改
5
+
6
+ 本文档提供如何推断和生成用户意图的详细指南。
7
+
8
+ ## 推断内容
9
+
10
+ 基于工作区内容推断以下三个方面:
11
+
12
+ ### 1. 目标用户
13
+
14
+ 判断文档的主要受众(技术开发者、最终用户、运维人员、产品经理等)。
15
+
16
+ ### 2. 主要使用场景
17
+
18
+ 推断用户查阅文档的场景(首次接触、开发集成、问题排查、深入学习等)。
19
+
20
+ ### 3. 文档侧重点
21
+
22
+ 确定文档类型(使用指南型、参考手册型、快速上手型、架构说明型)。
23
+
24
+ ## user-intent.md 模板
25
+
26
+ ```markdown
27
+ # 用户意图
28
+
29
+ ## 目标用户
30
+ [描述主要受众是谁,需要什么类型的信息]
31
+
32
+ ## 使用场景
33
+ - [场景 1:用户在什么情况下查阅文档]
34
+ - [场景 2:...]
35
+ - [场景 3:...]
36
+
37
+ ## 文档侧重点
38
+ 本文档采用**[文档类型]**的形式:
39
+ - [侧重点 1]
40
+ - [侧重点 2]
41
+ - [侧重点 3]
42
+
43
+ [可选:说明不需要的内容,帮助聚焦]
44
+ ```
45
+
46
+ ## 示例
47
+
48
+ ```markdown
49
+ # 用户意图
50
+
51
+ ## 目标用户
52
+ 本文档主要面向希望集成本项目 API 的开发者。
53
+
54
+ ## 使用场景
55
+ - 开发者首次接触项目时,需要快速了解核心功能和如何开始
56
+ - 开发过程中查阅具体 API 的使用方法和参数说明
57
+
58
+ ## 文档侧重点
59
+ 本文档采用**使用指南 + API 参考**的组合形式:
60
+ - 提供清晰的快速开始指南
61
+ - 提供完整的 API 参考文档
62
+
63
+ 不需要过多的架构设计说明。
64
+ ```
65
+
66
+ ## 交互策略
67
+
68
+ ### 默认流程
69
+
70
+ 1. **自动生成**:基于工作区分析,自动推断用户意图并生成 user-intent.md
71
+ 2. **展示意图**:向用户展示推断的完整意图
72
+ 3. **使用 AskUserQuestion 工具确认**:
73
+ - 问题:"用户意图是否符合您的需求?"
74
+ - 选项:"✅ 确认,开始规划文档结构"
75
+ 4. **接收反馈**:如果用户选择调整或通过 Other 提供具体需求,更新 user-intent.md
76
+ 5. **重新展示**:展示更新后的完整意图
77
+ 6. **循环确认**:重复步骤 3-5,直到用户确认
78
+ 7. **进入下一步**:用户确认后,才开始规划文档结构
79
+
80
+ ### 展示格式
81
+
82
+ 向用户展示推断的意图时,应清晰展示三个部分:
83
+
84
+ ```
85
+ 📝 用户意图推断
86
+
87
+ ## 目标用户
88
+ [具体描述]
89
+
90
+ ## 使用场景
91
+ - [场景 1]
92
+ - [场景 2]
93
+ - [场景 3]
94
+
95
+ ## 文档侧重点
96
+ 本文档采用**[文档类型]**的形式:
97
+ - [侧重点 1]
98
+ - [侧重点 2]
99
+
100
+ [可选:不需要的内容]
101
+
102
+ 这个意图是否符合您的需求?您可以提出调整建议。
103
+ ```
104
+
105
+ ### 示例交互
106
+
107
+ ```
108
+ Agent: 📝 用户意图推断
109
+
110
+ ## 目标用户
111
+ 本文档主要面向希望集成本项目 API 的开发者。
112
+
113
+ ## 使用场景
114
+ - 开发者首次接触项目时,需要快速了解核心功能
115
+ - 开发过程中查阅具体 API 的使用方法
116
+
117
+ ## 文档侧重点
118
+ 本文档采用**使用指南 + API 参考**的组合形式:
119
+ - 提供清晰的快速开始指南
120
+ - 提供完整的 API 参考文档
121
+
122
+ ---
123
+
124
+ [Agent 使用 AskUserQuestion 工具]
125
+ 问题:用户意图是否符合您的需求?
126
+ 选项:✅ 确认,开始规划文档结构
127
+
128
+ ---
129
+
130
+ User: [选择 ✏️ Other] 其实主要是给运维人员看的,重点是部署和配置说明
131
+
132
+ ---
133
+
134
+ Agent: 已更新目标用户和文档侧重点。
135
+
136
+ 📝 更新后的用户意图
137
+
138
+ ## 目标用户
139
+ 本文档主要面向需要部署和维护系统的运维人员。
140
+
141
+ ## 使用场景
142
+ - 运维人员首次部署时,需要了解系统要求和部署步骤
143
+ - 日常维护中查阅配置选项和最佳实践
144
+
145
+ ## 文档侧重点
146
+ 本文档采用**运维指南**的形式:
147
+ - 提供详细的部署和配置说明
148
+ - 提供系统要求和环境配置指南
149
+
150
+ ---
151
+
152
+ [Agent 使用 AskUserQuestion 工具]
153
+ 问题:用户意图是否符合您的需求?
154
+ 选项:✅ 确认,开始规划文档结构
155
+
156
+ ---
157
+
158
+ User: ✅ 确认,开始规划文档结构
159
+
160
+ ---
161
+
162
+ Agent: 收到确认,开始规划文档结构...
163
+ ```
164
+
165
+ ### 处理反馈
166
+
167
+ 根据用户反馈更新 user-intent.md 的对应部分(目标用户、使用场景、文档侧重点),必要时完全重写。每次修改后必须重新展示完整意图并询问确认。
168
+
169
+ ## 关键原则
170
+
171
+ 1. **基于证据推断**:从工作区内容(代码结构、README、配置文件)中寻找线索
172
+ 2. **保持简洁**:user-intent.md 应该简洁明了,避免冗长
173
+ 3. **可修改性**:用自然语言编写,用户易于理解和调整
174
+ 4. **多轮确认**:支持用户多轮调整,每次修改后重新展示完整意图并确认
175
+ 5. **用户确认后才继续**:绝对不要在用户确认前开始规划文档结构
@@ -0,0 +1,376 @@
1
+ # Workspace 初始化流程
2
+
3
+ **用途**: 本文档定义 DocSmith workspace 的验证和数据源管理流程
4
+
5
+ ---
6
+
7
+ ## 一、执行层目录结构
8
+
9
+ 执行层始终看到统一的目录结构:
10
+
11
+ ```
12
+ modules/
13
+ /workspace # doc-smith 工作空间
14
+ ├── config.yaml # 配置文件
15
+ ├── intent/ # 意图文件
16
+ ├── planning/ # 规划文件
17
+ └── docs/ # 生成的文档
18
+ /sources # 数据源目录
19
+ ```
20
+
21
+ **目录说明**:
22
+ - `/workspace`:DocSmith 的工作空间,存放配置和生成的文档
23
+ - `/sources`:数据源目录,存放源代码仓库
24
+
25
+ ---
26
+
27
+ ## 二、Config.yaml Schema
28
+
29
+ config.yaml 位于 `/workspace/config.yaml`,包含以下字段:
30
+
31
+ ```yaml
32
+ # Workspace metadata
33
+ workspaceVersion: "1.0"
34
+ createdAt: "2025-01-13T10:00:00Z"
35
+
36
+ # Project information
37
+ projectName: "my-project"
38
+ projectDesc: "项目描述"
39
+ locale: "zh"
40
+
41
+ # Documentation settings (for publish)
42
+ projectLogo: ""
43
+ translateLanguages: []
44
+
45
+ # 数据源配置(数组)
46
+ sources:
47
+ # local-path 类型
48
+ - name: "main"
49
+ type: local-path
50
+ path: "../../" # 相对于 workspace 的路径
51
+
52
+ # git-clone 类型
53
+ - name: "aigne-framework"
54
+ type: git-clone
55
+ url: "https://github.com/ArcBlock/aigne-framework.git"
56
+ branch: "main" # 分支名(用于恢复)
57
+ commit: "a1b2c3d4e5f6789..." # 完整的 commit hash
58
+ clonedAt: "2025-01-13T10:00:00Z" # 克隆/更新时间
59
+ ```
60
+
61
+ ### 字段说明
62
+
63
+ | 字段 | 类型 | 说明 |
64
+ |------|------|------|
65
+ | `workspaceVersion` | string | 固定为 "1.0" |
66
+ | `createdAt` | string | 创建时间,ISO 8601 格式 |
67
+ | `projectName` | string | 项目名称 |
68
+ | `projectDesc` | string | 项目描述 |
69
+ | `locale` | string | 输出语言代码 |
70
+ | `projectLogo` | string | 项目 Logo 路径 |
71
+ | `translateLanguages` | array | 翻译目标语言列表 |
72
+ | `sources` | array | 数据源配置数组 |
73
+
74
+ ### Sources 配置
75
+
76
+ **local-path 类型**:
77
+ | 字段 | 说明 |
78
+ |------|------|
79
+ | `name` | 数据源名称 |
80
+ | `type` | 固定为 `local-path` |
81
+ | `path` | 相对于 workspace 的路径 |
82
+
83
+ **git-clone 类型**:
84
+ | 字段 | 说明 |
85
+ |------|------|
86
+ | `name` | 数据源名称 |
87
+ | `type` | 固定为 `git-clone` |
88
+ | `url` | 仓库 URL |
89
+ | `branch` | 分支名,用于在新环境中恢复 |
90
+ | `commit` | 完整 commit hash,记录精确版本 |
91
+ | `clonedAt` | 克隆/更新时间 |
92
+
93
+ ---
94
+
95
+ ## 三、收集必要信息
96
+
97
+ 在对话开始时,如果用户未明确提供,需要询问:
98
+
99
+ ### 3.1 输出语言
100
+
101
+ **检查条件**:config.yaml 中 `locale` 为空
102
+
103
+ **处理逻辑**:
104
+ - 如果用户在请求中已指定语言(如"生成中文文档")→ 直接使用,并保存到 config.yaml 中的 locale 字段
105
+ - 否则询问用户选择
106
+
107
+ **询问用户**:
108
+ ```
109
+ 请选择文档输出语言:
110
+ 1. English (en)
111
+ 2. 简体中文 (zh)
112
+ 3. 繁體中文 (zh-TW)
113
+ 4. 日本語 (ja)
114
+ 5. 한국어 (ko)
115
+ 6. Español (es)
116
+ 7. Français (fr)
117
+ 8. Deutsch (de)
118
+ 9. Português (pt)
119
+ 10. Русский (ru)
120
+ 11. Italiano (it)
121
+ 12. العربية (ar)
122
+ 13. 其他 (请输入语言代码)
123
+ ```
124
+
125
+ **后续操作**:更新 config.yaml 中的 `locale` 字段
126
+
127
+ ---
128
+
129
+ ## 四、验证 Workspace
130
+
131
+ ### 4.1 配置完整性检查
132
+
133
+ 使用 Read 工具读取 `/workspace/config.yaml`,验证必要字段:
134
+
135
+ **必须存在的字段**:
136
+ - `workspaceVersion`
137
+ - `locale` (为空需要向用户询问并保存)
138
+ - `projectName`(为空需要分析项目信息,生成并保存,使用 `config.yaml` 中 `local` 指定的语言)
139
+ - `projectDesc` (为空需要分析项目信息,生成并保存,使用 `config.yaml` 中 `local` 指定的语言)
140
+ - `sources`(可为空数组,后续添加)
141
+
142
+ **如果字段缺失**:
143
+ - 提示用户:`config.yaml 缺少必要字段: <字段名>`
144
+ - 询问是否重新初始化
145
+
146
+ ### 4.2 数据源有效性检查
147
+
148
+ 对 sources 数组中的每个数据源进行检查:
149
+
150
+ **local-path 类型**:
151
+ - 只要 sources 下不为空,即认为数据源存在
152
+ - 不存在则报错
153
+
154
+ **git-clone 类型**:
155
+ - 检查 `/sources/<name>/` 目录是否存在
156
+ - 不存在则执行恢复流程(见第五节)
157
+ - 可选:验证当前 commit 是否与配置一致,不一致则警告
158
+
159
+ ---
160
+
161
+ ## 五、数据源管理
162
+
163
+ ### 5.1 数据源检查流程
164
+
165
+ ```
166
+ 读取 config.yaml 中的 sources 配置
167
+
168
+ ├─ sources 为空或不存在 → 询问用户提供仓库 URL(5.2)
169
+ └─ sources 存在 → 检查 /sources/ 目录
170
+ ├─ 目录存在 → 跳过,继续后续流程
171
+ └─ 目录不存在 → 执行恢复流程(5.3)
172
+ ```
173
+
174
+ ### 5.2 添加数据源
175
+
176
+ **触发条件**:sources 配置为空或不存在
177
+
178
+ **步骤**:
179
+ 1. 询问用户提供仓库 URL
180
+ 2. 验证 URL 格式
181
+ 3. 询问分支名(默认 main)
182
+ 4. 从 URL 提取项目名
183
+ 5. 克隆到 `sources/<项目名>/`
184
+ 6. 获取当前 HEAD 的 commit hash
185
+ 7. 更新 config.yaml 的 sources 数组
186
+
187
+ **询问用户**:
188
+ ```
189
+ 请提供源代码仓库的 Git URL
190
+ 示例: https://github.com/user/repo.git
191
+ ```
192
+
193
+ **验证 URL 格式**:
194
+ - 检查是否包含 `.git` 或符合 git URL 格式
195
+ - 如果格式不对,重新询问
196
+
197
+ **执行命令**:
198
+ ```bash
199
+ git clone -b <branch> <url> sources/<project-name>
200
+ cd /sources/<project-name>
201
+ git rev-parse HEAD # 获取 commit hash
202
+ ```
203
+
204
+ **更新 config.yaml**:
205
+ ```yaml
206
+ sources:
207
+ - name: "<project-name>"
208
+ type: git-clone
209
+ url: "<url>"
210
+ branch: "<branch>"
211
+ commit: "<commit-hash>"
212
+ clonedAt: "<current-timestamp>"
213
+ ```
214
+
215
+ ### 5.3 恢复数据源
216
+
217
+ **触发条件**:sources 配置存在,但 `/sources/<name>/` 目录不存在
218
+
219
+ **步骤**:
220
+ 1. 读取 sources 配置中的 url、branch、commit
221
+ 2. 克隆仓库到 `sources/<name>/`
222
+ 3. 切换到记录的 commit
223
+ 4. 提示用户恢复完成
224
+
225
+ **执行命令**:
226
+ ```bash
227
+ git clone -b <branch> <url> sources/<name>
228
+ cd /sources/<name>
229
+ git checkout <commit> # 切换到精确版本
230
+ ```
231
+
232
+ **输出提示**:
233
+ ```
234
+ ✓ 数据源已恢复: <name>
235
+ 分支: <branch>
236
+ 版本: <commit>
237
+ ```
238
+
239
+ ### 5.4 更新数据源
240
+
241
+ **触发条件**:用户请求更新,或询问用户确认
242
+
243
+ **询问用户**:
244
+ ```
245
+ 是否更新数据源到最新版本? (Y/n)
246
+ ```
247
+
248
+ **步骤**:
249
+ 1. 读取 config.yaml 获取 sources 配置
250
+ 2. 对每个 git-clone 类型的数据源:
251
+ - 进入 `/sources/<name>/` 目录
252
+ - 执行 git fetch 和 pull
253
+ - 获取新的 commit hash
254
+ - 更新 config.yaml 中的 commit 和 clonedAt(branch 保持不变)
255
+
256
+ **执行命令**:
257
+ ```bash
258
+ cd sources/<name>
259
+ git fetch origin
260
+ git pull origin <branch>
261
+ git rev-parse HEAD # 获取新的 commit hash
262
+ ```
263
+
264
+ **输出提示**:
265
+ ```
266
+ ✓ 数据源已更新: <name>
267
+ 分支: <branch>
268
+ 新版本: <new-commit>
269
+ 旧版本: <old-commit>
270
+ ```
271
+
272
+ ---
273
+
274
+ ## 六、错误处理
275
+
276
+ ### 错误 1: Git 未安装
277
+
278
+ **症状**: `git` 命令不存在
279
+
280
+ **提示**:
281
+ ```
282
+ 错误: 未检测到 Git
283
+
284
+ DocSmith 需要 Git 来管理数据源。
285
+ 请先安装 Git: https://git-scm.com/downloads
286
+ ```
287
+
288
+ ### 错误 2: 数据源克隆失败
289
+
290
+ **症状**: `git clone` 失败
291
+
292
+ **提示**:
293
+ ```
294
+ 错误: 无法克隆数据源
295
+
296
+ 可能原因:
297
+ 1. URL 不正确或无法访问
298
+ 2. 没有 git 访问权限
299
+ 3. 网络连接问题
300
+
301
+ 建议:
302
+ 1. 检查 URL 是否正确
303
+ 2. 检查是否有访问权限 (SSH key 或 token)
304
+ ```
305
+
306
+ ### 错误 3: 数据源恢复失败
307
+
308
+ **症状**: 恢复时 `git checkout <commit>` 失败
309
+
310
+ **提示**:
311
+ ```
312
+ 错误: 无法恢复到指定版本
313
+
314
+ 可能原因:
315
+ 1. commit hash 不存在(仓库历史被重写)
316
+ 2. 网络问题导致未能获取完整历史
317
+
318
+ 建议:
319
+ 1. 尝试更新数据源到最新版本
320
+ 2. 检查 config.yaml 中的 commit 是否正确
321
+ ```
322
+
323
+ ### 错误 4: config.yaml 格式错误
324
+
325
+ **症状**: YAML 解析失败
326
+
327
+ **提示**:
328
+ ```
329
+ 错误: config.yaml 格式不正确
330
+
331
+ 请检查 YAML 语法,或删除 config.yaml 重新初始化。
332
+ ```
333
+
334
+ ### 错误 5: 目录权限问题
335
+
336
+ **症状**: 无法创建目录或文件
337
+
338
+ **提示**:
339
+ ```
340
+ 错误: 没有目录写入权限
341
+
342
+ 请检查当前目录的权限设置,确保有读写权限。
343
+ ```
344
+
345
+ ---
346
+
347
+ ## 七、关键约束
348
+
349
+ 1. **版本精确记录**:git-clone 类型必须记录 branch 和 commit,确保可恢复
350
+ 2. **配置优先**:sources 配置存在时不重复询问 URL,仅在目录缺失时恢复
351
+
352
+ ---
353
+
354
+ ## 八、完整流程示意图
355
+
356
+ ```
357
+ 对话开始
358
+
359
+ 读取 config.yaml
360
+
361
+ 检查 locale
362
+ ├─ 为空 → 询问语言 → 更新 config.yaml
363
+ └─ 已设置 → 继续
364
+
365
+ 检查 sources 配置
366
+ ├─ 为空 → 询问 URL → 克隆仓库 → 更新 config.yaml
367
+ └─ 存在 → 检查 /sources/ 目录
368
+ ├─ 存在 → 继续
369
+ └─ 不存在 → 恢复数据源
370
+
371
+ 询问是否更新数据源 (可选)
372
+ ├─ 是 → 执行更新
373
+ └─ 否 → 跳过
374
+
375
+ 进入文档生成流程
376
+ ```