dsh-skill-pack-security

September 6, 2026 · View on GitHub

dsh-skill-pack-security

  • 1024 商店渠道:先 npm i -g dsh1024,再 dsh1024 plugin --profile web add dsh-skill-pack-security(计入 deepseek1024.com 安装排行)。

面向 DeepSeek Harness 的八个安全审计技能 + 一个自动化插件供应链门禁。

技能教审计方法论;plugin_vet 工具执行安装前扫描——许可证 / SBOM / commit 锁定 / 恶意模式 / 五维风险卡片。

License DSH plugin Node CI Version npm version npm downloads

English · 简体中文 · Español · Português · हिन्दी


Compatibility

维度状态
HarnessDeepSeek Harness dsh-v0.1.3-alpha.1(GitHub tag,已于 2026-09-06 核验:完整门禁链 + profile 安装冒烟)。npm 依赖线:@deepseek-ai/dsh 0.1.2-rc.1(peers >=0.1.2-rc.1 <0.2.0)。会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。
Node^22.19.0 || >=24.0.0(DeepSeek Harness 运行时)
平台任意(技能是内容;provider 是 host 插件)
模型任意(技能经 skill 工具按需加载;plugin_vet 是确定性的)

What you get

dsh-skill-pack-security 是面向 DeepSeek Harness 的技能包 + 供应链门禁。它把 8 套安全方法论做成 SKILL.md 技能(模型在会话目录中发现它们,用 skill 工具按需加载),并附自动化安装前扫描器 plugin_vet技能教方法论,插件执行静态检查。

  • 八个技能、双语双套 —— 每个技能以相同名称与元数据提供 skills/(中文)与 skills-en/(英文)两个版本;每个根目录只装一种语言。
  • plugin_vet 门禁 —— 由可选 provider/ 插件注册到 ctx.tools 的零依赖扫描器(许可证 / SBOM / commit 锁定 / 恶意模式 / 数据责任审查 / 五维风险卡片)。
  • 发现引用技能 —— 每个发现指向对应技能章节(如 supply-chain-review §1),agent 可继续人工审计。
  • 可被模型执行 —— 每个技能步骤都是真实命令(gitleakstrivypnpm auditnpm viewgit …),附预期输出样例与退出码判据。

Why skills, not tools?

形态做什么做不到什么
工具型插件(如扫描器)执行扫描、返回发现解读告警、误报分级、写脱敏报告
协议层约束某个协议跨仓库、跨 agent 泛化
技能包(本仓库)传授方法论:分级、报告、修复排序——通过 plugin_vet 自动执行安装前静态检查端到端取代人工审计

与工具型安全插件同装时两者互补:工具负责跑扫描,技能负责解读、分级与报告。本包现在两种形态兼有:技能教方法论,plugin_vet 自动跑机械性的静态子集,每个发现都指回技能继续深挖。

Claude Code 生态 3000+ 技能已经证明这种形态的分发价值。DSH 的 SKILL.md frontmatter(name/description/whenToUse)与 CC 技能格式兼容;本包只用公共子集,内容全部原创。

The eight skills

技能用途何时用
security-audit五阶段审计流程:范围→资产清单→风险分级→验证→报告模板整体审计、出报告、规划步骤
secret-scan凭据审计:gitleaks/trivy 用法、误报分级、脱敏报告、修复排序密钥扫描、告警定真伪、泄露报告
dependency-audit供应链审计:pnpm/npm audit 解读、license、投毒风险、锁文件漂移依赖盘点、audit 报告解读
supply-chain-reviewPR/新依赖快速评审:危险 install 脚本、typosquat、可复现构建评审引入新依赖的 PR
prompt-injection-reviewagent 项目注入面审查:AGENTS.md、技能、工具描述、MCP、网页审查模型上下文注入面
threat-model设计期威胁建模:信任边界、STRIDE 表、攻击树、缓解新功能建模、设计阶段安全评审
vuln-intel漏洞情报:NVD/CISA-KEV/GHSA/OSV 检索与判定拿到 CVE/GHSA 编号后查影响与利用
incident-responseagent 环境事件响应:控制→取证→恢复→复盘DSH/agent 环境出现疑似安全事件

每个技能主文件 ≤ 300 行(渐进披露,细节在 references/)。

plugin_vet — the automated pre-install gate

plugin_vet 是本包的自动化补充:由 provider/ 插件注册到 ctx.tools 的零依赖扫描器。传入 GitHub owner/repo 或本地包路径即可——一次性下载 tarball(遵守超时与 AbortSignal)、在预算上限内扫描,并返回渲染卡片。

  • 许可证扫描 —— 定位 LICENSE 文件与 license 字段;NOASSERTION/UNKNOWN/SEE LICENSE IN <file>、文件缺失或字段缺失都会被标出;常见 SPDX 标识可识别。
  • SBOM —— 从锁文件(pnpm/npm/yarn)提取带版本的依赖树。
  • commit 锁定 —— 安装清单 ref 与 workflow action 必须是不可变的 40 位 commit SHA;@tag/分支 ref 会被标记为可变。
  • 恶意模式 —— 生命周期脚本(preinstall/install/postinstall)、网络回传域名、发布代码中的混淆/编码载荷。
  • 数据责任审查 —— 策略扫描三维的确定性规则版:敏感 seam(agent/pre-steptools/pre-executesession/event 等)上的无门控监听、README 未披露出站端点、描述-行为关键词覆盖率、随包文本中的指令覆盖类注入载荷(技能/文档/提示词/测试)。每条发现都指向 prompt-injection-review 供人工深审;可用 vet.dataResponsibility: false 按部署关闭。模型辅助审查阶段为已文档化的后续升级。
  • 五维风险报告 —— 许可证 / 来源 / 依赖 / 构建脚本 / 维护状态,各 0–100 分,汇总为整体判定:PASS、WARN 或 FAIL。

安装前门禁。 判定结果进入安装门禁——gate.policy: warn(默认,不阻断)在 FAIL 时打印警告;gate.policy: deny 直接阻断安装:

- id: skill-pack-security
  name: '@perrylink/dsh-skill-pack-security-provider'
  config:
    language: en
    vet:
      gate:
        policy: deny   # 阻断 plugin_vet 不过的安装

dsh-plugin-check 互补。 官方插件校验器的 36 项检测验证插件的契约与质量(配置 Schema、effect 注册、工具 JSON 形态);plugin_vet 验证插件的来源供应链是否可信。两者都跑:

dsh-plugin-check(36 项检测)plugin_vet(本仓库)
回答的问题这个插件是否结构良好、符合契约?这个包安装是否安全?
检查对象插件代码、Schema、注册、工具契约LICENSE、锁文件、安装 ref/action、生命周期脚本、回传/混淆、维护状态、数据责任(监听作用域、遥测披露、描述-行为、嵌入式注入载荷)
判定逐项 pass/failPASS / WARN / FAIL + 门禁
时机插件开发或评审时dsh plugin add 前、PR 评审、CI 供应链门禁
阻断CI 门禁(有违规即非零退出)可配置:warn(默认)或 deny

Quick start

# 1. 把 bundle 安装进 profile
dsh plugin --profile web add "github:PerryLink/dsh-skill-pack-security#main"

# 或从 npm(发布版本)
dsh plugin --profile web add @perrylink/dsh-skill-pack-security-provider

# 2. 重启并校验该行
dsh --profile web --dump-config | grep -A3 'id: skill-pack-security'

Install & uninstall

  • git 通道(最新 main):dsh plugin --profile web add "github:PerryLink/dsh-skill-pack-security#main" —— 挂载 provider bundle;prepack 把双语言版嵌入 tarball。
  • npm 通道(发布版本):dsh plugin --profile web add @perrylink/dsh-skill-pack-security-provider
  • tarball 通道:在 provider/pnpm pack,再 dsh plugin --profile web add ./@perrylink-dsh-skill-pack-security-provider-<version>.tgz
  • 卸载dsh plugin --profile web remove @perrylink/dsh-skill-pack-security-provider(或删除该行;纯技能副本用安装器的 -Uninstall / --uninstall 删除)。

Installing the skills by hand

DSH 本地技能提供方按 rank 扫描四个根目录(同层内重名时低 rank 胜出):

Rank根目录适用范围
100<项目根>/.dsh/skills项目级、随仓库走
200<项目根>/.agents/skills项目级、跨 agent 共享目录
400<dshHome>/skills$DSH_HOME~/.dsh用户级、DSH 专用
500<agentsHome>/skills$DSH_AGENTS_HOME~/.agents用户级、跨 agent 共享

Rank 链(同层内重名低者胜):project-dsh 100 < project-agents 200 < custom 300 < user-dsh 400 < user-agents 500。custom 300 是插件注册层(如本包可选的 provider/),不是磁盘根目录。

./scripts/install.ps1 -Target user-agents -Language zh   # Target: project-dsh | project-agents | user-dsh | user-agents;Language: zh(默认)| en
bash ./scripts/install.sh --target user-agents --language en

What's inside

路径内容
skills/<name>/SKILL.md8 个技能(中文版);frontmatter 逐条符合官方 dsh-skill-filesystem 契约
skills-en/<name>/SKILL.md8 个技能(英文版);名称与元数据与中文版一致
skills/<name>/references/渐进披露细节:命令矩阵、分级表、模板
scripts/install.ps1Windows 一键安装(四种根目录、两种语言版);记录清单,支持 -Uninstall/-DryRun/-Force
scripts/install.shPOSIX 等价安装器(--uninstall/--dry-run/--force
provider/npm 可安装的 provider bundle(声明 dsh.bundleprepack 把双语言版嵌入 pack/language: zh|en);经 ctx.effect() 注册技能提供方 plugin_vet 门禁工具,skillsDir 配错响亮失败
provider/src/vet/零依赖 plugin_vet 扫描引擎(许可证 / SBOM / commit 锁定 / 恶意模式 / 风险报告)
package.json根 bundle manifest:声明 dsh.bundle.patch(→ provider/cordis.patch.yml)与 dshWorkshop intake 事实
verify/verify-skill-pack.mts官方解析器 + 真实 skill 工具 + 真实工具运行时 headless 校验——双语共 25 项检查
VERSION版本单一来源;每个 SKILL.md 的 metadata.versionprovider/package.json 必须与其一致(CI 强制)
docs/生态冲突检查、发布清单、改进计划与 plugin_vet 演示
CHANGELOG.md / SECURITY.md / CONTRIBUTING.md发布历史、漏洞报告政策、贡献与校验规则
.github/workflows/verify.ymlCI:25 项校验 + 安装器演练 + provider 独立构建/打包冒烟(Ubuntu 与 Windows)
.github/dependabot.ymlprovider 与 GitHub Actions 的每周依赖更新
LICENSEApache License 2.0
THIRD_PARTY_NOTICES.md第三方立场:零依赖引擎、已评估未移植的资产、peer 依赖许可

Configuration

所有可调项都是 Schemastery Config 字段(可从 cordis.yml 覆盖)。provider/cordis.patch.yml 逐键内联注释。

默认值含义
languagezh发布的语言版:中文 skills/ 或英文 skills-en/;设置 skillsDir 后忽略
watchfalse是否监听打包技能目录(内容静态,故默认关闭)
skillsDir(未设置)显式技能根目录;覆盖 language 推导的默认值,须含 <skill>/SKILL.md 技能
vet.enabletrue注册 plugin_vet 门禁工具
vet.timeoutMs15000tarball 下载超时(毫秒)
vet.maxFiles800扫描文件数上限
vet.maxFileBytes262144单文件字节上限
vet.maxExtractBytes67108864解压字节上限
vet.maxDepNodes600依赖树节点上限
vet.maxFindingsPerCheck12每项检查的发现数上限
vet.dataResponsibilitytrue运行数据责任审查(可按部署禁用)
vet.externalScannerstrueosv-scanner/npm audit CLI 存在时编排它们;false 强制使用内置自计算依赖扫描
vet.userAgentdsh-skill-pack-security/2.2.8 (+https://github.com/PerryLink/dsh-skill-pack-security)下载用的 user-agent
vet.gate.policywarn安装门禁:warn(不阻断)或 deny(FAIL 时阻断)

Tools & surfaces

表面类型说明
plugin_vettool安装前供应链扫描(许可证 / SBOM / commit 锁定 / 恶意 / 风险卡片);发现引用技能章节
skill-pack-securityskill provider把本包的 skills/skills-en/ 版本注册到 ctx.skills
八个 SKILL.md 技能skills审计方法论,两个语言版
安装门禁gatevet.gate.policy: warn | deny 决定安装是否放行

Permissions & data

  • 权限dshWorkshop manifest 声明 files:readnetwork:fetch
  • 数据plugin_vet 一次性下载 tarball(遵守超时与 AbortSignal),报告会打码密钥形态文本;插件不注入任何 prompt 段。

Security boundaries

  • 零依赖引擎。 plugin_vet 只用 node: 内置与相对导入。
  • 窄范围安装前门禁。 不是通用安全审计工具——刻意与扫描器插件、官方 dsh-plugin-check 契约校验器互补。
  • 默认不阻断。 安装门禁默认为 warn,除非显式选择 deny
  • 内容原创。 与 Claude Code 技能格式兼容,但不复制 CC 技能内容、不设技能市场。
  • 引擎原创、未移植第三方资产。 许可证扫描与恶意模式检查为原创零依赖实现;GPL-Radar / LLM-detective / Sus-PY 资产经评估未移植(未找到可核实许可证的公开源码)——见 THIRD_PARTY_NOTICES.md

Verification

verify/verify-skill-pack.mts 从本机 deepseek-harness checkout 导入官方 dsh-skill-filesystem 解析器、真实 skill 工具与真实工具运行时,对两个语言版实测 25 项检查:

  1. 目录结构:两个语言版齐备、各 8 个 bundle、无多余平铺 md、frontmatter name 与目录名一致、≤ 300 行、references/ 已接线、metadata.versionVERSION 文件同步
  2. 与官方 .agents/skills/ 技能(运行时从 checkout 推导)及已知社区技能包零重名 3–6. 每个语言版(中文 skills/、英文 skills-en/):官方 provider 发现全部 8 个技能、ctx.skills.get() 加载全部正文、真实 skill 工具返回 <skill_content>(未知名/非法名被拒绝)、会话目录只含 name+description——whenToUse 不进入模型目录(官方设计)
  3. 13 个坏 frontmatter 用例逐条验证官方 fail-closed 规则(缺字段、驼峰遗留键、非布尔值、非 kebab 名、嵌套目录、名称不一致);平铺技能可发现,嵌套 **/SKILL.md 不被发现
  4. 可选 provider 插件经 ctx.effect() 挂载中文版与英文版、dispose 干净,并拒绝错误配置(空/不存在的 skillsDir) 9–15. 自加固检查:zh↔en 结构对齐、references 接线(无悬空/孤儿文件)、provider 版本同步、文档 rank 对照官方常量、grep -E 模式 POSIX 可移植、包内密钥自检、release-checklist UTF-8 安全 16–19. plugin_vet 走真实工具运行时:注册到 ctx.tools;合规 fixture 通过;无 license fixture 失败并引用 dependency-audit §3;恶意 postinstall fixture 失败(脚本/回传/混淆,引用 supply-chain-review §1);policy: deny 下门禁阻断安装
  5. 扫描引擎零依赖(仅 node: 内置与相对导入)
  6. 报告脱敏:密钥形态文本不进入渲染输出
# 本地运行:默认自动解析包旁的 harness checkout,也可显式指定
$env:DSH_HARNESS_CHECKOUT = 'D:\deepseek-harness'
& D:\deepseek-harness\node_modules\.bin\tsx.CMD verify\verify-skill-pack.mts
# All 25 checks passed for dsh-skill-pack-security.

同样的 25 项检查由 .github/workflows/verify.yml 在 GitHub 上每次 push 自动重跑——Ubuntu 与 Windows 双平台——另有 install.sh/install.ps1 演练与 provider 独立构建/打包冒烟(断言 tarball 含双语言版与 bundle patch)。

Known limitations

  • 不是完整审计工具。 plugin_vet 是窄范围的安装前信任门禁,不能端到端取代人工审计。
  • 仅静态扫描。 恶意模式与维护状态信号是对发布包的启发式判断,不是动态分析。
  • 每根目录一个语言版。 同名技能在同一根目录内按 rank 去重,只有一个语言版进入会话目录。

Roadmap

  • dsh-skill-pack-data-engineering —— 数据管道、数据质量、ETL 检查清单(同模板)
  • dsh-skill-pack-oss-collab —— PR 礼仪、issue 分类、维护者工作流
  • dsh-skill-pack-performance —— profile 方法论、基准判定、回归清单
  • 本包内更多技能(保持纯技能边界):sbom-lifecycle(SBOM 生成/老化/导入工作流)、pen-test-review(授权测试的范围界定与报告评审)、compliance-audit(ASVS/NIST-CSF 走查)
  • 随每次发布刷新 plugin_vet 演示产物(docs/demos/run-demos.mjs),并随官方校验器新增检测保持 dsh-plugin-check 互补表准确

Development

pnpm --dir provider run typecheck   # tsc --noEmit
pnpm --dir provider run build       # tsc --noEmitOnError
pnpm --dir provider run prepack     # 把两个语言版嵌入 tarball
tsx verify/verify-skill-pack.mts    # 25 项 headless 校验

Benchmark

投毒样本回归集(38 个样本的逐类检出率 / 误报率 / F1,以及与 OSV/Socket 的差距)见 benchmark/RESULTS.md;用 pnpm --dir provider run build && node benchmark/run.mjs 复现(零新依赖)。

Topics

dsh, dsh-plugin, deepseek-harness, skill-pack, skills, security, security-audit, supply-chain, supply-chain-security, prompt-injection

Contributors

  • @PerryLink —— 作者与维护者:双语版八个技能、安装脚本、验证套件、provider 包、CI 与文档。

这是 PerryLink 维护的 33 个 DeepSeek Harness 插件 之一。如果它能帮到你,其他的也会:

PluginOne-liner
dsh-dsh-auto-review审批链上的第二模型自动审查,默认失败关闭
dsh-dsh-background-agents带 Web UI 侧栏、消息与中断的持久后台子代理
dsh-dsh-budgetDeepSeek Harness 的成本治理:预算、碳排与延迟一屏呈现。
dsh-dsh-checkpoint-rewindClaude Code /rewind 等价:快照、会话 fork、一次性恢复
dsh-dsh-claude-move把 Claude Code 会话、记忆、技能与 CLAUDE.md 迁入 DSH
dsh-dsh-click跨平台原生桌面控制(DeepSeek Harness),Windows 优先。
dsh-dsh-composer-historyWeb 输入框的终端式历史:方向键、Ctrl+R 搜索
dsh-dsh-data-quality数据集质量检查与引文核查(本插件可选消费的数字核查桥)
dsh-dsh-defendDeepSeek Harness 的提示注入、越狱与密钥泄露防护。
dsh-dsh-doublecheck工程纪律守卫:需求质询、测试门禁、对手评审
dsh-dsh-drawDeepSeek Harness 的统一静态图像生成路由。
dsh-dsh-fastDeepSeek Harness 只读性能诊断。
dsh-dsh-fund-research面向中国公募基金的确定性研究报告
dsh-dsh-github面向 DSH 的 GitHub PR/issues 集成,每次写入经审批门控
dsh-dsh-industry-research行业研究编排,经本插件的 ctx.researchReport.assemble 封存交付物
dsh-dsh-libraryDeepSeek Harness 的本地文档知识库。
dsh-dsh-local-aiDeepSeek Harness 的本地模型(Ollama)接入。
dsh-dsh-lsp-actions通过语言服务器的 LSP 诊断、格式化、补全、代码操作与重命名
dsh-dsh-maskPII 脱敏中间件:模型边界匿名化、展示层还原
dsh-dsh-mcp-panel只读 MCP 运行时面板:/mcp 命令 + 带状态、工具与错误的 Settings 标签页
dsh-dsh-memento审批门控的跨会话记忆:ctx.memory 接缝 + SQLite + 记忆工具
dsh-dsh-observeDeepSeek Harness 的 OpenTelemetry 与 Langfuse 可观测导出器。
dsh-dsh-output-stylesClaude Code outputStyles 等价的运行时风格切换
dsh-dsh-permission-rulesClaude Code 风格声明式 allow/deny/ask 权限规则,带审计
dsh-dsh-plugin-guide作为按需代理技能的插件开发知识库
dsh-dsh-research-report可验证研究报告引擎:内容寻址证据账本与封存版本
dsh-dsh-scoreDeepSeek Harness 插件的多维质量评分。
dsh-dsh-session-pin在 Web 侧栏置顶会话,带持久排序
dsh-dsh-session-syncDeepSeek Harness 的跨设备会话同步——会话存储的专用 git 镜像。
dsh-dsh-talkDeepSeek Harness 的语音优先会话闭环:对它说,听它答。
dsh-dsh-test-driveDeepSeek Harness 插件的隔离试装冒烟。
dsh-dsh-translateDeepSeek Harness 的厂商参数翻译与确定性 JSON 修复。

License

Apache License 2.0 © 2026 dsh-skill-pack-security contributors

从 DSH Desktop 市场安装

所有 PerryLink 插件均可在 DSH Desktop 内置市场中浏览:市场 → 来源 → 添加来源 → 粘贴 https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → 选中。安装仍需通过市场的 npm 身份校验与你的确认。