dsh-cc/dsh-cc--packages-interaction-command-commit-split ↗★ 4

@dsh-cc/command-commit-split

Advisory dry-run /commit-split command: collects the working-tree diff and asks the deep-reasoning lane for an ordered atomic-commit split plan; never commits 分析工作区变更并生成推荐的提交步骤,适合需要规范代码提交历史的开发者。

패키지
@dsh-cc/command-commit-split
호환성
미검증
Harness peer 범위
>=0.2.0-rc.2
Cordis peer 범위
>=0.2.0-rc.2
버전
0.9.1-rc.1
라이선스
Apache-2.0
최근 업데이트
2026. 10. 13.

설치

검증된 bundle이 없거나 호환성 검사에 실패했습니다. 먼저 저장소 설명을 읽어 주세요. 전체 README 읽기 ↗

@dsh-cc/command-commit-split

English | 中文

Advisory dry-run /commit-split command: it reads the working-tree change (status + staged + unstaged) through the shell service, asks the deep-reasoning lane (model alias blueprint, via @dsh-cc/side-query) for an ordered atomic-commit split plan, and renders it. It never commits — the user (or the model, explicitly asked) executes the proposals one by one.

Command contract

InputResult
/commit-splitRendered split plan: ordered groups of { message, files, dependencyEdges }, with the declared dependency heuristic in the footer. When the blueprint alias is unconfigured, a visible note reports the inherited main-model route.
/commit-split helpCanonical help text (trailing-help support via @dsh-cc/command-usage).

Error sections (no plan emitted): error: model output did not match the plan schema for non-conforming model output, and error: dependency cycle among groups: a → b → a when the returned dependency edges are cyclic. Cycle detection runs in the command, never in the model.

Data and model seams

Git data is collected exclusively through ctx.get('shell')'s run (or exec) with a 5s timeout, using exactly three read-only commands: git status --porcelain, git diff --cached --numstat, git diff --numstat. All reads complete before the side query is awaited. The command never runs the model's Bash tool.

Dependency heuristic (declared in the output footer): shared top-level directory plus textual import-reference overlap between changed files, ranking source > test > docs. Lockfiles (pnpm-lock.yaml, package-lock.json, yarn.lock, bun.lockb) are excluded from model groups into a trailing chore(deps) group; a lockfile-only change skips the model entirely.

Composition

The plugin injects commands. A custom app mounts the owner plus this plugin:

- id: commands
  name: '@deepseek-ai/dsh-commands'
- id: command-commit-split
  name: '@dsh-cc/command-commit-split'

Model Experience

The slash input and output are absent from model requests. The split query is a one-shot side query on the blueprint lane (falling back to the inherited parent route with a visible note); the plan text returned to the user is presentation-only.

Known Limitations and Deferred Work

  • Advisory only — no staging, committing, or rewriting is performed; proposals may be imperfect when imports are dynamic or files are generated.