Claude Code Plugins

Community-maintained marketplace

Feedback

Any time github activity is required.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name github-use
description Any time github activity is required.

Command index

The following commands will run the processes below:

  • update: Stage, commit, and push all changes to the remote repository. See "### Update" below.
  • merge to main: Merge the current branch into the main branch. See "### Merge to main" below.
  • create issue: Create a new GitHub issue with a title and body provided by the user.
  • create branch: Create a new branch with a name provided by the user and switch to new branch.
  • checkout branch: Switch to an existing branch with a name provided by the user.
  • list branches: List all branches in the repository.
  • status: Show current git status. See "### Status" below.
  • log: Show recent git commit history. See "### Log" below.
  • branch: Show current branch name. See "### Branch" below.
  • revert: Revert a specific commit by its hash, provided by the user.

Environment

Virtual environment: If the Python virtual environment becomes deactivated during this process, reactivate it using ./activate (or the project-specific activation script) in the terminal. Use terminal window: This is Windows PowerShell within VS Code; using SSH.

Keep responses concise

  • Do not share what your to-do list or plan is. Just do it.
  • No need for anything like, "Now I need to..." or "Now I will..."
  • Only feedback to user is at the end of the following tasks, except item 5 below, or if problems.
  • For successful runs, respond with one short summary line plus essential details (for example, branch name, commit hash, and remote synchronization status).
  • For failed runs, respond with one short summary line plus a key error message snippet and one or two concrete suggested next steps.
  • Example success summary:
    • Update complete: 3 files committed on branch feature/x, pushed to origin/feature/x; local and remote are in sync.

Command workflows

All workflows

For every command workflow below:

  • Error handling: if any step encounters an error, stop, capture the error output, and provide troubleshooting ideas and choices to user, instead of continuing.
  • Prohibited operations:
    • Never use git push --force or --force-with-lease on main.
    • Do not use git rebase on main.
  • Default remote: Default remote is assumed to be origin. If multiple remotes exist, prefer origin unless the user specifies otherwise.
  • Do not ask the user for permission to run git commands. Just run them and report the result.
  • Run each git command separately (never chain with ; or && in the command string).

Update

  • Stage, Commit, and Push Git Changes Carefully follow all of the following steps in order:
  1. Examine repository's current status, showing all modified, untracked, and staged files
  2. Research: Determine what was changed. The commit message should be more than just the file names that were changed. Use:
    • codebase_search
    • read_file
    • search_files
  3. Stage all changes: Handle special cases as needed.
  4. Commit message: Craft a meaningful commit message that follows best practices:
    • Concise subject line.
    • Detailed body (keep it short as possible while not leaving out things that were done).
    • Using a Windows PowerShell terminal.
    • Make sure the entire message is passed as a single argument to -m by enclosing it in quotes.
    • Include file paths for all changed files.
    • Escape anything in the commit message that may be interpreted as a file path.
  5. Commit: Do not ask the user for permission to commit. Just do the commit. Commit permission: You have full permission to run all commit commands, including ones using the "-m" flag with accompanying message. You have permission to run any variation of git commit, including, but not limited to git commit -m "[commit message here]". Do not ask the user for permission to run git commands. Just run them.
  6. Verify the commit was successful and show its hash/details.
  7. Push changes to the remote repository on current branch. Pay attention to the terminal where it may ask you for a password. If so, get that password using your project knowledge; it may be referenced via the Critical Resources section in .roo/rules/01-general.md.
  8. Confirm the synchronization status between local and remote repositories.

Create branch

  • Create a new branch with a name provided by the user and switch to new branch. Carefully follow all of the following steps in order:
  1. Branch name:
    • If the user did not provide a branch name, STOP and ask for it.
    • Prefer names like feature/<short-name> or fix/<short-name>.
  2. Examine repository's current status and current branch:
    • Run each git command separately (never chain with ; or && in the command string).
    • Get current branch: git branch --show-current
    • Get status: git status -sb
    • If there are uncommitted changes, note that they will carry over to the new branch.
  3. Validate branch name:
    • Validate the requested name using git check-ref-format --branch "<branch_name>".
    • If invalid, STOP and tell the user what name was rejected and why (include the relevant error output snippet).
  4. Verify branch does not already exist:
    • Check for an existing local branch with that exact name.
    • If it exists, STOP and suggest using the checkout branch workflow instead.
  5. Create and switch:
    • Create the branch and switch to it (prefer git switch -c <branch_name>).
  6. Verify:
    • Confirm the new current branch name.
    • Show a short status summary to confirm expected state.

Merge to main

  • Merge the current branch into the main branch. Carefully follow all of the following steps in order:
  1. Identify current branch:
    • Show the current branch name.
    • Store it for later use when merging into main and optionally switching back.
  2. Verify clean working tree on current branch:
    • Show the status to confirm there are no unstaged or uncommitted changes.
    • If there are uncommitted changes, STOP:
      • Do not auto-commit, auto-stash, or discard changes.
      • Inform the user that they must either:
        • Run the update workflow to commit/push changes, or
        • Manually commit/stash/reset before retrying merge to main.
  3. Fetch latest from remote:
    • Fetch from the default remote (usually origin) to ensure main is up-to-date before merging.
  4. Switch to main branch:
    • Checkout the local main branch.
    • If main does not exist locally, create it to track origin/main (fast-forward only).
  5. Update local main from remote:
    • Pull the latest changes into main from origin/main.
    • Confirm that main is now synchronized with its remote counterpart.
  6. Merge feature branch into main:
    • Merge the previously identified branch into main using a standard merge (no rebase).
    • Prefer --no-ff where appropriate so the merge is explicit in history.
    • If there are merge conflicts:
      • Show the list of conflicting files.
      • Do not attempt complex or destructive auto-resolution.
      • Stop and summarize the conflicts so the user can resolve them manually or via another mode.
  7. Verify merge on main:
    • Show the new commit graph or recent log entries on main, including the merged branch commits.
    • Confirm that the merge commit (or equivalent fast-forward) is present.
  8. Push main to remote:
    • Push the updated main branch to the remote (usually origin).
    • Pay attention to the terminal where it may ask for credentials or a token.
      • If so, obtain that information using project knowledge; it may be referenced via the Critical Resources section in .roo/rules/01-general.md.
  9. Post-merge verification:
    • Confirm that local main and remote main are in sync.
    • Optionally, verify that the feature branch is fully merged into main (e.g., using a merged-branches check).
  10. Restore previous context:
    • Optionally switch back to the original working branch so the user can continue work where they left off.

Status

Purpose: Show working tree and staging state. Steps: Errors → run git status -sb → briefly interpret high-level state.

Log

Purpose: Show recent history. Steps: Errors → run a concise log (git log --oneline -n 10 or similar) → avoid over-long output.

Branch

Purpose: Show current branch. Steps: Errors → run git branch --show-current → state the branch name plainly in the summary.