← 스킬 목록으로 돌아가기

git-diff-analyzer

v1.0.0 approved Development ⬇ 2 ↑ 1/7일 9일 전
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ 다운로드
설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o git-diff-analyzer.skill   "https://aiskillstore.io/v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "28beeebb-fdf0-48d7-8d4a-79907c6eb280",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /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

기본 정보

소유자 👤 aiskillstore-team 카테고리 Development 등록일 2026-06-06 최종 업데이트 2026-06-06 최신 버전 1.0.0 패키지 날짜 2026-06-06 검증 상태 approved 다운로드 수 2회 체크섬 (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

설치 방법

호환 플랫폼: any

1
openclaw_skill_manager.py로 스킬을 설치합니다.
python openclaw_skill_manager.py --install git-diff-analyzer
2
설치 확인
python openclaw_skill_manager.py --list-installed
3
특정 버전 설치 (선택)
python openclaw_skill_manager.py --install git-diff-analyzer --version 1.0.0
1
스킬 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download
2
Claude Code commands 디렉터리에 배치합니다.
unzip git-diff-analyzer.skill -d ~/.claude/commands/git-diff-analyzer/
3
Claude Code에서 슬래시 커맨드로 사용합니다.
/git-diff-analyzer
1
Agent Skills 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=ClaudeCodeAgentSkill
2
Claude Code skills 디렉터리에 압축을 해제합니다.
unzip git-diff-analyzer-agent-skill-*.skill -d ~/.claude/skills/git-diff-analyzer/
3
Claude Code를 재시작하면 세션 시작 시 자동으로 로드됩니다. 슬래시 커맨드 없이 자연어로 사용 가능합니다.
1
Cursor 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=Cursor
2
압축 해제 후 영구 위치에 저장합니다.
unzip git-diff-analyzer-cursor-*.skill -d ~/.cursor/skills/git-diff-analyzer/
3
.cursor/mcp.json에 MCP 서버 설정을 추가하고 Cursor를 재시작합니다.
cat ~/.cursor/skills/git-diff-analyzer/cursor_mcp_config.json
1
Gemini CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=GeminiCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip git-diff-analyzer-geminicli-*.skill -d ~/.gemini/skills/git-diff-analyzer/
3
~/.gemini/settings.json에 MCP 서버 설정을 추가하고 Gemini CLI를 재시작합니다.
cat ~/.gemini/skills/git-diff-analyzer/gemini_settings_snippet.json
1
Codex CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download?platform=CodexCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip git-diff-analyzer-codexcli-*.skill -d ~/.codex/skills/git-diff-analyzer/
3
~/.codex/config.toml에 MCP 서버 설정을 추가하고 Codex CLI를 재시작합니다.
cat ~/.codex/skills/git-diff-analyzer/codex_config_snippet.toml
1
REST API로 스킬 패키지를 다운로드합니다.
GET https://aiskillstore.io/v1/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/download
2
에이전트 플랫폼의 skills 디렉터리에 배치합니다.
cp git-diff-analyzer.skill ./skills/
3
설치 가이드 API로 플랫폼별 상세 정보를 조회합니다.
GET https://aiskillstore.io/v1/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/install-guide?platform=CustomAgent

보안 검증 보고서

검증 결과 APPROVED

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

✅ 보안 위험 항목이 발견되지 않았습니다.

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 Git diff 텍스트를 분석하여 구조화된 데이터를 반환하는 스킬로, 선언된 권한을 준수하며 악의적인 동작이 없습니다.
판단 근거

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

버전 히스토리

버전 USK v3 검증 상태 패키지 날짜 다운로드 변경사항
v1.0.0 approved 2026-06-06 ⬇ 2 1.0.0: Initial release — pure stdlib unified diff parser with language detection

사용 예시 (Examples) 6 개

이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.

single_file_modified

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

📥 입력
{
  "diff_text": "single-file-modified-readme-md-diff",
  "include_context_lines": false,
  "language_hints": true
}
📤 출력
{
  "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

📥 입력
{
  "diff_text": "two-file-diff-rename-plus-new-json",
  "include_context_lines": false,
  "language_hints": true
}
📤 출력
{
  "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

📥 입력
{
  "diff_text": "binary-png-diff-header",
  "include_context_lines": false,
  "language_hints": true
}
📤 출력
{
  "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

📥 입력
{
  "diff_text": "new-ts-file-from-devnull-diff",
  "include_context_lines": false,
  "language_hints": true
}
📤 출력
{
  "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

📥 입력
{
  "diff_text": "deleted-go-file-to-devnull-diff",
  "include_context_lines": false,
  "language_hints": true
}
📤 출력
{
  "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

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

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/28beeebb-fdf0-48d7-8d4a-79907c6eb280/schema

리뷰 & 평점

아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!

✍️ 리뷰 작성