验证指南

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 运行时校验

  1. 启动 dsh web(或 dsh headless),打开一个新会话。
  2. 向模型提问:"列出当前可用的 skills"(或直接问 "有哪些 skill")。
    • 预期:目录中出现 44 个 workbuddy-* 之外的名称,例如 a-share-skillsmvp-dev-skillscareer-dev-skillsgpt-researcher-skills 等。
  3. 加载并执行一个团队:
    • "加载 skill mvp-dev-skills 并按其 SOP 帮我规划一个最小 MVP"
    • 预期:skill 工具返回 <skill_content name="mvp-dev-skills"> 块,包含完整调度指令与资源表。
  4. 验证资源解析(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 再安装)