Preface

In the DSH plugin scenario, when agents operate Git, the boundaries need to be clarified first: which actions are read-only, which modify the repository, and which require approval.

dsh-gitflow breaks down common Git actions into explicit tools: reading status, diff, log, committing existing staged changes, listing branches, and an optional Change Ledger restore point.

Its current version is 0.1.3, licensed under MIT, and maintained by lonelymoon87.

Positioning and Boundaries

The one-sentence positioning of dsh-gitflow is:

Git status, diff, log, commit, branch, and optional Change Ledger tools for DeepSeek Harness.

It supports:

  • DSH >=0.1.0-rc.6 <0.2.0 plugin APIs
  • Node.js ^22.19 || >=24

The v0.1.3 release is tested against DSH 0.1.0-rc.8 and 0.1.1-rc.1, while retaining the rc.6-compatible peer range.

Items explicitly excluded from the MVP include:

  • Pull-request creation
  • push
  • worktree management
  • branch deletion

It also explicitly does not perform the following operations:

  • Implicit staging of files
  • running git add
  • running git reset
  • running git stash
  • running git push
  • using hook-bypass flags
  • using destructive branch commands
  • accessing credentials
  • contacting Git hosts
  • registering custom durable session event

Core Capabilities

Below are the currently listed capabilities:

  • git_status: Read branch and working tree counts.
  • git_diff: Read unstaged or staged unified diffs without touching the index.
  • git_log: Returns a bounded structured commit history and handles unborn repositories.
  • git_commit: Commits only existing staged changes and requires DSH approval.
  • git_branch: Lists local branches; creation and switching require approval.
  • /commit: Loads the staged-change review skill before invoking git_commit.
  • checkpoint_list and two-phase checkpoint_restore: Delegated to the optional Change Ledger service.
  • Optional autoCheckpoint: Captures a Change Ledger restore point for configured mutation tools in tools/pre-execute.

Configurable options include:

timeoutMs
maxOutputBytes
maxLogEntries
conventionalCommits
autoCheckpoint
checkpointTools

autoCheckpoint is disabled by default. If enabled but no Change Ledger service is present, it does not pretend to restore, keeping the call unchanged.

Installation and Enablement

The default example installs to the web profile:

dsh plugin --profile web add https://github.com/lonelymoon87/dsh-gitflow/releases/download/v0.1.3/dsh-gitflow-0.1.3.tgz

This command installs the release tarball. Prebuilt packages are distributed via GitHub Releases; npm publication is prepared but not yet live.

You can also use a pinned source install:

dsh plugin --profile web add github:lonelymoon87/dsh-gitflow#v0.1.3

Pinned source install runs the prepare build. pnpm 10 and later will reject it before the exact package key is in the profile allowlist; follow the prompts and re-run the same dsh plugin add command.

To install into a one-shot agent profile, replace web with headless.

To upgrade, re-run dsh plugin add using the new release URL.

The uninstall command is:

dsh plugin --profile web remove dsh-gitflow

Approval and Mutation Boundaries

Read-only tools operate around local Git state:

  • git_status
  • git_diff
  • git_log

Among them, git_diff reads unified diffs without touching the index.

Mutation tools follow the DSH approval seam:

  • git_commit commits only existing staged changes and requires DSH approval.
  • git_branch creation and switching require approval.
  • /commit requests approval when ultimately invoking git_commit.

Optional Change Ledger integration relies on an external service. autoCheckpoint is disabled by default; if enabled but no Change Ledger service is present, it does not pretend to restore, keeping the call unchanged.

Use Cases and Notes

Suitable for these scenarios:

  • Agents that want to read Git status, diff, and log within DSH.
  • Workflows that want to execute commit or branch create/switch only after approval.
  • Projects that want to connect mutation tools’ restore points to the optional Change Ledger service.

Notes:

  • The plugin runs with the current dsh process permissions; check source code and license before installing.
  • dsh-gitflow does not push, access credentials, or contact Git hosts; however, commit and branch operations still depend on the current Git repository state and approval results.
  • v0.1.3 is a release version; use the new release URL when upgrading.

Links

GitHub repository:

https://github.com/lonelymoon87/dsh-gitflow

Plugin directory page (provided via plugin link):

https://www.skillhub.cn/plugins/lonelymoon87/dsh-gitflow