先问对问题再动手:把 DSH 插件的 ENTRY / FLOW / BOOST 三层问清楚,判定交给真正做检查的工具。
DSH 插件的指南层——解释要检查什么、为什么重要、判定归谁;自身不做认证、不打分、不排名,只把检查路由到 dsh-standards。
安装 · 配置 · FAQ · 简体中文 · English · Español · Português · हिन्दी
dsh plugin --profile web add dsh-plugin-guide社区指南,与 DeepSeek 官方无关;不是认证、不是排名、不是安全审计。唯一仓库:https://github.com/PerryLink/dsh-plugin-guide(Gitee 为只读快照)。
dsh-plugin-guide 是 DSH 插件的指南层:它解释要检查什么、为什么重要,以及判定应该由哪个工具负责。安装后它向宿主注册一个按需加载的 agent 技能,技能正文就是 SKILL.md,其中的相对引用(./docs/...)通过 resourceBase 目录解析到本包。它不做认证、不打分、不排名——检查在 dsh-standards,规则文本在 dsh-plugin-spec,构建与脚手架在 dsh-primer。
| 包 | 角色 |
|---|---|
dsh-plugin-guide |
本包:文字指南、三层地图、agent 技能 |
dsh-standards |
执行总包:ENTRY/FLOW 检查、三层审计(dsh-levels)、规范文件 |
dsh-plugin-spec |
底层规则文本与条款来源 |
dsh-primer |
旧的构建/脚手架技能和 CLI(原 dsh-plugin-guide 0.3.x) |
-
安装(三选一):
# git 通道(最新 main) dsh plugin --profile web add github:PerryLink/dsh-plugin-guide # npm 通道(已发布版本) dsh plugin --profile web add dsh-plugin-guide # tarball 通道:本仓库 npm pack 后 dsh plugin --profile web add ./dsh-plugin-guide-<version>.tgz
无构建步骤:
index.js即发布产物,SKILL.md与docs/就是技能正文。 -
让 agent 用一次技能(技能按需加载,不常驻上下文):
> 用 dsh-plugin-guide 审一下 ./my-plugin:先给 ENTRY 结论,再说明哪些层是 not-run。 -
验证已生效:
dsh --profile web --dump-config | grep -A2 'id: dsh-plugin-guide'
会话技能目录里应出现
dsh-plugin-guide,且技能正文指向docs/levels.md(package.json#dshWorkshop.capability.expected记录的验收形态)。
卸载:dsh plugin --profile web remove dsh-plugin-guide(或从 profile patch 删掉该行)。注册是 Cordis effect,卸载即撤销,不留残留。
- 三层地图 —— ENTRY 问「能不能被识别、安装、启动」,FLOW 问「用户能不能装、配、用、升级、卸载」,BOOST 问「有没有用好 Cordis」。三条轨道,不是三个等级;它们相加不等于分数或证书。
- 检查路由 —— 本包只解释与分流:一致性检查交给
dsh-standards,规则文本查dsh-plugin-spec,要搭新插件去找dsh-primer(旧的dsh-plugin-devCLI 已在那边,不在本包)。 - 证据规则 ——
static≠runtime、recognized≠pass、not-run≠pass;一条 PASS 需要命令、产物、环境与日期,缺了就写not-run/not-measured/incomplete。 - 按需技能 ——
index.js读取SKILL.md、剥掉 YAML frontmatter,以source: bundled与目录型resourceBase注册;技能只在被问到时进场,不占常驻提示前缀。 - 不越权 —— 不给判定、不挂市场门禁、不冒充官方;措辞纪律写在
SKILL.md与STANDARDS.md里,可逐条核对。
| 层 | 回答 | 能否判定 |
|---|---|---|
| ENTRY | 能不能被识别、安装、启动 | 能:recognized / runtime / failed / incomplete / unavailable |
| FLOW | 用户能不能装、配、用、升级、卸载 | 有 runtime 证据时能;否则 not-run |
| BOOST | 有没有用好 Cordis | 不给插件级判定;按实践登记证据 |
先读一页地图:docs/levels.md。
# 只做 ENTRY 识别(不声明 runtime)
npx dsh-standards ./my-plugin --scope entry --entry-claim static
# 三层审计;没跑的层保持 not-run / not-measured
npx -p dsh-standards dsh-levels ./my-plugin --format jsonrecognized 不是通过,static 不是通过,not-run 也不是通过。退出码:0 完成、1 可归因 FAIL、2 未完成/not-run、3 用法错误——not-run 与 incomplete 不得写成 pass(见 docs/entry.md)。
- 旧的 agent 技能和
dsh-plugin-devCLI 已迁到dsh-primer。 - 本包现在是指南层:三层地图、检查路由、证据规则。
- 旧 0.3.x npm 版本已标记 deprecated,已有安装仍可用;0.4.0 是产品切换,锁在
^0.3的用户不会自动升级。 - 检查在
dsh-standards,不在本包。
本包没有 Schemastery Config:cordis.patch.yml 只 insert 一行,插件不读取任何 config.* 键。可调整的只有这一行本身和它所在的 profile。
| 键 | 默认值 | 含义 |
|---|---|---|
id |
dsh-plugin-guide |
行标识;后续 patch 层按 id 覆盖该行(整行替换) |
name |
dsh-plugin-guide |
loader 要 import 的模块(package.json#main → index.js) |
config |
不接受 | 本包不读任何配置键;写在这里不会生效 |
完整补丁文件(cordis.patch.yml,9 行)
# dsh-plugin-guide bundle layer: register the packaged knowledge base as an agent skill.
# This file is the `dsh.bundle.patch` layer (see package.json#dsh.bundle.patch).
# Layer semantics: a YAML array of row verbs; `insert` adds plugin rows to the
# composed config. Later layers override a row by `id` (whole-config replacement).
- insert:
# `id`: stable row identifier used by later layers to override this row.
- id: dsh-plugin-guide
# `name`: the module the loader imports; resolves to this package's entry (package.json#main → index.js).
name: dsh-plugin-guide要停用:从 profile patch 删掉该行,或执行 dsh plugin --profile web remove dsh-plugin-guide。
它会替我判定一个插件合不合格吗?
不会。本包是指南层,不是判定层:它解释三层问题、把检查路由到 dsh-standards,并给出证据规则。BOOST 更没有插件级的 pass/fail——实践可以登记证据,插件不会被贴「BOOST 等级」。
`recognized` 或 `static` 的结果算通过吗?
不算。recognized 只说明包形态可被识别,static 只说明做过静态预检;static ≠ runtime,not-run ≠ pass。FLOW 只跑了几个 journey 时结论是 not-run,不是软通过——也不要把 FLOW 的通过率或等级写进 README。
装上它会改动我的 profile 或别的插件吗?
不会。它只向 skills 服务注册一个技能(名字 dsh-plugin-guide,source: bundled),注册包在 ctx.effect() 里,卸载或热重载即撤销;不注册工具、命令、客户端 slot 或 webServer 前缀,不发网络请求,权限只声明 filesystem:read。
0.3.x 的老用户怎么办?
0.3.x 已标记 deprecated,但仍可安装;0.4.0 是产品切换,锁在 ^0.3 的 profile 不会自动升级。旧的构建/脚手架技能与 dsh-plugin-dev CLI 现在归 dsh-primer,本包只保留指南与路由。
检查器和规则原文在哪?
检查器与三层审计在 dsh-standards(npx dsh-standards、npx -p dsh-standards dsh-levels),规则文本在 dsh-plugin-spec。本包 package.json 里的 dsh.standards 占位仍是 entry/flow = not-run、boost = not-measured、evidence: null——那是「没测」,不是「通过」。
- 不做官方背书、认证、认可或安全审计。
- 不做评分、排名或市场门禁。
- 不伪造 runtime 证据:
static≠runtime,not-run≠pass。 - BOOST 是建议和证据,不是插件等级。
- 文本即边界。 指南只写能指向源文档的陈述;无法测量的实践(开发工时、维护成本)记成 WARN 或备注,不编数字(见 docs/boost.md)。
- 本包非官方。 没有认证、认可、安全审计、排名或市场门禁;对外措辞里不出现 official / certified / secure / recommended / ranked 一类声明(见 STANDARDS.md)。
- 权限:
package.json#dshWorkshop.permissions只声明filesystem:read。插件在apply()时读取包内SKILL.md,技能正文的相对引用通过目录型resourceBase解析到包内docs/。 - 数据:不写 workspace、不写 profile 之外的位置;不装遥测、分析、广告或托管账号,也不向 PerryLink 发送任何数据(见 PRIVACY.md)。宿主自己的会话/日志存储由宿主控制其保留策略。
- 卸载:移除包只删代码,不删宿主日志、workspace 文件或你已经产出的文档。
- 指南不产生判定。 本包没有 judge 能力:既不能把插件标成 pass,也不能把它标成 fail;判定只来自
dsh-standards实际跑出的结果。 - FLOW 运行时仍是草案。 J1/J2/J4/J6 在 fixture 上有 runtime 证据;J3/J7 只到 fixture 级 runtime;J5/J8 只有静态预检;浏览器渲染尚未覆盖——所以「只跑了几个 journey」必须写成
not-run(见 docs/flow.md)。 - BOOST 的实测样例是 fixture / 合成采集。 不是生产基线;LEV-3、LEV-6、LEV-7 证据最强,其余只有 loader/context 级 fixture;没有证据就是
not-measured(见 docs/boost.md)。 - 规则随宿主演进。 基线是 2026-11-04 的 DSH
0.2.2-alpha.3/ Cordis4.0.6-alpha.2;Node 自0.2.2-alpha.2起要求>=24.9.0;ctx.menus在0.2.2-alpha.3已移除;engines.dsh自0.2.1-alpha.4起单独决定版本走廊(见 docs/levels.md)。 dsh.standards占位不是成绩。package.json里 entry/flow =not-run、boost =not-measured、evidence: null,它只是占位。- 0.3.x 停在旧形态。 0.3.x 是 deprecated 的旧产品线;构建/脚手架能力现在在
dsh-primer,本包不再提供 CLI。
本插件不干扰其他插件:
- 无工具/命令/服务键冲突。 不注册任何工具、命令或服务键,因此不占用任何裸名,也不存在服务键冲突。
- 无 slot 与 HTTP 路由冲突。 不注册客户端 slot key,也不注册任何
webServer前缀。 - 唯一依赖是
skills服务。export const inject = ['skills'],由宿主提供;不 import 宿主实现,只消费这个服务。 - 无共享事件监听。 不监听
agent/pre-step、tools/post-execute一类顺序敏感事件,因此不存在瀑布链条被短路的问题。 - 无 patch 层冲突。 组合包 patch 只
insert自己那一行,从不覆写内置行的config。 - 无全局改写。 不改原型、不写
process.env、不替换全局 fetch dispatcher。 - 注册即 effect。
ctx.effect(() => ctx.skills.register(...)),停止或热重载即撤销贡献。
对照基线:DSH 0.2.2-alpha.3 / Cordis 4.0.6-alpha.2(docs/levels.md 记录,2026-11-04)。
| 维度 | 状态 |
|---|---|
| Harness | engines.dsh = >=0.2.2-0 <0.3.0(自 0.2.1-alpha.4 起 engines.dsh 单独决定;npm 默认 semver 需要显式 ^0.2.2-alpha.3 并集臂)。基线 DSH 0.2.2-alpha.3(npm alpha),Cordis 4.0.6-alpha.2。 |
| Node | >=24.9.0(0.2.2 线的要求,自 0.2.2-alpha.2 起) |
| 平台 | 任何 DSH 可运行处(纯文本技能;无浏览器半,无原生扩展) |
| 模型 | 不调用模型:技能文本由宿主注入上下文,无额外模型能力要求 |
- npm 包页(已发布版本,
0.4.3) - Gitee 镜像(只读快照;以 GitHub 为准)
- dsh-standards(检查器与三层审计
dsh-levels) - dsh-plugin-spec(底层规则文本与条款来源)
- dsh-primer(旧的构建/脚手架技能与 CLI)
- 本仓文档:三层地图 · ENTRY · FLOW · BOOST
- 仓库治理:CHANGELOG · STANDARDS.md · CONTRIBUTING
npm test # node --test tests/*.test.mjs
npm run test:pack # npm pack --dry-run
python scripts/gen-readme-assets.py # 重出 docs/assets 的深浅两版 hero SVG(Python + Pillow)无构建步骤:index.js 即发布产物。CI 是 .github/workflows/verify.yml(Node 22 与 24 矩阵,跑单测 + npm pack --dry-run)。配图由 scripts/gen-readme-assets.py 程序化生成,可重复执行、幂等覆盖。
| 路径 | 作用 |
|---|---|
index.js |
唯一宿主面:读 SKILL.md、剥 frontmatter、以 ctx.effect 注册技能 |
SKILL.md |
技能正文与 description(YAML frontmatter) |
docs/ |
三层地图与 ENTRY/FLOW/BOOST 指南,即技能正文的相对引用 |
locale/ |
技能的 zh/en 展示元数据(meta.title、meta.description) |
cordis.patch.yml |
bundle 补丁层,只 insert 自己一行 |
tests/ |
node --test:技能 frontmatter 解析与注册 |
scripts/gen-readme-assets.py |
程序化出图(Python + Pillow) |
STANDARDS.md · NOTICE.md · PRIVACY.md |
标准状态、NOTICE、隐私声明 |
本项目是 PerryLink 维护的 DeepSeek Harness 插件家族成员(全部 Apache-2.0)。如果这份指南帮到了你,给个 star——它不解锁任何功能,但会让下一个人更容易找到它。
- @PerryLink —— 创建者与维护者:三层地图与 ENTRY/FLOW/BOOST 指南文本、
SKILL.md技能、bundle 补丁层与五语文档。
展开全部插件
LICENSE(Apache License 2.0)© 2026 dsh-plugin-guide contributors
Apache-2.0 · 社区指南,与 DeepSeek 无关。