Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add testdouble/han/plugin install han-codingWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/testdouble/han/code-walkthrough)<a href="https://agentmods.dev/skills/testdouble/han/code-walkthrough"><img src="https://agentmods.dev/badge/skills/testdouble/han/code-walkthrough/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/testdouble/han/code-walkthrough"><img src="https://agentmods.dev/badge/skills/testdouble/han/code-walkthrough.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00190 | $0.04062 |
| Opus 5.5 | $0.00076 | $0.01625 |
| Sonnet 5.5 | $0.00038 | $0.00812 |
| Haiku 4.5 | $0.00019 | $0.00406 |
Grade A, and why
code-walkthrough scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 235 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Project Context
- git installed: !
which git 2>/dev/null || echo "not installed" - gh installed: !
which gh 2>/dev/null || echo "not installed" - current branch: !
git branch --show-current 2>/dev/null || echo "no git branch" - default branch: !
git symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null || echo unknown - repository root: !
git rev-parse --show-toplevel 2>/dev/null || pwd - CLAUDE.md: !
find . -maxdepth 1 -name "CLAUDE.md" -type f - project-discovery.md: !
find . -maxdepth 3 -name "project-discovery.md" -type f - personal config directory: !
bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh" 2>/dev/null || echo "$HOME/.claude" - project .han/config.md: !
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.
Operating Principles
Read these before doing anything. They constrain every step below.
- One step per turn, then stop and wait. Present exactly one walkthrough step, then end the turn. Never chain two
steps together, never run ahead to finish the itinerary, and never treat a short acknowledgement as permission to
batch. BECAUSE the pacing is the deliverable: a learner who receives six steps at once is reading a document, which
is
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. - A question holds your place; it never advances it. When the learner asks about the step just presented instead of moving on, answer at the same plain-language level, then re-offer the same next step. The step counter does not move. BECAUSE the question is the learning happening, and advancing past it silently abandons the reason they asked.
- Every step names the full path from the repository root. Each step's heading carries the complete
repository-root-relative path (
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 aSKILL.md, anindex.ts, or aREADME.mdin more than one directory, and the learner's next move is reliably to open the file themselves. - Small chunks, always. Each step shows a few lines up to roughly thirty — the smallest excerpt that carries the point — never a whole file and never an entire diff hunk pasted for completeness. BECAUSE the excerpt is an illustration of the sentence you just wrote, not the evidence for it; a wall of code moves the reading work back onto the person the walkthrough is supposed to be teaching.
- Plain language, and the why before the what. Explain each step as a problem being solved or a goal being served,
then what the code does about it. Keep the explanation to a short paragraph a person could read aloud. Source the
standard by invoking
han-communication:explanation-guidance(Step 3) and hold it for every turn of the session. - Follow the flow, then name the rest. The itinerary follows the execution path from the entry point through the change. Files off that path — tests, docs, index entries, config, mechanical renames — are named together in the closing step with one line each on why they changed. BECAUSE a flow the learner can follow is worth more than file-by-file completeness, and silently dropping a changed migration or test file is the gap that bites them later.
- Teaching, never judging. The walkthrough raises no findings, no severities, and no recommended changes, and it
never grades the code it is explaining. BECAUSE judging the change is
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. - Accurate to the code, always. Every claim — the entry point, the order of the flow, what each chunk does, why it changed — must be grounded in code you actually read. Never infer a step you did not verify, and never invent a rationale the evidence does not support; where the why is inferred rather than stated anywhere, say it is inferred. BECAUSE a confidently wrong walkthrough builds a mental model the learner will trust and act on for months.
- Read-only, and writes nothing. The skill explains; it never edits the target and never writes a file. The
conversation is the whole deliverable. BECAUSE a durable written artifact is
code-overview's output, and the absence of one here is what keeps the two skills distinct. - Default to small. Start size classification at small and escalate only on a clear signal. BECAUSE under-dispatching is recoverable by exploring more mid-walk, while over-dispatching burns the context this session needs to survive across many turns.
- The step format lives at references/walkthrough-step-format.md. Render that format; do not invent a structure inline.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 235 lines · 190 tokens per session scan A 1cdf59dae9fe
code-walkthrough is a skill published in the GitHub repository testdouble/han (304 stars, last pushed today), licensed MIT. It adds 190 tokens to every session and 4,062 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
pr-review
Address feedback left on a GitHub pull request: fetch unresolved review threads, make agreed Elixir/Phoenix code fixes, reply, and resolve. Use for a PR URL/number or reviewer comments. NOT for pre-PR review, findings triage, or CI monitoring.
phx-pr-review
Address feedback left on a GitHub pull request: fetch unresolved review threads, make agreed Elixir/Phoenix code fixes, reply, and resolve. Use for a PR URL/number or reviewer comments. NOT for pre-PR review, findings triage, or CI monitoring.
pr-threads-address
Address PR review feedback by systematically working through every unresolved PR review thread on the current branch's PR - analyze each comment, make the requested code changes (with tests where useful), commit, and optionally reply and resolve.
timeline
Group the current branch's commit history into semantic phases along a timeline, and generate two review documents: architecture evolution + code review.
brief
Compare the current branch against its base branch and generate two review documents: architecture change diagram + PR review checklist.
up-to-date
Preflight sync and situational brief before repo work: fetches origin, reports ahead/behind divergence (with a no-upstream/detached-HEAD fallback), recent commits, open PRs and issues touching the work, and dirty-tree warnings, then names one recommended first action. Read-only by default — never pulls, rebases…