@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
@@ -1,83 +0,0 @@
1
- <x-card-usage-rules>
2
- ## XCard Usage Rules
3
-
4
- XCards is multiple `<x-card>` container, suitable for displaying multiple links using a card list format, providing a richer and more visually appealing presentation.
5
-
6
- ### Attributes
7
-
8
- - `data-columns` (required): must be an integer ≥ 2; no upper bound.
9
-
10
- ### Children
11
-
12
- - Must contain multiple `<x-card>` elements internally.
13
-
14
- ### Usage Rules
15
-
16
- - **Visual Consistency**: All `<x-card>` elements within the same `<x-cards>` must maintain visual consistency:
17
- - It's recommended to always provide data-icon for each card.
18
- - Or all cards should have data-image.
19
- - Avoid mixing (some with icons, some with only images).
20
-
21
- ### Good Examples
22
-
23
- - Example 1: Two-column cards with images
24
- ```md
25
- <x-cards data-columns="2">
26
- <x-card data-title="Card A" data-image="https://picsum.photos/id/10/300/300">Content A</x-card>
27
- <x-card data-title="Card B" data-image="https://picsum.photos/id/11/300/300">Content B</x-card>
28
- </x-cards>
29
- ```
30
-
31
- - Example 2: Four-column cards with icons
32
- ```md
33
- <x-cards data-columns="4">
34
- <x-card data-title="Feature 1" data-icon="lucide:rocket">Description of Feature 1.</x-card>
35
- <x-card data-title="Feature 2" data-icon="lucide:bolt">Description of Feature 2.</x-card>
36
- <x-card data-title="Feature 3" data-icon="material-symbols:rocket-outline">Description of Feature 3.</x-card>
37
- <x-card data-title="Feature 4" data-icon="lucide:star">Description of Feature 4.</x-card>
38
- </x-cards>
39
- ```
40
-
41
- - Example 3: Replace markdown format multiple links
42
- ```md
43
- For more detailed information on specific features, please refer to the following sections:
44
-
45
- <x-cards data-columns="3">
46
- <x-card data-title="Using Discussions" data-href="/discussions">Introduce how to use discussions</x-card>
47
- <x-card data-title="Using the Blog" data-href="/blog">Introduce how to use the Blog</x-card>
48
- <x-card data-title="Using Chat" data-href="/chat">Introduce how to use Chat</x-card>
49
- </x-cards>
50
- ```
51
-
52
- ### Bad Examples
53
-
54
- - Example 1: Using a single-column layout (`data-columns="1"`) is not allowed
55
- ```md
56
- <x-cards data-columns="1">
57
- <x-card data-title="Feature 1" data-icon="lucide:rocket">Description of Feature 1.</x-card>
58
- <x-card data-title="Feature 2" data-icon="lucide:bolt">Description of Feature 2.</x-card>
59
- </x-cards>
60
- ```
61
-
62
- - Example 2: Contains only one `<x-card>` (must include multiple cards)
63
- ```md
64
- <x-cards data-columns="2">
65
- <x-card data-title="Card A" data-image="https://picsum.photos/id/10/300/300">Content A</x-card>
66
- </x-cards>
67
- ```
68
-
69
- - Example 3: Markdown format multiple links
70
- ```md
71
- For more detailed information on specific features, please refer to the following sections:
72
- - [Using Discussions](./discussions.md)
73
- - [Using the Blog](./blog.md)
74
- - [Using Chat](./chat.md)
75
- ```
76
-
77
- - Example 4: Missing `data-columns` attribute (required)
78
- <x-cards>
79
- <x-card data-title="Feature 1" data-icon="lucide:rocket">Description of Feature 1.</x-card>
80
- <x-card data-title="Feature 2" data-icon="lucide:bolt">Description of Feature 2.</x-card>
81
- </x-cards>
82
-
83
- </x-card-usage-rules>
@@ -1,120 +0,0 @@
1
- <x-field-desc-usage-rules>
2
- ## XFieldDesc Usage Rules
3
-
4
- XFieldDesc is rich field description. Used to provide rich text descriptions for `<x-field>` elements, supporting inline markdown formatting for enhanced readability.
5
-
6
- ### Attributes
7
-
8
- - `markdown` (required): **MUST** be set to "markdown" . This attribute is mandatory and cannot be omitted
9
- - **Validation**: `<x-field-desc>` without `markdown` attribute will be rejected
10
-
11
- ### Children
12
-
13
- - Supports **bold text**, `inline code`, _italic text_, and other inline markdown
14
- - Description text must be provided as child content of `<x-field-desc>`, not as the value of the `markdown` attribute
15
- - **Inline Markdown Only**: Allow only inline Markdown (e.g., `**bold**`, *italic*, `inline code`); block elements like code blocks, headings, lists, or tables are **not allowed**.
16
-
17
- ### Usage Rules
18
-
19
- - **Parent Requirement**: Must be child of `<x-field>`: `<x-field-desc>` can only appear as a child element of `<x-field>` components
20
- - **Avoid Redundant Information**: Do not repeat information in `<x-field-desc>` that is already expressed by the parent `<x-field>` attributes. Specifically:
21
- - **Required Status**: Do not mention "required" or "optional" in descriptions since `data-required` attribute already indicates this
22
- - **Default Values**: Do not repeat default values in descriptions since `data-default` attribute already shows this
23
- - **Deprecated Status**: Do not mention "deprecated" in descriptions since `data-deprecated` attribute already indicates this
24
- - Focus descriptions on the field's purpose, format, constraints, example values, and usage guidance instead
25
-
26
- ### Good Examples
27
-
28
- - Example 1: Basic markdown description
29
- ```md
30
- <x-field-desc markdown>Your **API key** for authentication. Generate one from the `Settings > API Keys` section. Keep it secure and never expose it in client-side code.</x-field-desc>
31
- ```
32
-
33
- - Example 2: Description with inline code
34
- ```md
35
- <x-field-desc markdown>**JWT token** containing user identity and permissions. Expires in `24 hours` by default. Use the `refresh_token` to obtain a new one.</x-field-desc>
36
- ```
37
-
38
- ### Bad Examples
39
-
40
- - Example 1: Missing markdown attribute (violates "markdown attribute required" rule)
41
- ```md
42
- <x-field data-name="api_key" data-type="string" data-required="true">
43
- <x-field-desc>Your **API key** for authentication.</x-field-desc>
44
- </x-field>
45
- ```
46
-
47
- - Example 2: Incorrect markdown attribute usage (violates "markdown attribute format" rule)
48
- ```md
49
- <x-field data-name="api_key" data-type="string" data-required="true">
50
- <x-field-desc markdown="Your **API key** for authentication."></x-field-desc>
51
- </x-field>
52
- ```
53
-
54
- - Example 3: Using self-closing tag (violates "opening/closing tags format" rule)
55
- ```md
56
- <x-field data-name="user_id" data-type="string" data-required="true">
57
- <x-field-desc markdown />
58
- </x-field>
59
- ```
60
-
61
- - Example 4: Containing block-level elements (violates "Inline Content Only" rule)
62
- ````md
63
- <x-field data-name="config" data-type="object" data-required="true">
64
- <x-field-desc markdown>
65
- **Configuration settings** for the application.
66
-
67
- ## Important Notes
68
- - Set debug to true for development
69
- - Use production database in production
70
-
71
- ```javascript
72
- const config = { debug: true };
73
- ```
74
- </x-field-desc>
75
- </x-field>
76
- ````
77
-
78
- - Example 5: Used outside of x-field component (violates "Parent Requirement" rule)
79
- ```md
80
- <x-field-desc markdown>This description is not inside an x-field component.</x-field-desc>
81
- ```
82
-
83
- - Example 6: Used as child of other components (violates "Parent Requirement" rule)
84
- ```md
85
- <x-field-group>
86
- <x-field data-name="name" data-type="string" data-required="true" data-desc="User name"></x-field>
87
- <x-field-desc markdown>This description is not inside an x-field component.</x-field-desc>
88
- </x-field-group>
89
- ```
90
-
91
- - Example 7: Redundant required information in description (violates "Avoid Redundant Information" rule)
92
- ```md
93
- <x-field-group>
94
- <x-field data-name="api_key" data-type="string" data-required="true">
95
- <x-field-desc markdown>Your **API key** for authentication. **This field is required.**</x-field-desc>
96
- </x-field>
97
- <x-field data-name="timeout" data-type="number" data-required="false" data-default="5000">
98
- <x-field-desc markdown>Request timeout in milliseconds. **Optional**, defaults to `5000`.</x-field-desc>
99
- </x-field>
100
- <x-field data-name="old_api" data-type="string" data-deprecated="true">
101
- <x-field-desc markdown>Old API endpoint. **This field is deprecated.**</x-field-desc>
102
- </x-field>
103
- </x-field-group>
104
- ```
105
- **Correct approach:**
106
- ```md
107
- <x-field-group>
108
- <x-field data-name="api_key" data-type="string" data-required="true">
109
- <x-field-desc markdown>Your **API key** for authentication. Generate one from the `Settings > API Keys` section.</x-field-desc>
110
- </x-field>
111
- <x-field data-name="timeout" data-type="number" data-required="false" data-default="5000">
112
- <x-field-desc markdown>Request timeout in milliseconds.</x-field-desc>
113
- </x-field>
114
- <x-field data-name="old_api" data-type="string" data-deprecated="true">
115
- <x-field-desc markdown>Old API endpoint. Use the new endpoint instead.</x-field-desc>
116
- </x-field>
117
- </x-field-group>
118
- ```
119
-
120
- </x-field-desc-usage-rules>
@@ -1,80 +0,0 @@
1
- <x-field-group-usage-rules>
2
- ## XFieldGroup Usage Rules
3
-
4
- XFieldGroup is `<x-field>` grouping container. Used to group multiple related `<x-field>` elements at the top level, indicating they belong to the same object or context. This provides better organization and visual grouping for related parameters.
5
-
6
- ### Attributes
7
-
8
- - No attributes required
9
-
10
- ### Children
11
-
12
- - Only `<x-field>` elements are allowed as children
13
-
14
- ### Usage Rules
15
-
16
- - **Top-Level Only**: Used only at the top level for grouping related `<x-field>` elements. Cannot be nested inside other `<x-field>` or `<x-field-group>` elements
17
- - **Structured Data Only**: Use `<x-field-group>` for fields **other than simple types** (`string`, `number`, `boolean`, `symbol`), e.g., Properties, Context, Parameters, Return values. For simple-type fields, use plain Markdown text.
18
-
19
- ### Good Examples
20
-
21
- - Example 1: Product information fields
22
- ```md
23
- <x-field-group>
24
- <x-field data-name="name" data-type="string" data-required="true" data-desc="The name of the product."></x-field>
25
- <x-field data-name="description" data-type="string" data-required="false" data-desc="An optional description for the product."></x-field>
26
- <x-field data-name="type" data-type="string" data-required="false" data-desc="The type of product (e.g., 'service', 'good')."></x-field>
27
- <x-field data-name="price" data-type="number" data-required="true" data-default="0">
28
- <x-field-desc markdown>Product price in **USD**. Must be a positive number with up to 2 decimal places.</x-field-desc>
29
- </x-field>
30
- </x-field-group>
31
- ```
32
-
33
- ### Bad Examples
34
-
35
- - Example 1: Nested inside x-field component (violates "Top-Level Only" rule)
36
- ```md
37
- <x-field data-name="user" data-type="object" data-required="true">
38
- <x-field-group>
39
- <x-field data-name="name" data-type="string" data-required="true" data-desc="User name"></x-field>
40
- <x-field data-name="email" data-type="string" data-required="true" data-desc="User email"></x-field>
41
- </x-field-group>
42
- </x-field>
43
- ```
44
-
45
- - Example 2: Nested inside another x-field-group (violates "Top-Level Only" rule)
46
- ```md
47
- <x-field-group>
48
- <x-field data-name="user" data-type="object" data-required="true" data-desc="User information"></x-field>
49
- <x-field-group>
50
- <x-field data-name="name" data-type="string" data-required="true" data-desc="User name"></x-field>
51
- <x-field data-name="email" data-type="string" data-required="true" data-desc="User email"></x-field>
52
- </x-field-group>
53
- </x-field-group>
54
- ```
55
-
56
- - Example 3: Containing non-x-field elements (violates "Only x-field elements allowed" rule)
57
- ```md
58
- <x-field-group>
59
- <x-field data-name="name" data-type="string" data-required="true" data-desc="User name"></x-field>
60
- <div>Additional information</div>
61
- <x-field data-name="email" data-type="string" data-required="true" data-desc="User email"></x-field>
62
- </x-field-group>
63
- ```
64
-
65
- - Example 4: Empty x-field-group (violates "Must contain x-field elements" rule)
66
- ```md
67
- <x-field-group>
68
- </x-field-group>
69
- ```
70
-
71
- - Example 5: Using x-field-group for simple-type (violates "Structured Data Only" rule)
72
- ```md
73
- ### appName
74
-
75
- <x-field-group>
76
- <x-field data-name="appName" data-type="string" data-required="true" data-desc="specifies the name of the application"></x-field>
77
- </x-field-group>
78
- ```
79
-
80
- </x-field-group-usage-rules>
@@ -1,189 +0,0 @@
1
- <x-field-usage-rules>
2
- ## XField Usage Rules
3
-
4
- XField is structured data field, suitable for displaying API parameters, return values, context data, and any structured data with metadata in a clean, organized format. Supports nested structures for complex data types.
5
-
6
- ### Attributes
7
-
8
- - `data-name` (optional): The name of the field/parameter
9
- - `data-type` (optional): The data type of the field (e.g., "string", "number", "boolean", "symbol", "object", "array", "function")
10
- - `data-default` (optional): Default value for the field
11
- - `data-required` (optional): Whether the field is required ("true" or "false")
12
- - `data-deprecated` (optional): Whether the field is deprecated ("true" or "false")
13
- - `data-desc` (optional): Simple description of the field. Do not use any Markdown syntax (see `<markdown_syntax_rules>` for the full list).
14
-
15
- ### Children
16
-
17
- - For simple types (string, number, boolean): children can be empty or contain exactly one `<x-field-desc>` element
18
- - For complex types (object, array), children contain nested `<x-field>` elements and optionally one `<x-field-desc>` element
19
-
20
- ### Usage Rules
21
-
22
- - **Opening/Closing Tags Format**: `<x-field ...></x-field>` for all types
23
- - **Maximum Nesting Depth**: 5 levels (to avoid overly complex structures)
24
- - **Description Mutually Exclusive**: Use either `data-desc` attribute OR `<x-field-desc>` element, not both
25
- - **Single Description Rule**: Only one `<x-field-desc>` element per `<x-field>` is allowed
26
- - **Grouping Requirement**: Wrap the outermost `<x-field>` elements with `<x-field-group>`, even if there's only one `<x-field>` element
27
- - **Recursive Structure**: Use recursive `<x-field>` structures to fully express complex object type hierarchies, decomposing all nested properties into more fundamental types
28
- - **Fixed Value Fields**: For fields that accept a limited set of predefined values (including enums, constants, or fixed strings), use `<x-field>` with the base data type (e.g., "string", "number") in the `data-type` attribute, and list all possible values in the description.
29
- - **Function-Type Fields**: For fields with `data-type="function"`, nest `<x-field>` elements for parameters (`data-name="parameters"`) and return value (`data-name="returnValue"`) **whenever their types are available**.
30
-
31
- ### Good Examples
32
-
33
- - Example 1: Simple field with all attributes
34
- ```md
35
- ### Returns
36
-
37
- <x-field-group>
38
- <x-field data-name="user_id" data-type="string" data-default="u0911" data-required="true" data-deprecated="true" data-desc="Unique identifier for the user. Must be a valid UUID v4 format."></x-field>
39
- </x-field-group>
40
- ```
41
-
42
- - Example 2: Field with markdown description
43
- ```md
44
- ### Context
45
-
46
- <x-field-group>
47
- <x-field data-name="api_key" data-type="string" data-required="true">
48
- <x-field-desc markdown>Your **API key** for authentication. Generate one from the `Settings > API Keys` section. Keep it secure and never expose it in client-side code.</x-field-desc>
49
- </x-field>
50
- </x-field-group>
51
- ```
52
-
53
- - Example 3: Nested object structure
54
- ```md
55
- ### Properties
56
-
57
- <x-field-group>
58
- <x-field data-name="session" data-type="object" data-required="true">
59
- <x-field-desc markdown>Contains all **authentication** and **authorization** data for the current user session. This object is automatically populated after successful login.</x-field-desc>
60
- <x-field data-name="user" data-type="object" data-required="true" data-desc="User basic information">
61
- <x-field data-name="name" data-type="string" data-required="true" data-default="John Doe" data-desc="User name"></x-field>
62
- <x-field data-name="email" data-type="string" data-required="true" data-default="john.doe@example.com">
63
- <x-field-desc markdown>Primary email address used for **login** and **notifications**. Must be a valid email format.</x-field-desc>
64
- </x-field>
65
- <x-field data-name="avatar" data-type="string" data-required="false" data-default="https://example.com/avatars/john-doe.jpg" data-desc="User avatar URL"></x-field>
66
- </x-field>
67
- <x-field data-name="permissions" data-type="array" data-required="true" data-default='["read", "write", "admin"]'>
68
- <x-field-desc markdown>Array of **permission strings** that determine what actions the user can perform. Common values: `"read"`, `"write"`, `"admin"`, `"delete"`.</x-field-desc>
69
- </x-field>
70
- </x-field>
71
- </x-field-group>
72
- ```
73
-
74
- - Example 4: Multiple fields for Parameters
75
- ```md
76
- ### Parameters
77
-
78
- <x-field-group>
79
- <x-field data-name="user_id" data-type="string" data-required="true" data-desc="Unique identifier for the user. Must be a valid UUID v4 format."></x-field>
80
- <x-field data-name="include_profile" data-type="boolean" data-required="false" data-default="false" data-desc="Whether to include the user's profile information in the response"></x-field>
81
- <x-field data-name="options" data-type="object" data-required="false" data-desc="Additional options for the request">
82
- <x-field data-name="format" data-type="string" data-required="false" data-default="json">
83
- <x-field-desc>Response format: `json` or `xml`</x-field-desc>
84
- </x-field>
85
- <x-field data-name="locale" data-type="string" data-required="false" data-default="en" data-desc="Language locale for localized content"></x-field>
86
- </x-field>
87
- </x-field-group>
88
- ```
89
-
90
- - Example 5: Enum values with base type and description
91
- ```md
92
- ### Status
93
-
94
- <x-field-group>
95
- <x-field data-name="status" data-type="string" data-required="true" data-default="pending" data-desc="Current status of the request. Possible values: 'pending', 'processing', 'completed', 'failed'"></x-field>
96
- <x-field data-name="priority" data-type="number" data-required="false" data-default="1">
97
- <x-field-desc markdown>Priority level for the task. **Valid values**: `1` (low), `2` (medium), `3` (high), `4` (urgent)</x-field-desc>
98
- </x-field>
99
- </x-field-group>
100
- ```
101
-
102
- - Example 6: Function type field with nested parameters and return value
103
- ```md
104
- ### API Methods
105
-
106
- <x-field-group>
107
- <x-field data-name="authenticate" data-type="function" data-required="true" data-desc="Authenticates a user with email and password">
108
- <x-field data-name="parameters" data-type="object" data-desc="Function parameters">
109
- <x-field data-name="email" data-type="string" data-required="true" data-desc="User's email address"></x-field>
110
- <x-field data-name="password" data-type="string" data-required="true" data-desc="User's password"></x-field>
111
- <x-field data-name="rememberMe" data-type="boolean" data-required="false" data-default="false" data-desc="Whether to keep user logged in"></x-field>
112
- </x-field>
113
- <x-field data-name="returnValue" data-type="object" data-desc="Function return value">
114
- <x-field data-name="success" data-type="boolean" data-required="true" data-desc="Whether authentication was successful"></x-field>
115
- <x-field data-name="token" data-type="string" data-required="false" data-desc="JWT token if authentication successful"></x-field>
116
- <x-field data-name="user" data-type="object" data-required="false" data-desc="User information if authentication successful">
117
- <x-field data-name="id" data-type="string" data-required="true" data-desc="User ID"></x-field>
118
- <x-field data-name="name" data-type="string" data-required="true" data-desc="User's display name"></x-field>
119
- <x-field data-name="email" data-type="string" data-required="true" data-desc="User's email address"></x-field>
120
- </x-field>
121
- </x-field>
122
- </x-field>
123
- </x-field-group>
124
- ```
125
-
126
- ### Bad Examples
127
-
128
- - Example 1: Using self-closing tag (violates "Opening/Closing Tags Format" rule)
129
- ```md
130
- <x-field-group>
131
- <x-field data-name="user_id" data-type="string" data-required="true" data-desc="User identifier" />
132
- </x-field-group>
133
- ```
134
-
135
- - Example 2: Using both `data-desc` and `<x-field-desc>` (violates "Description Mutually Exclusive" rule)
136
- ```md
137
- <x-field-group>
138
- <x-field data-name="api_key" data-type="string" data-required="true" data-desc="API key for authentication">
139
- <x-field-desc markdown>Your **API key** for authentication. Keep it secure and never expose it.</x-field-desc>
140
- </x-field>
141
- </x-field-group>
142
- ```
143
-
144
- - Example 3: Using multiple `<x-field-desc>` elements (violates "Single Description Rule")
145
- ```md
146
- <x-field-group>
147
- <x-field data-name="config" data-type="object" data-required="true">
148
- <x-field-desc markdown>Configuration object for the application.</x-field-desc>
149
- <x-field-desc markdown>Contains all runtime settings and preferences.</x-field-desc>
150
- </x-field>
151
- </x-field-group>
152
- ```
153
-
154
- - Example 4: Nesting other child elements (violates "Children" rule)
155
- ```md
156
- <x-field-group>
157
- <x-field data-name="user" data-type="object" data-required="true">
158
- <div>User information</div>
159
- <x-field data-name="name" data-type="string" data-required="true" data-desc="User name"></x-field>
160
- </x-field>
161
- </x-field-group>
162
- ```
163
-
164
- - Example 5: Missing x-field-group wrapper (violates "Grouping Requirement" rule)
165
- ```md
166
- <x-field data-name="apiConfig" data-type="object" data-required="true" data-desc="API configuration object">
167
- <x-field data-name="baseUrl" data-type="string" data-required="true" data-desc="Base URL for API calls"></x-field>
168
- <x-field data-name="timeout" data-type="number" data-required="false" data-default="5000" data-desc="Request timeout in milliseconds"></x-field>
169
- </x-field>
170
- ```
171
-
172
- - Example 6: Exceeding maximum nesting depth (violates "Maximum Nesting Depth" rule)
173
- ```md
174
- <x-field-group>
175
- <x-field data-name="level1" data-type="object" data-required="true">
176
- <x-field data-name="level2" data-type="object" data-required="true">
177
- <x-field data-name="level3" data-type="object" data-required="true">
178
- <x-field data-name="level4" data-type="object" data-required="true">
179
- <x-field data-name="level5" data-type="object" data-required="true">
180
- <x-field data-name="level6" data-type="string" data-required="true" data-desc="Too deep nesting"></x-field>
181
- </x-field>
182
- </x-field>
183
- </x-field>
184
- </x-field>
185
- </x-field>
186
- </x-field-group>
187
- ```
188
-
189
- </x-field-usage-rules>
@@ -1,18 +0,0 @@
1
- <custom_components_usage_rules>
2
- ## Custom Components Usage Rules
3
-
4
- When generating document details, you can use the following custom components at appropriate locations based on their descriptions and functionality to enhance document presentation:
5
-
6
- ### XCard Relate Component Usage Rules
7
- {% include "./custom-components/x-card-usage-rules.md" %}
8
- {% include "./custom-components/x-cards-usage-rules.md" %}
9
-
10
- ### XField Relate Component Usage Rules
11
-
12
- XField-related components are designed to enhance API-related documentation and should be used only for API-type documents. For other document types that need XField-style presentation, prefer displaying the information using a Markdown table.
13
-
14
- {% include "./custom-components/x-field-usage-rules.md" %}
15
- {% include "./custom-components/x-field-desc-usage-rules.md" %}
16
- {% include "./custom-components/x-field-group-usage-rules.md" %}
17
-
18
- </custom_components_usage_rules>
@@ -1,81 +0,0 @@
1
- {% if useImageToImage and existingImage %}
2
- # Image-to-Image Generation Mode
3
-
4
- Your task is to **update an existing diagram** based on the current document content and user feedback.
5
-
6
- **CRITICAL INSTRUCTIONS:**
7
- 1. **Use the existing image as the primary reference** - maintain its overall structure, layout, and visual style
8
- 2. **Analyze the document content** to understand what changes are needed
9
- 3. **Apply user feedback** to modify the diagram appropriately
10
- 4. **Maintain visual consistency** - keep the same style, color scheme, and general layout unless explicitly requested to change
11
- 5. **Make maximum changes** where needed - update content, add/remove elements, adjust relationships based on the document
12
- 6. **Preserve what works** - keep elements that are still accurate and relevant
13
-
14
- **Task Parameters:**
15
- - **Diagram Type:** {{ diagramType }}
16
- - **Visual Style:** {{ diagramStyle }} (maintain consistency with existing image unless feedback requests change)
17
- - **Aspect Ratio:** {{ aspectRatio }}
18
- - **Language:** {{ locale }}
19
-
20
- **Existing Diagram:**
21
- [The existing diagram image is provided as input to the model]
22
-
23
- **Document Content:**
24
- {% if documentSummary %}
25
- {{ documentSummary }}
26
- {% else %}
27
- {{ documentContent }}
28
- {% endif %}
29
-
30
- **User Feedback:**
31
- {{ feedback if feedback else "Update the diagram to match the current document content." }}
32
-
33
- **Your responsibilities:**
34
- 1. Analyze the existing diagram structure, style, and layout
35
- 2. Review the document content to identify what needs to be updated
36
- 3. Apply user feedback to modify the diagram
37
- 4. Maintain visual consistency with the original design where appropriate
38
- 5. Update the diagram to accurately reflect the current document content
39
- 6. Make necessary changes while preserving the overall visual style and structure
40
-
41
- **Style Consistency:**
42
- - Keep the same visual style as the existing image unless user feedback explicitly requests a style change
43
- - Maintain color scheme, node shapes, and layout patterns
44
- - Preserve the overall aesthetic and design language
45
-
46
- {% else %}
47
- # Standard Text-to-Image Generation Mode
48
-
49
- Your task is to create a professional diagram image based on the document content below.
50
-
51
- Please follow **all global rules, styles, aspect ratio logic, and diagram-type rules** defined in the system prompt.
52
-
53
- # Task Parameters:
54
- - **Diagram Type:** {{ diagramType }}
55
- - **Visual Style:** {{ diagramStyle }}
56
- - **Aspect Ratio:** {{ aspectRatio }}
57
- - **Language:** {{ locale }}
58
-
59
- # Your responsibilities:
60
- 1. Read and analyze the document content.
61
- 2. Extract key concepts, steps, relationships, or flow sequences.
62
- 3. Generate a diagram that accurately represents these elements.
63
- 4. Apply all rules from the system prompt.
64
- 5. Labels must be concise (2–5 words).
65
- 6. No titles or explanations outside nodes.
66
- 7. Maintain clarity, structure, and proper layout based on the aspect ratio.
67
-
68
- # Document Content:
69
-
70
- Now analyze the following document content to understand what should be drawn:
71
-
72
- {% if documentSummary %}
73
- **Document Content (comprehensive summary for diagram generation):**
74
- {{ documentSummary }}
75
- {% else %}
76
- **Document Content (full original content):**
77
- {{ documentContent }}
78
- {% endif %}
79
-
80
- (Use this content to determine node structure, relationships, and flow.)
81
- {% endif %}
@@ -1,29 +0,0 @@
1
- <diagram_generation_guide>
2
-
3
- 1. Core Principles and Mandatory Constraints
4
- - **Absolute Constraint (Mandatory)**: You **must only** call the `generateDiagram` tool to generate a diagram.
5
- - **Do not** generate mermaid diagram.
6
- - **Do not** generate base64 image.
7
- - **Do not** generate fake image url.
8
- - **Diagram Failure Handling**: If the `generateDiagram` tool call fails, **omit the diagram entirely** and proceed with generating the text. **Do not** attempt to describe the diagram in words as a replacement.
9
-
10
- 2. Diagram Triggers and Types: Call `generateDiagram` and select the most appropriate type when describing the following specific content
11
- - Architecture Diagram (High-Level)
12
- - **Trigger**: When the document provides a high-level overview of a system, project, or the overall documentation set.
13
- - **Content**: Must illustrate the main components, their relationships, and the overall structure.
14
- - Structural Diagram (Module-Level)
15
- - **Trigger**: When generating the introductory document for a major section or module.
16
- - **Content**: Must show the key sub-components, files, or core concepts within that specific module.
17
- - Process and Interaction Diagrams (Detailed)
18
- - **Trigger**: When the document describes a workflow, a sequence of events, user interactions, or data flow.
19
- - **Diagram Type Selection**:
20
- - **Flowchart**: Use for step-by-step processes, algorithms, or decision-making logic.
21
- - **Sequence Diagram**: Use for time-ordered interactions between different components or actors (e.g., API calls).
22
- 3. Constraints and Best Practices
23
- - **Quantity Limit**: Generate a maximum of **three** diagrams per document.
24
- - **Relevance**: Ensure every diagram **directly** illustrates a concept explained in the surrounding text. Avoid generating diagrams for simple concepts that are easily understood through text alone.
25
- 4. Tool result using rules
26
- - If the `generateDiagram` tool's result (`diagramSourceCode`) is present, insert the value of `diagramSourceCode` directly into the document as a string.
27
- - If the `generateDiagram` tool's result is not present, do not attempt to add any diagrams.
28
-
29
- </diagram_generation_guide>