@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,356 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doc-smith-docs-detail
|
|
3
|
+
description: |
|
|
4
|
+
生成单个文档的详细内容,根据文档结构和用户意图生成包含导航、代码示例、技术图表的完整文档。
|
|
5
|
+
使用场景:
|
|
6
|
+
- doc-smith 主流程调用,批量生成各文档内容
|
|
7
|
+
- 输入文档路径(与 document-structure.yaml 中的 path 对应)
|
|
8
|
+
- 自动读取 workspace 配置(document-structure.yaml、user-intent.md、config.yaml)
|
|
9
|
+
- 分析源代码并生成结构化内容
|
|
10
|
+
- 调用 saveDocument 保存,调用 checkContent 校验
|
|
11
|
+
- 返回摘要信息(不返回完整内容以节省上下文)
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# 文档内容生成 Agent
|
|
15
|
+
|
|
16
|
+
## 核心职责
|
|
17
|
+
|
|
18
|
+
生成单个文档的详情。
|
|
19
|
+
|
|
20
|
+
**输入**:文档路径 + 可选的自定义要求
|
|
21
|
+
**输出**:自然语言摘要(包含文档概述、章节结构、校验结果、保存确认)
|
|
22
|
+
|
|
23
|
+
## 工作流程
|
|
24
|
+
|
|
25
|
+
### 1. 读取配置信息
|
|
26
|
+
|
|
27
|
+
从 workspace 约定目录自动读取:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
planning/document-structure.yaml → 文档的 title、description、sourcePaths、层级关系
|
|
31
|
+
intent/user-intent.md → 目标用户、使用场景、文档侧重点
|
|
32
|
+
config.yaml → 语言配置(locale)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**关键步骤**:
|
|
36
|
+
- 从 `document-structure.yaml` 中找到 `path` 对应的文档条目
|
|
37
|
+
- 提取该文档的 `title`、`description`、`sourcePaths`
|
|
38
|
+
- **判断文档层级类型**(见下方规则)
|
|
39
|
+
- 确定文档的父子关系和层级位置
|
|
40
|
+
- 从 `config.yaml` 读取 `locale` 字段作为目标语言
|
|
41
|
+
|
|
42
|
+
### 1.1 判断文档层级类型(核心规则)
|
|
43
|
+
|
|
44
|
+
**根据是否有子文档来决定内容详略程度:**
|
|
45
|
+
|
|
46
|
+
| 文档类型 | 判断条件 | 内容策略 |
|
|
47
|
+
|---------|---------|---------|
|
|
48
|
+
| **概览文档** | 在 document-structure.yaml 中有 children | 简写:每个子主题 2-4 段 + 引导链接 |
|
|
49
|
+
| **详细文档** | 在 document-structure.yaml 中无 children | 详写:完整展开所有内容 |
|
|
50
|
+
|
|
51
|
+
**概览文档的写作原则:**
|
|
52
|
+
- 每个子主题只写 2-4 段概述,不超过 200 字
|
|
53
|
+
- 用 1 个简单代码示例说明核心用法(不超过 10 行)
|
|
54
|
+
- 结尾用"详见 [子文档标题](子文档路径)"引导读者
|
|
55
|
+
- **不展开子文档会详细覆盖的内容**
|
|
56
|
+
|
|
57
|
+
**详细文档的写作原则:**
|
|
58
|
+
- 完整展开所有细节
|
|
59
|
+
- 覆盖边界情况和最佳实践
|
|
60
|
+
|
|
61
|
+
### 2. 分析源代码
|
|
62
|
+
|
|
63
|
+
根据文档的 `sourcePaths` 读取和分析源代码文件:
|
|
64
|
+
- 提取 API 接口、类定义、函数签名、配置项
|
|
65
|
+
- 理解代码结构和依赖关系
|
|
66
|
+
- 识别需要文档化的核心概念
|
|
67
|
+
|
|
68
|
+
### 3. 理解用户意图
|
|
69
|
+
|
|
70
|
+
从 `user-intent.md` 中解读:
|
|
71
|
+
- 目标用户是谁
|
|
72
|
+
- 使用场景是什么
|
|
73
|
+
- 文档侧重点在哪里
|
|
74
|
+
- 根据文档类型(教程/参考/指南)调整内容风格和详细程度
|
|
75
|
+
|
|
76
|
+
### 4. 媒体资源前置准备
|
|
77
|
+
|
|
78
|
+
**在开始生成文档内容前,必须完成以下步骤:**
|
|
79
|
+
|
|
80
|
+
#### 4.1 确定文档输出目录
|
|
81
|
+
|
|
82
|
+
文档输出目录固定为:`docs/`
|
|
83
|
+
|
|
84
|
+
#### 4.2 查找所有媒体文件
|
|
85
|
+
|
|
86
|
+
执行以下命令查找 `sources` 中的所有媒体文件:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
find . -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.gif" -o -name "*.svg" -o -name "*.mp4" -o -name "*.webp" \)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
记录所有结果,例如:
|
|
93
|
+
- `./assets/create/screenshot1.png`
|
|
94
|
+
- `./assets/run/screenshot2.png`
|
|
95
|
+
- `./images/architecture.png`
|
|
96
|
+
|
|
97
|
+
#### 4.3 图片路径格式
|
|
98
|
+
|
|
99
|
+
**sources 中的图片使用绝对路径**:
|
|
100
|
+
|
|
101
|
+
对于数据源中的图片,使用 `/sources/` 开头的绝对路径格式:
|
|
102
|
+
|
|
103
|
+
**示例**:
|
|
104
|
+
- 图片路径:`modules/sources/assets/run/screenshot.png`
|
|
105
|
+
- 文档中引用:``
|
|
106
|
+
|
|
107
|
+
**注意**:
|
|
108
|
+
- 直接使用在 sources 目录下看到的路径
|
|
109
|
+
|
|
110
|
+
### 5. 生成文档内容
|
|
111
|
+
|
|
112
|
+
生成符合规范的 Markdown 文档,包含:
|
|
113
|
+
|
|
114
|
+
#### 基本结构
|
|
115
|
+
- **标题和简介**:清晰说明文档主题
|
|
116
|
+
- **导航元素**:
|
|
117
|
+
- 文档开头:前置条件(prerequisites)、父主题(parent topic)
|
|
118
|
+
- 文档结尾:相关主题(related topics)、下一步(next steps)、子文档(child documents)
|
|
119
|
+
- 只能链接生成的其他文档,不能链接到工作目录中的 markdown 文件,文档发布后会导致无法访问。
|
|
120
|
+
- 导航链接应该使用文档结构中文档的 `path`
|
|
121
|
+
|
|
122
|
+
#### 主体内容
|
|
123
|
+
- **结构化章节**:逻辑清晰的信息层次
|
|
124
|
+
- **代码示例**:见下方"代码示例规则"
|
|
125
|
+
- **媒体资源**:主动添加图片以增强文档的可读性和专业性
|
|
126
|
+
|
|
127
|
+
#### 代码示例规则(重要)
|
|
128
|
+
|
|
129
|
+
**只包含用户需要的代码,排除内部实现:**
|
|
130
|
+
|
|
131
|
+
| 类型 | 是否包含 | 示例 |
|
|
132
|
+
|------|---------|------|
|
|
133
|
+
| ✅ **API 调用示例** | 是 | `POST /api/users { "name": "..." }` |
|
|
134
|
+
| ✅ **配置示例** | 是 | 配置文件的写法 |
|
|
135
|
+
| ✅ **使用示例** | 是 | 如何调用 SDK/CLI |
|
|
136
|
+
| ❌ **内部实现** | 否 | 类的私有方法、算法实现 |
|
|
137
|
+
| ❌ **框架代码** | 否 | 中间件实现、内部工具函数 |
|
|
138
|
+
|
|
139
|
+
**代码示例长度限制:**
|
|
140
|
+
- 概览文档:每个示例不超过 10 行
|
|
141
|
+
- 详细文档:每个示例不超过 25 行
|
|
142
|
+
- 如需完整代码,链接到源文件或单独的示例文档
|
|
143
|
+
|
|
144
|
+
#### 文档风格
|
|
145
|
+
- 语言清晰、克制、专业、友好
|
|
146
|
+
- 少营销,多解释
|
|
147
|
+
- 重点解释:
|
|
148
|
+
- 这个东西是什么
|
|
149
|
+
- 为什么要这样设计
|
|
150
|
+
- 解决了什么问题
|
|
151
|
+
- 语气与节奏
|
|
152
|
+
- 不追求华丽
|
|
153
|
+
- 不用夸张词汇
|
|
154
|
+
- 像在耐心教一个聪明的同事
|
|
155
|
+
|
|
156
|
+
#### 图片分类与要求
|
|
157
|
+
|
|
158
|
+
**A. 技术图表(按需生成)**
|
|
159
|
+
|
|
160
|
+
以下类型的内容**建议包含技术图表**,在没有已有图片且确实有助于理解时生成 AFS Image Slot:
|
|
161
|
+
|
|
162
|
+
- **架构说明** → 架构图(系统架构、模块关系、组件结构)
|
|
163
|
+
- **流程说明** → 流程图(业务流程、数据流向、状态转换)
|
|
164
|
+
- **时序说明** → 时序图(交互时序、调用链路)
|
|
165
|
+
- **概念解释** → 概念图(概念关系、层次结构)
|
|
166
|
+
|
|
167
|
+
**B. 应用截图(使用已有)**
|
|
168
|
+
|
|
169
|
+
以下类型使用工作区中的已有截图:
|
|
170
|
+
|
|
171
|
+
- **界面介绍** → UI 截图
|
|
172
|
+
- **操作步骤** → 操作演示截图
|
|
173
|
+
- **功能展示** → 功能界面截图
|
|
174
|
+
|
|
175
|
+
**图片数量建议(不是强制要求):**
|
|
176
|
+
|
|
177
|
+
| 文档类型 | 技术图表 | 应用截图 |
|
|
178
|
+
|---------|---------|---------|
|
|
179
|
+
| 概览文档 | 0-1 个(整体架构图即可) | 0-1 个 |
|
|
180
|
+
| 详细文档 | 1-2 个(按需添加) | 按需引用 |
|
|
181
|
+
|
|
182
|
+
**判断是否需要图片的原则:**
|
|
183
|
+
- ✅ 图片能显著提升理解效率(复杂流程、架构关系)
|
|
184
|
+
- ✅ 理解图片相关信息,明确图片和文档上下文关联
|
|
185
|
+
- ❌ 文字已经能清晰说明(简单配置、线性步骤)
|
|
186
|
+
- ❌ 为了凑数而添加图片
|
|
187
|
+
|
|
188
|
+
#### 图片处理流程
|
|
189
|
+
|
|
190
|
+
**应用截图:**
|
|
191
|
+
1. 从前置准备的查找结果中匹配相关图片
|
|
192
|
+
2. 只在图片明确与文档内容相关时使用
|
|
193
|
+
3. 引用格式:``
|
|
194
|
+
|
|
195
|
+
**技术图表:**
|
|
196
|
+
1. 判断是否真的需要图表来辅助理解
|
|
197
|
+
2. 如需要且无现有图表,生成 AFS Image Slot
|
|
198
|
+
3. 不要用应用截图替代技术图表
|
|
199
|
+
|
|
200
|
+
#### 生成 AFS Image Slot
|
|
201
|
+
|
|
202
|
+
```text
|
|
203
|
+
Use an AFS image slot only when you want the framework to generate a new image.
|
|
204
|
+
|
|
205
|
+
Slot format (single line):
|
|
206
|
+
<!-- afs:image id="architecture-overview" desc="..." -->
|
|
207
|
+
|
|
208
|
+
Optional stable intent key (for reuse across edits or documents):
|
|
209
|
+
<!-- afs:image id="architecture-overview" key="aigne-cli-architecture" desc="..." -->
|
|
210
|
+
|
|
211
|
+
Rules:
|
|
212
|
+
- Insert a slot only for new image generation.
|
|
213
|
+
If the source already provides an image (existing URL/path/asset), reference it directly; do not create a slot.
|
|
214
|
+
- id is required and must be a semantic identifier describing the image's role or position
|
|
215
|
+
(e.g. architecture-overview, core-flow, deployment-banner).
|
|
216
|
+
It must be unique in the same document and match: [a-z0-9._-]+.
|
|
217
|
+
- desc is required, concise, double-quoted, and must not contain ".
|
|
218
|
+
It describes what the image should depict.
|
|
219
|
+
- 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.
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**何时生成 Slot:**
|
|
223
|
+
- 文档需要技术图表来辅助理解
|
|
224
|
+
- 工作区中没有对应的技术图表
|
|
225
|
+
|
|
226
|
+
**Slot 不能用于:**
|
|
227
|
+
- 应用界面截图(必须使用真实截图)
|
|
228
|
+
|
|
229
|
+
### 6. 保存文档
|
|
230
|
+
|
|
231
|
+
**必须调用 `saveDocument` 工具保存文档,工具中有额外的保存逻辑:**
|
|
232
|
+
```javascript
|
|
233
|
+
saveDocument({
|
|
234
|
+
path: "/api/overview", // 文档路径
|
|
235
|
+
content: "# API 概览\n...", // Markdown 内容
|
|
236
|
+
options: {
|
|
237
|
+
language: "zh" // 从 config.yaml 的 locale 读取
|
|
238
|
+
}
|
|
239
|
+
})
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
**重要**:`language` 参数必须从 `config.yaml` 的 `locale` 字段读取并传入。
|
|
243
|
+
|
|
244
|
+
### 7. 校验内容
|
|
245
|
+
|
|
246
|
+
调用 `checkContent` 工具校验文档:
|
|
247
|
+
- 格式规范检查
|
|
248
|
+
- 导航链接完整性
|
|
249
|
+
- 代码示例语法
|
|
250
|
+
- AFS image slot 格式
|
|
251
|
+
|
|
252
|
+
### 8. 验证保存结果
|
|
253
|
+
|
|
254
|
+
**在结束前必须执行以下检查:**
|
|
255
|
+
|
|
256
|
+
1. **确认文档已保存**:检查 `saveDocument` 工具是否成功执行
|
|
257
|
+
2. **验证文件存在**:使用 `ls` 或 `Read` 工具检查 `docs/` 目录下对应的文档文件是否已创建
|
|
258
|
+
3. **如果文件不存在**:重新调用 `saveDocument` 保存文档
|
|
259
|
+
|
|
260
|
+
### 9. 返回摘要
|
|
261
|
+
|
|
262
|
+
使用自然语言返回处理结果摘要,**不返回完整文档内容**以节省主 agent 上下文。
|
|
263
|
+
|
|
264
|
+
**摘要应包含以下信息:**
|
|
265
|
+
|
|
266
|
+
- 文档路径(如 `/api/overview`)
|
|
267
|
+
- 文档主题概述(1-2 句话描述文档内容)
|
|
268
|
+
- 主要章节列表
|
|
269
|
+
- 生成的 AFS image slot ID 列表(如有)
|
|
270
|
+
- 校验结果(通过/警告/错误)
|
|
271
|
+
- 保存状态确认
|
|
272
|
+
|
|
273
|
+
## 输入参数
|
|
274
|
+
|
|
275
|
+
### path(必需)
|
|
276
|
+
- 类型:字符串
|
|
277
|
+
- 格式:`/path/to/document`(与 document-structure.yaml 中的 path 一致)
|
|
278
|
+
- 用途:确定生成哪篇文档
|
|
279
|
+
|
|
280
|
+
### customRequirements(可选)
|
|
281
|
+
- 类型:字符串
|
|
282
|
+
- 用途:用户在当前对话中提出的额外要求
|
|
283
|
+
- 示例:
|
|
284
|
+
- "重点说明安全注意事项"
|
|
285
|
+
- "包含性能优化建议"
|
|
286
|
+
- "补充错误处理的最佳实践"
|
|
287
|
+
- 应用:
|
|
288
|
+
- 指导生成内容的侧重点
|
|
289
|
+
- 可根据要求补充相关源文件到分析范围
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
## 职责边界
|
|
293
|
+
|
|
294
|
+
**必须执行**:
|
|
295
|
+
- ✅ 读取 workspace 约定目录中的配置信息
|
|
296
|
+
- ✅ 分析源代码并生成文档内容
|
|
297
|
+
- ✅ 调用 saveDocument 保存文档
|
|
298
|
+
- ✅ 调用 checkContent 校验文档
|
|
299
|
+
- ✅ 返回摘要信息
|
|
300
|
+
|
|
301
|
+
**不应执行**:
|
|
302
|
+
- ❌ 不创建或修改 document-structure.yaml
|
|
303
|
+
- ❌ 不进行 Git 操作
|
|
304
|
+
- ❌ 不生成空洞的占位内容
|
|
305
|
+
- ❌ 不偏离用户意图
|
|
306
|
+
|
|
307
|
+
## 成功标准
|
|
308
|
+
|
|
309
|
+
1. **完整性**:包含必需章节、导航链接完整
|
|
310
|
+
2. **准确性**:与源代码一致、技术细节正确
|
|
311
|
+
3. **可读性**:结构清晰、语言流畅、示例恰当
|
|
312
|
+
4. **一致性**:风格符合用户意图、格式遵循 doc-smith 规范
|
|
313
|
+
5. **校验通过**:checkContent 校验无错误
|
|
314
|
+
6. **保存验证**:文档已通过 saveDocument 保存,且 docs/ 目录下文件确实存在
|
|
315
|
+
7. **长度适当**:符合下方长度参考标准
|
|
316
|
+
|
|
317
|
+
### 长度参考标准
|
|
318
|
+
|
|
319
|
+
| 文档类型 | 建议行数 | 代码示例数量 | 说明 |
|
|
320
|
+
|---------|---------|-------------|------|
|
|
321
|
+
| **概览文档**(有子文档) | 150-300 行 | 3-5 个简短示例 | 每个子主题简要介绍 |
|
|
322
|
+
| **详细文档**(无子文档) | 300-500 行 | 5-10 个完整示例 | 完整展开技术细节 |
|
|
323
|
+
|
|
324
|
+
**超长文档的处理:**
|
|
325
|
+
- 如果内容超过 500 行,考虑拆分为多个子文档
|
|
326
|
+
- 概览文档超过 300 行,说明包含了过多子文档应有的内容
|
|
327
|
+
|
|
328
|
+
**过短文档的处理:**
|
|
329
|
+
- 详细文档少于 200 行,可能缺少必要的示例或说明
|
|
330
|
+
|
|
331
|
+
## 注意事项
|
|
332
|
+
### 避免重复内容(重要)
|
|
333
|
+
|
|
334
|
+
**核心原则:概览文档不重复子文档的内容**
|
|
335
|
+
|
|
336
|
+
生成概览文档时,必须遵循:
|
|
337
|
+
- 每个子主题只写 2-4 段概述
|
|
338
|
+
- 不展开技术实现细节(那是子文档的职责)
|
|
339
|
+
- 用"详见 [链接]"引导读者到子文档
|
|
340
|
+
|
|
341
|
+
**自检问题:**
|
|
342
|
+
- 这段内容是否会在子文档中详细说明?→ 是则简写
|
|
343
|
+
- 这个代码示例是否应该放在更专门的子文档?→ 是则省略或简化
|
|
344
|
+
- 读者是否需要在概览文档中就了解这个细节?→ 否则删除
|
|
345
|
+
|
|
346
|
+
### 控制文档长度(重要)
|
|
347
|
+
|
|
348
|
+
**写作前先问自己:**
|
|
349
|
+
1. 这是概览文档还是详细文档?
|
|
350
|
+
2. 目标行数是多少?
|
|
351
|
+
3. 应该包含多少个代码示例?
|
|
352
|
+
|
|
353
|
+
**写作时的控制方法:**
|
|
354
|
+
- 概览文档:每个子主题写完后检查是否超过 200 字
|
|
355
|
+
- 代码示例:先问"用户真的需要这个示例吗?"
|
|
356
|
+
- 内部实现:一律不写,只写 API 使用方式
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# doc-smith-docs-detail 功能意图
|
|
2
|
+
|
|
3
|
+
## 功能概述
|
|
4
|
+
|
|
5
|
+
doc-smith-docs-detail 是 doc-smith 文档生成系统的核心内容生成组件,负责根据已规划的文档结构和用户意图,生成单个文档的详细内容。
|
|
6
|
+
|
|
7
|
+
## 功能意图
|
|
8
|
+
|
|
9
|
+
为 doc-smith 提供专门的文档内容生成能力,将文档详情生成从主流程中解耦,实现:
|
|
10
|
+
|
|
11
|
+
1. **聚焦内容生成**:专注于文档内容的智能生成,不涉及 workspace 管理、结构规划等职责
|
|
12
|
+
2. **上下文感知**:充分理解并应用用户意图、文档结构上下文、源代码信息
|
|
13
|
+
3. **规范遵循**:严格遵循 doc-smith 的文档规范,包括格式、导航、图片处理等
|
|
14
|
+
4. **质量保证**:生成后自动校验内容,确保符合标准
|
|
15
|
+
|
|
16
|
+
## 工作流程
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
doc-smith 主流程:
|
|
20
|
+
1. Workspace 检测与初始化
|
|
21
|
+
2. 分析数据源
|
|
22
|
+
3. 推断用户意图
|
|
23
|
+
4. 规划文档结构 → 生成 document-structure.yaml
|
|
24
|
+
5. 确认文档结构
|
|
25
|
+
6. [批量调用 doc-smith-docs-detail] 生成各文档内容
|
|
26
|
+
├─ 调用 agent(path: "/overview")
|
|
27
|
+
├─ 调用 agent(path: "/api/auth")
|
|
28
|
+
└─ 调用 agent(path: "/guides/install")
|
|
29
|
+
7. 生成 AFS 图片
|
|
30
|
+
8. 最终校验与提交
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 核心能力
|
|
34
|
+
|
|
35
|
+
### 1. 源代码理解与分析
|
|
36
|
+
|
|
37
|
+
- 读取和分析 `sourcePaths` 指定的源代码文件
|
|
38
|
+
- 提取关键信息:API 接口、类定义、函数签名、配置项等
|
|
39
|
+
- 理解代码结构和依赖关系
|
|
40
|
+
- 识别需要文档化的核心概念
|
|
41
|
+
|
|
42
|
+
### 2. 意图驱动的内容生成
|
|
43
|
+
|
|
44
|
+
- 解读 `user-intent.md` 中的目标用户、使用场景、文档侧重点
|
|
45
|
+
- 根据文档类型(教程/参考/指南)调整内容风格
|
|
46
|
+
- 确定内容详细程度和组织方式
|
|
47
|
+
- 选择合适的示例和说明方式
|
|
48
|
+
|
|
49
|
+
### 3. 结构化内容组织
|
|
50
|
+
|
|
51
|
+
- 生成符合规范的文档章节结构
|
|
52
|
+
- 包含必要的导航元素:
|
|
53
|
+
- 前置条件(prerequisites)
|
|
54
|
+
- 父主题(parent topic)
|
|
55
|
+
- 相关主题(related topics)
|
|
56
|
+
- 下一步(next steps)
|
|
57
|
+
- 子文档(child documents)
|
|
58
|
+
- 构建清晰的信息层次
|
|
59
|
+
|
|
60
|
+
### 4. 技术图表规划
|
|
61
|
+
|
|
62
|
+
- 识别需要技术图表的场景:
|
|
63
|
+
- 架构图(architecture diagrams)
|
|
64
|
+
- 流程图(flow charts)
|
|
65
|
+
- 时序图(sequence diagrams)
|
|
66
|
+
- 概念图(concept diagrams)
|
|
67
|
+
- 数据模型(data models)
|
|
68
|
+
- 生成 AFS image slots 标记
|
|
69
|
+
- 提供准确的图表描述(desc 字段)
|
|
70
|
+
|
|
71
|
+
### 5. 代码示例生成
|
|
72
|
+
|
|
73
|
+
- 提供实际可运行的代码示例
|
|
74
|
+
- 包含完整的上下文和说明
|
|
75
|
+
- 确保示例与源代码一致
|
|
76
|
+
- 覆盖常见使用场景
|
|
77
|
+
|
|
78
|
+
## 输入参数
|
|
79
|
+
|
|
80
|
+
### 必需参数
|
|
81
|
+
|
|
82
|
+
**path**(字符串)
|
|
83
|
+
- 格式:`/path/to/document`
|
|
84
|
+
- 说明:与 document-structure.yaml 中的 path 字段一致
|
|
85
|
+
- 用途:确定生成哪篇文档
|
|
86
|
+
|
|
87
|
+
### 可选参数
|
|
88
|
+
|
|
89
|
+
**customRequirements**(字符串)
|
|
90
|
+
- 说明:用户在当前对话中提出的额外要求
|
|
91
|
+
- 示例:
|
|
92
|
+
- "重点说明安全注意事项"
|
|
93
|
+
- "包含性能优化建议"
|
|
94
|
+
- "补充错误处理的最佳实践"
|
|
95
|
+
- 用途:
|
|
96
|
+
- 指导生成内容的侧重点
|
|
97
|
+
- 可根据要求补充相关源文件到分析范围
|
|
98
|
+
|
|
99
|
+
## 自动获取的信息
|
|
100
|
+
|
|
101
|
+
agent 会从 workspace 约定目录自动读取:
|
|
102
|
+
|
|
103
|
+
1. **planning/document-structure.yaml**
|
|
104
|
+
- 文档的 title、description、sourcePaths
|
|
105
|
+
- 文档在层级中的位置、父子关系
|
|
106
|
+
|
|
107
|
+
2. **intent/user-intent.md**
|
|
108
|
+
- 目标用户、使用场景、文档侧重点
|
|
109
|
+
|
|
110
|
+
3. **config.yaml**
|
|
111
|
+
- 语言配置(locale)
|
|
112
|
+
|
|
113
|
+
## 输出规范
|
|
114
|
+
|
|
115
|
+
### 生成的文档内容要求
|
|
116
|
+
|
|
117
|
+
1. **基本结构**
|
|
118
|
+
- 标题和简介
|
|
119
|
+
- 导航元素(文档开头:前置条件、父主题;文档结尾:相关主题、下一步、子文档)
|
|
120
|
+
- 主体内容(结构化章节、代码示例、注意事项)
|
|
121
|
+
|
|
122
|
+
2. **技术图表**
|
|
123
|
+
- 必要时生成 AFS image slots:`<!-- afs:image id="unique-id" desc="图表描述" -->`
|
|
124
|
+
- 引用现有图片使用相对路径:`(../ × 文档层级) + 图片路径`
|
|
125
|
+
|
|
126
|
+
3. **代码示例**
|
|
127
|
+
- 使用正确的语言标识符
|
|
128
|
+
- 提供完整上下文
|
|
129
|
+
- 确保可运行
|
|
130
|
+
|
|
131
|
+
### agent 返回格式
|
|
132
|
+
|
|
133
|
+
```javascript
|
|
134
|
+
{
|
|
135
|
+
success: boolean,
|
|
136
|
+
path: string, // 文档路径,如 "/api/overview"
|
|
137
|
+
summary: string, // 文档摘要(200-300字)
|
|
138
|
+
sections: string[], // 主要章节列表
|
|
139
|
+
imageSlots: string[], // 生成的 AFS image slots ID 列表
|
|
140
|
+
validationResult: object // checkContent 的校验结果
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**重要**:不返回完整的文档内容,以节省主 agent 的上下文。
|
|
145
|
+
|
|
146
|
+
## 约束条件
|
|
147
|
+
|
|
148
|
+
### 必须遵循的规范
|
|
149
|
+
|
|
150
|
+
1. **文档格式**:Markdown 格式,遵循 doc-smith 章节组织规范
|
|
151
|
+
2. **图片处理**:技术图表生成 AFS image slot,应用截图引用现有图片
|
|
152
|
+
3. **代码示例**:使用正确的语言标识符,确保可运行
|
|
153
|
+
4. **内部链接**:使用相对路径指向 Markdown 文件
|
|
154
|
+
|
|
155
|
+
### agent 职责边界
|
|
156
|
+
|
|
157
|
+
**必须执行**:
|
|
158
|
+
- ✅ 读取 workspace 约定目录中的配置信息
|
|
159
|
+
- ✅ 分析源代码并生成文档内容
|
|
160
|
+
- ✅ 调用 saveDocument 保存文档
|
|
161
|
+
- ✅ 调用 checkContent 校验文档
|
|
162
|
+
- ✅ 返回摘要信息
|
|
163
|
+
|
|
164
|
+
**不应执行**:
|
|
165
|
+
- ❌ 不创建或修改 document-structure.yaml
|
|
166
|
+
- ❌ 不执行结构校验(checkStructure 由 doc-smith 负责)
|
|
167
|
+
- ❌ 不进行 Git 操作
|
|
168
|
+
- ❌ 不生成空洞的占位内容
|
|
169
|
+
- ❌ 不偏离用户意图
|
|
170
|
+
|
|
171
|
+
## 预期结果
|
|
172
|
+
|
|
173
|
+
### 成功标准
|
|
174
|
+
|
|
175
|
+
1. **完整性**:包含所有必需章节、导航链接完整、代码示例可运行
|
|
176
|
+
2. **准确性**:与源代码一致、技术细节正确
|
|
177
|
+
3. **可读性**:结构清晰、语言流畅、示例恰当
|
|
178
|
+
4. **一致性**:风格符合用户意图、格式遵循 doc-smith 规范
|
|
179
|
+
5. **校验通过**:checkContent 校验无错误
|
|
180
|
+
|
|
181
|
+
## 错误处理
|
|
182
|
+
|
|
183
|
+
### 常见错误
|
|
184
|
+
|
|
185
|
+
1. **输入错误**:缺少 path 参数、document-structure.yaml 中找不到对应文档
|
|
186
|
+
2. **配置读取失败**:无法读取 workspace 配置文件
|
|
187
|
+
3. **源代码分析失败**:源文件不存在或格式无法解析
|
|
188
|
+
4. **内容校验失败**:checkContent 检测到问题
|
|
189
|
+
|
|
190
|
+
### 处理策略
|
|
191
|
+
|
|
192
|
+
1. 提前验证输入和配置文件
|
|
193
|
+
2. 优雅降级:信息缺失时使用合理默认值
|
|
194
|
+
3. 明确报错:返回 `{ success: false, error: "错误描述" }`
|
|
195
|
+
4. 保持一致:确保生成的内容符合规范
|
|
196
|
+
|
|
197
|
+
## 实现方式
|
|
198
|
+
|
|
199
|
+
### 1. 创建 Agent Skill
|
|
200
|
+
|
|
201
|
+
在 `skills/doc-smith-docs-detail/` 创建 SKILL.md 文件,描述完整的处理流程。
|
|
202
|
+
|
|
203
|
+
### 2. 创建 Entry 配置
|
|
204
|
+
|
|
205
|
+
在 `skills-entry/doc-smith-docs-detail/` 创建 agent 配置文件:
|
|
206
|
+
|
|
207
|
+
```yaml
|
|
208
|
+
# skills-entry/doc-smith-docs-detail/index.mjs
|
|
209
|
+
# 导出 JavaScript 配置对象
|
|
210
|
+
type: "@aigne/agent-library/agent-skill-manager"
|
|
211
|
+
name: generateDocumentDetail
|
|
212
|
+
description: 根据文档路径和用户要求生成文档详细内容
|
|
213
|
+
|
|
214
|
+
instructions: ../../skills/doc-smith-docs-detail/SKILL.md
|
|
215
|
+
|
|
216
|
+
skills:
|
|
217
|
+
- url: ../../agents/save-document/index.mjs # 保存文档工具
|
|
218
|
+
|
|
219
|
+
input_schema:
|
|
220
|
+
type: object
|
|
221
|
+
required:
|
|
222
|
+
- path
|
|
223
|
+
properties:
|
|
224
|
+
path:
|
|
225
|
+
type: string
|
|
226
|
+
description: 文档路径,与 document-structure.yaml 中的 path 一致
|
|
227
|
+
customRequirements:
|
|
228
|
+
type: string
|
|
229
|
+
description: 用户在对话中提出的额外要求(可选)
|
|
230
|
+
|
|
231
|
+
output_schema:
|
|
232
|
+
type: object
|
|
233
|
+
required:
|
|
234
|
+
- success
|
|
235
|
+
properties:
|
|
236
|
+
success:
|
|
237
|
+
type: boolean
|
|
238
|
+
path:
|
|
239
|
+
type: string
|
|
240
|
+
summary:
|
|
241
|
+
type: string
|
|
242
|
+
description: 文档摘要(200-300字)
|
|
243
|
+
sections:
|
|
244
|
+
type: array
|
|
245
|
+
items:
|
|
246
|
+
type: string
|
|
247
|
+
description: 主要章节列表
|
|
248
|
+
imageSlots:
|
|
249
|
+
type: array
|
|
250
|
+
items:
|
|
251
|
+
type: string
|
|
252
|
+
description: 生成的 AFS image slots ID 列表
|
|
253
|
+
validationResult:
|
|
254
|
+
type: object
|
|
255
|
+
description: checkContent 的校验结果
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### 3. 在 doc-smith 中注册
|
|
259
|
+
|
|
260
|
+
在 doc-smith 的 entry 配置中注册:
|
|
261
|
+
|
|
262
|
+
```yaml
|
|
263
|
+
# skills-entry/doc-smith/index.yaml
|
|
264
|
+
skills:
|
|
265
|
+
- url: ../doc-smith-docs-detail/index.mjs
|
|
266
|
+
# ... 其他 skills
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
**注意**:本文档描述功能意图,不包含具体实现细节。使用 `/skill-creator` 创建 SKILL.md。
|