|
| 1 | +# TODO / Feature requests — rethunk-git MCP |
| 2 | + |
| 3 | +Feature asks driven by real pain points from agent sessions. Each item lists the motivating scenario and the expected tool shape. |
| 4 | + |
| 5 | +## High value — reduce Bash fallback |
| 6 | + |
| 7 | +### `batch_commit` — `stage` argument for path/hunk scoping |
| 8 | + |
| 9 | +**Pain:** `batch_commit` stages whole files atomically. Subagents asked to produce N commits from a single file edit cannot split post-hoc (sandbox blocks `git reset --soft`; `git rebase -i` is interactive). |
| 10 | + |
| 11 | +**Ask:** Allow scoped staging: |
| 12 | + |
| 13 | +```ts |
| 14 | +batch_commit({ |
| 15 | + stage: { paths: ["Makefile"], hunks: [{ file: "Makefile", lines: "120-180" }] }, |
| 16 | + message: "feat(make): add sbom target" |
| 17 | +}) |
| 18 | +``` |
| 19 | + |
| 20 | +Path-level `files: string[]` already exists per-entry on `batch_commit`. Remaining gap is hunk-level staging via `git add -p` patch interface. |
| 21 | + |
| 22 | +### `git_worktree_add` / `git_worktree_remove` / `git_worktree_list` |
| 23 | + |
| 24 | +**Pain:** Parallel subagent batches use worktrees heavily. Today: Bash `git worktree add/remove/list`. Should be MCP-native. |
| 25 | + |
| 26 | +**Ask:** |
| 27 | + |
| 28 | +```ts |
| 29 | +git_worktree_add({ path: ".claude/worktrees/agent-abc", branch: "worktree-agent-abc", baseRef: "main" }) |
| 30 | +git_worktree_remove({ path: "...", force?: false }) |
| 31 | +git_worktree_list() // → [{ path, branch, commit, locked }] |
| 32 | +``` |
| 33 | + |
| 34 | +### `git_reset_soft` MCP tool |
| 35 | + |
| 36 | +**Pain:** Sandbox blocks Bash `git reset --soft HEAD~N`, but this is the only way to split atomic commits. Subagents hit this repeatedly. |
| 37 | + |
| 38 | +**Ask:** Narrow, safe MCP tool: |
| 39 | + |
| 40 | +```ts |
| 41 | +git_reset_soft({ ref: "HEAD~3" }) |
| 42 | +// Reset branch pointer by N commits while keeping staged index. |
| 43 | +// Refuses if working tree is dirty (reserve for workflows where all changes are already committed). |
| 44 | +``` |
| 45 | + |
| 46 | +## Medium value — ergonomics |
| 47 | + |
| 48 | +### `git_diff` — scoped |
| 49 | + |
| 50 | +**Pain:** `git_diff_summary` is aggregate; sometimes need the actual diff text for a specific file/range. Currently Bash fallback. |
| 51 | + |
| 52 | +**Ask:** |
| 53 | + |
| 54 | +```ts |
| 55 | +git_diff({ paths?: string[], base?: "HEAD~1", target?: "HEAD", unified?: 3 }) |
| 56 | +``` |
| 57 | + |
| 58 | +### `git_show` MCP tool |
| 59 | + |
| 60 | +**Pain:** Inspecting a subagent branch's commits uses Bash `git show <sha>`. Should be covered. |
| 61 | + |
| 62 | +**Ask:** |
| 63 | + |
| 64 | +```ts |
| 65 | +git_show({ ref: "sha", stat?: boolean, paths?: string[] }) |
| 66 | +``` |
| 67 | + |
| 68 | +### `batch_commit` — `dry_run: true` |
| 69 | + |
| 70 | +**Pain:** Agent wants to verify staging is what it thinks before committing. Today: commit, inspect, reset (blocked), retry. |
| 71 | + |
| 72 | +**Ask:** `dry_run: true` reports what would be committed (files, message, diff summary) without writing. |
| 73 | + |
| 74 | +## Low value — nice to have |
| 75 | + |
| 76 | +### `git_stash_apply` / `git_stash_list` MCP tools |
| 77 | + |
| 78 | +Currently Bash. Stash flows come up occasionally in agent sessions when a conflict needs to be set aside. |
| 79 | + |
| 80 | +### `git_tag` MCP tool |
| 81 | + |
| 82 | +For release workflows: `git_tag({ name: "v0.6.0", message: "Release 0.6.0", signed?: false })`. |
| 83 | + |
| 84 | +### `git_fetch` MCP tool |
| 85 | + |
| 86 | +With structured output: `{ updated: [{ ref, oldSha, newSha }], newRefs: [...] }`. |
| 87 | + |
| 88 | +## Non-tool asks |
| 89 | + |
| 90 | +### Document `batch_commit` atomic-stage semantics |
| 91 | + |
| 92 | +In `docs/` README: state clearly that `batch_commit` stages listed files atomically before creating the commit, so N back-to-back calls to `batch_commit` on the same file cannot produce N commits with distinct content. Agents routinely expect per-call incremental semantics. |
| 93 | + |
| 94 | +### Publish JSON schemas for all MCP tool args |
| 95 | + |
| 96 | +Helps agents validate calls locally before invoking. Also eases codegen for skill builders. |
0 commit comments