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.0plugin 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 invokinggit_commit.checkpoint_listand two-phasecheckpoint_restore: Delegated to the optional Change Ledger service.- Optional
autoCheckpoint: Captures a Change Ledger restore point for configured mutation tools intools/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_statusgit_diffgit_log
Among them, git_diff reads unified diffs without touching the index.
Mutation tools follow the DSH approval seam:
git_commitcommits only existing staged changes and requires DSH approval.git_branchcreation and switching require approval./commitrequests approval when ultimately invokinggit_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
dshprocess permissions; check source code and license before installing. dsh-gitflowdoes 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.3is 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