文档工坊技能包:四个纯提示词 Agent Skills,从代码库生成 README、PR 描述、changelog 与代码审查意见,以 dsh.bundle 插件行接入 dsh,也可文件式发现免拷贝使用。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:JohnXu22786/docgen
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
docgen — 文档工坊技能包
一组纯提示词(Agent Skills)形态的文档生成技能,为 dsh 等插件化 agent harness 提供四项能力:README 生成、PR 描述生成、changelog 生成、代码审查。所有技能遵循 Agent Skills 开放标准(SKILL.md + YAML frontmatter),自包含、无第三方依赖、离线可用。
包含的技能
| 技能 | 做什么 | 何时用 |
|---|---|---|
readme-forge |
从代码库生成/重写 README.md,只写有证据的内容 | 「给这个项目写个 README」 |
pr-dossier |
从 diff 与提交历史生成完整 PR 描述(变更档案) | 「为这次改动写 PR 描述」 |
changelog-curator |
从 git 历史分类、合并、改写生成 CHANGELOG | 「更新 changelog,准备发版」 |
diff-verdict |
输出结构化审查意见:结论 + 分级问题清单 + 亮点 | 「审查一下这个 PR」 |
每个技能都是自包含的单个 SKILL.md:正文包含输入收集指引、工作流程、输出模板与模板变量表、语言风格选项、输出质量检查清单、「不要做」清单与边界情况处理。
目录结构
docgen/
├── README.md # 本文档:安装、使用、接口说明
├── package.json # npm 清单:name(dsh-docgen)+ dsh.bundle
├── cordis.patch.yml # `dsh plugin` 安装时消费的 bundle 补丁
├── index.js # 技能挂载适配(把 skills/ 注册到 ctx.skills)
├── manifest.json # 插件清单(自描述元数据)
├── SKILLS.md # 入口索引文件
├── LICENSE # MIT 许可
├── skills/ # 技能根目录(接入时指向这里或拷贝其中条目)
│ ├── readme-forge/SKILL.md
│ ├── pr-dossier/SKILL.md
│ ├── changelog-curator/SKILL.md
│ └── diff-verdict/SKILL.md
├── examples/
│ ├── prompts.md # 每个技能的示例调用提示词
│ └── dsh-patch-enable-skills.yml # dsh 接入补丁示例(web profile 启用技能 + 登记目录)
├── scripts/
│ └── validate_skills.py # 技能包校验脚本(Python 标准库,无依赖)
└── tests/
├── test_validate_skills.py # 校验脚本的回归测试
└── index.test.mjs # 技能挂载适配的 node 冒烟测试
在 DSH 中安装
docgen 随包携带 dsh.bundle 清单,用插件加载器一条命令安装并启用:
dsh plugin --profile demo add github:JohnXu22786/docgen
bundle 会把插件行(id: docgen、name: dsh-docgen)插入 profile,解析本包入口
(index.js);其 apply(ctx) 扫描 skills/ 目录并把每个 SKILL.md 运行时注册到
ctx.skills——无需拷贝、无需额外配置。文件式接入方式仍然可用,适用于未加载
skills 服务或技能组件的 profile。
安装与接入 dsh
dsh 通过 skill-filesystem 提供方按技能根目录发现技能(一层深度:目录束 <root>/<name>/SKILL.md 或平铺文件 <root>/<name>.md)。接入本插件任选一种方式:
方式零:插件加载器(dsh.bundle,推荐)
dsh plugin --profile demo add github:JohnXu22786/docgen
bundle 入口(index.js)在加载时把 skills/ 下四个目录束注册到 ctx.skills。
这是单步接入;下述方式适用于手工或文件式集成。
方式一:项目级(零配置,不用插件加载器)
把 skills/ 下的四个技能目录(或整个 skills/)放进项目的技能根目录:
# 项目根目录(包含 .git 的最近祖先)任选其一:
# <project>/.dsh/skills/ 或 <project>/.agents/skills/
cp -r skills/* <project>/.dsh/skills/
方式二:用户级(所有项目可用)
# $DSH_HOME 默认 ~/.dsh;$DSH_AGENTS_HOME 默认 ~/.agents
cp -r skills/* ~/.dsh/skills/
方式三:自定义目录(插件原地接入,不拷贝)
通过配置给 skill-filesystem 提供方登记 customSkillDirs,例如用补丁文件(见 examples/dsh-patch-enable-skills.yml):
npx @deepseek-ai/dsh web --patch ./examples/dsh-patch-enable-skills.yml
注意:dsh 的
webprofile 默认关闭技能相关组件(skill-filesystem/tool-skill),需要补丁或 preset 启用;headlessprofile 默认开启。具体配置键路径以你所装版本的dsh --dump-config与官方文档为准。
验证安装
python scripts/validate_skills.py # 校验本包技能格式(全部通过则退出码 0)
python scripts/validate_skills.py --strict # 追加正文行数上限检查
python -m unittest discover -s tests -t . # 运行校验脚本自身的回归测试
npm test # 运行技能挂载适配的 node 冒烟测试
接入后在会话中直接以自然语言发起请求即可,模型会通过 skill 工具加载对应技能:
给这个项目写一个 README
为刚才的改动生成 PR 描述
根据 git 历史更新 changelog,准备发 1.2.0
帮我审查这个 PR
使用说明
- 触发:在提问中自然描述需求(见技能表「何时用」列),无需记住技能名;harness 依据
description/whenToUse自动路由。 - 风格选项:每个技能支持三种可覆盖维度——语言(默认跟随提问语言)、篇幅(精简/标准/详尽或完整)、语气/深度。以自然语言追加即可:
篇幅=精简、关注=安全、language=en。 - 输出形态:技能直接产出 markdown 文本;README/changelog 类技能会给出可直接保存为文件的完整内容,PR/审查类技能给出结构化描述或意见清单。
- 示例提示词:见 examples/prompts.md。
接口说明
技能接口(dsh 原生契约)
每个技能是一个目录束,SKILL.md 的 frontmatter 是 harness 读取的唯一契约:
| 字段 | 必填 | 约束 | 本包用法 |
|---|---|---|---|
name |
是 | kebab-case(小写字母/数字/连字符),≤64 字符,与所在目录名一致 | 见各技能 |
description |
是 | 非空,≤1024 字符,说明做什么 + 何时用 + 触发关键词 | 中文描述 + 英文关键词 |
whenToUse |
否 | 字符串,补充路由提示(社区确立的驼峰扩展字段) | 各技能均已提供 |
metadata |
否 | 字符串键值映射 | author / version / family |
license |
否 | 字符串 | MIT |
compatibility |
否 | 字符串,环境要求 | 纯提示词,无需网络 |
allowed-tools |
否 | 字符串,预先批准的工具清单(实验性) | 未使用 |
dsh 额外识别(本包不写、按默认处理):disable-model-invocation 与 user-invocable(缺省均开放)。注意:字段名必须按上表拼写——allowed-tools 含连字符、whenToUse 为既定驼峰拼写,拼写不一致(如写成 allowed_tools 或 when-to-use)会导致该字段不被识别;其中调用策略字段拼写或类型错误时,dsh 会丢弃整个技能(fail-closed)。
插件清单与入口
package.json+cordis.patch.yml:dsh plugin add消费的dsh.bundle清单。安装时 dsh 读取cordis.patch.yml插入docgen插件行并加载index.js——其apply(ctx)把技能注册到ctx.skills(name/description/whenToUse/content/metadata/source: bundled),返回的组合 disposer 在卸载时逆序注销全部注册。manifest.json:插件的自描述元数据(id / version / kind / entry / interface / skills / scripts)。dsh 的技能发现不读取它,它服务于人工查阅、发布流程与支持「入口文件」型加载器的 harness;interface字段声明了技能发现契约。SKILLS.md:入口索引,列出加载契约摘要与技能清单。
dsh 加载原理(摘要)
dsh 的技能能力由 skill(注册表)、skill-filesystem(本地发现)、tool-skill(模型目录与 skill 工具)三个插件协作提供:启动时按根目录扫描 frontmatter 生成目录(模型只看到 name + description);模型决定调用某技能时按名读取最新正文;正文中的相对引用以技能目录为基准。本包四个技能均为单文件自包含,不依赖相对资源。
开发与扩展
- 新增技能:在
skills/下新建目录 +SKILL.md(frontmatter 见上表),运行python scripts/validate_skills.py通过校验,并同步更新manifest.json与SKILLS.md。 - 修改技能:只编辑对应
SKILL.md,harness 下次加载即读到新内容(正文修改无需重启目录缓存)。 - 校验脚本:
scripts/validate_skills.py仅用 Python 标准库,可独立用于任何技能包;支持传任意目录/文件。解析范围是扁平 YAML 子集(顶层键值 +metadata缩进映射 + 引号/列表字面量),不含锚点、注释等完整 YAML 特性。
依赖与隐私
- 零第三方依赖:纯提示词 + Python 标准库脚本;
- 不发起网络请求,不收集任何数据;需要的能力仅为读取代码库文件与 git 历史(由 harness 提供);
- 许可证:MIT,见 LICENSE。
许可
MIT — 见 LICENSE。
常见问题
- web 界面看不到技能? dsh web profile 默认关闭技能组件,用方式三的补丁启用(或使用 CLI/headless profile)。
- 改了 SKILL.md 没生效? 技能正文按次读取,重发一次请求即可;若改的是 frontmatter 的
name/description,目录会随文件系统监听刷新。 - 技能与已有技能重名? dsh 按根目录优先级与层(layer)就近覆盖同名技能;本包技能名均为原创命名,冲突时优先检查是否已安装同名技能。
链接
同类插件
GanyuanRan/Aegis★ 1048
面向编码 Agent 的软件工程方法包,提供基线优先规划、系统化调试、提示词卫生、完成前验证,以及修复/退役双轨跟踪技能。
superdesigndev/superdesign-skill★ 429
在 Superdesign 画布上做 UI 与营销图的设计技能:先读代码库拿上下文、抽取现有设计系统,再通过 Superdesign CLI 生成并迭代可分支的设计稿、流程页与可复用组件。
linhay/harmony-next.skills★ 328
为 DeepSeek Harness 提供 HarmonyOS NEXT 技能包、离线 API 参考及 DevEco、HDC 与模拟器自动化指南。
Vladimir-Human/humanizer-ru#dsh★ 101
清理俄语文本中的 AI 痕迹:识别聊天机器人复制粘贴残留(ChatGPT、Gemini、Grok、Perplexity、DeepSeek),并按需改写为自然行文;39 个正则标记配证据登记表,离线运行,纯文本 bundle。
Vladimir-Human/ru-marketplace-mcp#dsh★ 64
面向俄罗斯十家电商平台的技能与可选 MCP 行:跨 Wildberries、Detsky Mir、Yandex Market 比价,以及各平台的搜索、商品卡与评论。安装后 13 个技能立即可用;两行 MCP 默认关闭,需将 RU_MARKETPLACE_MCP_DIR 指向本地克隆,该克隆需要 Python 3.12+ 与 uv。
dhicoc/dsh-reverse-skill★ 30
完整 reverse-skill(85 个 SKILL.md)的 DeepSeek Harness 插件:逆向工程、授权渗透测试与安全研究的技能路由包。