dbs-skill-maker
Turns repeated problems into reusable tools that anyone can install and verify.
Installation
Paste this into Claude Code, Cursor, or any agent that can run commands.
What this skill does
What it does:
- Turns problems that happen over and over into single skills that agents can find and use
- Helps you decide what problem the skill should solve and when it is done
- Tests the skill to make sure it works before sharing
- Prepares GitHub sharing only when you ask for it
When to use it:
- You have a problem that keeps coming up and want to turn it into a reusable skill
- You want to check if a skill idea is ready to use
- You need to test a skill before other people use it
- You want to share a skill on GitHub and let people install it with a command
SKILL.mdShow the author's original SKILL.md (not in English)
---
name: dbs-skill-maker
description: 制作新 Skill,或改进已有 Skill。先按改动规模给出方案并等待确认,再生成或修改文件,并用真实任务对比改动前后的表现。用户要求做 Skill、把反复出现的问题沉淀成 Skill、修改或修复 Skill、根据失败案例改进 Skill、检查或测试 Skill 时使用;只有用户明确要求分享或发布时,才准备 GitHub 仓库并验证 `npx skills add`。
metadata:
dbs-handoff: |
- 一个反复出现的问题要做成新 Skill,或已有 Skill 要改定位、改名、拆分合并、重写多个文件 → 问题契约和一组需求问题,同时请用户选标准答案深度(轻量版、完整版、跳过),停下等回答;再交出方案:标准答案、步骤与理论、文件结构、验证计划、回退,停下等确认;确认后写入并报告验证等级
- 已有 Skill,带着失败案例、反馈或模糊的改进目标 → 修改方案:问题与证据、改动、验证、回退,停下等确认;确认后写入,用同一组任务对比改动前后,结论为保留、继续试验或回退
- 已有 Skill,写清了改哪里、改成什么 → 几行方案,停下等确认;确认后修改并跑结构校验
- 已有 Skill,只要求诊断、检查或测试 → 诊断或测试结果,不改文件
- 本地已完成的 Skill,用户明确要求发布或分享 → GitHub 发布准备;push、tag、Release 前确认授权,发布后验证 npx skills add 安装
- 不交出:未经确认的文件写入、用户没要求的 GitHub 发布、多端安装逻辑
---
# dbs-skill-maker:Skill 制作与改进
把一类反复出现的问题做成 Skill,或让已有 Skill 在真实任务上表现更好。制作和改进共用同一组原则,流程轻重由改动规模决定。
本地可用并通过当前证据支持的验证,即构成一次完整交付。GitHub 发布是可选能力,不能成为默认步骤。
## 不变量
1. **先方案,后写入。** 任何会创建或修改 Skill 文件的动作,都先交付方案并等待用户确认。方案长短与改动规模相称:一句话的改动,方案也只需几行。
2. **流程按规模取用。** 只执行当前路线需要的部分,不把所有任务都推进同一套重流程。
3. **先找标准答案,每步有理论锚点。** 新建或大改时,先查这类问题已有的成熟解法(骨架已来自现有 Skill 或用户经验时可以跳过),再给每个判断步骤匹配理论;修问题时,检查出错步骤的理论支撑。理论不保证好用,但缺少理论的步骤更容易出错。找不到高匹配理论时如实说明并保留经验判断,不硬套,也不因此停止。
4. **深度由用户选。** 标准答案做轻量版、完整版还是跳过,在执行中询问用户,同时给出建议和理由。
5. **保留用户选择和项目规则。** 用户已经给出的名称、目标、平台和边界直接沿用。目标项目有自己的规则文件(如 `AGENTS.md`、`CLAUDE.md`)或校验脚本时,按项目规则执行,并在交付前运行这些校验。
6. **在能解释失败的那一层修改。** 每项改动都要解释一类稳定问题;不把单条反馈、测试答案或个案细节写成通用规则。
7. **用行为验证。** 测试可观察输出、工具动作和边界,不要求模型展示隐藏推理。没有实际运行过的任务,不宣称变好。
8. **保护现场。** 不覆盖用户未提交的改动和现有同名目录;写入前确认改动可以回退。
9. **外部动作单独授权。** 创建远端仓库、push、tag、Release 和公开测试材料,都需要用户明确要求。
## 第 0 步:选择路线
读取当前对话、用户提供的文件和目标目录,选择路线。规模拿不准时按较大的一档处理,并在方案里说明;用户可以要求降档。
| 用户请求 | 路线 |
| --- | --- |
| 做新 Skill;改定位、改名、拆分合并、重写多个文件 | A:新建或大改 |
| 给出失败案例、反馈或模糊目标,例如“它总是假设观众知道背景”“帮我优化一下” | B:修问题 |
| 说清了改哪里、改成什么,例如“把第 3 步的提问上限改成 2 个” | C:小改 |
| 只要求诊断、检查或测试,不要求修改 | D:只读,直接交付结果,不需要确认 |
| 明确要求发布、分享或生成 `npx` 安装命令 | E:读取 [references/github-publishing.md](references/github-publishing.md) |
## 路线 A:新建或大改
**A1 读取现场。** 读取用户材料、目标目录和项目规则;确认目标目录没有同名 Skill。大改时再读取原 Skill 及其引用资源、现有 `evals/` 和工作区状态,列出原来已经做对、改动后需要保持的能力。
**A2 需求分析,并请用户选择标准答案深度。** 按 [references/problem-and-goal.md](references/problem-and-goal.md) 先根据现有材料写出问题契约,再把缺口合并成一组问题一次问完。同一条消息里请用户选择标准答案深度:
> - **轻量版**:找 2~3 个已知的成熟做法,加 1 个失败做法或反例。适合一般 Skill,耗时短。
> - **完整版**:把问题抽象成结构,找 4~6 个历史同构案例(成功、失败、反例),做类比矩阵。适合高风险或需要深挖的任务,耗时明显更长。
> - **跳过**:判断骨架已经来自现有 Skill 或用户经验,直接做每步理论锚定。适合合并、重写已有 Skill,或用户已经说清关键步骤的任务。
>
> 我的建议:{根据任务给出建议和一句理由}
发出问题后结束本轮,等待用户回复。
**A3 找标准答案。** 用户选择跳过时,把现有 Skill 的步骤和用户补充的关键步骤整理成判断骨架,直接进入 A4。否则按用户选择的深度执行 [references/standard-answer.md](references/standard-answer.md),得出结论等级和 Skill 的判断骨架。轻量版的结论是「尚无统一答案」或几种做法互相冲突时,告诉用户,并询问是否升级到完整版。
**A4 每步理论锚定。** 按 [references/theory-grounding.md](references/theory-grounding.md) 为骨架中的每个判断步骤审查规则、匹配主理论、写出边界和核实状态。默认离线完成;外部事实会改变结论或用户要求核实时才联网。
**A5 交付方案并停止。** 按 [references/skill-construction.md](references/skill-construction.md) 确定文件结构,方案包含:
```markdown
# {新建/大改} {skill-name} 方案
## 问题契约摘要
## 标准答案:{成熟共识/条件性答案/尚无统一答案/已跳过,骨架来自 …}
## 步骤与理论
| Skill 步骤 | 理论锚点 | 解决什么判断 | 失效边界 | 核实状态 |
| --- | --- | --- | --- | --- |
## 文件结构
## 验证计划(3~6 个样本)
## 回退
请确认全部方案,或回复要执行的部分和限制。
```
**A6 写入。** 见下文「写入」。Skill 正文只写由理论推出的判断步骤和边界,每步最多一行依据;理论卡和评分过程只留在方案中。
**A7 验证与报告。** 见下文「验证与报告」。
## 路线 B:修问题
**B1 读取现场。** 读取目标 `SKILL.md`、直接引用的资源、现有 `evals/`、相关脚本、项目规则和工作区状态,列出当前已经做对的能力。无法分离用户已有改动与待改基线时,在方案中说明阻塞原因,不进入写入。
**B2 复现、定位与归因。** 按 [references/improvement.md](references/improvement.md) 取得真实失败,找到从哪一步开始偏离,判断失败来源,并判断错在规则层、方法层还是骨架层。
**B3 出错步骤的理论检查。** 只对出错的步骤执行 [references/theory-grounding.md](references/theory-grounding.md):这一步有没有理论支撑,理论是否用错。问题出在整个 Skill 的解法骨架时,向用户说明,并建议升级到路线 A,由用户决定。
**B4 交付方案并停止。**
```markdown
# 修改 {skill-name} 方案
## 问题与证据
| 证据 | 实际行为 | 预期行为 | 来源与层级 |
| --- | --- | --- | --- |
## 改动
| 编号 | 文件与位置 | 怎么改 | 理论依据 | 解决什么 | 可能影响 |
| --- | --- | --- | --- | --- | --- |
## 不改动
## 验证(1~3 个真实任务,至少 1 个是原来做对的任务)
## 回退
请确认全部方案,或回复要执行的编号和限制。
```
**B5 写入。** 见下文「写入」。
**B6 对比验证。** 同一组任务分别运行改动前后的版本,按 [references/evaluation.md](references/evaluation.md) 判断,结论为保留、继续试验或回退。
## 路线 C:小改
交付几行方案:目标文件、具体改动、不改什么、回退方式,然后等待确认。确认后修改,运行结构校验;改动影响行为时,再跑 1 个真实任务。不做理论检查。
## 确认规则
- 「确认」「按这个方案做」「只做 1、3」「可以改流程,但不要动 description」等回复,能对应当前对话里唯一、明确的方案时,构成确认;
- 最初的「帮我改进」「直接优化」「你看着改」只表示用户希望获得服务,不构成对方案的确认;
- 用户在确认时自己写清的追加改动视为已确认;需要你判断怎么改的追加项,先补进方案再确认;
- 用户只讨论方案、提出疑问或没有回复时,继续保持只读。
交付方案后结束本轮,不在同一轮里连续完成“提出方案”和“写入文件”。
## 写入
1. 复述获准执行的内容、目标文件和限制;
2. 确认改动可以回退:目标位于 Git 仓库且相关文件没有未提交改动时,以当前提交为回退点;否则先把相关文件复制到临时目录作为快照;
3. 只执行获准的改动,保持 Skill 名称和原有职责,除非方案里已获准改名或改定位;
4. 新建 Skill 时可以运行 `scripts/init_skill_project.py` 生成带真实内容的初稿,再补完判断条件、边界和停止条件;
5. 完成后运行结构校验和目标项目自己的校验:
```bash
python3 scripts/validate_skill_project.py <skill-directory>
```
不得把初始骨架或未完成占位符交给用户。
目标项目要求在 frontmatter 维护 description 以外的摘要字段(例如供调度使用的接手字段)时,按「正文 → 摘要字段 → description」的顺序同步更新,摘要不写正文没有的规则,并运行项目对应的校验。
## 验证与报告
默认使用 [references/evaluation.md](references/evaluation.md) 的轻量对比。出现以下任一情况时加码到完整评测:用户要求盲测、留出样本或回归测试;改动涉及安全、权限、事实边界,或改变了 `description` 的触发范围;Skill 准备公开发布;轻量对比的结果无法判断好坏。
按实际完成的最高等级报告:
| 等级 | 证据 | 允许的表述 |
| --- | --- | --- |
| 1.结构校验 | frontmatter、引用、资源、脚本和项目校验通过 | “结构校验通过” |
| 2.行为对比 | 至少 1 个真实任务的实际输出通过;改进时与改动前输出对比 | “真实任务测试通过” |
| 3.留出/回归 | 执行者未看预期答案,留出样本通过且无关键回归 | “当前留出与回归样本通过” |
| 4.安装交付 | GitHub 来源可用 `npx skills add` 安装,并逐项核对资源 | “GitHub `npx` 安装与资源校验通过” |
未实际运行行为任务时,只能报告第 1 级。
**改进已有 Skill 后,报告:** 实际修改的文件和位置;验证等级与每个样本改动前后的表现;结论(保留/继续试验/回退)及依据;仍未验证的风险。候选整体变差时按回退方式恢复,并说明失败发生在哪里。
**制作新 Skill 后,报告:** Skill 名称和绝对路径;解决的问题与主要边界;标准答案等级与仍未找到理论锚点的步骤;实际生成的文件;验证等级与仍未验证的风险;本地安装或调用方式。
如果当前环境能使用 `$dbs-install-skill`,在用户要求安装或当前交付需要安装时,使用它安装已生成的 Skill,不在本 Skill 内重写多端安装逻辑。如果检测不到 dbskill 或 `$dbs-install-skill`,先说明使用 dbskill 可以完成多端安装和去重,并引导用户运行:
```bash
npx -y skills add dontbesilent2025/dbskill -g --all
```
新 Skill 交付后固定提醒一次:
> Skill 已完成,当前最高验证等级是「{1/2/3/4}」,可以在本地使用。如果你希望分享给别人,我还可以帮你发布到 GitHub,并验证 `npx skills add` 安装命令。
用户没有要求发布时直接结束,不继续追问,也不创建 GitHub 配置。准备仓库不等于获得远端写入授权;执行 `gh repo create`、`git push`、创建 tag 或 Release 前,确认用户的明确要求能够覆盖该动作。
## 改进本 Skill 自身
目标是 `dbs-skill-maker` 本身时,用改动前的文件快照运行基线,并在验证中检查两条不变量没有被削弱:“先方案,后写入”和“执行者看不到预期答案”。无法保留快照时,只交付方案和测试设计。
## 停止条件
出现以下情况时结束当前轮次:
- 方案或需求问题已交付,正在等待用户回复;
- 改动已完成并通过当前可执行的验证;
- 缺少一个会改变方案的用户决定;
- 理论或现实事实连续 2 次核实失败,继续搜索不会改变方案;
- 修改开始依赖单个案例补丁,或连续两轮没有可区分的改善;
- 用户只要求方案、诊断,或明确要求停止;
- GitHub 相关动作尚未获得授权。
## 语言与安全
- 中文遵循《中文文案排版指北》。
- 不使用空洞的二元反转句式。
- 不读取、复制或发布用户未授权的私密材料。
- 不使用 `git add .` 或 `git add -A`;发布时只暂存明确文件。
- 不把本地绝对路径、测试答案、密钥或内部记录写进公开仓库。
完成当前任务后直接结束。用户的请求超出本 Skill 的范围、任务完成后用户的材料里出现明确的后续需求,或用户询问下一步时,用一句话说明还需要哪种能力,不点名其他 Skill;当前环境已经安装 `/dbs` 时,补一句「可以输入 `/dbs`,由它匹配对应的 Skill」。
Ships with 12 supporting files:
- agents/openai.yaml
- references/evaluation.md
- references/github-publishing.md
- references/improvement.md
- references/problem-and-goal.md
- references/skill-construction.md
- references/standard-answer.md
- references/theory-grounding.md
- scripts/init_skill_project.py
- scripts/prepare_github_repo.py
- scripts/validate_skill_project.py
- scripts/verify_npx_install.sh
Mirrored from the author's public source. Install counts from the open skills registry.