dongsheng123132/dsh-action-parity

DeepSeek Harness 的跨表面动作绑定与重放一致性验证

项目介绍Project Overview

DSH Action Parity 是面向 DeepSeek Harness 的跨端一致性校验插件。它验证 CLI、MCP 与 GUI 绑定是否共用同一 stable actionId、coreActionId,并核对核心模块、绑定声明与回放 fixture 的 SHA-256 哈希及确定性结果摘要,确保陈旧变更被 STALE_STATE 拦截、需确认操作在所有端强制执行。当需要审计同一业务动作在三端实现是否真正一致时使用。注意:Codex 提供的 proof-only MCP 工具不读盘、不执行动作、不出报告,文件哈希校验与原子化产物仍需走 DSH 工具或 CLI。

DSH Action Parity is a cross-surface consistency verifier for DeepSeek Harness. It validates that CLI, MCP and GUI bindings share the same stable actionId and coreActionId, checks SHA-256 hashes of core modules, binding declarations and replay fixtures, and confirms deterministic result digests, success states and state-version transitions, while blocking stale mutations with STALE_STATE and enforcing confirmation on every surface. Use it when auditing whether one business action is implemented consistently across all three interfaces. Caveat: the Codex proof-only MCP tools do not read files, execute actions, or emit reports, so workspace-bounded file hash verification and atomically published artifacts still require the DSH tools or CLI.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add github:dongsheng123132/dsh-action-parity

dongsheng123132/dsh-action-parity 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

DSH Action Parity

CI MIT license Node.js 22+ Awesome DSH Plugins

Evidence that a business action is implemented once and reached consistently from CLI, MCP and GUI surfaces in DeepSeek Harness. Version 0.2 adds a formal Codex plugin manifest, a proof-only MCP server, real ToolRuntime smoke coverage and a namespace-export regression test for the stock DSH Web loader.

This plugin does not execute business actions and does not test buttons by pixels. It verifies a manifest of stable Action IDs, content-addressed action-core and binding declarations, and structural replay observations produced by each interface.

What it verifies

  • every CLI, MCP and GUI binding names the same stable actionId and coreActionId;
  • GUI bindings expose data-action-id:<actionId> while CLI and MCP use stable machine identifiers;
  • core modules, binding declarations and replay fixtures still match their declared SHA-256;
  • the same fixture yields the same result digest, success state and state-version transition on every surface;
  • stale mutations fail closed with STALE_STATE and do not advance state;
  • confirmation-required actions enforce confirmation on every surface;
  • missing/stale evidence and every parity failure are disclosed in a deterministic content-addressed report.

Inputs containing secret-, prompt-, chat-, raw input/output-, argv-, stdout- or stderr-shaped fields are rejected. Paths must remain inside workspaceRoot; symlink inputs and output directories are rejected. Only the explicit artifactDir is written, with atomic publication and SHA-256 read-back verification.

Install

dsh plugin --profile web add github:dongsheng123132/dsh-action-parity

The bundle registers dsh_action_parity_inspect and dsh_action_parity_verify.

The package deliberately exposes only namespace exports and declares standard ToolDefinition objects without bundling a second DSH runtime. This keeps it loadable by the stock DSH Web profile while preserving the same shared, interface-free verification core for DSH tools, CLI and MCP.

CLI

dsh-action-parity inspect --workspace-root examples/basic --manifest action-parity.manifest.json
dsh-action-parity verify --workspace-root examples/basic --manifest action-parity.manifest.json --observations observations.jsonl --artifact-dir artifacts

Exit code 0 means verified, 2 means evidence was processed but parity failed, and 1 means invalid or unsafe input.

See examples/basic for a mutation whose CLI, MCP and GUI bindings share one core, including success and stale-state fixtures.

Codex and proof-only MCP

The formal Codex bundle exposes two stdio MCP tools:

  • action_parity_manifest_inspect validates an inline manifest;
  • action_parity_observations_verify checks inline JSONL envelopes against that manifest.

These MCP tools are intentionally proof-only: they do not read the filesystem, dereference declaration paths, execute actions or write artifacts. Therefore declaration content hashes are reported as not verified. Use the DSH tools or CLI when you need workspace-bounded file hash verification and an atomically published, read-back-verified report.

Development

npm test
npm run check
npm run smoke:plugin
npm run smoke:mcp
npm run smoke:dsh
npm run smoke:web-loader

MIT

上一个 Prev dsh-daily-progress 下一个 Next dsh-watch