← Back to Skills

git-diff-analyzer

v1.0.0 approved Development ⬇ 2 ↑ 1/7d 9d ago
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ Download
Install Guide↓
🤖 Agent install commands (curl / MCP / Claude Desktop)
▸ curl one-liner
curl -L -o git-diff-analyzer.skill   "https://aiskillstore.io/v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=ClaudeCode"
▸ MCP tool call (after registering Skill Store MCP)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "28beeebb-fdf0-48d7-8d4a-79907c6eb280",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP config (one-time)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 Full agent API guide: /llms.txt  ·  MCP server card

Parse unified git diff text into structured per-file data: change type, line counts, hunk positions, language detection. Zero external dependencies.

# git # diff # code-review # pr # parser # unified-diff

Basic Info

Owner 👤 aiskillstore-team Category Development Registered 2026-06-06 Last Updated 2026-06-06 Latest Version 1.0.0 Packaged At 2026-06-06 Vetting Status approved Downloads 2 Checksum (SHA256) 11157a4c64a8f7b3d217bc29e12da41dd9875bf5f03f428006704cfc4039bb74

⚡ AGENT INFO USK v3

Capabilities
git_diff code_change_analysis diff_parsing pr_review code_review
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=OpenClaw GET /v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=ClaudeCode GET /v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=Cursor GET /v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=GeminiCLI GET /v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=CodexCLI GET /v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=CustomAgent

Installation

Compatible Platforms any

1
Install the skill using openclaw_skill_manager.py.
python openclaw_skill_manager.py --install git-diff-analyzer
2
Verify installation
python openclaw_skill_manager.py --list-installed
3
Install a specific version (optional)
python openclaw_skill_manager.py --install git-diff-analyzer --version 1.0.0
1
Download the skill package.
curl -O https://aiskillstore.io/v1/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download
2
Place it in the Claude Code commands directory.
unzip git-diff-analyzer.skill -d ~/.claude/commands/git-diff-analyzer/
3
Use it as a slash command in Claude Code.
/git-diff-analyzer
1
Download the Agent Skills package.
curl -O https://aiskillstore.io/v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=ClaudeCodeAgentSkill
2
Unzip it into the Claude Code skills directory.
unzip git-diff-analyzer-agent-skill-*.skill -d ~/.claude/skills/git-diff-analyzer/
3
Restart Claude Code — the skill is auto-loaded at session start. No slash command needed.
1
Download the Cursor-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=Cursor
2
Unzip and place it in a permanent location.
unzip git-diff-analyzer-cursor-*.skill -d ~/.cursor/skills/git-diff-analyzer/
3
Add the MCP server config to .cursor/mcp.json, then restart Cursor.
cat ~/.cursor/skills/git-diff-analyzer/cursor_mcp_config.json
1
Download the Gemini CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=GeminiCLI
2
Unzip and place it in a permanent location.
unzip git-diff-analyzer-geminicli-*.skill -d ~/.gemini/skills/git-diff-analyzer/
3
Add the MCP server config to ~/.gemini/settings.json, then restart Gemini CLI.
cat ~/.gemini/skills/git-diff-analyzer/gemini_settings_snippet.json
1
Download the Codex CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=CodexCLI
2
Unzip and place it in a permanent location.
unzip git-diff-analyzer-codexcli-*.skill -d ~/.codex/skills/git-diff-analyzer/
3
Add the MCP server config to ~/.codex/config.toml, then restart Codex CLI.
cat ~/.codex/skills/git-diff-analyzer/codex_config_snippet.toml
1
Download the skill package via REST API.
GET https://aiskillstore.io/v1/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download
2
Place it in your agent platform's skills directory.
cp git-diff-analyzer.skill ./skills/
3
Fetch platform-specific details via the Install Guide API.
GET https://aiskillstore.io/v1/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/install-guide?platform=CustomAgent

Security Vetting Report

Vetting Result APPROVED

Findings: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)"]

✅ No security risks found.

AI Review Stage

Reviewer gemini Risk Level 🟢 Low Review Summary Git diff 텍스트를 분석하여 구조화된 데이터를 반환하는 스킬로, 선언된 권한을 준수하며 악의적인 동작이 없습니다.
Reasoning

스킬 메타데이터에 선언된 네트워크, 파일 시스템, 서브프로세스 접근 권한(모두 false)을 코드에서 철저히 준수합니다. `main.py`는 표준 입력을 통해 JSON을 읽고 표준 출력을 통해 결과를 반환하며, `lib/parser.py`는 `re` 모듈과 `os.path` 함수만을 사용하여 입력된 diff 텍스트를 파싱하고 파일 경로를 분석합니다. `os.path` 사용은 파일 시스템 접근이 아닌 경로 문자열 조작에 해당합니다. 외부 통신이나 사용자 데이터 무단 수집/전송의 흔적이 없으며, 코드 난독화나 악의적인 목적의 코드가 발견되지 않았습니다. 정적 분석 결과도 'approved'로 나왔습니다. 전반적으로 안전하고 스킬의 목적에 부합하는 고품질 코드입니다.

Version History

Version USK v3 Vetting Status Packaged At Downloads Changelog
v1.0.0 approved 2026-06-06 ⬇ 2 1.0.0: Initial release — pure stdlib unified diff parser with language detection

Examples 6

Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.

single_file_modified

Parse a single modified file diff — README.md with 2 additions and 1 deletion

📥 Input
{
  "diff_text": "single-file-modified-readme-md-diff",
  "include_context_lines": false,
  "language_hints": true
}
📤 Output
{
  "files": [
    {
      "additions": 2,
      "change_type": "modified",
      "deletions": 1,
      "filename": "README.md",
      "hunks": [
        {
          "added": [
            "New description.",
            "Added one more line."
          ],
          "context": [],
          "new_lines": 4,
          "new_start": 1,
          "old_lines": 3,
          "old_start": 1,
          "removed": [
            "Old description."
          ]
        }
      ],
      "is_binary": false,
      "language": "markdown",
      "old_filename": null
    }
  ],
  "is_valid_diff": true,
  "summary": {
    "binary_count": 0,
    "by_language": {
      "markdown": 1
    },
    "renamed_count": 0,
    "total_additions": 2,
    "total_deletions": 1,
    "total_files": 1
  }
}
multi_file_with_rename

Parse a two-file diff containing a Python rename and a new JSON config file

📥 Input
{
  "diff_text": "two-file-diff-rename-plus-new-json",
  "include_context_lines": false,
  "language_hints": true
}
📤 Output
{
  "files": [
    {
      "additions": 2,
      "change_type": "renamed",
      "deletions": 1,
      "filename": "new_name.py",
      "hunks": [
        {
          "added": [
            "return hello",
            ""
          ],
          "context": [],
          "new_lines": 3,
          "new_start": 1,
          "old_lines": 2,
          "old_start": 1,
          "removed": [
            "pass"
          ]
        }
      ],
      "is_binary": false,
      "language": "python",
      "old_filename": "old_name.py"
    },
    {
      "additions": 3,
      "change_type": "added",
      "deletions": 0,
      "filename": "config.json",
      "hunks": [
        {
          "added": [
            "{",
            "version field",
            "}"
          ],
          "context": [],
          "new_lines": 3,
          "new_start": 1,
          "old_lines": 0,
          "old_start": 0,
          "removed": []
        }
      ],
      "is_binary": false,
      "language": "json",
      "old_filename": null
    }
  ],
  "is_valid_diff": true,
  "summary": {
    "binary_count": 0,
    "by_language": {
      "json": 1,
      "python": 1
    },
    "renamed_count": 1,
    "total_additions": 5,
    "total_deletions": 1,
    "total_files": 2
  }
}
binary_file_detection

Detect a binary PNG file change — is_binary flag set, no hunk data

📥 Input
{
  "diff_text": "binary-png-diff-header",
  "include_context_lines": false,
  "language_hints": true
}
📤 Output
{
  "files": [
    {
      "additions": 0,
      "change_type": "binary",
      "deletions": 0,
      "filename": "assets/logo.png",
      "hunks": [],
      "is_binary": true,
      "language": null,
      "old_filename": null
    }
  ],
  "is_valid_diff": true,
  "summary": {
    "binary_count": 1,
    "by_language": {},
    "renamed_count": 0,
    "total_additions": 0,
    "total_deletions": 0,
    "total_files": 1
  }
}
new_file_created

Parse a new TypeScript file created from /dev/null — change_type added

📥 Input
{
  "diff_text": "new-ts-file-from-devnull-diff",
  "include_context_lines": false,
  "language_hints": true
}
📤 Output
{
  "files": [
    {
      "additions": 5,
      "change_type": "added",
      "deletions": 0,
      "filename": "src/utils.ts",
      "hunks": [
        {
          "added": [
            "export function greet",
            "  return name;",
            "}",
            "",
            "export default greet;"
          ],
          "context": [],
          "new_lines": 5,
          "new_start": 1,
          "old_lines": 0,
          "old_start": 0,
          "removed": []
        }
      ],
      "is_binary": false,
      "language": "typescript",
      "old_filename": null
    }
  ],
  "is_valid_diff": true,
  "summary": {
    "binary_count": 0,
    "by_language": {
      "typescript": 1
    },
    "renamed_count": 0,
    "total_additions": 5,
    "total_deletions": 0,
    "total_files": 1
  }
}
deleted_file

Parse a deleted Go file — change_type deleted, diff to /dev/null

📥 Input
{
  "diff_text": "deleted-go-file-to-devnull-diff",
  "include_context_lines": false,
  "language_hints": true
}
📤 Output
{
  "files": [
    {
      "additions": 0,
      "change_type": "deleted",
      "deletions": 4,
      "filename": "legacy/old.go",
      "hunks": [
        {
          "added": [],
          "context": [],
          "new_lines": 0,
          "new_start": 0,
          "old_lines": 4,
          "old_start": 1,
          "removed": [
            "package legacy",
            "",
            "func Deprecated",
            ""
          ]
        }
      ],
      "is_binary": false,
      "language": "go",
      "old_filename": null
    }
  ],
  "is_valid_diff": true,
  "summary": {
    "binary_count": 0,
    "by_language": {
      "go": 1
    },
    "renamed_count": 0,
    "total_additions": 0,
    "total_deletions": 4,
    "total_files": 1
  }
}
invalid_diff_error

Return INVALID_DIFF_FORMAT error when input lacks recognizable diff headers

📥 Input
{
  "diff_text": "this is not a valid diff at all",
  "include_context_lines": false,
  "language_hints": true
}
📤 Output
{
  "error": {
    "code": "INVALID_DIFF_FORMAT",
    "message": "Input does not contain recognizable diff headers"
  }
}

All examples are also available via the agent API: /v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/schema

Reviews & Ratings

No reviews yet. Be the first to leave one!

✍️ Write a Review