Understand Diff Analysis
Egonex-AI/Understand-Anything
Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.
Walks a person through code changes one step at a time in conversation, starting at the entry point and following the flow that changes, showing a small chunk per step and explaining it in plain…
$ npx skills add testdouble/han --skill code-walkthrough -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install testdouble/han code-walkthrough --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .claude/skills && cp -r skills-src/han-coding/skills/code-walkthrough .claude/skills/code-walkthrough && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "code-walkthrough" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/code-walkthrough into .claude/skills/code-walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-walkthrough", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/testdouble/han/tree/main/han-coding/skills/code-walkthroughType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add testdouble/han --skill code-walkthrough -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install testdouble/han code-walkthrough --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .agents/skills && cp -r skills-src/han-coding/skills/code-walkthrough .agents/skills/code-walkthrough && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "code-walkthrough" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/code-walkthrough into .agents/skills/code-walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-walkthrough", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add testdouble/han --skill code-walkthrough -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install testdouble/han code-walkthrough --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/han-coding/skills/code-walkthrough .cursor/skills/code-walkthrough && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "code-walkthrough" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/code-walkthrough into .cursor/skills/code-walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-walkthrough", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/testdouble/han.git --path han-coding/skills/code-walkthrough--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add testdouble/han --skill code-walkthrough -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install testdouble/han code-walkthrough --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/han-coding/skills/code-walkthrough .gemini/skills/code-walkthrough && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "code-walkthrough" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/code-walkthrough into .gemini/skills/code-walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-walkthrough", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install testdouble/han code-walkthroughInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add testdouble/han --skill code-walkthrough -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .github/skills && cp -r skills-src/han-coding/skills/code-walkthrough .github/skills/code-walkthrough && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "code-walkthrough" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/code-walkthrough into .github/skills/code-walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-walkthrough", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add testdouble/han --skill code-walkthrough -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install testdouble/han code-walkthrough --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/han-coding/skills/code-walkthrough .opencode/skills/code-walkthrough && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "code-walkthrough" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/code-walkthrough into .opencode/skills/code-walkthrough/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-walkthrough", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
code-walkthroughWalks a person through code changes one step at a time in conversation, starting at the entry point and following the flow that changes, showing a small chunk per step and explaining it in plain…
Code Walkthrough is an agent skill from testdouble/han. Walks a person through code changes one step at a time in conversation, starting at the entry point and following the flow that changes, showing a small chunk per step and explaining it in plain language. Defaults to the current branch's changes, and walks the code from the perspective of any context provided instead — a file, directory, symbol, pull request, plan, or ticket. Use when someone wants to be walked through, taught, paced through, or shown around code or a branch step by step, or to learn how a change…
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/walkthrough-step-format.md`).
It sits in Development, covering Code review, Debugging and Plain language and style rules. It works with Git. The repository describes itself as: Han: AI skills and agents for "Solo" product engineers and small teams. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit abba73a. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadGlobGrepAgentBash(git *)Bash(gh *)Bash(find *)Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh")From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghbashgoFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Code Walkthrough loads about 4.4k tokens when it runs, and up to ~5.6k if it reads all its reference files. Until then it costs about 230 tokens; SKILL.md has 2,539 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from testdouble/han at commit abba73a, republished under its MIT licence (© testdouble). 2,539 words, ~4,398 tokens.
.claude/skills/code-walkthrough/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.which git 2>/dev/null || echo "not installed"which gh 2>/dev/null || echo "not installed"git branch --show-current 2>/dev/null || echo "no git branch"git symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null || echo unknowngit rev-parse --show-toplevel 2>/dev/null || pwdfind . -maxdepth 1 -name "CLAUDE.md" -type ffind . -maxdepth 3 -name "project-discovery.md" -type fbash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh" 2>/dev/null || echo "$HOME/.claude"cat .han/config.md 2>/dev/null || echo ""As your first action, use the Read tool on .han/config.md inside the personal config directory path above. A read
that returns no file is no personal configuration: continue silently. When that file or the project .han/config.md
probe supplies content, apply it per config-rule.md, which governs precedence
between the two files, relative-path resolution, and what to do with a file that reads but cannot be used.
Read these before doing anything. They constrain every step below.
code-overview's job, and the understanding this skill exists to build comes from stopping long enough to ask a
question. The single exception is an explicit request for more than one step ("show me the rest", "give me the next
three"), which you honor as asked.han-coding/skills/code-review/SKILL.md), never a bare filename (SKILL.md) and never
a path fragment. BECAUSE a bare filename is unsearchable and ambiguous in any repository with a SKILL.md, an
index.ts, or a README.md in more than one directory, and the learner's next move is reliably to open the file
themselves.han-communication:explanation-guidance (Step 3) and hold it for every turn of the session.code-review's job, and a learner who cannot
yet follow the flow has no basis to evaluate a critique of it. Saying "this is the part people find confusing" as
navigation is fine; saying "this should have been extracted" is not.code-overview's output, and the absence
of one here is what keeps the two skills distinct.Bind $size. If the first positional argument is small, medium, large, or dynamic, bind $size to it.
Anything else is part of the target, not a size; bind $size to the literal none provided.
Note tool availability. Read git installed and gh installed from Project Context. If git installed is empty or
reads not installed, git is unavailable — see the degraded paths below.
Resolve the target by this fixed precedence, so an ambiguous string never silently selects the wrong scope:
#82, https://github.com/owner/repo/pull/82) → that pull request's changes.
Requires gh.Handle the unresolvable and empty cases (state the problem plainly and stop; never guess):
gh unavailable or unreachable → say so and offer a local target instead.Resolve project context. If CLAUDE.md is present, read its ## Project Discovery section for conventions; fall
back to project-discovery.md. These settle language and framework questions so the explorers infer less. If neither
exists, note that surrounding-code inference applies and pass that into the briefs.
Classify the target's size. Default to small, and stay at the smaller band when a signal is borderline.
Apply the size override. If $size is not none provided, use it: a band value is the band and skips the
signal-based classification, while dynamic forces the signal-based classification even when the project config sets a
default band. If $size is none provided and the project config supplies a band via default-swarm-size (per
../../references/config-rule.md), use that band and name the config as the source in
Step 3's announcement. A conversational override ("walk me through it in detail") is equivalent.
Gather the input. For a branch or pull request, capture the change set and its intent:
default branch), falling back to main or
master. Capture git diff {default-branch}...HEAD for committed work, then git diff and git diff --cached for
uncommitted work, each as its own Bash command so a large diff streams incrementally. Capture
git log {default-branch}..HEAD --pretty=format:%B for intent. When gh is available, also run
gh pr view --json title,body to pick up the change's stated purpose; if no pull request exists for the branch, skip
this without failing.gh pr view {ref} --json title,body for intent and gh pr diff {ref} for the change
set.Dispatch han-core:codebase-explorer to trace the flow. Scale the count to the band and launch every agent in a
single message so they run concurrently:
Each brief must contain the resolved target (and, for a change, the changed-file set and the captured intent), the project conventions from Step 1 or a note that surrounding-code inference applies, and the instruction to report where the flow starts and the order it runs in — the entry point a request, command, or event actually arrives at, each subsequent hop, and which changed files sit on that path versus off it — as concrete findings citing repository-root-relative paths. Instruct each explorer to report what it found and not to assess quality, and to say so plainly where the entry point or the why is not recoverable rather than inferring one.
Wait for the whole wave before building the itinerary. Dispatching to trace the flow rather than reading everything inline keeps the main context lean, which matters here BECAUSE this session runs across many turns and a context exhausted at step 2 cannot finish the walk.
Invoke han-communication:explanation-guidance to surface Han's standard for explaining technical work to a reader who
will not implement it. It runs inline and hands control straight back. That standard governs every turn of this session,
BECAUSE every turn goes to a person who is trying to learn the code rather than write it.
Order the itinerary by the flow, starting at the entry point. Read references/walkthrough-step-format.md and apply its ordering rules. Each step is one stop on the execution path, identified by its full repository-root-relative path and the one idea it teaches. Bound the length to the band: roughly three to five steps at small, five to eight at medium, and eight to twelve at large. Where the flow is longer than the band allows, keep the stops where the change's behavior actually turns and fold the pass-through hops into the neighboring step.
Reserve the closing step for everything off the flow — tests, documentation, index entries, configuration, mechanical renames — with one line each on why it changed. Every changed file lands either on the flow or in that closing step; none is dropped.
Announce the walk in one short turn, then present step 1 in that same turn. The announcement states what is being
walked, the size band and why, and the number of steps ahead — for example,
Walking the current branch, size medium: 6 steps following a review request from the slash command through agent dispatch. Name tool degradation in the same line when it applies, and name the config when it supplied the band. Do NOT
stop for approval here: this skill is read-only and re-runnable, so a gate on a reversible operation only trains the
learner to approve without reading. Honor any adjustment they make.
This is the loop the whole skill exists for. Repeat it until the itinerary is done.
next, continue, go on) → present the next step.If a step's file cannot be read or a symbol no longer resolves, say exactly what failed, skip that step, and continue the walk. NEVER abandon the session over one unreadable file, BECAUSE the learner keeps the value of every step already walked and every step still ahead.
After the last flow step, present the closing turn:
code-review to audit the change, code-overview for a written document they can keep or share, investigate
to chase a bug they spotted. Recommend nothing about the code itself.© testdouble, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in han-coding/skills/code-walkthrough of testdouble/han.
Open the folder on GitHubat commit abba73a
Code Walkthrough next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Code Walkthrough this skilltestdouble/han | 279 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Understand Diff AnalysisEgonex-AI/Understand-Anything | 85k | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Open Code Review CLIalibaba/open-code-review | 44k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| PR Review State Fetchprisma/orm | 48k | — | ~767 | Automated safety check: Pass | Apache-2.0 | |
| Knowledge Graph PR Reviewtirth8205/code-review-graph | 32k | — | ~452 | Automated safety check: Pass | MIT | |
| Review Triage Phaseprisma/orm | 48k | — | ~995 | Automated safety check: Pass | Apache-2.0 |
Egonex-AI/Understand-Anything
Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.
alibaba/open-code-review
Runs the ocr command-line tool to review Git changes, a commit or a branch comparison with an AI model, returning line-level comments and optionally applying fixes.
prisma/orm
Fetches a pull request's canonical review state as JSON, validates it, and renders markdown, a text summary and triage target files from it using bundled scripts.
tirth8205/code-review-graph
Reviews a pull request or branch diff with a code knowledge graph and produces a structured review that includes blast-radius analysis.
prisma/orm
Runs the triage step of the review-framework loop: reads fetched PR review state, builds `review-actions.json`, validates it and renders `review-actions.md`.
yaklang/yakit
对 Yakit 仓库的代码改动做规范化 code review:按代码逻辑、TS 定义、UI 引用与 Props、CSS 样式、依赖版本、配置项六个维度审查,检查测试用例缺失,强制执行 tsc 类型检查与 vitest 测试验证,输出「结果汇总 / 明细解释 / 合并结论」三块报告,经用户确认后写入文件。当用户要求 review、审查、评审代码改动,或在提交、合并、提 PR…
testdouble/han
Convert a stakeholder summary markdown file into a single self-contained HTML executive report — bottom line and decision asks up front, supporting detail later — styled with a Test Double-derived…
testdouble/han
Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate.
testdouble/han
Authoritative guidance for building Claude Code skills, agents, and plugins, plus init and update steps that install and refresh the plugin-building skills in the current repository.
testdouble/han
Cut a Han release: update CHANGELOG.md with the changes since the last release, bump and tag every plugin that changed as {plugin-name}--v{version} so a version-constrained dependency can resolve…
testdouble/han
Builds a feature implementation plan from an existing feature specification (or equivalent context) through a facilitated team conversation.
testdouble/han
Restructure existing code without changing its behavior, through a test-gated refactoring loop: a named target, a green suite over that target before any edit, a planned sequence of small named…
Works with
Categories
Walks a person through code changes one step at a time in conversation, starting at the entry point and following the flow that changes, showing a small chunk per step and explaining it in plain…. Code Walkthrough is an agent skill from testdouble/han. Walks a person through code changes one step at a time in conversation, starting at the entry point and following the flow that changes, showing a small chunk per step and explaining it in plain language.
Code Walkthrough fits situations like: someone wants to be walked through; shown around code; A branch step by step; learn how a change works before reviewing.
Run `npx skills add testdouble/han --skill code-walkthrough -a claude-code`. Or copy the skill folder (han-coding/skills/code-walkthrough in testdouble/han) into .claude/skills/code-walkthrough in your project. Claude Code loads it when a task matches its description.
Run `npx skills add testdouble/han --skill code-walkthrough -a codex`. Or copy the skill folder (han-coding/skills/code-walkthrough in testdouble/han) into .agents/skills/code-walkthrough in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add testdouble/han --skill code-walkthrough -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/code-walkthrough, .gemini/skills/code-walkthrough, .github/skills/code-walkthrough and .opencode/skills/code-walkthrough in your project.
Going by SKILL.md and its folder, Code Walkthrough needs the command-line tools its instructions call (git, gh, bash and go). Its frontmatter pre-approves these tools: Read, Glob, Grep, Agent, Bash(git *), Bash(gh *), Bash(find *), Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh").
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Code Walkthrough is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Code Walkthrough: Understand Diff Analysis (Egonex-AI/Understand-Anything, 85k stars), Open Code Review CLI (alibaba/open-code-review, 44k stars), PR Review State Fetch (prisma/orm, 48k stars) and Knowledge Graph PR Review (tirth8205/code-review-graph, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
testdouble (a GitHub organization) maintains it in testdouble/han, which has 279 GitHub stars. The repository holds 54 skills in this directory. The repository was last updated on October 1, 2026.
Source: testdouble/han on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.