From 27330ceae14e63c3f609e0e882d1ba0f416892ab Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 8 Feb 2026 17:30:35 +0000 Subject: [PATCH] feat(claude/commands): support staged-only commits and add git diff permission Allow commit commands to operate on only staged changes when requested, rather than always staging everything. This enables more granular control over what gets committed. - Add `Bash(git diff:*)` to allowed-tools in both commit and commit-push-pr commands - Add instructions to check staged changes with `git diff --staged` and skip staging additional files when asked for staged-only commits - Restructure commit.md flow to clarify staged-only vs full commit Co-Authored-By: Claude Opus 4.6 --- claude/commands/commit-push-pr.md | 7 +++++-- claude/commands/commit.md | 14 ++++++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/claude/commands/commit-push-pr.md b/claude/commands/commit-push-pr.md index 234e196..2c232fa 100644 --- a/claude/commands/commit-push-pr.md +++ b/claude/commands/commit-push-pr.md @@ -1,5 +1,5 @@ --- -allowed-tools: Bash(git checkout --branch:*), Bash(git branch:*), Bash(git add:*), Bash(git status:*), Bash(git push:*), Bash(git commit:*), Bash(gh pr create:*) +allowed-tools: Bash(git checkout --branch:*), Bash(git branch:*), Bash(git add:*), Bash(git diff:*), Bash(git status:*), Bash(git push:*), Bash(git commit:*), Bash(gh pr create:*) description: Commit, push, and open a PR, rename branch appropriately if needed source: https://github.com/anthropics/claude-plugins-official/blob/main/plugins/commit-commands/commands/commit-push-pr.md --- @@ -19,7 +19,10 @@ Based on the above changes: character sequences, or 1-3 random unrelated words like "brave-fox" or "purple-mountain") rather than descriptive of the changes. If so, rename it to something that aligns with the changes using `git branch -m `. -2. Create a single commit with an appropriate message +2. Create a single commit with an appropriate message. If asked to commit only + staged changes, run `git diff --staged` to see exactly what is staged, and + base the commit message solely on those changes. Do NOT stage additional + files. Otherwise, stage all relevant changes. 3. Push the branch to origin 4. Create a pull request using `gh pr create` 5. You have the capability to call multiple tools in a single response. You MUST diff --git a/claude/commands/commit.md b/claude/commands/commit.md index a177647..452b433 100644 --- a/claude/commands/commit.md +++ b/claude/commands/commit.md @@ -1,5 +1,5 @@ --- -allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*) +allowed-tools: Bash(git add:*), Bash(git diff:*), Bash(git status:*), Bash(git commit:*) description: Create a git commit source: https://github.com/anthropics/claude-plugins-official/blob/main/plugins/commit-commands/commands/commit.md --- @@ -15,6 +15,12 @@ source: https://github.com/anthropics/claude-plugins-official/blob/main/plugins/ Based on the above changes, create a single git commit. -You have the capability to call multiple tools in a single response. Stage and -create the commit using a single message. Do not use any other tools or do -anything else. Do not send any other text or messages besides these tool calls. +If asked to commit only staged changes, run `git diff --staged` to see exactly +what is staged, and base the commit message solely on those changes. Do NOT +stage additional files. + +Otherwise, stage all relevant changes and create the commit. + +You have the capability to call multiple tools in a single response. Do not use +any other tools or do anything else. Do not send any other text or messages +besides these tool calls.