@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.
- package/CHANGELOG.md +12 -0
- package/README.md +189 -219
- package/README.zh.md +270 -0
- package/agents/bash-executor/index.mjs +347 -0
- package/agents/clear/ai/intent.md +142 -0
- package/agents/clear/choose-contents.mjs +13 -65
- package/agents/clear/clear-auth-tokens.mjs +17 -21
- package/agents/clear/clear-deployment-config.mjs +33 -24
- package/agents/clear/index.yaml +1 -9
- package/agents/content-checker/ai/intent.md +209 -0
- package/agents/content-checker/clean-invalid-docs.mjs +254 -0
- package/agents/content-checker/index.mjs +191 -0
- package/agents/content-checker/validate-content.mjs +983 -0
- package/agents/generate-images/generate-image.yaml +75 -0
- package/agents/generate-images/generate-summary.mjs +213 -0
- package/agents/generate-images/index.yaml +39 -0
- package/agents/generate-images/prepare-generation.mjs +286 -0
- package/agents/generate-images/prepare-image-generation.mjs +130 -0
- package/{prompts/detail/diagram/generate-image-system.md → agents/generate-images/prompts/system.md} +22 -56
- package/agents/generate-images/prompts/user.md +85 -0
- package/agents/generate-images/save-image-result.mjs +247 -0
- package/agents/generate-images/scan-image-slots.mjs +247 -0
- package/agents/localize/index.yaml +19 -42
- package/{prompts/translate → agents/localize/prompts}/translate-document.md +0 -139
- package/agents/localize/translate-documents/generate-summary.mjs +163 -0
- package/agents/localize/translate-documents/load-glossary.mjs +52 -0
- package/agents/localize/translate-documents/prepare-translation.mjs +249 -0
- package/agents/localize/translate-documents/save-translation.mjs +171 -0
- package/agents/localize/translate-documents/translate-document-to-language.mjs +209 -0
- package/agents/localize/translate-documents/translate-document.yaml +23 -0
- package/agents/localize/translate-documents/translate-to-languages.yaml +10 -0
- package/agents/localize/translate-images/check-image-translation.mjs +225 -0
- package/agents/localize/translate-images/detect-text/detect-and-update-shared.mjs +148 -0
- package/agents/localize/translate-images/detect-text/detect-image-text.yaml +44 -0
- package/agents/localize/translate-images/detect-text/detect-images-text.yaml +21 -0
- package/agents/localize/translate-images/detect-text/prompts/detect-image-text-system.md +43 -0
- package/agents/localize/translate-images/detect-text/prompts/detect-image-text-user.md +14 -0
- package/agents/localize/translate-images/detect-text/save-text-detection.mjs +105 -0
- package/agents/localize/translate-images/prepare-image-input.mjs +124 -0
- package/agents/localize/translate-images/save-image-translation.mjs +172 -0
- package/agents/localize/translate-images/scan-doc-images.mjs +165 -0
- package/agents/localize/translate-images/translate-doc-images.yaml +24 -0
- package/agents/localize/{translate-diagram.yaml → translate-images/translate-image.yaml} +25 -14
- package/agents/publish/ai/intent.md +182 -0
- package/agents/publish/check.mjs +107 -0
- package/agents/publish/index.yaml +9 -14
- package/agents/publish/publish-docs.mjs +81 -61
- package/agents/publish/translate-meta.mjs +79 -58
- package/agents/save-document/index.mjs +260 -0
- package/agents/structure-checker/index.mjs +307 -0
- package/agents/structure-checker/validate-structure.mjs +477 -0
- package/agents/update-image/analyze-feedback.yaml +37 -0
- package/agents/update-image/index.yaml +78 -0
- package/agents/update-image/load-existing-image.mjs +211 -0
- package/agents/update-image/prompts/analyze-feedback-system.md +43 -0
- package/agents/update-image/prompts/analyze-feedback-user.md +15 -0
- package/aigne.yaml +26 -139
- package/package.json +16 -48
- package/scripts/README.md +90 -0
- package/scripts/install.sh +86 -0
- package/scripts/uninstall.sh +52 -0
- package/skills/doc-smith/SKILL.md +285 -0
- package/skills/doc-smith/ai/intent/sources-improve.md +290 -0
- package/skills/doc-smith/references/changeset-guide.md +171 -0
- package/skills/doc-smith/references/document-content-guide.md +214 -0
- package/skills/doc-smith/references/document-structure-schema.md +138 -0
- package/skills/doc-smith/references/patch-guide.md +96 -0
- package/skills/doc-smith/references/structure-confirmation-guide.md +133 -0
- package/skills/doc-smith/references/structure-planning-guide.md +149 -0
- package/skills/doc-smith/references/update-workflow.md +108 -0
- package/skills/doc-smith/references/user-intent-guide.md +175 -0
- package/skills/doc-smith/references/workspace-initialization.md +376 -0
- package/skills/doc-smith-docs-detail/SKILL.md +356 -0
- package/skills/doc-smith-docs-detail/ai/intent.md +271 -0
- package/skills-entry/doc-smith/ai/intent.md +260 -0
- package/skills-entry/doc-smith/index.mjs +66 -0
- package/skills-entry/doc-smith/prompt.md +57 -0
- package/skills-entry/doc-smith/utils.mjs +27 -0
- package/skills-entry/doc-smith-docs-detail/batch.yaml +56 -0
- package/skills-entry/doc-smith-docs-detail/index.mjs +95 -0
- package/skills-entry/doc-smith-docs-detail/prompt.md +64 -0
- package/utils/afs-factory.mjs +183 -0
- package/utils/agent-constants.mjs +97 -0
- package/utils/{auth-utils.mjs → auth.mjs} +6 -9
- package/{agents/utils/update-branding.mjs → utils/branding.mjs} +3 -4
- package/utils/config.mjs +261 -0
- package/utils/constants.mjs +32 -0
- package/utils/deploy.mjs +3 -3
- package/utils/docs-converter.mjs +454 -0
- package/utils/docs.mjs +212 -0
- package/utils/document-paths.mjs +172 -0
- package/utils/files.mjs +74 -0
- package/utils/git.mjs +65 -0
- package/utils/{blocklet.mjs → http.mjs} +18 -0
- package/utils/image-slots.mjs +57 -0
- package/utils/image-utils.mjs +114 -0
- package/utils/project.mjs +95 -0
- package/utils/sources-path-resolver.mjs +76 -0
- package/utils/{upload-files.mjs → upload.mjs} +3 -3
- package/utils/workspace.mjs +371 -0
- package/agents/chat/chat-system.md +0 -38
- package/agents/chat/index.mjs +0 -59
- package/agents/chat/skills/generate-document.yaml +0 -15
- package/agents/chat/skills/list-documents.mjs +0 -15
- package/agents/chat/skills/update-document.yaml +0 -24
- package/agents/clear/clear-document-config.mjs +0 -36
- package/agents/clear/clear-document-structure.mjs +0 -102
- package/agents/clear/clear-generated-docs.mjs +0 -142
- package/agents/clear/clear-media-description.mjs +0 -129
- package/agents/create/aggregate-document-structure.mjs +0 -21
- package/agents/create/analyze-diagram-type-llm.yaml +0 -159
- package/agents/create/analyze-diagram-type.mjs +0 -455
- package/agents/create/check-document-structure.yaml +0 -30
- package/agents/create/check-need-generate-structure.mjs +0 -138
- package/agents/create/document-structure-tools/add-document.mjs +0 -85
- package/agents/create/document-structure-tools/delete-document.mjs +0 -116
- package/agents/create/document-structure-tools/move-document.mjs +0 -109
- package/agents/create/document-structure-tools/update-document.mjs +0 -84
- package/agents/create/generate-diagram-image.yaml +0 -91
- package/agents/create/generate-structure.yaml +0 -106
- package/agents/create/index.yaml +0 -45
- package/agents/create/refine-document-structure.yaml +0 -12
- package/agents/create/replace-d2-with-image.mjs +0 -610
- package/agents/create/update-document-structure.yaml +0 -54
- package/agents/create/user-add-document/add-documents-to-structure.mjs +0 -90
- package/agents/create/user-add-document/find-documents-to-add-links.yaml +0 -47
- package/agents/create/user-add-document/index.yaml +0 -46
- package/agents/create/user-add-document/prepare-documents-to-translate.mjs +0 -22
- package/agents/create/user-add-document/print-add-document-summary.mjs +0 -63
- package/agents/create/user-add-document/review-documents-with-new-links.mjs +0 -110
- package/agents/create/user-remove-document/find-documents-with-invalid-links.mjs +0 -78
- package/agents/create/user-remove-document/index.yaml +0 -40
- package/agents/create/user-remove-document/prepare-documents-to-translate.mjs +0 -22
- package/agents/create/user-remove-document/print-remove-document-summary.mjs +0 -53
- package/agents/create/user-remove-document/remove-documents-from-structure.mjs +0 -99
- package/agents/create/user-remove-document/review-documents-with-invalid-links.mjs +0 -115
- package/agents/create/user-review-document-structure.mjs +0 -139
- package/agents/create/utils/init-current-content.mjs +0 -34
- package/agents/create/utils/merge-document-structures.mjs +0 -36
- package/agents/evaluate/code-snippet.mjs +0 -97
- package/agents/evaluate/document-structure.yaml +0 -67
- package/agents/evaluate/document.yaml +0 -82
- package/agents/evaluate/generate-report.mjs +0 -85
- package/agents/evaluate/index.yaml +0 -46
- package/agents/history/index.yaml +0 -6
- package/agents/history/view.mjs +0 -78
- package/agents/init/check.mjs +0 -16
- package/agents/init/index.mjs +0 -643
- package/agents/init/validate.mjs +0 -16
- package/agents/localize/choose-language.mjs +0 -107
- package/agents/localize/record-translation-history.mjs +0 -23
- package/agents/localize/save-doc-translation-or-skip.mjs +0 -18
- package/agents/localize/set-review-content.mjs +0 -58
- package/agents/localize/translate-document-wrapper.mjs +0 -34
- package/agents/localize/translate-document.yaml +0 -24
- package/agents/localize/translate-multilingual.yaml +0 -57
- package/agents/localize/translate-or-skip-diagram.mjs +0 -52
- package/agents/media/batch-generate-media-description.yaml +0 -46
- package/agents/media/generate-media-description.yaml +0 -50
- package/agents/media/load-media-description.mjs +0 -454
- package/agents/prefs/index.mjs +0 -203
- package/agents/schema/document-structure-item.yaml +0 -26
- package/agents/schema/document-structure-refine-item.yaml +0 -23
- package/agents/schema/document-structure.yaml +0 -29
- package/agents/update/batch-generate-document.yaml +0 -27
- package/agents/update/batch-update-document.yaml +0 -7
- package/agents/update/check-diagram-flag.mjs +0 -116
- package/agents/update/check-document.mjs +0 -162
- package/agents/update/check-generate-diagram.mjs +0 -106
- package/agents/update/check-update-is-single.mjs +0 -53
- package/agents/update/document-tools/update-document-content.mjs +0 -303
- package/agents/update/generate-diagram.yaml +0 -80
- package/agents/update/generate-document.yaml +0 -70
- package/agents/update/handle-document-update.yaml +0 -103
- package/agents/update/index.yaml +0 -69
- package/agents/update/pre-check-generate-diagram.yaml +0 -44
- package/agents/update/save-and-translate-document.mjs +0 -80
- package/agents/update/update-document-detail.yaml +0 -71
- package/agents/update/update-single/update-single-document-detail.mjs +0 -322
- package/agents/update/update-single-document.yaml +0 -7
- package/agents/update/user-review-document.mjs +0 -272
- package/agents/utils/action-success.mjs +0 -16
- package/agents/utils/analyze-document-feedback-intent.yaml +0 -32
- package/agents/utils/analyze-feedback-intent.mjs +0 -253
- package/agents/utils/analyze-structure-feedback-intent.yaml +0 -29
- package/agents/utils/check-detail-result.mjs +0 -51
- package/agents/utils/check-feedback-refiner.mjs +0 -81
- package/agents/utils/choose-docs.mjs +0 -251
- package/agents/utils/document-icon-generate.yaml +0 -52
- package/agents/utils/document-title-streamline.yaml +0 -48
- package/agents/utils/ensure-document-icons.mjs +0 -129
- package/agents/utils/exit.mjs +0 -6
- package/agents/utils/feedback-refiner.yaml +0 -50
- package/agents/utils/find-item-by-path.mjs +0 -114
- package/agents/utils/find-user-preferences-by-path.mjs +0 -37
- package/agents/utils/format-document-structure.mjs +0 -35
- package/agents/utils/generate-document-or-skip.mjs +0 -41
- package/agents/utils/handle-diagram-operations.mjs +0 -263
- package/agents/utils/load-all-document-content.mjs +0 -30
- package/agents/utils/load-document-all-content.mjs +0 -96
- package/agents/utils/load-sources.mjs +0 -405
- package/agents/utils/map-reasoning-effort-level.mjs +0 -15
- package/agents/utils/post-generate.mjs +0 -133
- package/agents/utils/read-current-document-content.mjs +0 -46
- package/agents/utils/save-doc-translation.mjs +0 -30
- package/agents/utils/save-doc.mjs +0 -54
- package/agents/utils/save-output.mjs +0 -26
- package/agents/utils/save-sidebar.mjs +0 -38
- package/agents/utils/skip-if-content-exists.mjs +0 -27
- package/agents/utils/streamline-document-titles-if-needed.mjs +0 -88
- package/agents/utils/transform-detail-data-sources.mjs +0 -45
- package/assets/report-template/report.html +0 -198
- package/docs-mcp/analyze-content-relevance.yaml +0 -50
- package/docs-mcp/analyze-docs-relevance.yaml +0 -59
- package/docs-mcp/docs-search.yaml +0 -42
- package/docs-mcp/get-docs-detail.mjs +0 -41
- package/docs-mcp/get-docs-structure.mjs +0 -16
- package/docs-mcp/read-doc-content.mjs +0 -119
- package/prompts/common/document/content-rules-core.md +0 -20
- package/prompts/common/document/markdown-syntax-rules.md +0 -65
- package/prompts/common/document/media-file-list-usage-rules.md +0 -18
- package/prompts/common/document/openapi-usage-rules.md +0 -189
- package/prompts/common/document/role-and-personality.md +0 -16
- package/prompts/common/document/user-preferences.md +0 -9
- package/prompts/common/document-structure/conflict-resolution-guidance.md +0 -16
- package/prompts/common/document-structure/document-icon-generate.md +0 -116
- package/prompts/common/document-structure/document-structure-rules.md +0 -43
- package/prompts/common/document-structure/document-title-streamline.md +0 -86
- package/prompts/common/document-structure/glossary.md +0 -7
- package/prompts/common/document-structure/intj-traits.md +0 -5
- package/prompts/common/document-structure/openapi-usage-rules.md +0 -28
- package/prompts/common/document-structure/output-constraints.md +0 -18
- package/prompts/common/document-structure/user-locale-rules.md +0 -10
- package/prompts/common/document-structure/user-preferences.md +0 -9
- package/prompts/detail/custom/admonition-usage-rules.md +0 -94
- package/prompts/detail/custom/code-block-usage-rules.md +0 -163
- package/prompts/detail/custom/custom-components/x-card-usage-rules.md +0 -63
- package/prompts/detail/custom/custom-components/x-cards-usage-rules.md +0 -83
- package/prompts/detail/custom/custom-components/x-field-desc-usage-rules.md +0 -120
- package/prompts/detail/custom/custom-components/x-field-group-usage-rules.md +0 -80
- package/prompts/detail/custom/custom-components/x-field-usage-rules.md +0 -189
- package/prompts/detail/custom/custom-components-usage-rules.md +0 -18
- package/prompts/detail/diagram/generate-image-user.md +0 -81
- package/prompts/detail/diagram/guide.md +0 -29
- package/prompts/detail/diagram/official-examples.md +0 -712
- package/prompts/detail/diagram/pre-check.md +0 -23
- package/prompts/detail/diagram/role-and-personality.md +0 -2
- package/prompts/detail/diagram/rules.md +0 -46
- package/prompts/detail/diagram/system-prompt.md +0 -1139
- package/prompts/detail/diagram/user-prompt.md +0 -43
- package/prompts/detail/generate/detail-example.md +0 -457
- package/prompts/detail/generate/document-rules.md +0 -45
- package/prompts/detail/generate/system-prompt.md +0 -61
- package/prompts/detail/generate/user-prompt.md +0 -99
- package/prompts/detail/jsx/rules.md +0 -6
- package/prompts/detail/update/system-prompt.md +0 -121
- package/prompts/detail/update/user-prompt.md +0 -41
- package/prompts/evaluate/document-structure.md +0 -93
- package/prompts/evaluate/document.md +0 -149
- package/prompts/media/media-description/system-prompt.md +0 -43
- package/prompts/media/media-description/user-prompt.md +0 -17
- package/prompts/structure/check-document-structure.md +0 -93
- package/prompts/structure/document-rules.md +0 -21
- package/prompts/structure/find-documents-to-add-links.md +0 -52
- package/prompts/structure/generate/system-prompt.md +0 -13
- package/prompts/structure/generate/user-prompt.md +0 -137
- package/prompts/structure/review/structure-review-system.md +0 -81
- package/prompts/structure/structure-example.md +0 -89
- package/prompts/structure/structure-getting-started.md +0 -10
- package/prompts/structure/update/system-prompt.md +0 -93
- package/prompts/structure/update/user-prompt.md +0 -43
- package/prompts/translate/admonition.md +0 -20
- package/prompts/translate/code-block.md +0 -33
- package/prompts/utils/analyze-document-feedback-intent.md +0 -54
- package/prompts/utils/analyze-structure-feedback-intent.md +0 -43
- package/prompts/utils/feedback-refiner.md +0 -105
- package/types/document-schema.mjs +0 -55
- package/types/document-structure-schema.mjs +0 -261
- package/utils/check-document-has-diagram.mjs +0 -95
- package/utils/conflict-detector.mjs +0 -149
- package/utils/constants/index.mjs +0 -620
- package/utils/constants/linter.mjs +0 -102
- package/utils/d2-utils.mjs +0 -205
- package/utils/debug.mjs +0 -3
- package/utils/delete-diagram-images.mjs +0 -99
- package/utils/diagram-version-utils.mjs +0 -14
- package/utils/docs-finder-utils.mjs +0 -548
- package/utils/evaluate/report-utils.mjs +0 -132
- package/utils/extract-api.mjs +0 -32
- package/utils/file-utils.mjs +0 -960
- package/utils/history-utils.mjs +0 -203
- package/utils/icon-map.mjs +0 -26
- package/utils/image-compress.mjs +0 -154
- package/utils/kroki-utils.mjs +0 -173
- package/utils/linter/index.mjs +0 -50
- package/utils/load-config.mjs +0 -78
- package/utils/markdown/index.mjs +0 -26
- package/utils/markdown-checker.mjs +0 -694
- package/utils/mermaid-validator.mjs +0 -140
- package/utils/mermaid-worker-pool.mjs +0 -250
- package/utils/mermaid-worker.mjs +0 -233
- package/utils/openapi/index.mjs +0 -28
- package/utils/preferences-utils.mjs +0 -175
- package/utils/request.mjs +0 -10
- package/utils/sync-diagram-to-translations.mjs +0 -272
- package/utils/translate-diagram-images.mjs +0 -807
- package/utils/utils.mjs +0 -1354
- /package/{prompts/translate → agents/localize/prompts}/glossary.md +0 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
# Source 类型重构功能意图
|
|
2
|
+
|
|
3
|
+
## 功能概述
|
|
4
|
+
|
|
5
|
+
重构 DocSmith workspace 的数据源接入方式,支持两种启动路径和统一的多数据源配置,以满足不同的文档管理场景。
|
|
6
|
+
|
|
7
|
+
## 功能意图
|
|
8
|
+
|
|
9
|
+
当前 DocSmith 将源代码仓库作为 git submodule 添加到 workspace,这种方式导致一个架构限制:**无法让产品仓库管理自己的文档**。
|
|
10
|
+
|
|
11
|
+
具体问题:
|
|
12
|
+
- 如果 docs workspace 放在产品仓库内,又把产品仓库作为自己的 submodule,会形成循环嵌套
|
|
13
|
+
- 这与"项目自己管理自己的文档"的长期目标冲突
|
|
14
|
+
- DocSmith 应该是项目自动构建的一部分,而非独立存在
|
|
15
|
+
|
|
16
|
+
解决思路:
|
|
17
|
+
- **两种启动路径**:根据用户启动位置自动选择合适的初始化流程
|
|
18
|
+
- **统一的 schema**:无论哪种方式启动,config.yaml 格式一致
|
|
19
|
+
- **多数据源支持**:可以添加多个 local-path 或 git-clone 类型的数据源
|
|
20
|
+
|
|
21
|
+
## 两种启动路径
|
|
22
|
+
|
|
23
|
+
### 路径 A:项目内启动(推荐)
|
|
24
|
+
|
|
25
|
+
**触发条件**:在已有的 git 仓库中执行 `docsmith init`
|
|
26
|
+
|
|
27
|
+
**初始化行为**:
|
|
28
|
+
1. 创建 `.docsmith/` 子目录
|
|
29
|
+
2. 在 `.docsmith/` 中执行 `git init`(独立仓库)
|
|
30
|
+
3. 将 `.docsmith/` 添加为外层仓库的 submodule
|
|
31
|
+
4. 自动配置主数据源为 `local-path: "../"`
|
|
32
|
+
|
|
33
|
+
**目录结构**:
|
|
34
|
+
```
|
|
35
|
+
product-repo/ # 产品仓库(外层)
|
|
36
|
+
├── .gitmodules # .docsmith 作为 submodule
|
|
37
|
+
├── src/ # 产品源代码
|
|
38
|
+
└── .docsmith/ # DocSmith workspace(独立 git 仓库)
|
|
39
|
+
├── .git/ # 独立的 git 历史
|
|
40
|
+
├── config.yaml # sources 包含 local-path: "../"
|
|
41
|
+
├── intent/
|
|
42
|
+
├── planning/
|
|
43
|
+
└── docs/
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Git 关系**:
|
|
47
|
+
```
|
|
48
|
+
product-repo ──submodule──> .docsmith
|
|
49
|
+
|
|
50
|
+
文件引用(非 git 关系):
|
|
51
|
+
.docsmith ──local-path "../"──> product-repo 的文件
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**适用场景**:
|
|
55
|
+
- 项目团队自己维护文档
|
|
56
|
+
- DocSmith 作为项目构建的一部分
|
|
57
|
+
- 希望文档版本与代码版本同步
|
|
58
|
+
|
|
59
|
+
### 路径 B:独立启动
|
|
60
|
+
|
|
61
|
+
**触发条件**:在空目录或非 git 目录中执行 `docsmith init`
|
|
62
|
+
|
|
63
|
+
**初始化行为**:
|
|
64
|
+
1. 在当前目录初始化 workspace
|
|
65
|
+
2. 执行 `git init`
|
|
66
|
+
3. 询问用户添加数据源(git-clone URL)
|
|
67
|
+
4. 克隆数据源到 `.cache/` 目录
|
|
68
|
+
|
|
69
|
+
**目录结构**:
|
|
70
|
+
```
|
|
71
|
+
docs-workspace/ # DocSmith workspace
|
|
72
|
+
├── .git/
|
|
73
|
+
├── config.yaml # sources 包含 git-clone 配置
|
|
74
|
+
├── .cache/
|
|
75
|
+
│ └── main-project/ # 克隆的数据源(gitignore)
|
|
76
|
+
├── intent/
|
|
77
|
+
├── planning/
|
|
78
|
+
└── docs/
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**适用场景**:
|
|
82
|
+
- 快速试用 DocSmith
|
|
83
|
+
- 纯文档项目
|
|
84
|
+
- CI/CD 临时构建环境
|
|
85
|
+
|
|
86
|
+
## 统一的 Config Schema
|
|
87
|
+
|
|
88
|
+
**两种启动路径生成相同格式的 config.yaml**:
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
# config.yaml
|
|
92
|
+
|
|
93
|
+
# 数据源列表(支持多个)
|
|
94
|
+
sources:
|
|
95
|
+
# 主数据源
|
|
96
|
+
- name: "main-project"
|
|
97
|
+
type: local-path # 或 git-clone
|
|
98
|
+
path: "../" # local-path 专用
|
|
99
|
+
|
|
100
|
+
# 参考数据源(可选)
|
|
101
|
+
- name: "aigne-framework"
|
|
102
|
+
type: git-clone
|
|
103
|
+
url: "https://github.com/ArcBlock/aigne-framework.git"
|
|
104
|
+
ref: "main" # branch/tag/commit,默认 "main"
|
|
105
|
+
cachePath: ".cache/aigne-framework"
|
|
106
|
+
|
|
107
|
+
- name: "blocklet-sdk"
|
|
108
|
+
type: git-clone
|
|
109
|
+
url: "https://github.com/ArcBlock/blocklet-sdk.git"
|
|
110
|
+
ref: "v1.2.0"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## 核心能力
|
|
114
|
+
|
|
115
|
+
### 1. 两种数据源类型
|
|
116
|
+
|
|
117
|
+
| 类型 | 用途 | 配置字段 |
|
|
118
|
+
|------|------|---------|
|
|
119
|
+
| `local-path` | 引用本地目录 | `path`(相对路径) |
|
|
120
|
+
| `git-clone` | 克隆远程仓库 | `url`, `ref`, `cachePath` |
|
|
121
|
+
|
|
122
|
+
### 2. 启动路径自动检测
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
docsmith init
|
|
126
|
+
↓
|
|
127
|
+
检测当前目录
|
|
128
|
+
↓
|
|
129
|
+
├─ 是 git 仓库 → 项目内启动
|
|
130
|
+
│ ├─ 创建 .docsmith/ 子目录
|
|
131
|
+
│ ├─ git init(独立仓库)
|
|
132
|
+
│ ├─ 添加为 submodule
|
|
133
|
+
│ └─ 配置 local-path: "../"
|
|
134
|
+
│
|
|
135
|
+
└─ 非 git 仓库 → 独立启动
|
|
136
|
+
├─ 在当前目录初始化
|
|
137
|
+
├─ git init
|
|
138
|
+
├─ 询问数据源 URL
|
|
139
|
+
└─ 配置 git-clone
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### 3. 多数据源支持
|
|
143
|
+
|
|
144
|
+
无论哪种启动路径,都可以后续添加更多数据源:
|
|
145
|
+
```bash
|
|
146
|
+
docsmith add-source https://github.com/ArcBlock/aigne-framework.git
|
|
147
|
+
docsmith add-source ../another-local-project --type local-path
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 4. Workspace 目录名称
|
|
151
|
+
|
|
152
|
+
项目内启动时,固定使用 `.docsmith/`:
|
|
153
|
+
- 隐藏目录,对项目侵入最小
|
|
154
|
+
- 固定名称,无需配置
|
|
155
|
+
- 检测简单:`.docsmith/config.yaml` 存在即为已初始化
|
|
156
|
+
|
|
157
|
+
### 5. 历史独立
|
|
158
|
+
|
|
159
|
+
项目内启动时,`.docsmith/` 是独立的 git 仓库:
|
|
160
|
+
- 文档提交不污染产品仓库历史
|
|
161
|
+
- 通过 submodule 关联,产品仓库只记录指向的 commit
|
|
162
|
+
- DocSmith 封装 submodule 操作,降低用户门槛
|
|
163
|
+
|
|
164
|
+
## 输入输出
|
|
165
|
+
|
|
166
|
+
### 输入
|
|
167
|
+
|
|
168
|
+
- 自动检测:
|
|
169
|
+
- 当前目录是否为 git 仓库(决定启动路径)
|
|
170
|
+
|
|
171
|
+
- 项目内启动:
|
|
172
|
+
- 无需额外输入(自动配置)
|
|
173
|
+
|
|
174
|
+
- 独立启动:
|
|
175
|
+
- 数据源 URL(必需)
|
|
176
|
+
- 分支/tag/commit(可选,默认 main)
|
|
177
|
+
|
|
178
|
+
- 添加数据源:
|
|
179
|
+
- URL 或本地路径
|
|
180
|
+
- 数据源名称(可选,自动从 URL 推断)
|
|
181
|
+
|
|
182
|
+
### 输出
|
|
183
|
+
|
|
184
|
+
- config.yaml 中的 sources 配置
|
|
185
|
+
- 根据启动路径执行相应的 git 操作
|
|
186
|
+
- 初始化完成后的 workspace 结构
|
|
187
|
+
|
|
188
|
+
## 约束条件
|
|
189
|
+
|
|
190
|
+
### 必须遵循的规范
|
|
191
|
+
|
|
192
|
+
1. **config.yaml schema**:
|
|
193
|
+
```yaml
|
|
194
|
+
sources:
|
|
195
|
+
- name: string # 数据源名称
|
|
196
|
+
type: "local-path" | "git-clone"
|
|
197
|
+
|
|
198
|
+
# local-path 专用
|
|
199
|
+
path: string # 相对路径
|
|
200
|
+
|
|
201
|
+
# git-clone 专用
|
|
202
|
+
url: string # 仓库 URL
|
|
203
|
+
ref: string # branch/tag/commit,默认 "main"
|
|
204
|
+
cachePath: string # 克隆位置,默认 ".cache/{name}"
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
2. **项目内启动要求**:
|
|
208
|
+
- workspace 目录固定为 `.docsmith/`
|
|
209
|
+
- 必须初始化为独立 git 仓库
|
|
210
|
+
- 必须添加为外层仓库的 submodule
|
|
211
|
+
|
|
212
|
+
3. **git-clone 要求**:
|
|
213
|
+
- cachePath 目录必须加入 .gitignore
|
|
214
|
+
- 支持通过 ref 字段锁定版本
|
|
215
|
+
|
|
216
|
+
### 职责边界
|
|
217
|
+
|
|
218
|
+
- **必须执行**:
|
|
219
|
+
- 自动检测启动路径
|
|
220
|
+
- 项目内启动时自动添加 submodule
|
|
221
|
+
- git-clone 时自动克隆到 cache 目录
|
|
222
|
+
- 验证路径/URL 有效性
|
|
223
|
+
|
|
224
|
+
- **不应执行**:
|
|
225
|
+
- 不创建远程仓库(用户自行创建)
|
|
226
|
+
- 不推送到远程(用户自行推送)
|
|
227
|
+
- 不修改外层仓库的其他文件(除 .gitmodules)
|
|
228
|
+
|
|
229
|
+
- **协作方式**:
|
|
230
|
+
- 与现有 workspace 初始化流程集成
|
|
231
|
+
- 封装 submodule 操作,降低用户门槛
|
|
232
|
+
|
|
233
|
+
## 预期结果
|
|
234
|
+
|
|
235
|
+
### 成功标准
|
|
236
|
+
|
|
237
|
+
1. **路径自动选择**:根据启动位置自动决定初始化流程
|
|
238
|
+
2. **schema 统一**:两种路径生成相同格式的 config.yaml
|
|
239
|
+
3. **多数据源**:支持添加多个 local-path 或 git-clone 数据源
|
|
240
|
+
4. **历史独立**:项目内启动时文档有独立的 git 历史
|
|
241
|
+
5. **操作简单**:用户无需直接操作 submodule
|
|
242
|
+
|
|
243
|
+
## 错误处理
|
|
244
|
+
|
|
245
|
+
### 常见错误
|
|
246
|
+
|
|
247
|
+
1. **submodule 添加失败**:外层仓库不是 git 仓库或权限问题
|
|
248
|
+
2. **目录已存在**:`.docsmith/` 目录已存在
|
|
249
|
+
3. **网络问题**:git-clone 无法访问远程仓库
|
|
250
|
+
4. **URL 无效**:git-clone 的 URL 格式错误或仓库不存在
|
|
251
|
+
5. **路径无效**:local-path 指向的路径不存在
|
|
252
|
+
|
|
253
|
+
### 处理策略
|
|
254
|
+
|
|
255
|
+
1. **submodule 失败**:提供手动添加的命令指引
|
|
256
|
+
2. **目录存在**:检测是否为有效 workspace,是则提示已初始化,否则报错
|
|
257
|
+
3. **网络问题**:提示检查 URL 和网络连接,支持重试
|
|
258
|
+
4. **路径无效**:提示检查路径,建议正确的相对路径格式
|
|
259
|
+
|
|
260
|
+
## 实现方式
|
|
261
|
+
|
|
262
|
+
### 1. 修改 workspace-initialization.md
|
|
263
|
+
|
|
264
|
+
- 新增启动路径检测逻辑
|
|
265
|
+
- 分支处理两种启动路径的初始化流程
|
|
266
|
+
- 统一 config.yaml 生成逻辑
|
|
267
|
+
|
|
268
|
+
### 2. config.yaml schema 更新
|
|
269
|
+
|
|
270
|
+
- `source` 改为 `sources`(数组)
|
|
271
|
+
- 每个数据源包含 `name`, `type` 及类型专属字段
|
|
272
|
+
- 支持 local-path 和 git-clone 两种类型
|
|
273
|
+
|
|
274
|
+
### 3. 封装 submodule 操作
|
|
275
|
+
|
|
276
|
+
提供高级命令,用户无需直接操作 submodule:
|
|
277
|
+
- `docsmith init`:自动处理 submodule 创建和添加
|
|
278
|
+
- `docsmith commit`:在 workspace 中提交
|
|
279
|
+
- `docsmith push`:推送 workspace
|
|
280
|
+
- `docsmith add-source`:添加新数据源
|
|
281
|
+
|
|
282
|
+
### 4. 迁移策略
|
|
283
|
+
|
|
284
|
+
对于现有 workspace:
|
|
285
|
+
- 旧的 `source` 单数据源配置自动转换为 `sources` 数组
|
|
286
|
+
- 保持向后兼容
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
**注意**:本文档描述功能意图,不包含具体实现细节。
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Changeset 文件理解与执行指南
|
|
2
|
+
|
|
3
|
+
## 核心定位
|
|
4
|
+
|
|
5
|
+
Changeset 是**批量反馈的结构化载体**,格式自由,自然语言描述。
|
|
6
|
+
用户通过 Changeset 提出的修改请求都直接执行, 不需要向用户二次确认。
|
|
7
|
+
ChangeSet 文件应该在仓库中保留,记录历史修改要求。
|
|
8
|
+
|
|
9
|
+
**包含内容**:
|
|
10
|
+
- Summary(摘要)
|
|
11
|
+
- Global Semantic Changes(全局语义修改)
|
|
12
|
+
- Structural Rewrite Requests(局部结构性重写)
|
|
13
|
+
- Additional Data/References(补充资料)
|
|
14
|
+
- Clarifications/Corrections(需求澄清)
|
|
15
|
+
- Acceptance Criteria(验收标准)
|
|
16
|
+
|
|
17
|
+
**注意**:PATCH 推荐直接标记在文档正文中,不要求写在 changeset 中。
|
|
18
|
+
|
|
19
|
+
## 六大类型
|
|
20
|
+
|
|
21
|
+
### 0. Summary(摘要)
|
|
22
|
+
|
|
23
|
+
用 1–3 句说明变更范围与重点。
|
|
24
|
+
|
|
25
|
+
**要点**:
|
|
26
|
+
- 用于规划步骤与排序
|
|
27
|
+
- 不提供位置锚点时,不要扩大修改范围
|
|
28
|
+
- 优先依赖下面更具体的条目
|
|
29
|
+
|
|
30
|
+
**示例**:`本次为全局语义调整 + 局部重写:统一术语,补充快速开始章节`
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
### 1. Global Semantic Changes(全局语义修改)
|
|
35
|
+
|
|
36
|
+
跨文档的术语、风格、命名一致性修改。
|
|
37
|
+
|
|
38
|
+
**典型场景**:术语统一、风格调整、叙述视角统一、格式规范。
|
|
39
|
+
|
|
40
|
+
**要点**:
|
|
41
|
+
- 优先级高:先于局部改写执行
|
|
42
|
+
- 避免过度改写:只做最小必要修改
|
|
43
|
+
- 冲突时以更具体的局部要求为准
|
|
44
|
+
|
|
45
|
+
**示例**:
|
|
46
|
+
```
|
|
47
|
+
1. 术语统一:"API" → "API 接口"、"blocklet" → "Blocklet"
|
|
48
|
+
2. 风格调整:删除第一人称,保持中立第三人称
|
|
49
|
+
3. 格式规范:代码块统一添加语言标识符
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### 2. Structural Rewrite Requests(局部结构性重写)
|
|
55
|
+
|
|
56
|
+
对特定章节/段落提出重写或重构请求,对文档结构提出调整请求,描述目标但不给出确定文本。
|
|
57
|
+
|
|
58
|
+
如果涉及文档结构的修改,需要参考以下信息:
|
|
59
|
+
- 文档结构数据结构参考: `document-structure-schema.md`
|
|
60
|
+
- 向用户展示确认文档结构请参考: `structure-confirmation-guide.md`
|
|
61
|
+
|
|
62
|
+
阅读参考文件需在 task 中记录,在执行到相应 task 时阅读这些参考文件。
|
|
63
|
+
|
|
64
|
+
**位置锚点**:章节标题、段落关键词、文件路径。
|
|
65
|
+
|
|
66
|
+
**推荐字段**(自然语言):
|
|
67
|
+
- Target(目标位置)
|
|
68
|
+
- Issue(问题描述)
|
|
69
|
+
- Rewrite Goal(改写目标)
|
|
70
|
+
- Suggested Outline(可选)
|
|
71
|
+
- Materials(可选)
|
|
72
|
+
|
|
73
|
+
**要点**:
|
|
74
|
+
- 只修改目标范围,不扩散到无关章节
|
|
75
|
+
- 锚点不精确时,先检索定位最匹配段落
|
|
76
|
+
- PATCH 优先:先执行 PATCH,再在结果基础上重写
|
|
77
|
+
- 保持链接、术语、结构一致性
|
|
78
|
+
|
|
79
|
+
**示例**:
|
|
80
|
+
```
|
|
81
|
+
Target: overview.md, Introduction 章节
|
|
82
|
+
Issue: 缺少项目背景
|
|
83
|
+
Rewrite Goal: 补充项目定位、核心价值、适用场景
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### 3. Additional Data / References(补充资料)
|
|
89
|
+
|
|
90
|
+
新增或修正的参考信息,提供更准确的上下文。
|
|
91
|
+
|
|
92
|
+
**典型场景**:附加文档、术语表更新、产品说明、纠正错误。
|
|
93
|
+
|
|
94
|
+
**要点**:
|
|
95
|
+
- 作为参考上下文,用于修正事实与补齐遗漏
|
|
96
|
+
- 只在与现有内容矛盾或能显著提升准确性时才改
|
|
97
|
+
- 信息不足时标注问题,不要编造
|
|
98
|
+
|
|
99
|
+
**示例**:
|
|
100
|
+
```
|
|
101
|
+
1. 术语表更新:`Workspace` → 独立的文档工作空间
|
|
102
|
+
2. 参考文档:/path/to/api-v2.md
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### 4. Clarifications / Corrections(需求澄清)
|
|
108
|
+
|
|
109
|
+
对最初目标、范围、约束、受众等的理解修正,改变判断标准。
|
|
110
|
+
|
|
111
|
+
**典型场景**:受众变更、输出形态澄清、语气调整、范围修正。
|
|
112
|
+
|
|
113
|
+
**要点**:
|
|
114
|
+
- **最高优先级**:覆盖旧的隐含前提
|
|
115
|
+
- 大范围重构时,优先调整入口段和目录结构
|
|
116
|
+
- 与其他类型冲突时,以澄清为准
|
|
117
|
+
- 一旦存在,必须重新审视全文是否存在与之冲突的内容,但只允许进行最小必要修改,不得引入无关变更。
|
|
118
|
+
|
|
119
|
+
**示例**:
|
|
120
|
+
```
|
|
121
|
+
1. 受众修正:从技术开发者改为产品经理
|
|
122
|
+
2. 输出澄清:"全自动"指 patch 自动合并,非跳过人工审核
|
|
123
|
+
3. 语气调整:从营销宣传改为朴实技术说明
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### 5. Acceptance Criteria(验收标准)
|
|
129
|
+
|
|
130
|
+
判断"是否改对了"的检查清单,逐条勾选。
|
|
131
|
+
|
|
132
|
+
**要点**:
|
|
133
|
+
- 生成完成后必须自检,并在摘要中逐条对齐
|
|
134
|
+
- 未满足项需说明原因和下一步建议
|
|
135
|
+
|
|
136
|
+
**示例**:
|
|
137
|
+
```
|
|
138
|
+
- [ ] 全局术语统一:API、Blocklet、Workspace 一致
|
|
139
|
+
- [ ] 快速开始章节已补充环境要求
|
|
140
|
+
- [ ] 文档无重复段落、无矛盾
|
|
141
|
+
- [ ] 所有链接有效
|
|
142
|
+
- [ ] 代码块都有语言标识符
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 执行顺序
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
1. 找到 changeset 文件 → 提取用户信息中的文件信息,使用 pattern 搜索 changeset 文件
|
|
151
|
+
1. 读取 changeset 文件 → 建立全局约束
|
|
152
|
+
2. 扫描文档 → 定位所有 PATCH
|
|
153
|
+
3. 执行 PATCH → 确定性变更
|
|
154
|
+
4. 应用全局语义修改 → 遍历所有文档
|
|
155
|
+
5. 执行局部结构重写 → 利用 Additional Data
|
|
156
|
+
6. 一致性检查 → 术语、风格、结构
|
|
157
|
+
7. 输出摘要 → 对齐 Acceptance Criteria
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## 冲突处理
|
|
161
|
+
|
|
162
|
+
| 冲突类型 | 处理原则 |
|
|
163
|
+
|---------|---------|
|
|
164
|
+
| **澄清 vs 其他** | 澄清优先(最高优先级) |
|
|
165
|
+
| **全局 vs 局部** | 局部优先(更具体) |
|
|
166
|
+
| **PATCH vs 重写** | PATCH 先执行 |
|
|
167
|
+
| **规则冲突** | 询问用户 |
|
|
168
|
+
|
|
169
|
+
## 处理歧义
|
|
170
|
+
|
|
171
|
+
遇到模糊描述、范围不明、规则冲突时:先搜索定位,说明问题,询问用户,不要编造。
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# 文档内容生成指南
|
|
2
|
+
|
|
3
|
+
本指南定义了生成 markdown 文档时的内容要求和格式规范。
|
|
4
|
+
|
|
5
|
+
## 基本要求
|
|
6
|
+
|
|
7
|
+
为结构中的每个文档在 `docs/` 目录中创建文档文件夹和文件:
|
|
8
|
+
- 使用 YAML 中的 `path` 创建文件夹
|
|
9
|
+
- 生成 `.meta.yaml` 元信息文件
|
|
10
|
+
- 生成语言版本的 markdown 文件
|
|
11
|
+
- 从 `sourcePaths` 提取信息
|
|
12
|
+
- 编写清晰、结构化的内容
|
|
13
|
+
- **在生成文档内容时主动添加图片**(参见"媒体资源"章节)
|
|
14
|
+
|
|
15
|
+
## 文档生成步骤
|
|
16
|
+
|
|
17
|
+
### 6.1 读取配置
|
|
18
|
+
|
|
19
|
+
读取 `config.yaml` 获取输出语言(locale):
|
|
20
|
+
|
|
21
|
+
### 6.2 使用 saveDocument 工具
|
|
22
|
+
|
|
23
|
+
**重要**:新增文档时,必须使用 `saveDocument` 工具,不要手动创建文件和文件夹。
|
|
24
|
+
**工具功能**:
|
|
25
|
+
- 自动创建文档文件夹(`docs/overview/`)
|
|
26
|
+
- 自动生成 `.meta.yaml`:
|
|
27
|
+
- 自动保存语言文件(`docs/overview/zh.md`)
|
|
28
|
+
|
|
29
|
+
### 6.3 编辑已有文档
|
|
30
|
+
|
|
31
|
+
直接使用 Edit 工具修改对应的语言文件:
|
|
32
|
+
### 6.4 批量生成
|
|
33
|
+
|
|
34
|
+
为提高效率,批量生成多个文档内容,然后批量调用 saveDocument。
|
|
35
|
+
|
|
36
|
+
## 导航链接
|
|
37
|
+
|
|
38
|
+
在每个文档中添加导航链接,引导用户在文档之间流畅跳转。
|
|
39
|
+
只能链接生成的其他文档,不能链接到工作目录中的 markdown 文件,文档发布后会导致无法访问。
|
|
40
|
+
导航链接应该使用文档结构中文档的 `path`
|
|
41
|
+
|
|
42
|
+
### 文档开头导航
|
|
43
|
+
|
|
44
|
+
在文档正文开始前添加:
|
|
45
|
+
- **前置条件**:阅读本文档前建议先了解的内容
|
|
46
|
+
- **父主题**:当前文档所属的上级主题
|
|
47
|
+
|
|
48
|
+
### 文档结尾导航
|
|
49
|
+
|
|
50
|
+
在文档末尾添加:
|
|
51
|
+
- **相关主题**:与当前文档相关的其他文档
|
|
52
|
+
- **下一步**:建议阅读的后续内容
|
|
53
|
+
- **子文档**:当前文档包含的子主题列表
|
|
54
|
+
|
|
55
|
+
## 媒体资源
|
|
56
|
+
|
|
57
|
+
### 前置准备:确定文档和媒体的位置关系
|
|
58
|
+
|
|
59
|
+
**在开始生成文档前,必须完成以下步骤:**
|
|
60
|
+
|
|
61
|
+
#### 1. 确定文档输出目录
|
|
62
|
+
|
|
63
|
+
从 `planning/document-structure.yaml` 的文档配置中读取,文档输出目录固定为:`docs/`
|
|
64
|
+
|
|
65
|
+
#### 2. 查找所有媒体文件
|
|
66
|
+
|
|
67
|
+
执行以下命令查找工作区中的所有媒体文件:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
find . -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.gif" -o -name "*.svg" -o -name "*.mp4" -o -name "*.webp" \)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
记录所有结果,例如:
|
|
74
|
+
- `./assets/create/screenshot1.png`
|
|
75
|
+
- `./assets/run/screenshot2.png`
|
|
76
|
+
- `./images/architecture.png`
|
|
77
|
+
|
|
78
|
+
#### 3. 图片路径格式
|
|
79
|
+
|
|
80
|
+
**sources 中的图片使用绝对路径**:
|
|
81
|
+
|
|
82
|
+
对于数据源中的图片,使用 `/sources/` 开头的绝对路径格式:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
/sources/<path-to-image>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**示例**:
|
|
89
|
+
- 图片路径:`modules/sources/assets/run/screenshot.png`
|
|
90
|
+
- 文档中引用:``
|
|
91
|
+
|
|
92
|
+
**注意**:
|
|
93
|
+
- 直接使用在 sources 目录下看到的路径
|
|
94
|
+
- 不需要计算相对路径层级,统一使用绝对路径
|
|
95
|
+
- 路径区分大小写
|
|
96
|
+
- 检查和发布阶段会自动解析并处理图片路径
|
|
97
|
+
|
|
98
|
+
### 生成文档时的图片处理
|
|
99
|
+
|
|
100
|
+
在编写每个文档的内容时,必须主动添加图片以增强文档的可读性和专业性。
|
|
101
|
+
|
|
102
|
+
#### 1. 图片分类与要求
|
|
103
|
+
|
|
104
|
+
**A. 技术图表(必须生成)**
|
|
105
|
+
|
|
106
|
+
以下类型的内容**必须包含相应的技术图表**,没有已有图片时必须生成 AFS Image Slot:
|
|
107
|
+
|
|
108
|
+
- **架构说明** → 架构图(系统架构、模块关系、组件结构)
|
|
109
|
+
- **流程说明** → 流程图(业务流程、数据流向、状态转换)
|
|
110
|
+
- **时序说明** → 时序图(交互时序、调用链路)
|
|
111
|
+
- **概念解释** → 概念图(概念关系、层次结构)
|
|
112
|
+
- **数据结构** → 数据模型图(类图、ER 图)
|
|
113
|
+
|
|
114
|
+
**B. 应用截图(必须使用已有)**
|
|
115
|
+
|
|
116
|
+
以下类型必须使用工作区中的已有截图,因为必须使用真实的应用截图:
|
|
117
|
+
|
|
118
|
+
- **界面介绍** → UI 截图
|
|
119
|
+
- **操作步骤** → 操作演示截图
|
|
120
|
+
- **功能展示** → 功能界面截图
|
|
121
|
+
|
|
122
|
+
**强制性要求:**
|
|
123
|
+
|
|
124
|
+
1. **技术文档必须包含技术图表**:
|
|
125
|
+
- 架构文档:至少 1 个架构图
|
|
126
|
+
- API 文档:至少 1 个时序图或流程图
|
|
127
|
+
- 概念说明:至少 1 个概念图
|
|
128
|
+
- 数据模型:至少 1 个数据结构图
|
|
129
|
+
|
|
130
|
+
2. **用户指南需要包含应用截图**:
|
|
131
|
+
- 操作指南:每个主要操作步骤至少 1 张截图
|
|
132
|
+
- 功能介绍:每个功能至少 1 张界面截图
|
|
133
|
+
|
|
134
|
+
3. **综合文档建议配比**:
|
|
135
|
+
- 技术图表:1-3 个
|
|
136
|
+
- 应用截图:1-2 个
|
|
137
|
+
|
|
138
|
+
#### 2. 图片处理流程
|
|
139
|
+
|
|
140
|
+
**对于应用截图(B 类):**
|
|
141
|
+
|
|
142
|
+
1. 只能从前置准备的查找结果中匹配图片
|
|
143
|
+
2. 根据文件名判断用途(如 login.png、dashboard.png、settings.png)
|
|
144
|
+
3. 使用绝对路径格式引用:``
|
|
145
|
+
4. 如果仓库未提供相关截图,可以不展示
|
|
146
|
+
|
|
147
|
+
**对于技术图表(A 类):**
|
|
148
|
+
|
|
149
|
+
1. 检查是否有对应的技术图表(架构图、流程图等)
|
|
150
|
+
2. 如果没有,**必须生成 AFS Image Slot**(不是可选)
|
|
151
|
+
3. 即使有应用截图,也不能用应用截图替代技术图表
|
|
152
|
+
|
|
153
|
+
**关键区别:**
|
|
154
|
+
- ❌ 错误:架构说明章节使用应用截图代替架构图
|
|
155
|
+
- ✅ 正确:架构说明章节生成架构图 slot,另外可以添加应用截图作为补充
|
|
156
|
+
|
|
157
|
+
#### 3. 生成 AFS Image Slot
|
|
158
|
+
|
|
159
|
+
``` text AFS Image Slot Instructions
|
|
160
|
+
|
|
161
|
+
Use an AFS image slot only when you want the framework to generate a new image.
|
|
162
|
+
|
|
163
|
+
Slot format (single line):
|
|
164
|
+
<!-- afs:image id="architecture-overview" desc="..." -->
|
|
165
|
+
|
|
166
|
+
Optional stable intent key (for reuse across edits or documents):
|
|
167
|
+
<!-- afs:image id="architecture-overview" key="aigne-cli-architecture" desc="..." -->
|
|
168
|
+
|
|
169
|
+
Rules:
|
|
170
|
+
- Insert a slot only for new image generation.
|
|
171
|
+
If the source already provides an image (existing URL/path/asset), reference it directly; do not create a slot.
|
|
172
|
+
- id is required and must be a semantic identifier describing the image's role or position
|
|
173
|
+
(e.g. architecture-overview, core-flow, deployment-banner).
|
|
174
|
+
It must be unique in the same document and match: [a-z0-9._-]+.
|
|
175
|
+
- desc is required, concise, double-quoted, and must not contain ".
|
|
176
|
+
It describes what the image should depict.
|
|
177
|
+
- key is optional. Use a short, stable token ([a-z0-9._-]+) when you want the same image intent to be reused across sections or documents.
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**何时必须生成 Slot:**
|
|
181
|
+
|
|
182
|
+
1. 文档内容需要技术图表(架构图、流程图、时序图等)
|
|
183
|
+
2. 工作区中没有对应的技术图表
|
|
184
|
+
|
|
185
|
+
**AFS Image Slot 不能用于**
|
|
186
|
+
|
|
187
|
+
1. 应用界面必须使用真实截图,不能用 Slot 生成虚构的界面
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
### 图片使用检查清单
|
|
191
|
+
|
|
192
|
+
生成每个文档时,确认以下项目:
|
|
193
|
+
|
|
194
|
+
**技术图表检查:**
|
|
195
|
+
- [ ] 架构说明章节是否包含架构图?(没有则生成 slot)
|
|
196
|
+
- [ ] 流程说明章节是否包含流程图?(没有则生成 slot)
|
|
197
|
+
- [ ] 时序说明章节是否包含时序图?(没有则生成 slot)
|
|
198
|
+
- [ ] 概念解释章节是否包含概念图?(没有则生成 slot)
|
|
199
|
+
|
|
200
|
+
**应用截图检查:**
|
|
201
|
+
- [ ] 是否有可用的应用截图可以引用?
|
|
202
|
+
- [ ] 引用路径是否使用正确的绝对路径格式?
|
|
203
|
+
|
|
204
|
+
**数量检查:**
|
|
205
|
+
- [ ] 技术文档是否至少包含 1 个技术图表?
|
|
206
|
+
- [ ] 用户指南是否包含足够的应用截图?
|
|
207
|
+
|
|
208
|
+
## 内容组织原则
|
|
209
|
+
|
|
210
|
+
1. **层次清晰**:使用恰当的标题层级(H1-H6)
|
|
211
|
+
2. **段落简洁**:每个段落专注于单一主题
|
|
212
|
+
3. **描述丰富**:每个段落有详细描述,帮助用户理解主题
|
|
213
|
+
4. **列表使用**:用列表组织并列信息
|
|
214
|
+
5. **强调重点**:使用粗体、引用等方式突出重要信息
|