🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Matt Pocock 技能包 NmouZh/dsh-mattpocock-skills

DeepSeek Harnessv0.1.1
NmouZh53 天前有提交已提供中文文档扫描:含敏感能力

把 35 个上游技能装进 DSH,随插件一键装卸

34.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add NmouZh/dsh-mattpocock-skills
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · skill
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/29·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 53 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-mattpocock-skills @ 0.1.1
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 04:57:17

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 7 处,展示前 7 条)
  • 读取本地文件
    src/provider.js:219
    body = await readFile(record.file, 'utf8')
  • 读取本地文件
    src/overlay.js:174
    raw = await readFile(file, 'utf8')
  • 读取本地文件
    src/overlay.js:278
    body = await readFile(join(skillsRoot, file), 'utf8')
  • 读取本地文件
    src/skills.js:103
    const stats = await stat(file)
  • 读取本地文件
    src/skills.js:109
    const raw = await readFile(file, 'utf8')
  • 读取本地文件
    src/skills.js:265
    entries = await readdir(path, { withFileTypes: true })
  • 读取本地文件
    src/skills.js:323
    const raw = await readFile(file)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-skill
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 内置35个技能
  • 一键装卸
  • 加载时校验规则
展开完整介绍(151 字)↓

Matt Pocock 的智能体技能(mattpocock/skills 1.2.3)打包成自包含的 DeepSeek Harness 插件:35 个内置技能 + 一层 DSH 适配(58 条手写规则、29 处机械斜杠归一化,加载时全部校验出现次数)+ 一份面向模型的 dsh-workflow 指南。

README

由 DeepSeek 最新模型翻译生成
dsh-mattpocock-skills Matt Pocock 的 agent skills(上游 1.2.3,全部 35 个技能)打包成的 DeepSeek Harness 插件,外加一层 DSH 适配: - 技能正文随包分发,插件通过 ctx.skills 注册一个只读 provider,整套作为一个插件行安装、升级、卸载,不再往用户技能根目录里散落几十份拷贝; - 上游文件逐字节保留(vendor-skills.mjs --check 可验证),DSH 相关的改写全部放在独立的适配层里(overlay/patches.json,49 条精确替换,加载时在内存中应用); - 额外提供一个模型可调用的指南技能 dsh-workflow,讲清这套技能在 DSH 里怎么跑:哪些技能模型能自己加载、哪些只能由用户发起、流程之间怎么交接、以及怎么对接 DSH 的子代理 / 计划模式 / 会话命令。 目录里实际可用的技能是 36 个 = 上游 35 个 + dsh-workflow。 为什么需要适配层 上游是写给 Claude Code 的:那里的 /name 是模型可以执行的命令。
展开完整文档(README 剩余 1 节)
dsh-mattpocock-skills

Matt Pocock 的 agent skills(上游 1.2.3,全部 35 个技能)打包成的 DeepSeek Harness 插件,外加一层 DSH 适配:

- 技能正文随包分发,插件通过 ctx.skills 注册一个只读 provider,整套作为一个插件行安装、升级、卸载,不再往用户技能根目录里散落几十份拷贝;
- 上游文件逐字节保留(vendor-skills.mjs --check 可验证),DSH 相关的改写全部放在独立的适配层里(overlay/patches.json,49 条精确替换,加载时在内存中应用);
- 额外提供一个模型可调用的指南技能 dsh-workflow,讲清这套技能在 DSH 里怎么跑:哪些技能模型能自己加载、哪些只能由用户发起、流程之间怎么交接、以及怎么对接 DSH 的子代理 / 计划模式 / 会话命令。

目录里实际可用的技能是 36 个 = 上游 35 个 + dsh-workflow。

为什么需要适配层

上游是写给 Claude Code 的:那里的 /name 是模型可以执行的命令。DSH 里不是:

| 差异 | DSH 的实际行为 |
| /name | 是用户的斜杠命令;模型不能执行,只能用 skill 工具按名字加载技能 |
| disable-model-invocation: true(本包 20 个技能) | skill 工具直接报错:skill "" is not available for model invocation,模型完全打不开 |
| /clear | DSH 没有这个命令,等价物是"用户开一个新会话" |
| /compact | DSH 有,但由用户运行 |
| .claude/settings.json 的 hooks | DSH 不读,照做等于没有防护 |
| argument-hint frontmatter | DSH 忽略该键(只进插件的诊断信息) |
| agents/openai.yaml | Codex CLI 的展示元数据,DSH 不读 |

所以适配层做三类事:把"叫技能"的说法改对(模型能加载的写成按名加载,只能用户发起的明确写"请用户来跑")、修掉 DSH 里会失败或做错事的指令(git-guardrails-claude-code 的 Claude Code hook、claude-handoff 的 claude --bg CLI、handoff 写进 OS 临时目录、CLAUDE.md 优先于 AGENTS.md)、补一份 DSH 视角的总纲(dsh-workflow)。

结构

dsh-mattpocock-skills/
├── cordis.patch.yml # bundle 补丁层:向 profile 根插入一行 ├── skills/ # 上游 35 个技能,逐字节拷贝(唯一写入者是 vendor 脚本) ├── overlay/ │ ├── patches.json # 49 条适配规则(精确 find/replace + 期望命中次数)+ 新增技能清单 │ └── skills/dsh-workflow/ # 指南技能:SKILL.md + SKILLS.md(目录表)+ DSH-MAPPING.md(词汇对照) ├── src/ │ ├── index.js # cordis 插件入口:注册 provider、暴露诊断、启动自检 │ ├── provider.js # SkillProvider:list/get/diagnose,含适配与"新增技能"合并 │ ├── overlay.js # 适配层:载入规则、校验锚点、应用改写 │ ├── skills.js # 技能树扫描 + frontmatter 解析 + 缓存 │ ├── frontmatter.js # frontmatter / 调用策略解析(对齐 dsh-skill-filesystem) │ ├── paths.js / yaml.js # 包内路径、yaml 依赖解析 ├── vendor/ # vendor-skills.mjs(同步上游)、overlay-report.mjs(锚点体检)、 │ # skills.manifest.json(逐技能 sha256)、VENDOR.md(生成报告) ├── tools/archive-duplicates.mjs └── test/bundle.test.js, test/verify-profile.cjs

安装

已装在 web profile(link: 安装,改源码即生效,但新增 bundle 必须重启宿主):

// /root/.dsh/profiles/web/package.json
"dependencies": { "dsh-mattpocock-skills": "link:/root/dsh-mattpocock-skills/dsh-mattpocock-skills" },
"dsh": { "profile": { "bundles": [ /* … / "dsh-mattpocock-skills" ] } }

从 GitHub 安装(仓库:):

git clone https://github.com/NmouZh/dsh-mattpocock-skills.git ~/dsh-mattpocock-skills
cd /root/.dsh/profiles/web
pnpm add "dsh-mattpocock-skills@link:$HOME/dsh-mattpocock-skills"
再把 "dsh-mattpocock-skills" 加进 package.json 的 dsh.profile.bundles,最后重启宿主 dsh.profile.bundles 里必须是 Node 能解析的包名,不能写 link:/file: 前缀;link: 只出现在 dependencies。
用 link: 指向 clone 而不是 pnpm add :后者会打包拷贝一份,之后 git pull 不会反映到 profile 里。

配置

在 profile 的 cordis.patch.yml 里按 id: mattpocock-skills 覆盖(patchReload: live,改配置不用重启):

| 键 | 默认值 | 含义 |
| enabled | true | false 时该 provider 返回空清单(等同停用整包) |
| rank | 450 | 同名技能去重优先级,数字越小越优先。内置 filesystem 档位:project-dsh 100 / project-agents 200 / custom 300 / user-dsh 400 / user-agents 500 / bundled 600 |
| promote | [] | 把只能用户发起的技能提升为模型可调用(这是唯一"让模型能加载 implement"的正规做法) |
| skillRoot | 包内 skills/ | 改读外部目录(绝对路径),例如直接指向上游 checkout |

- id: mattpocock-skills
config:
promote: [implement, to-spec] # 让模型也能加载这两个(会占用提示词预算,谨慎开)

关于 promote 的取舍:20 个"仅用户"技能是上游有意的设计(它们在新会话里启动、由人驱动)。提升它们会让这 20 份描述进入每次请求的技能目录,因此默认不开。dsh-workflow 里写明了每个技能的归属,模型会据此告诉你"这个需要你来起"。

适配层怎么维护

适配层由两半组成,都在 overlay/patches.json 里,都是精确 find/replace + 期望命中次数:

- rules(手写,58 条):需要"改意思"的地方——把"去跑 /setup-matt-pocock-skills"改成"请用户来跑"、/clear 改成"让用户开新会话"、CLAUDE.md 优先改成 AGENTS.md 优先、git-guardrails 顶部加 DSH 警告、claude-handoff 改成 subagent 委托、handoff 改写到工作区内等。
- slashInvocations(机械生成,27 条):只需要"去斜杠"的地方——the \/handoff\ is narrow → the \handoff\ is narrow,表格里的 \/compact\ → Compact(不是技能,是用户发起的会话动作)。由 vendor/gen-slash-rules.mjs 依据手写规则之后的文本生成,两边不会抢同一段文字。

node vendor/gen-slash-rules.mjs # 改了手写规则后重新生成机械那半
node vendor/gen-slash-rules.mjs --check # 校验机械那半是否过期

node vendor/overlay-report.mjs # 逐条体检:锚点还在吗、命中次数对吗
node vendor/overlay-report.mjs --only claude-handoff

node vendor/vendor-skills.mjs --check # 上游漂移 + 清单新鲜度 + 适配层可应用 + 目录表完整

规则在插件加载时校验:锚点对不上(上游改写了那句话)会直接让 provider 报错,而不是"改一半"悄悄上线。命中次数用 expect 固定,避免一句话被改写后误伤多处。

新增一条适配:在 rules 里加 { file, find, replace, expect, note }(find 必须是当前磁盘上的精确原文,含空格与标点),跑 overlay-report.mjs 确认 found == expect,再跑一次 gen-slash-rules.mjs。

新增一个配套技能:放进 overlay/skills///SKILL.md(与上游 // 同构),它会和上游技能一起出现在目录里。

日志与诊断

宿主日志里会有一行摘要,例如:

mattpocock-skills: registered (rank 450, enabled true, promote none)
mattpocock-skills: 36 skill(s) from …/skills (packaged) + 1 from the DSH overlay; 16 model-invocable, 20 user-invocable only, 16 adapted by 49 rule(s)

ctx.mattpocockSkills.provider.diagnose() 返回只读快照:每个技能的调用策略、origin(上游 / 适配层)、adapted 标记、适配层规则数与目标文件、以及被跳过的坏技能。若发现同名技能被别的 provider 遮住,也会在日志里给出警告。

自检

cd /root/.dsh/profiles/web # 让 @deepseek-ai/ 能被解析
node /root/dsh-mattpocock-skills/dsh-mattpocock-skills/test/bundle.test.js # 15 项:契约 + 适配层 + 真实注册表集成
node /root/dsh-mattpocock-skills/dsh-mattpocock-skills/test/verify-profile.cjs # 组合树里确有该 bundle 行
node /root/dsh-mattpocock-skills/dsh-mattpocock-skills/vendor/vendor-skills.mjs --check

升级上游

node vendor/vendor-skills.mjs --from /path/to/skills-
node vendor/overlay-report.mjs # 上游若改写了被适配的句子,这里会亮出来
修好规则 → 同步 package.json 的 version → 重启宿主

vendor-skills.mjs 是 skills/ 与 vendor/ 的唯一写入者:只收录带 SKILL.md 的目录,并强制 kebab-case 的 name、非空 description、非空正文,违规直接失败而不是产出坏包。

旧拷贝归档

~/.agents/skills 里曾经有 35 份旧版本拷贝,会压过插件(agent preset 的作用域层比全局层更近,rank 数字在那里不起作用)。已归档到 ~/.agents/skills.backup-/(附 ARCHIVE.md 恢复说明);tools/archive-duplicates.mjs [--dry-run] 处理同类情况。

卸载

cd /root/.dsh/profiles/web
pnpm remove dsh-mattpocock-skills # 再从 package.json 的 bundles 移除该行,重启宿主

link: 安装只是软链,卸载不会动到 checkout;技能随包分发,用户技能目录不留残留。
预览分享卡片长什么样 ↓NmouZh/dsh-mattpocock-skills
分享 · DeepSeek Harness Hub
NmouZh/dsh-mattpocock-skills

把 35 个上游技能装进 DSH,随插件一键装卸

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部