Skip to main content

git-diff-browser

Use when asked to view changes, show a diff, review what changed, compare branches, or see recent commits in a rich browser interface. Supports unstaged changes, staged changes, branch comparisons, commit ranges, and live watch mode with auto-refresh.

インストールへ移動

ソース情報

リポジトリ
quarkusio/quarkusdev-skills
ソースの最終更新活動
2026年3月24日 16:47
検出された SKILL.md の言語
英語
スター
4
フォーク
2

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
2 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
git-diff-browser
description
Use when asked to view changes, show a diff, review what changed, compare branches, or see recent commits in a rich browser interface. Supports unstaged changes, staged changes, branch comparisons, commit ranges, and live watch mode with auto-refresh.
# Git Diff Browser Viewer Display rich, syntax-highlighted git diffs in your browser with a collapsible file tree sidebar. ## Overview This skill generates beautiful, interactive git diffs using diff2html and opens them in your browser. It supports multiple diff modes, live-updating watch mode, and optional AI-generated summaries. The sidebar shows a file tree with change statistics, making it easy to navigate large changesets. ## When to Use - Reviewing uncommitted changes before committing - Comparing your branch to main/master - Viewing what changed in recent commits - Code review preparation - Demonstrating changes to team members - Live-monitoring changes during development (watch mode) ## Quick Reference | User Request | Command | |--------------|---------| | "show diff" / "view changes" | `python3 diff-view.py` | | "show staged changes" | `python3 diff-view.py --staged` | | "compare to main" | `python3 diff-view.py --branch main` | | "show last 3 commits" | `python3 diff-view.py --commit HEAD~3` | | "live diff" / "watch changes" | `python3 diff-view.py --watch` | | "watch diff vs main" | `python3 diff-view.py --watch --branch main` | **Requirements:** `diff2html-cli` (install: `npm i -g diff2html-cli`) ## Implementation **Note:** The `diff-view.py` script is included in this skill directory. Run it from the skill directory or use the full path to the installed skill. ### Fast Mode (Default - Static Diff) For instant, one-time diffs, run the all-in-one script directly. No need to read git files or generate JSON manually - the script handles everything. **Step 1: Determine diff arguments from user request** | User Says | Script Args | |-----------|-------------| | *(empty/no args)* | *(no args)* | | `staged` | `--staged` | | `branch <name>` | `--branch <name>` | | `commit HEAD~N` | `--commit HEAD~N` | | `commit <sha>` | `--commit <sha>` | **Step 2: Execute diff script** ```bash python3 diff-view.py [args] ``` The script will: 1. Generate git diff 2. Convert to HTML via diff2html 3. Enrich sidebar with file tree and stats 4. Open in browser automatically **Step 3: Optional AI summary** For static diffs, if you want to add an AI summary: 1. Read the git diff: ```bash git diff [appropriate args] ``` 2. Write a concise 2-4 sentence summary explaining the intent 3. Pass to script: ```bash python3 diff-view.py --summary "Your summary here" [other args] ``` The sidebar will show your summary instead of just the mechanical stats. ### Watch Mode (Live-Updating Diff) When the user requests live/continuous viewing (watch mode), the diff auto-refreshes as files change. **Step 1: Start watch server in background** ```bash python3 diff-view.py --watch [args] & ``` The script prints: ``` Serving on http://127.0.0.1:12345 (PID: 67890) Press Ctrl+C to stop, or it will auto-stop when this session ends. ``` **Step 2: Note the server URL and PID** The URL (e.g., `http://127.0.0.1:12345`) is where the live diff is served. **Step 3: Dispatch AI summary subagent (async)** While the server runs, spawn a subagent to generate the AI summary: **Subagent prompt:** ``` Generate an AI summary for the current git diff. 1. Read the diff with: git diff [appropriate args based on watch mode] 2. Write a concise 2-4 sentence summary explaining the intent of the changes 3. POST the summary to the watch server: curl -s -X POST http://127.0.0.1:<port>/api/summary \ -H 'Content-Type: application/json' \ -d '{"summary":"Your summary text here"}' The summary will appear in the browser sidebar without a page reload. ``` **Step 4: Explain watch mode behavior** Tell the user: - The page updates in-place via DOM patching (no full reload) - Scroll position is preserved across updates - Default refresh interval: 2 seconds - Server auto-stops when the Claude session exits - AI summary will appear once the subagent completes ### Diff Modes Explained **Unstaged changes (default):** ```bash git diff ``` Shows working tree changes not yet staged. **Staged changes:** ```bash git diff --staged ``` Shows changes in the staging area (ready to commit). **Branch comparison:** ```bash git diff main...feature ``` Shows changes in `feature` since it diverged from `main`. **Commit range:** ```bash git diff HEAD~3..HEAD ``` Shows last 3 commits worth of changes. **Single commit:** ```bash git show <commit-sha> ``` Shows changes in a specific commit. ### Sidebar Features The sidebar displays: - **File tree** - Collapsible directory structure - **Change stats** - Additions/deletions per file - **File status** - Modified (M), Added (A), Deleted (D), Renamed (R) - **Mechanical summary** - File count and total changes - **AI summary** - Intent and context (if provided) **Example sidebar:** ``` Current Branch → Main ━━━━━━━━━━━━━━━━━━━━━━━ Summary Refactored authentication flow to use JWT tokens instead of session cookies. Added new middleware for token validation and updated login/logout handlers. 3 files changed +187 additions -93 deletions ├─ src/ │ ├─ auth/ │ │ ├─ middleware.js [M] +125 -45 │ │ └─ tokens.js [A] +42 -0 │ └─ handlers/ │ └─ login.js [M] +20 -48 ``` ### Watch Mode API The watch server exposes a JSON API: **POST /api/summary** - Update AI summary ```bash curl -X POST http://127.0.0.1:<port>/api/summary \ -H 'Content-Type: application/json' \ -d '{"summary":"New summary text"}' ``` **GET /api/update** - Poll for diff changes ```bash curl http://127.0.0.1:<port>/api/update ``` Returns JSON with current diff hash and HTML if changed. ## Installation **Install diff2html-cli:** ```bash npm install -g diff2html-cli ``` **Verify installation:** ```bash which diff2html # Should output: /usr/local/bin/diff2html (or similar) ``` ## Troubleshooting **"diff2html: command not found"** ```bash npm install -g diff2html-cli ``` **Empty diff shown:** - Check if there are actually changes: `git status` - For branch comparison, ensure branches exist: `git branch -a` - For commits, verify reference: `git log` **Watch mode not updating:** - Check server is running: Look for process with PID printed at startup - Verify port is accessible: `curl http://127.0.0.1:<port>` - Check for file changes: `git status` **Browser doesn't open:** - Server still runs, manually visit `http://127.0.0.1:<port>` - Check `$BROWSER` environment variable - Try setting: `export BROWSER=open` (macOS) or `export BROWSER=xdg-open` (Linux) ## Platform Notes This skill works with: - **Claude Code**: Direct execution via Bash tool, Agent for subagents - **Gemini CLI**: Use bash/subagent equivalents - **Codex**: Use RunBash/SubAgent equivalents **Dependencies:** - Python 3 (built-in on most systems) - diff2html-cli (npm install -g diff2html-cli) - Git (standard) The `diff-view.py` script is platform-independent (standard Python 3 libraries). ## Related Skills - **git-commit** - Commit changes after review - **git-pr** - Create pull request from reviewed changes - **code-review** - Structured code review process
GitHubで見る