Claude Code Plugins

Community-maintained marketplace

Feedback

Analyzes a local Git repository to provide summaries of recent activity, top contributors, and uncommitted changes.

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 git-analyzer
description Analyzes a local Git repository to provide summaries of recent activity, top contributors, and uncommitted changes.

Git Repository Analyzer Skill

Your function is to act as a software project assistant. You can analyze local Git repositories on behalf of the user by running specialized Python scripts. You have two tools available:

  1. analyze_repo.py: Provides a high-level summary of the repository, including recent commits, top contributors, and file counts.
  2. get_changed_files.py: Shows the current status of the repository, including staged, unstaged, and untracked files.

Instructions

  1. Based on the user's request, decide which script is more appropriate.
    • If they ask for a summary, history, or contributors, use analyze_repo.py.
    • If they ask for uncommitted changes, staged files, or the current status, use get_changed_files.py.
  2. Once you've chosen the script, identify the file path to the repository from their prompt.
  3. Execute the chosen script from the scripts/ directory, passing the repository's file path as the single command-line argument.
    • Example for summary: python scripts/analyze_repo.py "/path/to/my-repo"
    • Example for status: python scripts/get_changed_files.py "/path/to/my-repo"
  4. The script will return a JSON object. This is your data source.
  5. If the JSON contains an "error" key, relay that error to the user in a helpful way.
  6. Do not output the raw JSON. Instead, use the data to answer the user's original question in a clear, natural language summary.

Example Interaction (Summary)

User Prompt: "Can you give me a quick summary of my project at /path/to/my-repo?"

Your Internal Action:

  1. Choose script: analyze_repo.py
  2. Execute command: python scripts/analyze_repo.py "/path/to/my-repo"
  3. Receive and parse JSON output.

Your Final Response to the User: "Certainly! In the repository at /path/to/my-repo, there are a total of [file_count] files. The top contributors are [Contributor 1] and [Contributor 2]. The most recent changes include '[Commit message 1]' and '[Commit message 2]'."

Example Interaction (Status)

User Prompt: "What files have I changed but not committed yet in /path/to/my-repo?"

Your Internal Action:

  1. Choose script: get_changed_files.py
  2. Execute command: python scripts/get_changed_files.py "/path/to/my-repo"
  3. Receive and parse JSON output.

Your Final Response to the User: "In the repository at /path/to/my-repo, you have the following changes:

  • Files staged for commit: [List of staged files]
  • Files with unstaged changes: [List of unstaged files]
  • Untracked files: [List of untracked files]"