Skip to content

Commit 9cb7dd0

Browse files
committed
chore(todo): drop items completed in this session
Removes the three feature asks shipped this session: - batch_commit push: "after" option - git_merge tool - git_cherry_pick tool Also reframes the batch_commit stage-scoping item: the path-level MVP (per-entry `files: string[]`) already exists, so only the hunk-level stretch goal remains open. Other asks (worktree tools, git_reset_soft, git_diff text, git_show, batch_commit dry_run, stash/tag/fetch, atomic-stage doc note, JSON schema publishing) are untouched — they remain genuine gaps in the MCP surface.
1 parent 3c4c121 commit 9cb7dd0

1 file changed

Lines changed: 96 additions & 0 deletions

File tree

TODO.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
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

Comments
 (0)