dsh-skill-creator: DeepSeek Harness 技能生成插件

在 DeepSeek Harness(DSH)中开发技能通常需要手动编写 SKILL.md 文件,处理 frontmatter、定义工作流和校验格式。dsh-skill-creator 插件在 DSH 会话内提供了一个工作流工具链,从对话、文档或流程描述直接生成 SKILL.md,并支持校验、打包和描述优化。

该插件由 988hj7tczd-oss 维护,采用 MIT 许可证,完全离线可用,零外部依赖。

安装与启用

这是一个 DSH bundle,通过本地路径加载。

# 在项目目录同级执行(dsh CLI)
dsh plugin --profile <name> add ./dsh-skill-creator

安装后,插件会自动尝试将输出目录挂载到运行时的技能注册表中(rank=300),生成的技能无需修改配置即可被 skill 工具识别和加载。

核心工具

插件提供了四个模型工具,覆盖技能从构思到分发的全生命周期。

1. skill_new — 捕获意图并生成草稿

通过 goal 参数传入工作流描述,工具会自动抽取步骤、工具、输入输出格式,并识别缺口。

  • 参数:
    • goal (必填): 工作流描述。
    • fromSession (可选): 尝试从当前会话历史中抽取上下文。
    • confirm (可选): 默认 false。为 false 时进行“干跑”,返回意图抽取结果和澄清问题,不写盘;为 true 时生成 SKILL.md 并写入磁盘。
    • outputDir (可选): 输出根目录,默认为 $DSH_HOME/skills。

流程:
1. 执行干跑(confirm=false),获取意图草稿和澄清问题。
2. 用户确认或补充信息后,执行生成(confirm=true),写入 SKILL.md。

2. skill_validate — 校验技能目录

检查技能目录结构是否符合 DSH 规范。

  • 参数: path (必填)。
  • 校验项:
    • SKILL.md 文件存在且可读。
    • frontmatter 格式正确(YAML mapping)。
    • name 和 description 非空。
    • name 符合 kebab-case 规范 (^[a-z0-9]+(?:-[a-z0-9]+)*$)。
    • 正文非空。
  • 返回: 返回校验结果摘要与详细检查项。

3. skill_package — 打包技能为 .skill 文件

将校验通过的技能目录打包为 ZIP 文件,便于分发。

  • 参数:
    • path (必填): 技能目录路径。
    • outDir (可选): 输出目录,默认为技能目录的父目录。
  • 排除规则:
    • __pycache__/
    • node_modules/ (任意深度)
    • *.pyc (任意深度)
    • .DS_Store (任意深度)
    • 根目录下的 evals/
  • 行为: 打包前自动执行 skill_validate,校验失败则拒绝打包。

4. skill_improve_description — 改写描述以提高触发率

优化 description 字段,确保覆盖更多触发场景,同时保留原始触发词。

  • 参数:
    • path (必填): 技能路径。
    • usage (必填): 触发场景样例。
    • commit (可选): 默认 false。为 false 时返回改写提案和理由;为 true 时将改写后的描述写回 SKILL.md。

技术说明与限制

  • 依赖前置: 本项目在开发形态下依赖相邻的 dsh-src 检出(同一父目录下),用于类型检查和构建。发布到 npm 的版本会尽量替换依赖。
  • YAML 子集: frontmatter.ts 仅解析最小 YAML 子集(不支持锚点、多文档等复杂语法)。权威校验以 Python 脚本为准。
  • 挂载优先级: 运行时 provider 的 rank 为 300(custom 层),同名技能优先级低于项目根目录(rank 100/200)。
  • 离线可用: 所有核心逻辑(包括 ZIP 打包和校验)均为零外部依赖实现。
  • 写盘机制: .skill 生成和目录创建依赖 Node.js 的文件系统服务。请确保配置的 outputDir 路径具有写权限。

生态与许可

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜