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

需求对齐护栏 jiezeng2004-design/dsh-requirements-alignment

DeepSeek Harnessv0.4.2
jiezeng2004-design34 天前有提交已提供中文文档扫描:含敏感能力

阻止长时间运行的 Agent 悄悄改变你的需求。

37.5/100
综合分
8
GitHub 星标
265
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-requirements-alignment
npm 源 · dsh-requirements-alignment 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · skill
装得上吗
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 34 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

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

✓npm 包dsh-requirements-alignment @ 0.4.2
✓Node 引擎要求 >=22.18.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

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

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 21 处,展示前 19 条)
  • 写入本地文件
    lib/align-driver.js:63
    mkdirSync(dirname(recordPath), { recursive: true });
  • 写入本地文件
    lib/align-driver.js:64
    appendFileSync(recordPath, JSON.stringify(line) + '\n', 'utf8');
  • 写入本地文件
    lib/scripted-provider.js:33
    mkdirSync(dirname(recordPath), { recursive: true });
  • 写入本地文件
    lib/scripted-provider.js:34
    appendFileSync(recordPath, JSON.stringify(line) + '\n', 'utf8');
  • 发起网络请求
    lib/client.js:198
    const response = await fetch(API + path, { cache: 'no-store' });
  • 发起网络请求
    lib/client.js:204
    const response = await fetch(API + path, {
  • 写入本地文件
    lib/migration.js:339
    await mkdir(dirname(target), { recursive: true });
  • 写入本地文件
    lib/migration.js:340
    await writeFile(target, artifactBytes);
  • 删除本地文件递归
    lib/migration.js:369
    await rm(root, { recursive: true, force: true }).catch(() => { });
  • 写入本地文件
    lib/migration.js:375
    await rename(tempPath, targetPath);
  • 删除本地文件
    lib/migration.js:381
    await rm(targetPath, { force: true });
  • 写入本地文件
    lib/migration.js:382
    await rename(tempPath, targetPath);
  • 读取本地文件
    lib/migration.js:385
    await readFile(backupPath).then((bytes) => writeFile(targetPath, bytes)).catch(() => { });
  • 写入本地文件
    lib/migration.js:385
    await readFile(backupPath).then((bytes) => writeFile(targetPath, bytes)).catch(() => { });
  • 读取本地文件
    lib/migration.js:425
    bytes = await readFile(artifactPath);
  • 读取本地文件
    lib/migration.js:429
    bytes = await readFile(staged);
  • 写入本地文件
    lib/migration.js:491
    await mkdir(dirname(tempPath), { recursive: true });
  • 删除本地文件
    lib/migration.js:531
    await rm(tempPath, { force: true }).catch(() => { });
  • 删除本地文件
    lib/migration.js:541
    await rm(tempPath, { force: true }).catch(() => { });
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-commands@deepseek-ai/dsh-session@deepseek-ai/dsh-session-persistence@deepseek-ai/dsh-session-persistence-jsonl@deepseek-ai/dsh-settings@deepseek-ai/dsh-storage@deepseek-ai/dsh-storage-domain
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 执行前对齐关键决策
  • 阻止需求被悄悄改变

为 DeepSeek Harness 做轻量需求对齐——执行前先对齐关键决策,无需完整规格工作流。

v0.5.0-rc.12026-09-29预发布
· dsh-requirements-alignment 0.5.0-rc.1 DeepSeek Harness 0.1.7-rc.2 的候选发布版(发布准备时 npm latest 版本)。此版本与旧版 DSH 宿主 API 不兼容。 · 变更内容 · 智能体初始化适配 DSH 的 awaited agent/created 生命周期,并声明插件自己的手动消息源。 · 共享模式持久化迁移到当前的 SettingsForms / ConfigEditor 契约。runtimeMode: null 会重置为配置档默认值,同时保留其他设置。 · 更新 Web 客户端依赖图,新增当前宿主回归检查和服务集成检查。 · 从不支持的旧存储格式迁移时,保持 fail-closed。 · 安装 dsh plugin --profile web add dsh-requirements-alignment@0.5.0-rc.1 · 验证与限制 本地 typecheck、lint、build、233 项适用测试、打包后的 CLI/Web HTTP 验收均通过。发布前必须跑通确切发布提交的 Windows/Ubuntu × Node 22.18/24 CI 矩阵。此 RC 未验证真实浏览器胶囊交互和外部模型补全。15 个历史存储夹具使用已退役的宿主 API,不计入当前测试数;现代持久化和迁移拒绝已单独检查。 发现 bug 或有想法?开 Issue。欢迎 Pull Request。
v0.4.22026-08-28
· 亮点 本次发布包含 v0.4.1 的 Web 浮动胶囊和会话级对齐模式改动(此前已打标签但未发布到 npm),以及 v0.4.2 对 DSH 0.1.1-rc.2 的兼容和客户端图修正。 · 新增 Web 浮动胶囊,用于控制会话/共享对齐模式,并给出紧凑的状态反馈。 · 保留浏览器服务槽位和语言界面,同时移除无效的包级 ui-slots 客户端注入。 · 修复 IPv6 回环地址的 Origin 和 Host 处理,并补上回归测试。 · 让包和内部试用环境对齐 DSH 0.1.1-rc.2 与 Node.js 22.18 或更高版本。 · 加强清单、迁移、管理 API 和渲染客户端的回归测试覆盖。 · 验证 · 本地类型检查、lint、构建和测试:236/236 通过。 · GitHub Actions:Windows 和 Ubuntu 在 Node.js 22.18.0 和 24 上均通过。 · 打包后的 DSH 生命周期冒烟测试:64/64 通过,覆盖确定性安装、组合、模式切换、基线、移除和清理路径。 · 浏览器交互证据记录在发布验收文档中;发布期间未重新跑一遍。 · 未跑外部模型 E2E,因为这次的一次性发布环境刻意没有放模型凭据。 · 安装 npm install dsh-requirements-alignment@0.4.2 详细的兼容与验证说明见 CHANGELOG.md 和 ACCEPTANCE.md。
v0.3.02026-08-20内容较长已截断
· 0.3.0 - 2026-08-20 · 新增(持久化运行时模式与热切换) · ModeStore(src/mode-store.ts)—— 运行时对齐模式的唯一权威。三层模型:有效的持久化覆盖 -> 有效的配置档默认值 -> auto。提供 getSnapshot()(默认值 / 覆盖值 / 生效值 / 来源)、setOverride、resetOverride 和 subscribe;存储的覆盖值无效时回退到配置档默认值并修复(启动绝不失败;后续出现的无效值同样修复)。 · 基于设置的覆盖持久化(src/settings-mode-store.ts)—— 运行时覆盖通过官方 @deepseek-ai/dsh-settings 服务持久化(新增依赖,rc.6;不改动 DSH Core)。DSH 重启后恢复上次覆盖;宽松的存储 schema 加上 ModeStore 校验,保证无效的持久化值(例如 mode: banana)保持惰性,外部 settings.yaml 热编辑会实时生效。没有设置服务的部署降级为仅入口端口。 · AlignmentRuntime(src/runtime-mode-controller.ts)—— 真正的 register/dispose 热切换。Auto 注册策略段、两个工具、/align 和 /align-migrate;Manual 注册工具加两个命令;Off 注销这些。 /align-mode 始终注册,因此实时切到 Off 可逆。切换幂等,构造上恰好一个,且失败安全(部分注册被释放,恢复上一模式)。 · /align-mode —— 面向用户的模式切换,不需要 DSH Core 设置卡片。不带参数打印三层快照;auto / manual / off 持久化运行时覆盖;reset 回到配置档默认值。 /align 现在会说明生效模式是配置档默认值还是运行时覆盖。 · 控制器集成(src/index.ts)—— RequirementsAlignmentController 现在持有 AlignmentStateStore(sidecar 不变)、ModeStore 和 RuntimeModeController。新增 setMode(mode)(校验 → 切换 → 持久化,持久化失败则回滚)和 resetMode();启动时的覆盖立即生效。 · 模式持久化独立于对齐状态持久化。切换模式绝不删除基线、sidecar 或会话事件。 · 修复(外部切换失败补偿) · 热编辑的设置文档在运行时切换失败时(例如 Auto 策略注册出错),不再留下 ModeStore/Runtime 脑裂({ effective: auto, runtime: manual })。控制器串行化热切换协调,切换失败时把持久化的用户层恢复到上一快照的来源——来源为配置档的上一快照通过重置覆盖恢复(不写入 mode: 键),来源为覆盖的上一快照则精确重写其 mode——使 ModeStore、Settings 和 Runtime 重新收敛。不吞掉任何信息:记录失败,补偿有界(无递归、无重复注册、无监听器增长),路径保持可恢复,供后续外部编辑使用。 · 修复(补偿写入二次故障) · 切换失败且补偿写入也失败时,不再静默地以永久脑裂({ runtime: manual, settings: auto })收场。控制器现在保留待处理补偿(必须恢复其持久化来源的上一快照),并把运行时回滚视为第一步:待处理期间,运行时对目标保持权威,下一次协调(任何设置/文档更新)先处理它——恢复持久化来源,确认实时快照确实收敛,然后清除——之后才执行更新的目标切换。 · 恢复有界且保留意图。每次触发最多执行一次补偿写入(写入失败不通知,因此持久化层持续损坏时待处理状态会停到下一次外部触发:无忙循环、无递归)。如果待处理恢复覆盖了更新的用户改动,恢复落定后重新持久化最新目标快照,因此 manual -> auto(失败)-> off 序列会先经过事务性的上一状态(manual),最终收敛到最新意图(off)。 · 配置档与覆盖的恢复语义不变:来源为配置档的上一快照清除覆盖(不写入 mode: 键),来源为覆盖的上一快照精确重写其 mode。 · 可观测性:切换失败和补偿写入失败记录为不同事件(... failed; restoring previous ... 与 ... failed to restore the persisted mode source ...; compensation remains pending),公开的 pendingCompensation 探针暴露待处理回滚目标。 · 恢复的测试 · test/
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-requirements-alignment 阻止长时间运行的 Agent 悄悄改变你的需求。 让 DSH Agent 自己做工程决策,但别让它在长任务里悄悄改需求、扩范围、换架构。 dsh-requirements-alignment 是 DeepSeek Harness (DSH) 的轻量级运行时漂移防护工具。它把用户意图转化为持久的需求基线,在 Agent 工作时保持不干扰,只有当下一步会实质性改变方向时才介入。 你决定方向。Agent 决定工程实现。 当前候选版本:v0.5.0-rc.1,面向 DeepSeek Harness 0.1.7-rc.2。需要 Node.js >=22.18.0。已验证的行为和限制请参阅兼容性报告。 问题所在 长时间运行的编码 Agent 很擅长保持推进势头。这也正是它们可能发生漂移的原因。 一个任务可能一开始是这样的: 修复结果页面的筛选功能。 不要重构后端逻辑。 后来 Agent 发现更干净的方案需要改动后端。如果没有明确的护栏,它可能就直接扩大范围并继续下去。 Requirements Alignment 改变了这种行为: 用户意图 ↓ 持久的需求基线 ↓ Agent 正常工作 ↓ 检测到改变方向的步骤?
展开完整文档(README 剩余 1 节)
dsh-requirements-alignment

阻止长时间运行的 Agent 悄悄改变你的需求。

让 DSH Agent 自己做工程决策,但别让它在长任务里悄悄改需求、扩范围、换架构。

dsh-requirements-alignment 是 DeepSeek Harness (DSH) 的轻量级运行时漂移防护工具。它把用户意图转化为持久的需求基线,在 Agent 工作时保持不干扰,只有当下一步会实质性改变方向时才介入。

你决定方向。Agent 决定工程实现。

当前候选版本:v0.5.0-rc.1,面向 DeepSeek Harness 0.1.7-rc.2。需要 Node.js >=22.18.0。已验证的行为和限制请参阅兼容性报告。

问题所在

长时间运行的编码 Agent 很擅长保持推进势头。这也正是它们可能发生漂移的原因。

一个任务可能一开始是这样的:

修复结果页面的筛选功能。
不要重构后端逻辑。

后来 Agent 发现更干净的方案需要改动后端。如果没有明确的护栏,它可能就直接扩大范围并继续下去。

Requirements Alignment 改变了这种行为:

用户意图 ↓ 持久的需求基线 ↓ Agent 正常工作 ↓ 检测到改变方向的步骤?
├─ 否 → 继续静默工作 └─ 是 → 询问一次 → 记录决策 → 继续

什么算作漂移

该插件关注的是方向层面的变更,而非实现细节。

典型的漂移候选包括:

- 扩大或缩小已批准的范围;
- 违反明确的约束;
- 改变用户可见的行为;
- 切换架构或产品形态;
- 使已确定的假设失效;
- 改变此前已批准的用户决策;
- 采取会改变预期结果的破坏性路径。

它不应为了询问变量命名、辅助函数位置、已批准范围内的普通重构,或其他常规工程选择而中断 Agent。

Requirements Alignment 与 Plan Mode 的对比

Plan Mode 问的是: “这是正确的实现计划吗?”

Requirements Alignment 问的是: “我们还在解决正确的问题吗?”

Plan Mode 在实现开始前提供帮助。Requirements Alignment 在执行过程中保护意图。

二者互补:

计划 → 批准 → 执行 → 检测方向漂移 → 仅在需要时重新对齐

快速开始

将此候选版本安装到你的 DSH Web 配置中:

dsh plugin --profile web add dsh-requirements-alignment@0.5.0-rc.1

然后正常使用 DSH 即可。

自动模式是推荐的默认设置。 清晰的任务会零中断地继续。当出现真正的方向变更时,插件会呈现一个决策并记录结果。

随时使用 /align 进行显式状态检查。

三种模式

| 模式 | 行为 |
| 自动 | 监视方向层面的漂移,仅在必要时询问 |
| 手动 | 无自动漂移策略;需要检查时使用 /align |
| 关闭 | 该会话的对齐功能被禁用;/align-mode 仍然可用,因此你可以切换回来 |

常用命令:

/align
/align-mode
/align-mode auto
/align-mode manual
/align-mode off
/align-mode reset

按会话控制:

/align-mode session
/align-mode session auto
/align-mode session manual
/align-mode session off
/align-mode session reset

会话覆盖只更改该会话。共享运行时设置保持独立。在 DSH 0.1.7 上,共享模式使用配置文件的 runtimeMode 字段;将其重置为 null 会遵循实时的 mode 默认值,而不会清除其他设置。

示例

保持在原始范围内

用户:改进结果页筛选器。不要重构后端逻辑。

Agent: [正常工作]

Agent 发现:完整的修复需要更改后端。

Requirements Alignment: [报告一个漂移候选并询问]

用户:保持在当前范围内。

Agent: [保持后端不变,并在已批准的方向内继续]

批准一次真正的方向变更

用户:该应用是单用户且仅本地。

之后:让它能跨设备工作。

Requirements Alignment: [检测到账户/云同步可能会改变架构]

用户:批准方向变更:多用户,带账户和云同步。

Agent: [记录新的基线修订并继续]

工作原理

该插件提供一小组对齐原语:

- establish_baseline 记录当前目标、明确约束、必须保留的行为、允许的范围以及已确定的用户决策;
- report_drift 呈现一次实质性的方向变更,通过 DSH 的原生用户提问路径进行询问,并记录确切的决策;
- /align 报告当前对齐状态并请求一次新的检查;
- /align-mode 更改自动 / 手动 / 关闭行为,而无需你卸载插件。

规范的对齐状态保存在持久的 sidecar 存储中,而不是混入普通的 DSH 会话事件。这样可以保持恢复/分叉/压缩行为稳定,并避免将会话日志变成插件特定的状态数据库。

运行时模式模型

有效模式遵循以下顺序:

有效的会话覆盖 ↓ 有效的持久化运行时覆盖 ↓ 有效的配置文件默认值 ↓ auto

这意味着两个活动会话可以使用不同的对齐模式,而不会相互泄漏状态。

切换模式会改变哪些对齐功能处于活动状态。它不会删除需求基线或漂移历史。

Web UI

在受支持的 DSH Web 构建中,该插件包含一个小型浮动对齐控件,可显示当前会话模式和共享模式,而无需手动编辑配置文件。

该 UI 和 /align-mode 作用于相同的底层状态,因此它们旨在保持一致。此候选版本未验证实时浏览器交互;已验证打包的 CLI/Web HTTP 路径。
长时间运行的任务可以等待并继续

当智能体确实需要你的决策时,预期行为是等待,而不是猜测。

等待浏览器授权,然后授权完成并恢复发布

同样的设计原则也适用于需求漂移:在高影响的选择上暂停,记录下来,然后从新的基线继续。

本插件不做什么

- 它不替代 DSH Plan Mode。
- 它不把每一个工程选择都变成用户问题。
- 它不要求在工作开始前提供完整的 PRD 或规格说明。
- 它不重写 DSH 核心包。
- 它不持续打断清晰的任务。
- 它不在模式变更时删除对齐状态。

卸载

dsh plugin --profile web rm dsh-requirements-alignment

Off 与卸载并不相同:Off 会保留插件安装,以便会话可以在运行时切换回 Auto 或 Manual。

设计目标

本项目有意避免成为一个完整的需求管理系统。

它的职责更窄:

保护少数决定“正在构建什么”的人类决策,然后让智能体开始工作。

开发重点

该实现围绕以下方面设计:

- 持久化的基线与漂移状态;
- 会话作用域的模式隔离;
- 恢复 / 分叉 / 压缩的连续性;
- 热模式切换,且不产生重复注册或监听器泄漏;
- 与常规 DSH 会话语义兼容;
- 当所请求的方向已经明确时,将打断降到最低。

贡献

发现了 bug 或有想法?请提交 Issue。欢迎提交 Pull Request。

许可证

MIT。参见 LICENSE。
预览分享卡片长什么样 ↓jiezeng2004-design/dsh-requirements-alignment
分享 · DeepSeek Harness Hub
jiezeng2004-design/dsh-requirements-alignment

阻止长时间运行的 Agent 悄悄改变你的需求。

回到顶部