验证指南
August 14, 2026 · View on GitHub
本文件说明如何确认 44 个 skill bundle 被 DeepSeek Harness 正确发现与加载。
1. 静态校验(不启动 dsh)
# bundle 数量:应为 44
ls skills | wc -l
# 每个 bundle 都有 SKILL.md
find skills -mindepth 2 -maxdepth 2 -name SKILL.md | wc -l # 44
# frontmatter 校验(kebab-case name + 非空 description)
node --input-type=module -e "
import fs from 'node:fs';
import path from 'node:path';
import { splitFrontmatter } from './scripts/convert.mjs';
const dirs = fs.readdirSync('skills').filter(d => fs.statSync(path.join('skills', d)).isDirectory());
let bad = 0;
for (const d of dirs) {
const { frontmatter } = splitFrontmatter(fs.readFileSync(path.join('skills', d, 'SKILL.md'), 'utf8'));
const ok = /^[a-z0-9]+(?:-[a-z0-9]+)*\$/.test(frontmatter.name ?? '') && frontmatter.description;
if (!ok) { bad++; console.log('BAD:', d); }
}
console.log('checked', dirs.length, 'bundles; invalid =', bad);
"
2. 安装后校验
bash scripts/install.sh
find ~/.dsh/skills -mindepth 2 -maxdepth 2 -name SKILL.md | wc -l # 44
ls -la ~/.dsh/skills | head # 每个 bundle 是指向本仓库的符号链接
3. dsh 运行时校验
- 启动
dsh web(或dsh headless),打开一个新会话。 - 向模型提问:"列出当前可用的 skills"(或直接问 "有哪些 skill")。
- 预期:目录中出现 44 个
workbuddy-*之外的名称,例如a-share-skills、mvp-dev-skills、career-dev-skills、gpt-researcher-skills等。
- 预期:目录中出现 44 个
- 加载并执行一个团队:
- "加载 skill
mvp-dev-skills并按其 SOP 帮我规划一个最小 MVP" - 预期:
skill工具返回<skill_content name="mvp-dev-skills">块,包含完整调度指令与资源表。
- "加载 skill
- 验证资源解析(bundle 内成员文件):
- 在返回的
<skill_instructions>中应能按资源表相对路径读取,如./pm/SKILL.md。
- 在返回的
4. 卸载
bash scripts/install.sh --uninstall
find ~/.dsh/skills -mindepth 2 -maxdepth 2 -name SKILL.md | wc -l # 应为 0(或只剩你自己装的)
5. 常见问题
| 现象 | 原因 / 处理 |
|---|---|
| 目录里没有本包 skill | 确认安装到 $DSH_HOME/skills(默认 ~/.dsh/skills);旧会话不会热刷新,请开新会话 |
| 某个 skill 加载报 "unknown" | 名字必须与目录名完全一致(kebab-case);用 skill 工具列出准确名称 |
| 成员文件读不到 | 确认 SKILL.md 资源表中的相对路径与 bundle 内实际结构一致(重新运行 node scripts/convert.mjs 再安装) |