@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,211 @@
|
|
|
1
|
+
import { readFile, access, constants } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { parse as yamlParse } from "yaml";
|
|
4
|
+
import { PATHS } from "../../utils/agent-constants.mjs";
|
|
5
|
+
import { parseSlots } from "../../utils/image-slots.mjs";
|
|
6
|
+
import { findImageFile, getImageMimeType, calculateContentHash } from "../../utils/image-utils.mjs";
|
|
7
|
+
import { loadLocale } from "../../utils/config.mjs";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Load existing image
|
|
11
|
+
* @param {Object} input - Input parameters
|
|
12
|
+
* @param {string} input.doc - Document path (e.g., "overview" or "/overview")
|
|
13
|
+
* @param {string} input.slotId - slot id
|
|
14
|
+
* @returns {Promise<Object>} - Load result
|
|
15
|
+
*/
|
|
16
|
+
export default async function loadExistingImage(input) {
|
|
17
|
+
try {
|
|
18
|
+
const { doc, slotId } = input;
|
|
19
|
+
|
|
20
|
+
// Validate parameters
|
|
21
|
+
if (!doc || !slotId) {
|
|
22
|
+
throw new Error("Missing required parameters: doc and slotId");
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// 1. Read main language
|
|
26
|
+
const locale = await loadLocale();
|
|
27
|
+
|
|
28
|
+
// 2. Build document file path
|
|
29
|
+
const normalizedPath = doc.startsWith("/") ? doc.slice(1) : doc;
|
|
30
|
+
const filePath = join(PATHS.DOCS_DIR, normalizedPath, `${locale}.md`);
|
|
31
|
+
|
|
32
|
+
// Check if file exists
|
|
33
|
+
try {
|
|
34
|
+
await access(filePath, constants.F_OK | constants.R_OK);
|
|
35
|
+
} catch (_error) {
|
|
36
|
+
throw new Error(
|
|
37
|
+
`Document does not exist or cannot be read: ${filePath}, please check if document path is in document-structure.yaml and document has been generated.`,
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// 3. Read document content
|
|
42
|
+
const content = await readFile(filePath, "utf8");
|
|
43
|
+
|
|
44
|
+
// 4. Calculate document content hash
|
|
45
|
+
const hash = calculateContentHash(content);
|
|
46
|
+
|
|
47
|
+
// 5. Parse slots, find specified slotId
|
|
48
|
+
const slots = parseSlots(content, doc);
|
|
49
|
+
const targetSlot = slots.find((s) => s.id === slotId);
|
|
50
|
+
|
|
51
|
+
if (!targetSlot) {
|
|
52
|
+
throw new Error(`Image slot with slotId="${slotId}" not found in document ${doc}`);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const { key, desc } = targetSlot;
|
|
56
|
+
|
|
57
|
+
// 6. Load image file
|
|
58
|
+
const imagesDir = join(PATHS.ASSETS_DIR, key, "images");
|
|
59
|
+
const imagePath = await findImageFile(imagesDir, locale);
|
|
60
|
+
|
|
61
|
+
if (!imagePath) {
|
|
62
|
+
throw new Error(
|
|
63
|
+
`Image file for slot "${slotId}" not found (key: ${key}), please confirm with user whether to use generateImages Tool to generate image first.`,
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// 7. Read .meta.yaml
|
|
68
|
+
const metaPath = join(PATHS.ASSETS_DIR, key, ".meta.yaml");
|
|
69
|
+
let meta = null;
|
|
70
|
+
try {
|
|
71
|
+
const metaContent = await readFile(metaPath, "utf8");
|
|
72
|
+
meta = yamlParse(metaContent);
|
|
73
|
+
} catch (_error) {
|
|
74
|
+
// meta file does not exist or cannot be read, continue execution
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// 8. Build image info (for existingImage parameter)
|
|
78
|
+
const mimeType = getImageMimeType(imagePath);
|
|
79
|
+
const filename = imagePath.split("/").pop();
|
|
80
|
+
|
|
81
|
+
const existingImage = [
|
|
82
|
+
{
|
|
83
|
+
type: "local",
|
|
84
|
+
path: imagePath,
|
|
85
|
+
filename,
|
|
86
|
+
mimeType,
|
|
87
|
+
},
|
|
88
|
+
];
|
|
89
|
+
|
|
90
|
+
// 9. Get current aspectRatio (from meta or use default)
|
|
91
|
+
const currentAspectRatio = meta?.generation?.aspectRatio || "4:3";
|
|
92
|
+
|
|
93
|
+
return {
|
|
94
|
+
success: true,
|
|
95
|
+
slotId,
|
|
96
|
+
key,
|
|
97
|
+
desc,
|
|
98
|
+
doc,
|
|
99
|
+
locale,
|
|
100
|
+
content,
|
|
101
|
+
hash,
|
|
102
|
+
existingImage,
|
|
103
|
+
currentAspectRatio,
|
|
104
|
+
imagePath,
|
|
105
|
+
meta,
|
|
106
|
+
message: `Successfully loaded image: ${imagePath}`,
|
|
107
|
+
};
|
|
108
|
+
} catch (error) {
|
|
109
|
+
throw new Error(
|
|
110
|
+
`Failed to load existing image: ${error.message}, please check document path and slotId are correct`,
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Add description
|
|
116
|
+
loadExistingImage.description =
|
|
117
|
+
"Load existing image based on document path and slotId, return image path and related metadata.";
|
|
118
|
+
|
|
119
|
+
// Define input schema
|
|
120
|
+
loadExistingImage.input_schema = {
|
|
121
|
+
type: "object",
|
|
122
|
+
properties: {
|
|
123
|
+
doc: {
|
|
124
|
+
type: "string",
|
|
125
|
+
description: "Document path (e.g., 'overview' or '/overview')",
|
|
126
|
+
},
|
|
127
|
+
slotId: {
|
|
128
|
+
type: "string",
|
|
129
|
+
description: "Image slot id",
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
required: ["doc", "slotId"],
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
// Define output schema
|
|
136
|
+
loadExistingImage.output_schema = {
|
|
137
|
+
type: "object",
|
|
138
|
+
required: ["success"],
|
|
139
|
+
properties: {
|
|
140
|
+
success: {
|
|
141
|
+
type: "boolean",
|
|
142
|
+
description: "Whether operation succeeded",
|
|
143
|
+
},
|
|
144
|
+
slotId: {
|
|
145
|
+
type: "string",
|
|
146
|
+
description: "slot id",
|
|
147
|
+
},
|
|
148
|
+
key: {
|
|
149
|
+
type: "string",
|
|
150
|
+
description: "Image key (directory name)",
|
|
151
|
+
},
|
|
152
|
+
desc: {
|
|
153
|
+
type: "string",
|
|
154
|
+
description: "slot description",
|
|
155
|
+
},
|
|
156
|
+
doc: {
|
|
157
|
+
type: "string",
|
|
158
|
+
description: "Document path",
|
|
159
|
+
},
|
|
160
|
+
locale: {
|
|
161
|
+
type: "string",
|
|
162
|
+
description: "Main language code",
|
|
163
|
+
},
|
|
164
|
+
content: {
|
|
165
|
+
type: "string",
|
|
166
|
+
description: "Document content",
|
|
167
|
+
},
|
|
168
|
+
hash: {
|
|
169
|
+
type: "string",
|
|
170
|
+
description: "SHA256 hash of document content",
|
|
171
|
+
},
|
|
172
|
+
existingImage: {
|
|
173
|
+
type: "array",
|
|
174
|
+
description: "Existing image info (for image-to-image generation)",
|
|
175
|
+
items: {
|
|
176
|
+
type: "object",
|
|
177
|
+
properties: {
|
|
178
|
+
type: { type: "string" },
|
|
179
|
+
path: { type: "string" },
|
|
180
|
+
filename: { type: "string" },
|
|
181
|
+
mimeType: { type: "string" },
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
currentAspectRatio: {
|
|
186
|
+
type: "string",
|
|
187
|
+
description: "Current image aspect ratio",
|
|
188
|
+
},
|
|
189
|
+
imagePath: {
|
|
190
|
+
type: "string",
|
|
191
|
+
description: "Image file path",
|
|
192
|
+
},
|
|
193
|
+
meta: {
|
|
194
|
+
type: "object",
|
|
195
|
+
nullable: true,
|
|
196
|
+
description: "Image metadata (.meta.yaml content)",
|
|
197
|
+
},
|
|
198
|
+
message: {
|
|
199
|
+
type: "string",
|
|
200
|
+
description: "Operation result description",
|
|
201
|
+
},
|
|
202
|
+
error: {
|
|
203
|
+
type: "string",
|
|
204
|
+
description: "Error code (present on failure)",
|
|
205
|
+
},
|
|
206
|
+
suggestion: {
|
|
207
|
+
type: "string",
|
|
208
|
+
description: "Suggested action (present on failure)",
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
你是一个专门分析用户对图片编辑反馈的 AI 助手。
|
|
2
|
+
|
|
3
|
+
# 你的任务
|
|
4
|
+
|
|
5
|
+
分析用户提供的反馈文本,提取以下信息:
|
|
6
|
+
|
|
7
|
+
1. **宽高比修改意图**:用户是否想要修改图片的宽高比
|
|
8
|
+
2. **目标宽高比**:如果用户想修改,新的宽高比是什么
|
|
9
|
+
|
|
10
|
+
# 支持的宽高比
|
|
11
|
+
|
|
12
|
+
图片生成系统支持以下宽高比:
|
|
13
|
+
- `1:1` - 正方形
|
|
14
|
+
- `5:4` - 接近正方形
|
|
15
|
+
- `4:3` - 标准横向
|
|
16
|
+
- `3:2` - 宽屏横向
|
|
17
|
+
- `16:9` - 超宽屏
|
|
18
|
+
- `21:9` - 电影宽屏
|
|
19
|
+
|
|
20
|
+
# 分析规则
|
|
21
|
+
|
|
22
|
+
1. **识别宽高比修改意图**
|
|
23
|
+
- 用户明确提到比例、宽高比、ratio、aspect ratio 等关键词
|
|
24
|
+
- 用户提到具体的比例数字(如 "16:9"、"16比9"、"16 9")
|
|
25
|
+
- 用户描述比例特征(如 "更宽"、"更方"、"正方形"、"宽屏")
|
|
26
|
+
|
|
27
|
+
2. **提取目标宽高比**
|
|
28
|
+
- 如果用户明确给出数字(如 "改为 16:9"),直接使用该值
|
|
29
|
+
- 如果用户描述特征(如 "改为正方形"),映射到对应的宽高比:
|
|
30
|
+
- "正方形" → `1:1`
|
|
31
|
+
- "标准" → `4:3`
|
|
32
|
+
- "宽屏" → `16:9`
|
|
33
|
+
- "超宽" → `21:9`
|
|
34
|
+
- 只能返回支持的宽高比之一,不支持的比例使用最接近的
|
|
35
|
+
|
|
36
|
+
3. **处理模糊情况**
|
|
37
|
+
- 如果用户只说"更宽一点"但没有给出具体比例,设置 `hasRatioChange: false`
|
|
38
|
+
- 如果用户给出的比例不在支持列表中,选择最接近的支持比例
|
|
39
|
+
|
|
40
|
+
# 重要规则
|
|
41
|
+
|
|
42
|
+
1. 如果不确定用户是否要修改宽高比,设置 `hasRatioChange: false`
|
|
43
|
+
2. 不要添加任何解释或额外文本,只返回 JSON 对象
|
package/aigne.yaml
CHANGED
|
@@ -1,145 +1,32 @@
|
|
|
1
1
|
#!/usr/bin/env aigne
|
|
2
2
|
|
|
3
|
-
model:
|
|
4
|
-
|
|
5
|
-
model: gemini-
|
|
6
|
-
temperature: 0.8
|
|
7
|
-
# https://github.com/AIGNE-io/aigne-framework/blob/main/models/gemini/src/gemini-chat-model.ts#L115
|
|
8
|
-
reasoning_effort:
|
|
9
|
-
$get: reasoningEffort
|
|
3
|
+
model: anthropic/claude-sonnet-4-5
|
|
4
|
+
image_model:
|
|
5
|
+
model: google/gemini-3-pro-image-preview
|
|
10
6
|
agents:
|
|
11
|
-
|
|
12
|
-
-
|
|
7
|
+
- skills-entry/doc-smith/index.mjs
|
|
8
|
+
- agents/publish/index.yaml
|
|
9
|
+
# - agents/preload-i18n.mjs
|
|
10
|
+
- agents/structure-checker/index.mjs
|
|
11
|
+
- agents/content-checker/index.mjs
|
|
12
|
+
- agents/localize/index.yaml
|
|
13
|
+
- agents/generate-images/index.yaml
|
|
14
|
+
- agents/update-image/index.yaml
|
|
15
|
+
- agents/localize/translate-documents/translate-document.yaml
|
|
16
|
+
- skills-entry/doc-smith-docs-detail/index.mjs
|
|
17
|
+
- agents/clear/index.yaml
|
|
18
|
+
- agents/clear/choose-contents.mjs
|
|
19
|
+
- agents/clear/clear-auth-tokens.mjs
|
|
20
|
+
- agents/clear/clear-deployment-config.mjs
|
|
13
21
|
|
|
14
|
-
# Documentation Structure Generation
|
|
15
|
-
- ./agents/create/generate-structure.yaml
|
|
16
|
-
- ./agents/create/update-document-structure.yaml
|
|
17
|
-
- ./agents/create/check-need-generate-structure.mjs
|
|
18
|
-
- ./agents/create/refine-document-structure.yaml
|
|
19
|
-
- ./agents/create/check-document-structure.yaml
|
|
20
|
-
- ./agents/create/user-review-document-structure.mjs
|
|
21
|
-
- ./agents/create/index.yaml
|
|
22
|
-
|
|
23
|
-
# Documentation Structure Tools
|
|
24
|
-
- ./agents/create/document-structure-tools/add-document.mjs
|
|
25
|
-
- ./agents/create/document-structure-tools/delete-document.mjs
|
|
26
|
-
- ./agents/create/document-structure-tools/update-document.mjs
|
|
27
|
-
- ./agents/create/document-structure-tools/move-document.mjs
|
|
28
|
-
|
|
29
|
-
# Document Content Generation & Updates
|
|
30
|
-
- ./agents/update/batch-generate-document.yaml
|
|
31
|
-
- ./agents/update/generate-document.yaml
|
|
32
|
-
- ./agents/update/handle-document-update.yaml
|
|
33
|
-
- ./agents/update/check-document.mjs
|
|
34
|
-
- ./agents/update/update-document-detail.yaml
|
|
35
|
-
- ./agents/update/user-review-document.mjs
|
|
36
|
-
- ./agents/update/batch-update-document.yaml
|
|
37
|
-
- ./agents/update/update-single-document.yaml
|
|
38
|
-
- ./agents/update/check-update-is-single.mjs
|
|
39
|
-
- ./agents/update/save-and-translate-document.mjs
|
|
40
|
-
- ./agents/update/index.yaml
|
|
41
|
-
- ./agents/update/update-single/update-single-document-detail.mjs
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
# Translation
|
|
45
|
-
- ./agents/localize/translate-document.yaml
|
|
46
|
-
- ./agents/localize/translate-multilingual.yaml
|
|
47
|
-
- ./agents/localize/choose-language.mjs
|
|
48
|
-
- ./agents/localize/index.yaml
|
|
49
|
-
|
|
50
|
-
# Publishing
|
|
51
|
-
- ./agents/publish/publish-docs.mjs
|
|
52
|
-
- ./agents/publish/translate-meta.mjs
|
|
53
|
-
- ./agents/publish/index.yaml
|
|
54
|
-
|
|
55
|
-
# Media
|
|
56
|
-
- ./agents/media/load-media-description.mjs
|
|
57
|
-
- ./agents/media/batch-generate-media-description.yaml
|
|
58
|
-
- ./agents/media/generate-media-description.yaml
|
|
59
|
-
|
|
60
|
-
# Clear/Cleanup
|
|
61
|
-
- ./agents/clear/choose-contents.mjs
|
|
62
|
-
- ./agents/clear/clear-document-structure.mjs
|
|
63
|
-
- ./agents/clear/clear-generated-docs.mjs
|
|
64
|
-
- ./agents/clear/clear-document-config.mjs
|
|
65
|
-
- ./agents/clear/clear-auth-tokens.mjs
|
|
66
|
-
- ./agents/clear/clear-deployment-config.mjs
|
|
67
|
-
- ./agents/clear/clear-media-description.mjs
|
|
68
|
-
|
|
69
|
-
# Utilities
|
|
70
|
-
- ./agents/utils/load-sources.mjs
|
|
71
|
-
- ./agents/utils/post-generate.mjs
|
|
72
|
-
- ./agents/utils/save-sidebar.mjs
|
|
73
|
-
- ./agents/utils/transform-detail-data-sources.mjs
|
|
74
|
-
- ./agents/utils/save-doc.mjs
|
|
75
|
-
- ./agents/utils/save-doc-translation.mjs
|
|
76
|
-
- ./agents/utils/save-output.mjs
|
|
77
|
-
- ./agents/utils/format-document-structure.mjs
|
|
78
|
-
- ./agents/utils/find-item-by-path.mjs
|
|
79
|
-
- ./agents/utils/check-feedback-refiner.mjs
|
|
80
|
-
- ./agents/utils/feedback-refiner.yaml
|
|
81
|
-
- ./agents/utils/analyze-structure-feedback-intent.yaml
|
|
82
|
-
- ./agents/utils/analyze-document-feedback-intent.yaml
|
|
83
|
-
- ./agents/utils/analyze-feedback-intent.mjs
|
|
84
|
-
|
|
85
|
-
- ./agents/utils/document-title-streamline.yaml
|
|
86
|
-
- ./agents/utils/streamline-document-titles-if-needed.mjs
|
|
87
|
-
- ./agents/utils/document-icon-generate.yaml
|
|
88
|
-
|
|
89
|
-
# User Preferences & Chat
|
|
90
|
-
- ./agents/prefs/index.mjs
|
|
91
|
-
- ./agents/chat/index.mjs
|
|
92
|
-
|
|
93
|
-
# Documentation MCP Server
|
|
94
|
-
- ./docs-mcp/get-docs-structure.mjs
|
|
95
|
-
- ./docs-mcp/get-docs-detail.mjs
|
|
96
|
-
- ./docs-mcp/docs-search.yaml
|
|
97
|
-
- ./docs-mcp/analyze-docs-relevance.yaml
|
|
98
|
-
- ./docs-mcp/read-doc-content.mjs
|
|
99
|
-
- ./docs-mcp/analyze-content-relevance.yaml
|
|
100
|
-
|
|
101
|
-
# Evaluation
|
|
102
|
-
- ./agents/evaluate/index.yaml
|
|
103
|
-
- ./agents/evaluate/generate-report.mjs
|
|
104
|
-
- ./agents/evaluate/document-structure.yaml
|
|
105
|
-
- ./agents/evaluate/document.yaml
|
|
106
|
-
- ./agents/evaluate/code-snippet.mjs
|
|
107
|
-
|
|
108
|
-
# Diagram
|
|
109
|
-
- ./agents/create/analyze-diagram-type.mjs
|
|
110
|
-
- ./agents/create/analyze-diagram-type-llm.yaml
|
|
111
|
-
- ./agents/create/generate-diagram-image.yaml
|
|
112
|
-
- ./agents/create/replace-d2-with-image.mjs
|
|
113
|
-
- ./agents/update/generate-diagram.yaml
|
|
114
|
-
- ./agents/update/check-generate-diagram.mjs
|
|
115
|
-
- ./agents/update/pre-check-generate-diagram.yaml
|
|
116
|
-
- ./agents/localize/translate-diagram.yaml
|
|
117
22
|
cli:
|
|
118
|
-
chat:
|
|
119
|
-
agents:
|
|
120
|
-
- ./agents/init/index.mjs
|
|
121
|
-
- ./agents/create/index.yaml
|
|
122
|
-
- ./agents/update/index.yaml
|
|
123
|
-
- ./agents/publish/index.yaml
|
|
124
|
-
- ./agents/localize/index.yaml
|
|
125
|
-
- ./agents/clear/index.yaml
|
|
126
|
-
- ./agents/prefs/index.mjs
|
|
127
|
-
- ./agents/evaluate/index.yaml
|
|
128
|
-
- name: history
|
|
129
|
-
description: View update history
|
|
130
|
-
agents:
|
|
131
|
-
- url: ./agents/history/view.mjs
|
|
132
|
-
name: view
|
|
133
|
-
alias: ["log", "list"]
|
|
134
|
-
- name: add-document
|
|
135
|
-
alias: ["add"]
|
|
136
|
-
url: ./agents/create/user-add-document/index.yaml
|
|
137
|
-
- name: remove-document
|
|
138
|
-
alias: ["remove", "rm"]
|
|
139
|
-
url: ./agents/create/user-remove-document/index.yaml
|
|
140
|
-
- ./agents/clear/index.yaml
|
|
141
|
-
mcp_server:
|
|
23
|
+
chat: skills-entry/doc-smith/index.mjs
|
|
142
24
|
agents:
|
|
143
|
-
-
|
|
144
|
-
|
|
145
|
-
|
|
25
|
+
- name: doc-smith
|
|
26
|
+
alias: ["create", "gen", "g"]
|
|
27
|
+
url: skills-entry/doc-smith/index.mjs
|
|
28
|
+
- name: publish
|
|
29
|
+
alias: ["pub", "p"]
|
|
30
|
+
url: agents/publish/index.yaml
|
|
31
|
+
- name: clear
|
|
32
|
+
url: agents/clear/index.yaml
|
package/package.json
CHANGED
|
@@ -1,81 +1,49 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aigne/doc-smith",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.11-beta",
|
|
4
4
|
"description": "AI-driven documentation generation tool built on the AIGNE Framework",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
8
|
"files": [
|
|
9
9
|
"agents",
|
|
10
|
-
"assets/report-template",
|
|
11
|
-
"docs-mcp",
|
|
12
|
-
"prompts",
|
|
13
|
-
"types",
|
|
14
10
|
"utils",
|
|
11
|
+
"skills",
|
|
12
|
+
"skills-entry",
|
|
13
|
+
"scripts",
|
|
15
14
|
"aigne.yaml",
|
|
16
15
|
"LICENSE",
|
|
17
16
|
"README.md",
|
|
18
17
|
"CHANGELOG.md"
|
|
19
18
|
],
|
|
20
|
-
"main": "
|
|
19
|
+
"main": "aigne.yaml",
|
|
21
20
|
"type": "module",
|
|
22
21
|
"bin": "aigne.yaml",
|
|
23
22
|
"keywords": [],
|
|
24
23
|
"author": "Arcblock <blocklet@arcblock.io> https://github.com/blocklet",
|
|
25
24
|
"license": "Elastic-2.0",
|
|
26
25
|
"dependencies": {
|
|
27
|
-
"@aigne/cli": "^1.
|
|
28
|
-
"@aigne/
|
|
29
|
-
"@aigne/
|
|
30
|
-
"@
|
|
31
|
-
"@blocklet/payment-broker-client": "^1.22.27",
|
|
26
|
+
"@aigne/cli": "^1.59.0-beta.27",
|
|
27
|
+
"@aigne/publish-docs": "^0.15.0",
|
|
28
|
+
"@aigne/secrets": "^0.1.5",
|
|
29
|
+
"@blocklet/payment-broker-client": "^1.24.1",
|
|
32
30
|
"chalk": "^5.5.0",
|
|
33
|
-
"debug": "^4.4.1",
|
|
34
|
-
"diff": "^8.0.2",
|
|
35
|
-
"dompurify": "^3.2.6",
|
|
36
|
-
"fast-deep-equal": "^3.1.3",
|
|
37
|
-
"file-type": "^21.0.0",
|
|
38
31
|
"fs-extra": "^11.3.1",
|
|
39
|
-
"glob": "^11.0.3",
|
|
40
|
-
"gpt-tokenizer": "^3.2.0",
|
|
41
|
-
"image-size": "^2.0.2",
|
|
42
|
-
"sharp": "^0.33.0",
|
|
43
|
-
"is-in-ci": "^2.0.0",
|
|
44
|
-
"isbinaryfile": "^5.0.6",
|
|
45
|
-
"jsdom": "^26.1.0",
|
|
46
|
-
"marked": "^15.0.12",
|
|
47
|
-
"marked-terminal": "^7.3.0",
|
|
48
|
-
"mermaid": "^11.9.0",
|
|
49
|
-
"minimatch": "^10.1.1",
|
|
50
32
|
"open": "^10.2.0",
|
|
51
|
-
"p-limit": "^7.
|
|
52
|
-
"p-map": "^7.0.3",
|
|
53
|
-
"p-retry": "^7.0.0",
|
|
54
|
-
"remark-gfm": "^4.0.1",
|
|
55
|
-
"remark-lint": "^10.0.1",
|
|
56
|
-
"remark-parse": "^11.0.0",
|
|
57
|
-
"typescript": "^5.9.3",
|
|
33
|
+
"p-limit": "^7.2.0",
|
|
58
34
|
"ufo": "^1.6.1",
|
|
59
|
-
"
|
|
60
|
-
"unist-util-visit": "^5.0.0",
|
|
61
|
-
"vfile": "^6.0.3",
|
|
62
|
-
"yaml": "^2.8.0",
|
|
63
|
-
"zod": "^3.25.76",
|
|
64
|
-
"zod-to-json-schema": "^3.24.6"
|
|
35
|
+
"yaml": "^2.8.0"
|
|
65
36
|
},
|
|
66
37
|
"devDependencies": {
|
|
67
38
|
"@biomejs/biome": "^2.2.4"
|
|
68
39
|
},
|
|
40
|
+
"overrides": {
|
|
41
|
+
"jaison": "2.0.2"
|
|
42
|
+
},
|
|
69
43
|
"scripts": {
|
|
70
|
-
"test": "bun test --preload ./tests/setup/mock-process-exit.mjs",
|
|
71
|
-
"test:coverage2": "bun test --preload ./tests/setup/mock-process-exit.mjs --coverage",
|
|
72
|
-
"test:coverage": "bun test --preload ./tests/setup/mock-process-exit.mjs --coverage --coverage-reporter=lcov --coverage-reporter=text",
|
|
73
|
-
"test:deploy": "bun test --preload ./tests/setup/mock-process-exit.mjs tests/utils/deploy.test.mjs --coverage --coverage-reporter=text",
|
|
74
|
-
"test:user-review": "bun test --preload ./tests/setup/mock-process-exit.mjs tests/agents/update/user-review-document.test.mjs --coverage --coverage-reporter=lcov --coverage-reporter=text",
|
|
75
|
-
"test:watch": "bun test --preload ./tests/setup/mock-process-exit.mjs --watch",
|
|
76
44
|
"lint": "biome lint && biome format",
|
|
45
|
+
"lint:fix": "biome lint --write && biome format --write",
|
|
77
46
|
"update:deps": "npx -y taze major -r -w -f -n '/@abtnode|@aigne|@arcblock|@blocklet|@did-connect|@did-pay|@did-space|@nft-store|@nft-studio|@ocap/' && pnpm install && pnpm run deduplicate",
|
|
78
|
-
"deduplicate": "pnpm dedupe"
|
|
79
|
-
"lint:fix": "biome lint --write && biome format --write"
|
|
47
|
+
"deduplicate": "pnpm dedupe"
|
|
80
48
|
}
|
|
81
49
|
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# DocSmith Skill 安装脚本
|
|
2
|
+
|
|
3
|
+
这个目录包含用于安装和卸载 doc-smith skill 的脚本。
|
|
4
|
+
|
|
5
|
+
## 脚本说明
|
|
6
|
+
|
|
7
|
+
### install.sh
|
|
8
|
+
将 doc-smith skill 安装到 Claude 的全局 skills 目录(`~/.claude/skills`),使其可以在任何项目中使用。
|
|
9
|
+
|
|
10
|
+
**功能:**
|
|
11
|
+
- 自动创建 `~/.claude/skills` 目录(如果不存在)
|
|
12
|
+
- 复制 doc-smith 文件夹到全局 skills 目录
|
|
13
|
+
- 检测并提示是否覆盖已存在的安装
|
|
14
|
+
- 验证安装是否成功
|
|
15
|
+
|
|
16
|
+
### uninstall.sh
|
|
17
|
+
从 Claude 的全局 skills 目录移除 doc-smith skill。
|
|
18
|
+
|
|
19
|
+
**功能:**
|
|
20
|
+
- 检查 skill 是否已安装
|
|
21
|
+
- 确认后删除 doc-smith skill
|
|
22
|
+
- 验证卸载是否成功
|
|
23
|
+
|
|
24
|
+
## 使用方法
|
|
25
|
+
|
|
26
|
+
### 安装
|
|
27
|
+
|
|
28
|
+
在项目根目录执行:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
./scripts/install.sh
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
或者从 scripts 目录执行:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
cd scripts
|
|
38
|
+
./install.sh
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**自动确认安装(跳过提示):**
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
./scripts/install.sh -y
|
|
45
|
+
# 或
|
|
46
|
+
./scripts/install.sh --yes
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
安装成功后,你可以在任何地方的 Claude Code 中使用:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
/doc-smith
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 卸载
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
./scripts/uninstall.sh
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 安装位置
|
|
62
|
+
|
|
63
|
+
- **源文件:** `doc-smith-skill/doc-smith/`
|
|
64
|
+
- **安装位置:** `~/.claude/skills/doc-smith/`
|
|
65
|
+
|
|
66
|
+
## 注意事项
|
|
67
|
+
|
|
68
|
+
1. 脚本会提示是否覆盖已存在的安装
|
|
69
|
+
2. 卸载前会要求确认
|
|
70
|
+
3. 所有操作都有彩色输出提示,便于识别状态
|
|
71
|
+
4. 脚本执行失败时会返回非零退出码
|
|
72
|
+
|
|
73
|
+
## 故障排查
|
|
74
|
+
|
|
75
|
+
**权限问题:**
|
|
76
|
+
```bash
|
|
77
|
+
chmod +x scripts/install.sh
|
|
78
|
+
chmod +x scripts/uninstall.sh
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**手动安装:**
|
|
82
|
+
```bash
|
|
83
|
+
mkdir -p ~/.claude/skills
|
|
84
|
+
cp -r doc-smith ~/.claude/skills/
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**手动卸载:**
|
|
88
|
+
```bash
|
|
89
|
+
rm -rf ~/.claude/skills/doc-smith
|
|
90
|
+
```
|