dshbase

插件目录 / Developer / dsh-jj-vcs

dsh-jj-vcs

已验证 · 实测可装 bingfengaaaaa

✓ 持续维护

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
—语言
2026-08-22最近推送
跨平台平台

功能简介

Jujutsu version-control plugin and skill for DeepSeek Harness multi-agent teams

✅
我们的评价
可用 — 实测通过,早期项目

Jujutsu version-control plugin and skill for DeepSeek Harness multi-agent teams 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

DeepSeek Harness and Jujutsu connected by a change graph

dsh-jj-vcs

Jujutsu version control for DeepSeek Harness agent teams

中文 · GitHub release Verification status Jujutsu 0.44.0 MIT license

dsh-jj-vcs gives DeepSeek Harness agents a simpler way to work with version history. Each agent receives its own Jujutsu workspace and change. The skill records repository operations before and after a task, checks ownership at handoff, and limits remote publication to the exact bookmark that was reviewed.

Git still stores the repository, and GitHub still hosts it. Agents use jj for history-changing commands instead of coordinating a staging index, branch checkout, and raw Git mutations.

[!IMPORTANT]
This is an independent community project, not an official DeepSeek release. Its maintained command rules are audited against exactly jj 0.44.0.

Why Jujutsu fits agent teams

Jujutsu treats the working copy as a change, so an agent can edit files and inspect the result without a separate git add step. A change ID usually stays the same when a commit is rewritten, including normal rebases and description edits, while the commit ID continues to identify an exact snapshot.

That distinction is useful when several agents work at once. A coordinator assigns one durable change ID to each task, gives every worker a separate workspace, and checks that same identity when the work returns. Repository mutations also enter Jujutsu's operation log, which makes before-and-after receipts and recovery practical.

The plugin adds the DSH-specific rules around those JJ features:

Need What the skill does
Separate agent work Creates one external JJ workspace and one change per agent
Clear ownership Stores the task and agent in the change description and verifies both at handoff
Auditable mutations Records operation IDs before and after task setup and completion
Controlled publication Separates local editing, shared-history changes, and remote-visible actions
Concurrent safety Rejects conflicts, divergent changes, shared change ownership, and unexpected workspaces
Windows correctness Detects materialized Git symlinks and workspace aliases that can produce false file changes

Quick start

Requirements

Component Maintained baseline
DeepSeek Harness 0.1.1-rc.1 skill registry and Profile Bundle interfaces
Jujutsu exact jj 0.44.0
Node.js >=22.19.0
Git repository backend and read-only interoperability

Install the reviewed release in DSH

dsh plugin --profile <profile> add github:bingfengaaaaa/dsh-jj-vcs#v0.1.1
dsh --profile <profile> --dump-config

The release tag keeps the command readable. For a fully immutable profile, replace v0.1.1 with the exact commit ID shown on the GitHub release page after reviewing it.

For local plugin development, run the same commands from the parent directory with ./dsh-jj-vcs as the package source.

The package contains plain JavaScript and has no prepare, preinstall, or postinstall script. Installation registers one immutable skill provider on DSH's existing ctx.skills service.

[!NOTE]
Installing the plugin does not install JJ, initialize a repository, change Git remotes, or touch credentials. Repository initialization and remote-visible operations remain separately authorized actions.

Check JJ before using the skill

Run the installed version and help first. The local help text is authoritative for that installation.

jj --version
jj help
node <skill-dir>/scripts/verify-jj-compat.mjs --repo <repository>

If the JJ version differs from 0.44.0, use the upgrade verification procedure before changing repository history.

A multi-agent task in practice

The coordinator chooses an explicit base revision and creates the worker's workspace outside the repository directory:

node <skill-dir>/scripts/jj-task.mjs start \
  --repo <coordinator-workspace> \
  --destination <external-worker-directory> \
  --workspace <task-agent-name> \
  --agent <agent-id> \
  --task <task-id> \
  --base <explicit-revset>

The command returns a JSON receipt containing the workspace root, task owner, change ID, commit ID, and operation IDs from before and after creation. The durable changeId, rather than the changing commit ID, identifies the assignment.

The worker edits files normally and reviews the change with jj st and jj diff. There is no staging step. Before accepting the handoff, the coordinator runs:

node <skill-dir>/scripts/jj-task.mjs finish \
  --workspace-root <external-worker-directory> \
  --workspace <task-agent-name> \
  --agent <agent-id> \
  --task <task-id> \
  --expected-change <change-id>

The finish receipt verifies the workspace, task, owner, change identity, operation IDs, conflicts, and divergence. The full procedure is documented in multi-agent workspaces.

Permissions, conflicts, and recovery

The skill separates four permission levels: read-only inspection, task-local changes, shared local history, and remote-visible operations. A task authorization covers ordinary edits in the assigned workspace. Rewrites that affect shared history need task-specific approval. Fetch, push, GitHub changes, and protection-bypass flags need explicit remote authorization.

Agent-facing history changes use JJ. Git remains available as the backend, for read-only interoperability checks, and for repository-owned test scripts. See permissions and remotes before moving bookmarks or publishing, and recovery and conflicts before undoing or restoring operations.

Verify the package

Run the package, provider, compatibility, and workspace checks from a repository checkout:

npm run verify
npm test
npm pack --dry-run --json
node skills/dsh-jj-vcs/scripts/verify-jj-compat.mjs --skip-repo
node skills/dsh-jj-vcs/scripts/verify-jj-task.mjs

GitHub Actions runs the package and JJ suites on Linux and Windows. A separate scheduled probe checks candidate JJ releases without changing the audited baseline.

One skill, two package entry points

DSH loads the Profile Bundle through cordis.patch.yml and index.js. Codex packaging reads .codex-plugin/plugin.json. Both entry points use the single maintained skill in skills/dsh-jj-vcs, so behavior does not drift between copies.

The Codex manifest is included for packaging and local development. A remote Codex marketplace command will be documented after that installation method has been tested with this repository.

Maintenance and provenance

compatibility.json is the machine-readable JJ command baseline. Upgrading JJ requires review of the official release notes and installed help, an upgrade-mode probe, updates to affected references and tests, and a final exact-version pass. Release details are in MAINTAINING.md; proposed changes follow CONTRIBUTING.md.

The original design audit covered nshcr/jj-codex, techsaint/jj-vcs-skills, and clementpoiret/skills. Their repositories informed the review, but no candidate file is vendored or copied into this project.

Artwork sources and license notices are recorded in the asset attribution.

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-jj-vcs」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:bingfengaaaaa/dsh-jj-vcs

Headless(CLI)profile:

dsh plugin --profile headless add github:bingfengaaaaa/dsh-jj-vcs

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7819 个插件 →