@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,86 @@
1
+ #!/bin/bash
2
+
3
+ # DocSmith Skill 安装脚本
4
+ # 将 doc-smith skill 复制到 Claude 全局 skills 目录
5
+ # 使用 -y 参数可以跳过确认提示
6
+
7
+ set -e
8
+
9
+ # 检查是否有 -y 参数
10
+ AUTO_YES=false
11
+ if [[ "$1" == "-y" ]] || [[ "$1" == "--yes" ]]; then
12
+ AUTO_YES=true
13
+ fi
14
+
15
+ # 颜色定义
16
+ GREEN='\033[0;32m'
17
+ YELLOW='\033[1;33m'
18
+ RED='\033[0;31m'
19
+ NC='\033[0m' # No Color
20
+
21
+ # 获取脚本所在目录的父目录(项目根目录)
22
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
23
+ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
24
+ SOURCE_DIR="$PROJECT_ROOT/skills/doc-smith"
25
+ TARGET_DIR="$HOME/.claude/skills"
26
+ TARGET_PATH="$TARGET_DIR/doc-smith"
27
+
28
+ echo "================================================"
29
+ echo " DocSmith Skill 安装工具"
30
+ echo "================================================"
31
+ echo ""
32
+
33
+ # 检查源目录是否存在
34
+ if [ ! -d "$SOURCE_DIR" ]; then
35
+ echo -e "${RED}错误:源目录不存在: $SOURCE_DIR${NC}"
36
+ exit 1
37
+ fi
38
+
39
+ echo -e "源目录: ${GREEN}$SOURCE_DIR${NC}"
40
+ echo -e "目标目录: ${GREEN}$TARGET_PATH${NC}"
41
+ echo ""
42
+
43
+ # 创建 .claude/skills 目录(如果不存在)
44
+ if [ ! -d "$TARGET_DIR" ]; then
45
+ echo -e "${YELLOW}创建目录: $TARGET_DIR${NC}"
46
+ mkdir -p "$TARGET_DIR"
47
+ fi
48
+
49
+ # 检查目标路径是否已存在
50
+ if [ -d "$TARGET_PATH" ]; then
51
+ echo -e "${YELLOW}警告:目标路径已存在${NC}"
52
+ if [ "$AUTO_YES" = false ]; then
53
+ read -p "是否覆盖现有的 doc-smith skill? (y/N) " -n 1 -r
54
+ echo ""
55
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
56
+ echo -e "${RED}安装已取消${NC}"
57
+ exit 0
58
+ fi
59
+ else
60
+ echo "使用自动确认模式,将覆盖现有安装"
61
+ fi
62
+ echo -e "${YELLOW}删除现有目录...${NC}"
63
+ rm -rf "$TARGET_PATH"
64
+ fi
65
+
66
+ # 复制文件
67
+ echo -e "${GREEN}复制 doc-smith skill...${NC}"
68
+ cp -r "$SOURCE_DIR" "$TARGET_PATH"
69
+
70
+ # 验证安装
71
+ if [ -d "$TARGET_PATH" ] && [ -f "$TARGET_PATH/SKILL.md" ]; then
72
+ echo ""
73
+ echo -e "${GREEN}✓ 安装成功!${NC}"
74
+ echo ""
75
+ echo "doc-smith skill 已安装到:"
76
+ echo -e " ${GREEN}$TARGET_PATH${NC}"
77
+ echo ""
78
+ echo "你现在可以在任何地方使用 doc-smith skill 了!"
79
+ echo ""
80
+ echo "使用方法:"
81
+ echo " 在 Claude Code 中输入: /doc-smith"
82
+ echo ""
83
+ else
84
+ echo -e "${RED}✗ 安装失败${NC}"
85
+ exit 1
86
+ fi
@@ -0,0 +1,52 @@
1
+ #!/bin/bash
2
+
3
+ # DocSmith Skill 卸载脚本
4
+ # 从 Claude 全局 skills 目录移除 doc-smith skill
5
+
6
+ set -e
7
+
8
+ # 颜色定义
9
+ GREEN='\033[0;32m'
10
+ YELLOW='\033[1;33m'
11
+ RED='\033[0;31m'
12
+ NC='\033[0m' # No Color
13
+
14
+ TARGET_PATH="$HOME/.claude/skills/doc-smith"
15
+
16
+ echo "================================================"
17
+ echo " DocSmith Skill 卸载工具"
18
+ echo "================================================"
19
+ echo ""
20
+
21
+ # 检查是否已安装
22
+ if [ ! -d "$TARGET_PATH" ]; then
23
+ echo -e "${YELLOW}doc-smith skill 未安装${NC}"
24
+ echo "路径不存在: $TARGET_PATH"
25
+ exit 0
26
+ fi
27
+
28
+ echo -e "将要删除: ${RED}$TARGET_PATH${NC}"
29
+ echo ""
30
+ read -p "确认要卸载 doc-smith skill 吗? (y/N) " -n 1 -r
31
+ echo ""
32
+
33
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
34
+ echo -e "${YELLOW}卸载已取消${NC}"
35
+ exit 0
36
+ fi
37
+
38
+ # 删除目录
39
+ echo -e "${YELLOW}正在删除...${NC}"
40
+ rm -rf "$TARGET_PATH"
41
+
42
+ # 验证卸载
43
+ if [ ! -d "$TARGET_PATH" ]; then
44
+ echo ""
45
+ echo -e "${GREEN}✓ 卸载成功!${NC}"
46
+ echo ""
47
+ echo "doc-smith skill 已从系统中移除"
48
+ echo ""
49
+ else
50
+ echo -e "${RED}✗ 卸载失败${NC}"
51
+ exit 1
52
+ fi
@@ -0,0 +1,285 @@
1
+ ---
2
+ name: doc-smith
3
+ description: "从工作区数据源生成和更新全面的文档,包括代码仓库、文本文件和媒体资源。当用户请求以下操作时使用此技能:(1) 从代码或文件创建或生成文档,(2) 构建文档结构或文档详情,(3) 更新、修改或改进已有文档,(4) 重写文档的特定章节或段落,(5) 处理 changeset 文件或 PATCH 标记的修改请求。支持技术文档、用户指南、API 参考和一般文档需求的生成与维护。"
4
+ ---
5
+
6
+ # DocSmith
7
+
8
+ 从工作区数据源生成和更新结构化文档。
9
+
10
+ ## 概述
11
+
12
+ DocSmith 分析数据源内容(代码、文件、媒体)并生成:
13
+ 1. 用户意图描述(`user-intent.md`)
14
+ 2. 文档结构计划(`document-structure.yaml`)
15
+ 3. 按层次组织的 Markdown 文档文件
16
+
17
+ 所有输出都创建在独立的 workspace 目录中。
18
+
19
+ **任务规划机制**:DocSmith 使用持久化的任务规划文件来跟踪执行进度,确保长时间任务的可追溯性和可恢复性。
20
+
21
+ ## 使用场景
22
+
23
+ ### 场景 A:生成新文档
24
+
25
+ 当 `docs/` 目录不存在或用户明确要求重新生成时,使用 **文档生成流程**(步骤 1-6)。
26
+
27
+ **适用情况:**
28
+ - 首次为项目生成文档
29
+ - 完全重建文档结构
30
+ - 用户说"重新生成所有文档"
31
+
32
+ ### 场景 B:更新已有文档
33
+
34
+ 当 `docs/` 目录已存在且用户要求修改时,使用 **文档更新流程**(步骤 7)。
35
+
36
+ **适用情况:**
37
+ - 用户提出自然语言修改请求(如"统一术语"、"补充章节"、"修正错误")
38
+ - 用户提供 changeset 文件路径
39
+ - 文档中存在 `::: PATCH` 标记
40
+ - 用户说"更新文档"、"修改文档"、"应用修改"
41
+ - 用户希望更新文档中的图片,比希望在某篇文档中新增图片、删除图片或编辑某张图片
42
+
43
+ ## 工作流程
44
+
45
+ 按以下步骤依次执行:
46
+
47
+ ### 任务规划初始化
48
+
49
+ **在开始任何实际工作前,必须先初始化任务规划文件。**
50
+
51
+ 在 `cache`目录创建 `task_plan.md` 文件,如果文件已存在,可以覆盖之前的文件,内容模板:
52
+
53
+ ```markdown
54
+ # DocSmith 任务计划
55
+
56
+ ## 目标
57
+ [一句话描述本次任务的最终目标,例如:为 XXX 项目生成完整的中文技术文档]
58
+
59
+ ## 执行阶段(识别是新生成还是更新文档,参考不同的模板)
60
+
61
+ 生成新文档参考模板:
62
+ - [ ] 阶段 0: Workspace 检查,阅读参考文件,确保 config.yaml 和 sources 数据完整
63
+ - [ ] 阶段 1: 分析数据源
64
+ - [ ] 阶段 2: 推断用户意图,并向用户确认
65
+ - [ ] 阶段 3: 规划文档结构
66
+ - [ ] 阶段 4: 生成 document-structure.yaml
67
+ - [ ] 阶段 5: 确认文档结构
68
+ - [ ] 阶段 6: 生成文档内容
69
+ - [ ] 阶段 7: 检查是否存在`AFS Image Slot`,如果存在调用`generateImages`Tool 生成图片
70
+ - [ ] 阶段 8: 更新已有文档 (如适用)
71
+ - [ ] 阶段 9: 结束前确认任务都已完成
72
+ - [ ] 阶段 10: (用户提出的其他要求,根据要求扩展这个列表)
73
+
74
+
75
+ 更新文档参考模板:
76
+ - [ ] 阶段 0: Workspace 检查,阅读参考文件,确保 config.yaml 和 sources 数据完整
77
+ - [ ] 阶段 1: 分析更新需求(识别 changeset 文件、PATCH 标记或自然语言请求)
78
+ - [ ] 阶段 2: 检查是否需要修改文档结构,如需要则更新 document-structure.yaml 并校验
79
+ - [ ] 阶段 3: 应用文档内容更新
80
+ - [ ] 阶段 4: 处理文档中的 PATCH 标记
81
+ - [ ] 阶段 5: 只要文档有新增或更新,就需要检查是否新增了`AFS Image Slot`,如果新增了则调用`generateImages`Tool 生成图片
82
+ - [ ] 阶段 6: 执行文档结构和内容校验
83
+ - [ ] 阶段 7: 确认所有更新任务完成
84
+ - [ ] 阶段 8: (用户提出的其他要求,根据要求扩展这个列表)
85
+
86
+ ## 关键决策
87
+ [记录在执行过程中做出的重要决策及其理由]
88
+
89
+ ## 遇到的错误
90
+ [记录遇到的错误及解决方案,格式:错误描述 -> 解决方案]
91
+
92
+ ## 当前状态
93
+ **正在执行阶段 0** - 准备初始化 workspace
94
+ ```
95
+
96
+ **规划文件使用规则**:
97
+ 1. **每个阶段开始前**:读取 `task_plan.md` 刷新目标和上下文
98
+ 2. **每个阶段完成后**:立即更新 `task_plan.md`,标记该阶段为 [x],更新"当前状态"
99
+ 3. **做出重要决策时**:记录到"关键决策"部分
100
+ 4. **遇到错误时**:记录到"遇到的错误"部分,包括错误描述和解决方案
101
+
102
+ ### 0. Workspace 检测
103
+
104
+ **执行任何操作前,首先检测 workspace。**
105
+
106
+ 请阅读下面的参考检查 config.yaml 文件和 sources 数据是否完整。
107
+ **workspace 检查流程参考**: `references/workspace-initialization.md`
108
+
109
+ ### 1. 分析数据源
110
+
111
+ 使用 Glob/Grep/Read 工具探索`sources`目录下的数据源,了解项目目的、结构、主要模块、现有文档和媒体资源。
112
+
113
+ ### 2. 推断用户意图
114
+
115
+ 首先检查用户意图文件是否已存在,如果存在向用户问询是否需要修改。
116
+ 用户意图格式**必须**参考: `references/user-intent-guide.md`
117
+
118
+ ### 3. 规划文档结构
119
+
120
+ 首先检查文档结构文件是否已存在,如果存在执行第 5 步骤 ,向用户问询是否需要修改。
121
+ 文档结构规划要求**必须**参考: `references/structure-planning-guide.md`
122
+
123
+ ### 4. 生成 document-structure.yaml
124
+
125
+ 4.1 **生成 YAML 文件**
126
+
127
+ 文档结构数据结构**必须**参考: `references/document-structure-schema.md`
128
+
129
+ 生成文件到: `planning/document-structure.yaml`
130
+
131
+ 4.2 **立即执行程序化校验**
132
+
133
+ 生成 YAML 后,必须立即调用校验工具进行检查:
134
+
135
+ **调用方式**:使用 `checkStructure` 工具(自动检查 `planning/document-structure.yaml` 并修复错误)
136
+
137
+ **校验结果处理**:
138
+
139
+ - ✅ **成功(valid: true)**: 继续执行步骤 5
140
+
141
+ - ❌ **失败(valid: false)**:
142
+ 1. 分析错误报告(errors 字段),理解哪些字段或格式不正确
143
+ 2. 阅读 `references/document-structure-schema.md`
144
+ 4. 修复错误或重新生成 `planning/document-structure.yaml`
145
+ 5. 重新调用 `checkStructure`
146
+ 6. 如果连续 3 次失败,向用户报告错误并询问如何处理
147
+
148
+ **重要提醒**:
149
+ - 不要跳过校验步骤
150
+ - 当工具返回 `fixed: true` 时,**必须**重新读取文件以获取最新内容
151
+ - 校验失败时必须采取行动(修复或重新生成),不能忽略错误
152
+
153
+ ### 5. 确认文档结构
154
+
155
+ 5.1: 向用户展示的结构**必须**参考: `references/structure-confirmation-guide.md`
156
+ 5.2: 确认文档结构符合指定的数据结构,参考:`references/document-structure-schema.md`
157
+ 5.3: 如果用户提出修改意见,修改之后需要再次使用 `checkStructure`工具检查更新后的文档结构。
158
+
159
+ ### 6. 生成文档内容
160
+
161
+ 使用 `generateDocumentDetails` 工具为文档结构中的每个文档生成内容,支持批量生成多个文档。
162
+
163
+ ### 7. 更新已有文档
164
+
165
+ 仅当 `docs/` 目录已存在时处理文档更新、文档中图片更新。
166
+
167
+ **更新流程参考:**
168
+ - 整体流程与输入识别:`references/update-workflow.md`
169
+ - Changeset 文件处理:`references/changeset-guide.md`
170
+ - PATCH 标记处理 (每次文档更新都需要检查文档中是否有 PATCH 需要处理):`references/patch-guide.md`
171
+ - 文档内容要求:`references/document-content-guide.md`
172
+ - 更新文档中的图片:使用`updateImage`工具
173
+
174
+ 如果涉及文档结构的修改,需要参考以下信息:
175
+ - 文档结构数据结构参考: `references/document-structure-schema.md`
176
+ - 向用户展示的结构请参考: `references/structure-confirmation-guide.md`
177
+ - 新增了文档,必须使用`generateDocumentDetails` 工具为新文档文档生成内容,支持批量生成多个文档。
178
+
179
+ ### 8. 结束前确认任务都已完成
180
+
181
+ 8.1 **重新执行文档结构校验**
182
+
183
+ 在结束前,必须再次校验文档结构文件的完整性:
184
+
185
+ **调用方式**:使用 `checkStructure` 工具
186
+
187
+ 如果校验失败,按照步骤 4.2 的错误处理流程处理。
188
+
189
+ 8.2 **执行文档内容检查**
190
+
191
+ 在结束前,必须执行文档内容检查:
192
+
193
+ **调用方式**:使用 `checkContent` 工具
194
+
195
+ - ✅ **成功(valid: true)**: 继续后续流程
196
+
197
+ - ❌ **失败(valid: false)**:
198
+ 1. 分析错误报告,理解问题所在
199
+ 2. 根据错误类型采取行动:
200
+ - 文档缺失:生成缺失的文档
201
+ - 链接错误:修正链接路径
202
+ - 图片问题:提供图片或修正路径
203
+ - 空文档:补充内容
204
+ 3. 修复后重新调用 `checkContent`
205
+ 4. 如果连续 3 次失败,向用户报告错误并询问如何处理
206
+
207
+ **重要提醒**:
208
+ - 不要跳过内容检查步骤
209
+ - 检查失败时必须采取行动(修复或重新生成),不能忽略错误
210
+
211
+ 8.4 **检查是否存在 afs image slot 需要生成图片**
212
+
213
+ 当检测到文档需要展示技术类图片,但是数据源中没有提供的时候,会生成 `AFS Image Slot` 占位符,参考`references/document-content-guide.md`。
214
+ 根据`AFS Image Slot`生成的图片会保存在 `assets` 目录,可以根据 `key` 字段检查图片是否存在。
215
+ 文档生成结束之后,检查本次生成的文档中是否包含 `AFS Image Slot`, 如果存在, 使用 `generateImages` Tool 自动生成文档中的图片。
216
+
217
+ 8.5 **核对完成清单**
218
+
219
+ - [ ] 文档结构校验通过
220
+ - [ ] 文档内容检查通过
221
+ - [ ] 确认所有生成的文档所在文件夹路径与 `document-structure.yaml` 中的 path 字段一致,并存在 .meta.yaml 文件和主语言文件
222
+ - [ ] 确认文档内部链接都有效
223
+ - [ ] 确认图片路径正确且文件存在
224
+ - [ ] 检查是否存在 `AFS Image Slot` 并生成图片
225
+
226
+ **文档更新的场景**:
227
+ - [ ] 用户要求的变更都已处理
228
+ - [ ] 文档中的 `::: PATCH` 标记都已处理
229
+ - [ ] 如果修改了文档结构,重新执行 YAML 校验
230
+ - [ ] 如果修改了文档内容,重新执行内容检查
231
+ - [ ] 检查是否新生成了 `AFS Image Slot`, 如果存在则成图片
232
+
233
+ ## 自动提交变更
234
+
235
+ 每次完成用户要求的任务,导致 workspace 变化,都自动提交 commit。
236
+ ```bash
237
+ git add .
238
+ git commit -m "docsmith: xxxx(合适的标题)"
239
+ ```
240
+
241
+ ## Workspace 目录结构参考
242
+
243
+ 完成后:
244
+
245
+ ```
246
+ modules/
247
+ ├── workspace/ # doc-smith 工作空间
248
+ │ ├── config.yaml # workspace 配置文件
249
+ │ ├── intent/
250
+ │ │ └── user-intent.md # 用户意图描述
251
+ │ ├── planning/
252
+ │ │ └── document-structure.yaml # 文档结构计划
253
+ │ ├── docs/ # 生成的文档
254
+ │ │ ├── overview/
255
+ │ │ │ ├── .meta.yaml # 元信息 (kind/source/default)
256
+ │ │ │ └── zh.md # 语言版本文件
257
+ │ │ ├── getting-started/
258
+ │ │ │ ├── .meta.yaml
259
+ │ │ │ └── zh.md
260
+ │ │ └── api/
261
+ │ │ └── authentication/
262
+ │ │ ├── .meta.yaml
263
+ │ │ └── zh.md
264
+ │ ├── assets/ # 生成的图片资源
265
+ │ │ └── project-architecture/ # afs image slot 中的 key
266
+ │ │ ├── .meta.yaml # 元信息 (kind/source/default)
267
+ │ │ └── images/
268
+ │ │ └── zh.png # 语言版本文件
269
+ │ └── cache/ # 缓存数据
270
+ │ └── task_plan.md # 任务规划文件 (跟踪执行进度)
271
+ └── sources/ # 数据源目录
272
+ └── my-project/ # 克隆的源仓库
273
+ ```
274
+
275
+ ## 关键原则
276
+
277
+ - **Workspace 优先**:执行任何操作前必须先检测和初始化 workspace
278
+ - **任务规划先行**:开始工作前必须创建 `task_plan.md`,每个阶段前读取,每个阶段后更新
279
+ - **持久化记录**:将关键决策、错误和解决方案记录到 `task_plan.md`,确保任务可追溯
280
+ - **参考引用文件**:执行到每个步骤时,如果提供了参考文件,必须先阅读参考文件中的要求
281
+ - **文档内容要求**:执行任何文档相关的生成、更新,都需要参考`references/document-content-guide.md`,确保文档符合要求
282
+ - **基于用户意图**:所有规划和生成都应参考 `intent/user-intent.md`
283
+ - **最小必要原则**:只生成用户意图中明确需要的文档
284
+ - **批量执行**:生成文档内容时优先批量执行,缩短执行时间
285
+ - **Git 版本管理**:生成/更新/翻译完成后自动将所有变更提交到 Git