mirror of
https://github.com/anthropics/claude-plugins-official.git
synced 2026-01-30 12:32:02 +00:00
creating intital scaffolding for claude code plugins
This commit is contained in:
10
plugins/commit-commands/.claude-plugin/plugin.json
Normal file
10
plugins/commit-commands/.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "commit-commands",
|
||||
"description": "Streamline your git workflow with simple commands for committing, pushing, and creating pull requests",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Anthropic",
|
||||
"email": "support@anthropic.com"
|
||||
}
|
||||
}
|
||||
|
||||
225
plugins/commit-commands/README.md
Normal file
225
plugins/commit-commands/README.md
Normal file
@@ -0,0 +1,225 @@
|
||||
# Commit Commands Plugin
|
||||
|
||||
Streamline your git workflow with simple commands for committing, pushing, and creating pull requests.
|
||||
|
||||
## Overview
|
||||
|
||||
The Commit Commands Plugin automates common git operations, reducing context switching and manual command execution. Instead of running multiple git commands, use a single slash command to handle your entire workflow.
|
||||
|
||||
## Commands
|
||||
|
||||
### `/commit`
|
||||
|
||||
Creates a git commit with an automatically generated commit message based on staged and unstaged changes.
|
||||
|
||||
**What it does:**
|
||||
1. Analyzes current git status
|
||||
2. Reviews both staged and unstaged changes
|
||||
3. Examines recent commit messages to match your repository's style
|
||||
4. Drafts an appropriate commit message
|
||||
5. Stages relevant files
|
||||
6. Creates the commit
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/commit
|
||||
```
|
||||
|
||||
**Example workflow:**
|
||||
```bash
|
||||
# Make some changes to your code
|
||||
# Then simply run:
|
||||
/commit
|
||||
|
||||
# Claude will:
|
||||
# - Review your changes
|
||||
# - Stage the files
|
||||
# - Create a commit with an appropriate message
|
||||
# - Show you the commit status
|
||||
```
|
||||
|
||||
**Features:**
|
||||
- Automatically drafts commit messages that match your repo's style
|
||||
- Follows conventional commit practices
|
||||
- Avoids committing files with secrets (.env, credentials.json)
|
||||
- Includes Claude Code attribution in commit message
|
||||
|
||||
### `/commit-push-pr`
|
||||
|
||||
Complete workflow command that commits, pushes, and creates a pull request in one step.
|
||||
|
||||
**What it does:**
|
||||
1. Creates a new branch (if currently on main)
|
||||
2. Stages and commits changes with an appropriate message
|
||||
3. Pushes the branch to origin
|
||||
4. Creates a pull request using `gh pr create`
|
||||
5. Provides the PR URL
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/commit-push-pr
|
||||
```
|
||||
|
||||
**Example workflow:**
|
||||
```bash
|
||||
# Make your changes
|
||||
# Then run:
|
||||
/commit-push-pr
|
||||
|
||||
# Claude will:
|
||||
# - Create a feature branch (if needed)
|
||||
# - Commit your changes
|
||||
# - Push to remote
|
||||
# - Open a PR with summary and test plan
|
||||
# - Give you the PR URL to review
|
||||
```
|
||||
|
||||
**Features:**
|
||||
- Analyzes all commits in the branch (not just the latest)
|
||||
- Creates comprehensive PR descriptions with:
|
||||
- Summary of changes (1-3 bullet points)
|
||||
- Test plan checklist
|
||||
- Claude Code attribution
|
||||
- Handles branch creation automatically
|
||||
- Uses GitHub CLI (`gh`) for PR creation
|
||||
|
||||
**Requirements:**
|
||||
- GitHub CLI (`gh`) must be installed and authenticated
|
||||
- Repository must have a remote named `origin`
|
||||
|
||||
### `/clean_gone`
|
||||
|
||||
Cleans up local branches that have been deleted from the remote repository.
|
||||
|
||||
**What it does:**
|
||||
1. Lists all local branches to identify [gone] status
|
||||
2. Identifies and removes worktrees associated with [gone] branches
|
||||
3. Deletes all branches marked as [gone]
|
||||
4. Provides feedback on removed branches
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
/clean_gone
|
||||
```
|
||||
|
||||
**Example workflow:**
|
||||
```bash
|
||||
# After PRs are merged and remote branches are deleted
|
||||
/clean_gone
|
||||
|
||||
# Claude will:
|
||||
# - Find all branches marked as [gone]
|
||||
# - Remove any associated worktrees
|
||||
# - Delete the stale local branches
|
||||
# - Report what was cleaned up
|
||||
```
|
||||
|
||||
**Features:**
|
||||
- Handles both regular branches and worktree branches
|
||||
- Safely removes worktrees before deleting branches
|
||||
- Shows clear feedback about what was removed
|
||||
- Reports if no cleanup was needed
|
||||
|
||||
**When to use:**
|
||||
- After merging and deleting remote branches
|
||||
- When your local branch list is cluttered with stale branches
|
||||
- During regular repository maintenance
|
||||
|
||||
## Installation
|
||||
|
||||
This plugin is included in the Claude Code repository. The commands are automatically available when using Claude Code.
|
||||
|
||||
## Best Practices
|
||||
|
||||
### Using `/commit`
|
||||
- Review the staged changes before committing
|
||||
- Let Claude analyze your changes and match your repo's commit style
|
||||
- Trust the automated message, but verify it's accurate
|
||||
- Use for routine commits during development
|
||||
|
||||
### Using `/commit-push-pr`
|
||||
- Use when you're ready to create a PR
|
||||
- Ensure all your changes are complete and tested
|
||||
- Claude will analyze the full branch history for the PR description
|
||||
- Review the PR description and edit if needed
|
||||
- Use when you want to minimize context switching
|
||||
|
||||
### Using `/clean_gone`
|
||||
- Run periodically to keep your branch list clean
|
||||
- Especially useful after merging multiple PRs
|
||||
- Safe to run - only removes branches already deleted remotely
|
||||
- Helps maintain a tidy local repository
|
||||
|
||||
## Workflow Integration
|
||||
|
||||
### Quick commit workflow:
|
||||
```bash
|
||||
# Write code
|
||||
/commit
|
||||
# Continue development
|
||||
```
|
||||
|
||||
### Feature branch workflow:
|
||||
```bash
|
||||
# Develop feature across multiple commits
|
||||
/commit # First commit
|
||||
# More changes
|
||||
/commit # Second commit
|
||||
# Ready to create PR
|
||||
/commit-push-pr
|
||||
```
|
||||
|
||||
### Maintenance workflow:
|
||||
```bash
|
||||
# After several PRs are merged
|
||||
/clean_gone
|
||||
# Clean workspace ready for next feature
|
||||
```
|
||||
|
||||
## Requirements
|
||||
|
||||
- Git must be installed and configured
|
||||
- For `/commit-push-pr`: GitHub CLI (`gh`) must be installed and authenticated
|
||||
- Repository must be a git repository with a remote
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### `/commit` creates empty commit
|
||||
|
||||
**Issue**: No changes to commit
|
||||
|
||||
**Solution**:
|
||||
- Ensure you have unstaged or staged changes
|
||||
- Run `git status` to verify changes exist
|
||||
|
||||
### `/commit-push-pr` fails to create PR
|
||||
|
||||
**Issue**: `gh pr create` command fails
|
||||
|
||||
**Solution**:
|
||||
- Install GitHub CLI: `brew install gh` (macOS) or see [GitHub CLI installation](https://cli.github.com/)
|
||||
- Authenticate: `gh auth login`
|
||||
- Ensure repository has a GitHub remote
|
||||
|
||||
### `/clean_gone` doesn't find branches
|
||||
|
||||
**Issue**: No branches marked as [gone]
|
||||
|
||||
**Solution**:
|
||||
- Run `git fetch --prune` to update remote tracking
|
||||
- Branches must be deleted from the remote to show as [gone]
|
||||
|
||||
## Tips
|
||||
|
||||
- **Combine with other tools**: Use `/commit` during development, then `/commit-push-pr` when ready
|
||||
- **Let Claude draft messages**: The commit message analysis learns from your repo's style
|
||||
- **Regular cleanup**: Run `/clean_gone` weekly to maintain a clean branch list
|
||||
- **Review before pushing**: Always review the commit message and changes before pushing
|
||||
|
||||
## Author
|
||||
|
||||
Anthropic (support@anthropic.com)
|
||||
|
||||
## Version
|
||||
|
||||
1.0.0
|
||||
53
plugins/commit-commands/commands/clean_gone.md
Normal file
53
plugins/commit-commands/commands/clean_gone.md
Normal file
@@ -0,0 +1,53 @@
|
||||
---
|
||||
description: Cleans up all git branches marked as [gone] (branches that have been deleted on the remote but still exist locally), including removing associated worktrees.
|
||||
---
|
||||
|
||||
## Your Task
|
||||
|
||||
You need to execute the following bash commands to clean up stale local branches that have been deleted from the remote repository.
|
||||
|
||||
## Commands to Execute
|
||||
|
||||
1. **First, list branches to identify any with [gone] status**
|
||||
Execute this command:
|
||||
```bash
|
||||
git branch -v
|
||||
```
|
||||
|
||||
Note: Branches with a '+' prefix have associated worktrees and must have their worktrees removed before deletion.
|
||||
|
||||
2. **Next, identify worktrees that need to be removed for [gone] branches**
|
||||
Execute this command:
|
||||
```bash
|
||||
git worktree list
|
||||
```
|
||||
|
||||
3. **Finally, remove worktrees and delete [gone] branches (handles both regular and worktree branches)**
|
||||
Execute this command:
|
||||
```bash
|
||||
# Process all [gone] branches, removing '+' prefix if present
|
||||
git branch -v | grep '\[gone\]' | sed 's/^[+* ]//' | awk '{print $1}' | while read branch; do
|
||||
echo "Processing branch: $branch"
|
||||
# Find and remove worktree if it exists
|
||||
worktree=$(git worktree list | grep "\\[$branch\\]" | awk '{print $1}')
|
||||
if [ ! -z "$worktree" ] && [ "$worktree" != "$(git rev-parse --show-toplevel)" ]; then
|
||||
echo " Removing worktree: $worktree"
|
||||
git worktree remove --force "$worktree"
|
||||
fi
|
||||
# Delete the branch
|
||||
echo " Deleting branch: $branch"
|
||||
git branch -D "$branch"
|
||||
done
|
||||
```
|
||||
|
||||
## Expected Behavior
|
||||
|
||||
After executing these commands, you will:
|
||||
|
||||
- See a list of all local branches with their status
|
||||
- Identify and remove any worktrees associated with [gone] branches
|
||||
- Delete all branches marked as [gone]
|
||||
- Provide feedback on which worktrees and branches were removed
|
||||
|
||||
If no branches are marked as [gone], report that no cleanup was needed.
|
||||
|
||||
20
plugins/commit-commands/commands/commit-push-pr.md
Normal file
20
plugins/commit-commands/commands/commit-push-pr.md
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
allowed-tools: Bash(git checkout --branch:*), Bash(git add:*), Bash(git status:*), Bash(git push:*), Bash(git commit:*), Bash(gh pr create:*)
|
||||
description: Commit, push, and open a PR
|
||||
---
|
||||
|
||||
## Context
|
||||
|
||||
- Current git status: !`git status`
|
||||
- Current git diff (staged and unstaged changes): !`git diff HEAD`
|
||||
- Current branch: !`git branch --show-current`
|
||||
|
||||
## Your task
|
||||
|
||||
Based on the above changes:
|
||||
|
||||
1. Create a new branch if on main
|
||||
2. Create a single commit with an appropriate message
|
||||
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 do all of the above in 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.
|
||||
17
plugins/commit-commands/commands/commit.md
Normal file
17
plugins/commit-commands/commands/commit.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
|
||||
description: Create a git commit
|
||||
---
|
||||
|
||||
## Context
|
||||
|
||||
- Current git status: !`git status`
|
||||
- Current git diff (staged and unstaged changes): !`git diff HEAD`
|
||||
- Current branch: !`git branch --show-current`
|
||||
- Recent commits: !`git log --oneline -10`
|
||||
|
||||
## Your task
|
||||
|
||||
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.
|
||||
Reference in New Issue
Block a user