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

工程流程套件 kovey/dsh-engineering-suite

DeepSeek Harness
kovey35 天前有提交已提供中文文档扫描:含敏感能力

按角色规格测试质量证据编排全流程管控开发

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add kovey/dsh-engineering-suite
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · chat
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 35 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令发起外部网络请求
查看扫描证据(共 13 处,展示前 13 条)
  • 发起网络请求
    packages/dsh-deploy-gate/src/tools.ts:1091
    const reply = await seam.request({
  • 执行外部命令固定命令
    packages/dsh-eng-core/src/archive.ts:334
    const result = spawnSync('git', ['check-ignore', '-q', relative], { cwd, timeout: 10_000 })
  • 执行外部命令固定命令
    packages/dsh-eng-core/src/doctor.ts:175
    const result = spawnSync('git', ['check-ignore', '-q', relative], { cwd, timeout: 10_000 })
  • 执行外部命令固定命令
    packages/dsh-eng-core/src/doctor.ts:395
    const result = spawnSync('git', ['ls-files', `${trail}/*.json`], { cwd, timeout: 10_000, encoding: 'utf8' })
  • 执行外部命令固定命令
    packages/dsh-eng-core/src/git.ts:25
    const out = execFileSync('git', [...args], {
  • 执行外部命令来自配置/变量
    packages/dsh-eng-core/src/run.ts:24
    spawn(spec: {
  • 执行外部命令来自配置/变量
    packages/dsh-eng-core/src/run.ts:293
    const child = spawn(executable, spec.argv.slice(1), {
  • 发起网络请求
    packages/dsh-evidence-gate/src/tools.ts:327
    await seam.request({
  • 执行外部命令固定命令
    packages/dsh-knowledge-base/src/fingerprint.ts:47
    const out = execFileSync('git', [...args], {
  • 发起网络请求
    packages/dsh-spec-gate/src/tools.ts:1916
    const outcome = await approval.request({
  • 发起网络请求
    packages/dsh-standards-gate/src/tools.ts:703
    await seam.request({
  • 发起网络请求
    packages/dsh-standards-gate/src/tools.ts:994
    const decided = normalizeApprovalReply(await seam.request({
  • 发起网络请求
    packages/dsh-supply-chain-gate/src/tools.ts:898
    await seam.request({
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 角色与规格管理
  • 测试设计与质量门禁
  • 证据与审计轨迹

DeepSeek Harness 工程套件:七个插件,覆盖角色、规格、测试设计、质量门禁、证据、审计轨迹和流水线编排

README

由 DeepSeek 最新模型翻译生成
dsh-engineering-suite v0.2.3 · 兼容基线 @deepseek-ai/dsh- >=0.2.0-rc.1 <0.2.1-0(cordis ~4.0.4;已在 0.2.0-rc.2 上验证) · 变更记录 · 升级指南 · 验证证据 把 docs.md 描述的「Agent 时代软件工程落地方案」实现为一组可独立挂载的 DeepSeek Harness(dsh)插件:角色 → 规格 → 测试设计 → 实现 → 质量 → 证据 → 审计 → 编排,每个关注点一个插件,全部通过官方插件契约接入,不改 dsh 核心。 规格澄清 ─ 测试设计评审 ─ 规格审批 ─ 实现 ─ 质量验证 ─ 交付审计 │ │ │ │ │ │ spec-gate test-design- spec-gate role- quality- evidence-gate gate guard gate audit-trail │ │ 规范/影响/覆盖率/供应链(四个新增门禁) └──────── orchestrator(顶层编排)────────┘
展开完整文档(README 剩余 1 节)
dsh-engineering-suite

v0.2.3 · 兼容基线 @deepseek-ai/dsh- >=0.2.0-rc.1 <0.2.1-0(cordis ~4.0.4;已在 0.2.0-rc.2 上验证)
· 变更记录 · 升级指南 · 验证证据

把 docs.md 描述的「Agent 时代软件工程落地方案」实现为一组可独立挂载的 DeepSeek Harness(dsh)插件:角色 → 规格 → 测试设计 → 实现 → 质量 → 证据 → 审计 → 编排,每个关注点一个插件,全部通过官方插件契约接入,不改 dsh 核心。

规格澄清 ─ 测试设计评审 ─ 规格审批 ─ 实现 ─ 质量验证 ─ 交付审计 │ │ │ │ │ │ spec-gate test-design- spec-gate role- quality- evidence-gate gate guard gate audit-trail │ │ 规范/影响/覆盖率/供应链(四个新增门禁) └──────── orchestrator(顶层编排)────────┘

11 个插件各自回答一个可判定的问题:做的是不是对的(spec-gate / test-design-gate)、 谁在做、权限对不对(role-guard)、能不能跑(quality-gate)、还可维护吗(standards-gate)、 这次改动碰了什么(impact-gate)、测试有没有用(coverage-gate)、能不能上生产 (supply-chain-gate)、能不能证明(evidence-gate / audit-trail)、按不按流程走(orchestrator)。

六阶段视图

套件按 规划 → 实现 → 测试 → 交互 → 交付 → 部署 组织;每个阶段都有插件承担、有产物留下、有门禁收口,所以「缺了哪一段」是看得见的,而不是没人注意到的空白:

| 阶段 | 承担者 | 收口门禁 |
| 规划 | spec-gate(需求/验收标准/边界/负面约束/增改删/里程碑/跨 mission 台账/ADR/非功能预算)、test-design-gate、impact-gate | spec-approved、test-design |
| 实现 | role-guard(权限/模型/派发)、standards-gate(规范棘轮)、quality-gate(写后 lint)、supply-chain-gate、audit-trail | standards-pass(可选) |
| 测试 | quality-gate(跑命令 + 指标预算 + 契约冒烟)、coverage-gate(覆盖率/增量/flaky/变异)、impact-gate(最小回归集 + flaky 隔离计划)、test-design-gate | quality-pass |
| 交互 | interaction-gate(ask/notify/progress + 通道注册 + 决定台账)、宿主的 approval 接缝 | 横切,无阶段门禁 |
| 交付 | evidence-gate(证据→门禁→回执/发布台账)、audit-trail、orchestrator(回执门禁) | receipt |
| 部署 | deploy-gate(环境清单 → go/no-go → 人工批准 → 执行 → 上线后验证 → 回滚) | deploy-go、deploy-verified |

非功能预算(p95、包体积、迁移耗时)写在规格里:随规格一起审批、能追溯到需求 ID、由 budget_check 测量;宿主配置与规格声明同 id 时宿主生效但差异会被报告,requireSpecBudgets 打开后「声明了却没验证」的预算会拦住交付。

先问「我们在哪、缺什么」:bash scripts/doctor.sh(人/CI,必需项缺失时退出码 1)或会话里的 suite_status(同一份判定,另加运行时事实:哪些插件挂载、当前阶段、待审批、通道能力)。
每条发现都带下一步的确切命令。

包一览

| 包 | 插件 id | 职责 | 关键工具 |
| dsh-eng-core | —(库) | 共享运行时:mission 工件、确定性命令执行、git 指纹、审计 JSONL、日志、扫描器、代码度量、变更影响、审批契约、fake host 测试夹具 | — |
| dsh-role-guard | role-guard | 角色文件(persona/模型/工具/技能白名单)+ 最小权限派发 + 只读评审服务 | team_delegate、role_list |
| dsh-spec-gate | spec-gate | 结构化规格 + 人工审批 + 写操作前置拦截 + 需求增改删 + 非功能预算(p95/体积/迁移耗时) + 跨 mission 规划台账 + 里程碑 + ADR | spec_create、spec_approve、spec_amend、spec_status、spec_bootstrap、plan_status、adr_record、adr_list |
| dsh-test-design-gate | test-design-gate | 把测试设计嵌进规格并自动评审(覆盖度/场景完整性/可执行性) | test_design_review、test_design_template |
| dsh-quality-gate | quality-gate | 宿主配置命令的三态门禁 + 写后 lint 回路 + 收尾阻断 + 指标预算与契约冒烟 | quality_gate_run、quality_gate_status、budget_check、contract_check |
| dsh-evidence-gate | evidence-gate | Mission → Evidence → Gate → Receipt,缺失证据 fail closed | evidence_record、evidence_status、mission_complete |
| dsh-audit-trail | audit-trail | 全量工具调用 JSONL 审计 + 写前快照 + 按轮次回滚 | audit_report、audit_rewind |
| dsh-orchestrator | orchestrator | 阶段流水线、入口/出口门禁、回退、熔断、断点恢复、按难度选模型、阶段自主派发 | orchestrate |
| dsh-interaction-gate | interaction-gate | 交互层:统一 ask / notify / progress,多通道注册、一次性 token、决定台账、fail-closed 超时 | interaction_ask、interaction_notify、interaction_progress、interaction_status |
| dsh-suite-doctor | suite-doctor | 统一入口与自检:阶段、门禁配置、缺失项、待审批、台账规模(离线判定 + 运行时事实) | suite_status |
| dsh-deploy-gate | deploy-gate | 部署层:环境清单、go/no-go、人工批准、灰度/回滚、上线后验证、部署台账 | deploy_plan、deploy_run、deploy_verify、deploy_rollback、deploy_status |
| dsh-standards-gate | standards-gate | 代码规范门禁:仓库自有阈值、基线棘轮、只读结构评审 | standards_check、standards_bootstrap、standards_review、standards_status |
| dsh-impact-gate | impact-gate | 变更影响分析:反向依赖闭包、最小回归测试集、风险分级、flaky 隔离计划(带 owner 与到期) | impact_analyze、impact_tests、impact_status、flaky_plan、flaky_status |
| dsh-coverage-gate | coverage-gate | 测试有效性:覆盖率(含增量)、flaky 检测、变异测试(存活变异体逐条列出) | coverage_check、flaky_check、coverage_status、mutation_check |
| dsh-supply-chain-gate | supply-chain-gate | 密钥扫描(分级+脱敏)、新增依赖人工审批、依赖审计 | secret_scan、dependency_audit、supply_chain_status |

快速开始

1. 本地依赖(npm registry 不可用时用软链指向已安装的 harness) bash scripts/link-deps.sh

2. 构建 + 全量测试 bash scripts/test-all.sh

3. 挂载到本地 dsh profile(默认 headless + nvim-tui,绝不碰生产 profile tui) bash scripts/install-into-dsh.sh --dry-run # 先看要改什么 bash scripts/install-into-dsh.sh

4. 重启会话,在 TUI 里 /plugins 应能看到 14 个 bundle

正常有 npm registry 时,也可以在每个包的目录里 pnpm install 后用 dsh plugin --profile <name> add <包路径> 挂载(脚本做的是同一件事)。

一条 mission 的完整生命周期

1. spec_create 写 .dsh/specs/<mission-id>.md(验收标准 AC-00x / 文件边界 / 负面约束 / 测试设计)
2. test_design_review 解析规格里的测试设计,检查覆盖度 / 三类场景 / 可执行性 → mission.testDesign.passed
3. spec_approve 通过 approval seam 请人审批 → mission.spec.approvedAt 落章(在拿到审批之前,任何 write/edit 调用都会被 spec-gate 直接拒绝)
4. team_delegate(role) 按角色派发实现/审查:子 Agent 的工具白名单由宿主强制(白名单外不可见、不可调用)
5. evidence_record 把命令输出摘要、git diff 指纹、测试报告登记为证据
6. quality_gate_run 执行宿主配置的 pnpm test / typecheck / lint → PASS | WARN | BLOCK (门禁必须不早于最新的 command/test 证据,否则算证据陈旧并阻断;重跑门禁即可自愈)
7. mission_complete 规格已审批 + 门禁 PASS + 必需证据齐备,才签发不可变回执(receipts/<id>.json),mission → delivered
8. audit_report/rewind 随时审计“谁在什么上下文下改了什么”,必要时按轮次回滚工作区

编排插件把上面每一步变成一个阶段,并用 orchestrate 推进;门禁不通过时回退到上一个合适阶段(超过 maxAttempts 则熔断并把 mission 标为 blocked,绝不无限循环)。

工件布局(全部落在被治理的仓库里,可 commit、可 diff、可审计)

.dsh/
specs/<mission-id>.md 规格工件(docs.md §3.2 规定路径) missions/<mission-id>/ mission.json 版本化的 mission 状态(跨插件共享契约) evidence.jsonl 只追加的证据账本 gates/<gate-id>.json 每次门禁的裁决与命令输出摘要 receipts/<receipt-id>.json 不可变交付回执 stages/<stage-id>.json 编排阶段结果(断点恢复依据)
test-design-review.{json,md} 测试设计评审报告
audit/<session-id>.jsonl 工具调用审计(含参数/结果摘要与指纹) audit/snapshots/… 写前快照(rewind 用) state/sessions/<session-id>.json 会话 → mission 绑定 roles/.md 工作区自定义角色

按项目配置(一个进程服务多个仓库)

profile 的 loader 行是上限,每个仓库可用自己仓库里的文件细化(人类提交、可 review):

| 文件 | 典型用途 |
| .dsh/quality-gate.json | 这个仓库跑哪条测试/lint 命令、改动预算、收尾阻断次数 |
| .dsh/spec-gate.json | 这个仓库被管多严({"enforce": false} = 试验仓库不拦写) |
| .dsh/evidence-gate.json | 必填证据类型、门禁来源、是否核对工作区指纹 |
| .dsh/test-design-gate.json | 测试设计评审口径(minTextLength/strict/allowDanglingCase/requireAllScenarios) |
| .dsh/audit-trail.json | 是否快照、快照上限、哪些工具不进审计 |

// <仓库>/.dsh/quality-gate.json { "commands": [{ "id": "test", "command": "cargo test", "required": true, "phase": "gate" }] }

不确定写什么?让脚本按项目类型生成(先 dry-run 看内容,再 --write):

bash scripts/project-config.sh # 打印将写入的 JSON(不改文件) bash scripts/project-config.sh --write # 写 <仓库>/.dsh/quality-gate.json bash scripts/project-config.sh --write --spec off # 试验仓库:再写 spec-gate.json 关闭写拦截 bash scripts/project-config.sh --write --test "pnpm vitest run" --lint "pnpm eslint ." 识别 Cargo.toml / go.mod / pyproject.toml·tests/ / package.json(pnpm·yarn·npm)/ Makefile:test; lint 命令一律标成非必需(缺脚本只 WARN,不阻断交付);已存在的文件不加 --force 不会覆盖。

日志按项目分文件

一个进程服务多个仓库时,默认单文件会在行内标注项目名([repo])以便 grep;要让每个项目写自己的文件:

- id: quality-gate
config:
{projectPath} 完全可读(推荐):~/workspace/deepseek/dsh-project → workspace-deepseek-dsh-project logFileTemplate: '~/.dsh/logs/{projectPath}/quality-gate.log'
或者更短、仍唯一:{project} = deepseek-dsh-project-44002d(末两段 + 6 位短哈希)
或者只按目录名:{basename} = dsh-project(同名目录会共用文件)
未绑定工作区的行(装配日志等)仍写进 logFile,不会丢。
logFile 与 logFileTemplate 都是 host-only:项目文件改不了它们(否则一个仓库能把自己的日志藏起来)。

规则:可覆盖键白名单(写别的键会被忽略并记日志,绝不静默生效);文件损坏 → 回退 profile 配置;配置文件在信任根里(.dsh/** 对写类工具关闭),所以模型无法把自己的门禁调松;每个 status 工具都会显示"配置来源:项目级 …/profile"。细节见 docs/ARCHITECTURE.md §5.2。

设计红线

1. 门禁的确定性来源是宿主配置:命令、白名单、上限都来自插件 Config;模型不能临时编造门禁命令。
2. fail closed:证据缺失 / 门禁未跑 / 状态不确定 → 阻断,并给出可执行的下一步。
3. 不可见优于被拦截:角色白名单通过宿主 toolFilter 生效,越权工具在子 Agent 的工具列表里根本不存在。
4. 防死循环:所有“阻断并要求修复”的路径都有次数上限 + 状态指纹去重。
5. 不改 dsh 核心:只用 ctx.tools.register()、ctx.tools.guard()、ctx.on()、ctx.effect()、
ctx.systemPrompt.section()、ctx.get() 等官方契约。

细节见 docs/ARCHITECTURE.md(分层与协作契约)、 docs/PLUGIN-CONVENTIONS.md(新增插件的接口约定)、 docs/VERIFICATION.md(验证记录与复现步骤)、 docs/KNOWN-LIMITS.md(七项已知边界的现状、启用方式与验证方法)。

开发

bash
bash scripts/doctor.sh # 自检:这个仓库还缺哪些门禁配置(必需项缺失时退出码 1) bash scripts/verify.sh # 全量验收:typecheck + 各包单测 + 跨包集成测试 bash scripts/e2e-mission.sh # 端到端:脚本化 stub 模型驱动真实 harness 跑完一条 mission(无需 API key) bash scripts/typecheck-all.sh # 仅类型检查 bash scripts/build-all.sh # 只编译指定包:build-all.sh dsh-spec-gate bash scripts/test-all.sh dsh-spec-gate # 单包测试 bash scripts/archive-missions.sh --dry-run # 台账只增不减:把旧的已交付 mission 归档(先 dry-run)
DSH_ENG_DEBUG=1 <启动 dsh> # 让插件的文件日志同时镜像到 stderr

各包的 README 说明自己的配置项、工具参数与协作面;docs/PLUGIN-CONVENTIONS.md 是新增插件时必须遵守的接口契约; docs/VERIFICATION.md 记录验证证据与复现步骤,docs/KNOWN-LIMITS.md 逐条列出机制测不到的边界(这比「全都支持」更有用),UPGRADE.md 是升级指南。

当前规模:12 个包(11 个插件 + 1 个共享库)、102 个源文件约 34k 行、17 个测试文件约 14k 行, 498 个测试(497 通过 / 0 失败 / 1 如实跳过);端到端在真实 harness 上验证—— 11 个插件全部 applied 并跑完一条 mission(scripts/e2e-mission.sh,脚本化模型,无需 API key)。
预览分享卡片长什么样 ↓kovey/dsh-engineering-suite
分享 · DeepSeek Harness Hub
kovey/dsh-engineering-suite

按角色规格测试质量证据编排全流程管控开发

这是你的仓库?认领条目

回到顶部