dsh-crew 是 DeepSeek Harnessdsh的插件。它把你的 dsh 会话变成产品经理PM,由 PM…
38.3/100
综合分
6
GitHub 星标
497
npm 周下载
—/5
用户评分
数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-crewnpm 源 · dsh-crew 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 13 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-crew @ 0.13.0
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 08:18:42
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 25 处,展示前 23 条)
- 读取本地文件host/crew.js:122
entries = readdirSync(join(target, prefix), { withFileTypes: true }); - 读取本地文件host/crew.js:136
mine = readFileSync(join(target, rel), "utf8"); - 读取本地文件host/crew.js:142
shipped = readFileSync(join(source, rel), "utf8"); - 读取本地文件host/crew.js:173
if (!existsSync(source)) throw new Error(`dsh-crew: shipped preset missing at ${source}`); - 读取本地文件host/crew.js:176
if (existsSync(target)) { - 读取本地文件host/crew.js:177
if (!existsSync(stamp)) return `dsh-crew: left the existing "${PRESET_ID}" preset alone (not written by dsh-crew)`; - 删除本地文件递归host/crew.js:180
rmSync(target, { recursive: true, force: true }); - 写入本地文件host/crew.js:183
mkdirSync(dirname(target), { recursive: true }); - 写入本地文件host/crew.js:185
writeFileSync(stamp, `${version}\n`); - 写入本地文件host/crew.js:192
mkdirSync(dirname(backup), { recursive: true }); - 写入本地文件host/crew.js:193
writeFileSync(backup, contents); - 读取本地文件host/git-guard.js:224
if (!existsSync(dir)) return undefined; - 读取本地文件host/git-guard.js:227
entries = readdirSync(dir).filter(entry => /\.ya?ml$/i.test(entry)); - 读取本地文件host/git-guard.js:234
text = readFileSync(join(dir, entry), "utf8"); - 读取本地文件host/git-guard.js:318
if (!existsSync(approvalFile)) { - 删除本地文件host/git-guard.js:325
rmSync(approvalFile); - 读取本地文件host/jobs.js:50
if (!existsSync(file)) return undefined; - 读取本地文件host/jobs.js:53
state = JSON.parse(readFileSync(file, "utf8")); - 读取本地文件host/jobs.js:78
touched: statSync(file).mtime.toISOString().slice(0, 16).replace("T", " "), - 读取本地文件host/jobs.js:91
if (!existsSync(root)) return ""; - 读取本地文件host/jobs.js:95
entries = readdirSync(root, { withFileTypes: true }).filter(entry => entry.isDirectory()); - 读取本地文件host/roles.js:203
if (!existsSync(candidate)) continue; - 读取本地文件host/roles.js:204
const text = readFileSync(candidate, "utf8").trim();
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tool-subagent给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 调度多角色智能体
- 角色间文件共享协作
- 覆盖开发变更全流程
dsh 插件:把工作交给一小队角色智能体(产品经理、研究员、架构师、工程师、QA、代码审查、安全审查、文档审查),它们通过磁盘上的文件共享工作
最近更新
在 GitHub 查看全部 →v0.13.02026-10-21
· 任务文档不再落到你的项目文件夹里。开篇文档、设计、任务表、每份 ADR 和 CRD、边界契约和发布计划现在都放进临时文件夹:/dsh-crew///。是你的系统临时文件夹——没人设置时就是 /tmp——是你的项目完整路径,斜杠写成 -。项目文件夹只保留代码、qa/ 和随包发布的四个文件:README.md、CHANGELOG.md、CLAUDE.md 和 principles.md。任务文档在任务运行期间被读取,任务结束后没有任何东西保留它们。
· 中文 README 没了。README-zh.md 已删除,随之而去的是「两个 README 内容一致、同一次提交」这条规则。README.md 是唯一的 README,用英文。语言不是英文的任务仍会自己写一份翻译版 README,没有任何东西让那一页和英文版保持同步。
· 任务表每个任务一份,不是每个仓库一份。临时文件夹带任务名,所以每个任务开自己的表,从不读早先任务的表。
· 不再有任何东西检查 Verdicts 行。PM 仍会写它,任务结束时仍会给你每个任务打印一行。消失的是红色标记:某个任务缺值,或某个 not run 破折号后没写原因,都不会标红。qa/gaps.md 里写明了这一点。
v0.12.02026-10-15
· 修复
· Crew 预设现在会出现在 dsh 0.2.x 的预设选择器里,此前它一直被静默关闭。声明行由 @deepseek-ai/dsh-agent-preset 承载,并用一行 disabled: 把自己关掉。一行的 disabled 是针对加载器上下文求值的,而加载器上下文看不到注册表服务——只有一行 config 里的 !!js 表达式才能看到该插件自己的上下文。于是这个表达式在每个 dsh 上都为真,这一行在每个 dsh 上都被禁用,dsh 保留了一条激活失败的声明,失败「在名单上带着它的诊断信息」,而不是让配置档失败。症状就是预设缺失且没有报错,偏偏出现在唯一没有别处可放它的那一代:0.2.x 从不读取 $DSH_HOME/.agent-presets。
- 这一行现在由 host/crew-preset.js 承载,也就是这个包自己的插件,而且完全不带 disabled: 行。检查在该插件内部运行,ctx.get('agentPresets') 会针对这一行声明的注入来解析。
- dsh 0.1.x 上没有任何变化。那一代从不读取声明行;插件在那里什么都不做,文件夹安装就是全部——和以前一样的形态,现在真正走通了。
- 预设自身的内容没有动:同样的 id: crew,同样的 order,同样的 name 和 description,同样的 plugins: 列表,同样两处偏差。
· 变更
· 任务文件夹移到了仓库内部。它以前位于 ~/.dsh/crew/jobs//,每个任务一个文件夹,离项目很远。现在它位于 /.dsh-crew/jobs//,就在本次会话所工作的仓库根目录下——和任务文档在同一处,所以一条 ls 就能看到你正在做的任务,任务的进度也不会再被误认成别的仓库的。任务本身的形态没有任何变化:文件夹仍然是一次性的。PM 在往里写任何东西之前,先往仓库自己的 .git/info/exclude 里写一行,这样 git status 保持干净,文件夹永远不会被暂存、永远不会被提交,任务结束时整个丢弃。用 info/exclude 而不是项目的 .gitignore,是因为那一行说的是这个 crew 把进度放在哪里,而不是项目构建什么,也因为它被每个工作树共享——所以配对任务的两个树看到同一条规则。
- 以前没提交的东西,现在依然不提交。state.json 在每一步之后都会重写;提交它等于把一个每步都变的文件摆到每个评审者和每个读者面前。它仍然是进度,这个任务留下的记录仍然是 docs/ 里的那一份。
- 默认值现在是相对路径 .dsh-crew/jobs,相对会话运行所在的文件夹解析。把 dsh-crew-core 行里的 jobsDir 设成绝对路径(或以 ~/ 开头),就能把任务文件夹放到别处,和以前完全一样。
- 未完成任务提示的行为不变。留在文件夹里的任务仍然会在每次会话开始时摆到 PM 面前,只是现在给出的是解析后的绝对路径,而不是 ~ 路径。
v0.11.02026-10-15
· 新增
· Crew 预设现在在 dsh 0.2.x 上有了,此前它一直悄悄缺失。dsh 0.2.x 用 @deepseek-ai/dsh-agent-preset 替换了 @deepseek-ai/dsh-agent-presets 注册表,旧注册表的老家 $DSH_HOME/.agent-presets 已经完全不再读取。用新注册表自己的话说:它「既不扫描目录,也不接受预设路径」。现在预设是配置档组合里的一行声明,插件从自己的 bundle 补丁里插入这一行来交付预设。dsh-crew 以前只写文件夹,所以在 0.2.x 上插件能加载,PM 提示词和守卫都正常,但 Crew 从不出现在预设选择器里。插件的 bundle 补丁现在也声明了预设,选择器又能提供它了。
· dsh 0.1.x 上没有任何变化。文件夹安装保持原样,新行在旧注册表被加载的地方会自行禁用,所以 0.1.x 的配置档永远不会被要求装一个它没有的包。
· 预设故意写了两遍。两代 dsh 的插件列表不同——单是 persona 行在 0.1.x 里接收 text,在 0.2.x 里接收 prefix/suffix——所以两个声明无法互相推导。因此角色过滤(roleAllow、roleDeny、roleModels)必须设在你的 dsh 读取的那个文件里:0.1.x 上是 $DSH_HOME/.agent-presets/crew 下的预设副本,0.2.x 上是插件 cordis.patch.yml 里的 preset-crew 行。两处都加了注释说明。
· tools/verify-mount.mjs 让新声明遵守与旧声明相同的规则:crew 角色已挂载,子代理控制工具都在,没有第二条启动智能体的路径重新打开,预设保持 crew 身份,web fetch 保持关闭。
· 移除
· PM 写入守卫没了:host/pm-write-guard.js、它在 cordis.patch.yml 里的行,以及它的检查 tools/verify-pm-write-guard.mjs。它阻止根会话——也就是 PM——对每个不在硬编码白名单上的文件使用 write 和 edit,并逐个要求你批准每次这样的写入。那个白名单比 PM 自身规则给它的写入集合更窄,所以守卫不断询问规则本就允许的写入——README.md 和 CHANGELOG.md 就在其中。这次移除的是强制执行,不是规则:roles/pm.md 仍然写明 PM 可以写哪些文件。这也回退了 docs/design/prd-2026-08-23-pm-write-guard.md。
· git 守卫未动,插件现在只带一个守卫。它仍然负责拦截 crew 角色的 push、tag push、force push、远程删除和包发布。SECURITY.md 和 CLAUDE.md 描述的就是这一个。
· 如果你自己的配置档补丁针对行 id dsh-crew-pm-write-guard,删掉那个补丁。插件不再带该行加载的模块,而一行指向包未导出模块的声明无法解析。
· npm test 不再运行 tools/verify-pm-write-guard.mjs。测试套件里没有其他东西依赖它,也没有 QA 用例依赖它。
· 修复
· git 守卫根本没在守你的 crew 角色。它通过查看工具调用的 exec.parent 来判断谁是 PM,而在 dsh 里这个 token 标记的是嵌套子调用,不是父智能体:PM 自己的嵌套调用会设置它,每个 crew 角色都没有。于是每个角色都被读成 PM,守卫里信任 PM 的那一个分支就让子角色直接 push 受保护分支、push tag、force push、删除远程或发布包。守卫现在读取智能体自己的会话:crew 角色的会话会命名一个父会话,PM 的不会。每个子角色重新受到守卫,守卫自己的检查——它犯了同样的错误,把每个被拦截的用例都报成通过——现在也能看到子角色了。
· PM 相关的行为不变。它的 git 和发布命令仍然直接放行,trustRootAgent: false 仍然像对待子角色一样守它。
· 如果你之前依赖某个角色能 push,那个能力没了。它从来不是设计的一部分:子角色的 push 需要用户创建的一次性批准文件,正如 SECURITY.md 所述。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-crew
版本 0.13.0。
dsh-crew 是 DeepSeek Harness(dsh)的插件。它把你的 dsh 会话变成产品经理(PM),由 PM 带一支角色智能体团队:架构师、工程师、测试工程师、代码工程师、QA、代码评审、安全评审、文档评审、研究员。
它是什么
你跟 PM 对话。PM 为具体工作启动角色智能体。任务文档放在项目之外的文件夹里,项目文件夹保持干净。任务运行期间读取这些文档,任务结束后不再保留。留在项目里的文件只有随插件发布的五个:两份 README、CHANGELOG.md、CLAUDE.md 和 principles.md。
两条通道:
- ask —— 你想要答案。PM 直接回答。什么都不改。
- team —— 你想要改动。PM 带团队干活:每个改动一个任务,一轮 QA,每类评审各一轮,然后提交。推送和发布仍然每次都要你点头。
安装
dsh plugin --profile tui add dsh-crew # or --profile web
重启 dsh。给会话选 Crew 预设。
快速开始
1. 安装插件(见上)。
2. 重启 dsh。
3. 在 Crew 预设上新建会话。你的会话就是 PM。
4. 提个问题,或者提个改动需求。
配置
全部可选。
展开完整文档(README 剩余 1 节)
dsh-crew 版本 0.13.0。 dsh-crew 是 DeepSeek Harness(dsh)的插件。它把你的 dsh 会话变成产品经理(PM),由 PM 带一支角色智能体团队:架构师、工程师、测试工程师、代码工程师、QA、代码评审、安全评审、文档评审、研究员。 它是什么 你跟 PM 对话。PM 为具体工作启动角色智能体。任务文档放在项目之外的文件夹里,项目文件夹保持干净。任务运行期间读取这些文档,任务结束后不再保留。留在项目里的文件只有随插件发布的五个:两份 README、CHANGELOG.md、CLAUDE.md 和 principles.md。 两条通道: - ask —— 你想要答案。PM 直接回答。什么都不改。 - team —— 你想要改动。PM 带团队干活:每个改动一个任务,一轮 QA,每类评审各一轮,然后提交。推送和发布仍然每次都要你点头。 安装 dsh plugin --profile tui add dsh-crew # or --profile web 重启 dsh。给会话选 Crew 预设。 快速开始 1. 安装插件(见上)。 2. 重启 dsh。 3. 在 Crew 预设上新建会话。你的会话就是 PM。 4. 提个问题,或者提个改动需求。 配置 全部可选。设置放在两处: - 配置档 cordis.patch.yml 里的 dsh-crew-core 和 dsh-crew-git-guard 两行:角色文件夹、活跃智能体上限、评审轮数、任务文件夹、git guard。 - dsh-crew-roles 行:每个角色用哪些工具和模型。这一行放在哪个文件,取决于你的 dsh 版本。dsh 0.1.x 上,它是插件自带预设副本里的 ~/.dsh/.agent-presets/crew/agent.cordis.yml。dsh 0.2.x 只读预设行,从不读那个文件夹,所以它在插件自己的 cordis.patch.yml 里的 preset-crew 行;配置档的 cordis.patch.yml 可以按这个行 id 覆盖它。在你 dsh 实际读取的那个文件里设置角色过滤。 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
stuarthu/dsh-crew
dsh-crew 是 DeepSeek Harnessdsh的插件。它把你的 dsh 会话变成产品经理PM,由 PM…
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目