Agent skill

Explain Tests

by meain in meain/dotfiles

Explain test code changes as a side-by-side HTML page — real test code on the left, a short note on the right saying which case that code covers.

MITAuto-check passedFrontend & Design

Install Explain Tests

skills CLI
$ npx skills add meain/dotfiles --skill explain-tests -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install meain/dotfiles explain-tests --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/meain/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agents/.agents/skills/explain-tests .claude/skills/explain-tests && rm -rf skills-src

Use ~/.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/

Facts

Skill name
explain-tests
GitHub stars
285
Token cost
~1.5k tokens
SKILL.md length
764 words
Files
2 (incl. references)
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Explain test code changes as a side-by-side HTML page — real test code on the left, a short note on the right saying which case that code covers.

  • Understanding newly added/changed tests in a commit
  • SKILL.md covers When to use, Workflow, Content rules and Layout, plus 1 more section
  • Calls git and gh
  • Tasks that involve HTML artifacts

What it does

Explain Tests is an agent skill from meain/dotfiles. Explain test code changes as a side-by-side HTML page — real test code on the left, a short note on the right saying which case that code covers. Use for reviewing or understanding newly added/changed tests in a commit, revision range, PR, or working copy. Triggers: /explain-tests, "explain these tests", "explain the test changes", "explain the new tests", "what do these tests cover", "what cases do these tests cover", "walk me through the tests"

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files.

It sits in Frontend & Design, covering HTML artifacts. It works with Git. The repository describes itself as: If there is a shell, there is a way! The licence is MIT.

When your agent uses it

  • Understanding newly added/changed tests in a commit
  • Tasks that involve HTML artifacts

Example prompts

  • “explain these tests”
  • “explain the test changes”
  • “explain the new tests”
  • “/explain-tests”

What it can do on your machine

Read from SKILL.md and the folder at commit f469fb6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Explain Tests loads about 1.5k tokens when it runs, and up to ~2.7k if it reads all its reference files. Until then it costs about 116 tokens; SKILL.md has 764 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~116
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.7k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from meain/dotfiles at commit f469fb6, republished under its MIT licence (© meain). 764 words, ~1,480 tokens.

Download SKILL.mdSave it as .claude/skills/explain-tests/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
explain-tests
description
Explain test code changes as a side-by-side HTML page — real test code on the left, a short note on the right saying which case that code covers. Use for reviewing or understanding newly added/changed tests in a commit, revision range, PR, or working copy. Triggers: /explain-tests, "explain these tests", "explain the test changes", "explain the new tests", "what do these tests cover", "what cases do these tests cover", "walk me through the tests"
user_invocable
true

Explain Tests

Turn test diffs into a two-column reference page: the test code beside a one-line statement of the case it covers. The goal is verification — the reader should be able to confirm coverage without opening the test files.

When to use

  • After writing or reviewing tests, to check what is actually covered
  • Understanding someone else's test additions in a commit or PR
  • Before a review, to see whether the test names match what the cases really assert

Not for: proposing missing tests (that's a gap analysis), or explaining production code flow (use /explain-flow).

Workflow

Determine scope

Ask only if genuinely ambiguous; otherwise infer from context.

  • Default: uncommitted working copy — jj diff (or git diff in a git repo)
  • "last N commits" / a revision or range — jj diff -r <rev> per revision
  • A PR — gh pr diff <n> (set GIT_DIR=$(jj git root 2>/dev/null || echo .git) when the repo uses jj)

List changed test files first:

bash
jj diff --stat -r <rev> | grep '_test.go'      # adjust suffix per language
Separate substantive from mechanical

This is the step that makes the page useful. A test diff usually mixes:

  • Substantive — new test functions, new table cases, new assertions, changed expectations
  • Mechanical — fixtures rewrapped for a changed type/signature, renames, import churn, formatting. Behaviour unchanged.

Only substantive changes get rows. Mechanical churn gets one line near the end ("N files updated for the new type, no behavioural change") — never its own sections.

Find new test functions and cases:

bash
jj diff -r <rev> | grep -E '^\+func Test'
jj diff -r <rev> <file> | grep -E '^\+\s+name:'
Read the real code

Read the test files — never write snippets from the diff alone or from memory. Also read the code under test, enough to state each case accurately.

Build the page

One .row per case (see Layout). Write to .martifacts/<topic>-tests.html relative to the repo root, creating .martifacts/ if needed. Then open it:

bash
open .martifacts/<topic>-tests.html    # needs dangerouslyDisableSandbox: true

Re-running on the same topic overwrites the same file — the user just refreshes the tab.

For a large diff (dozens of substantive cases), delegate the build to a subagent, but pass it the case inventory you already extracted so it doesn't re-derive it.

Content rules

These are what separate a useful page from a wall of text.

The right column says which case is covered. Nothing else.

  • One short bold label, then one or two sentences
  • State the input condition and what makes the case distinct from its neighbours
  • Do NOT write "what would break if this test were absent", risk commentary, or praise
  • Do NOT restate the code in prose ("this sets AnchorGeo to EMEA") — the code is right there
  • Prefer stating the point of the case: Target follows the geo, not the pod beats Tests AMER geo with an EU pod region

The left column is real code, trimmed for width.

  • Keep field names and values verbatim — the page is used to verify, so a wrong value is worse than no page
  • Trim boilerplate (mock plumbing, unchanged setup) and mark elisions with ...
  • Collapse a long mock setup to its meaningful lines; keep the assertion that matters
  • Light syntax highlighting via spans (see template); don't build a real tokenizer
Show full SKILL.md (270 more words)Show less

Page shape

  • Short intro: one sentence on what the page covers. No summary essays.
  • A small inventory table (counts: new test funcs, new cases, files touched mechanically)
  • One <h2> per test function or group, with the file path under it as .file
  • Rows in source order, so the page reads like the file
  • If a group has a shared harness (table struct, assertion loop), give it its own row first or last — whichever matches where it sits in the file
  • Footer: how to run the tests (full package command plus -run forms), and one line on what these tests do NOT cover if that's genuinely worth knowing

Never number headings or sections. Numbering rows inside a table is fine.

Layout

Copy references/template.html and fill in the rows. Key points:

  • Two-column CSS grid, minmax(0,1.15fr) minmax(0,1fr) — code slightly wider
  • Code cell: --code background, right border, overflow-x:auto, white-space:pre
  • Collapses to one column under 900px
  • Light mode, GitHub-ish palette, system font stack, ui-monospace for code
  • Self-contained: inline CSS, no CDNs, no frameworks. Vanilla JS only if it earns its place (a filter box is worth it past ~15 rows); it must work offline from file://

Row markup:

html
<div class="row">
<div class="code"><pre>name: <span class="str">"case_name"</span>,
setup: { ... },
want: {...},</pre></div>
<div class="exp"><div class="t">Short label</div><p>Which case this covers.</p></div>
</div>

Escape <, >, & inside <pre>. Watch out for Go template syntax in snippets ({{ $ref }}) — it is literal text here, but escape the angle brackets around it.

Anti-patterns

  • A row per changed line instead of per test case
  • Sections for mechanical fixture churn
  • Explanations longer than the code they sit beside
  • Inventing plausible-looking code instead of reading the file
  • Numbered headings
  • Writing the file and not opening it, or opening it repeatedly after each edit (open once; the user refreshes)

© meain, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in agents/.agents/skills/explain-tests of meain/dotfiles.

  • SKILL.md
  • references/template.html

Open the folder on GitHubat commit f469fb6

Compare with similar skills

Explain Tests 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.

Explain Tests compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Explain Tests this skillmeain/dotfiles285—~1.5kAutomated safety check: PassMIT
Review Walkthroughtrailofbits/skills7.4k—~1.7kAutomated safety check: PassCC-BY-SA-4.0
Explainsammcj/agentic-coding162—~719Automated safety check: PassApache-2.0
LobeHub Interactive Prototypelobehub/lobehub83k—~1.6kAutomated safety check: PassCustom licence
Paperclip Pagepaperclipai/paperclip98k—~1kAutomated safety check: PassMIT
Openkb Deck NeonVectifyAI/OpenKB4.7k1 repos~4.3kAutomated safety check: PassApache-2.0

Similar skills

  • Review Walkthrough

    trailofbits/skills

    Official

    Generates an interactive HTML walkthrough for reviewing code changes.

    7.4k GitHub stars~1.7k tokensUpdated 5 days ago
    Frontend & DesignAuto-check passed
  • Explain

    sammcj/agentic-coding

    Explain a concept, system or piece of code as a diagram-first terminal answer, or as an interactive HTML page.

    162 GitHub stars~719 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Builds single-file interactive HTML prototypes rendered with the real LobeHub UI components and written as production-style React, so they can later be split into files.

    83k GitHub stars~1.6k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Paperclip Page

    paperclipai/paperclip

    Publish static HTML pages and asset folders to the Paperclip S3/CloudFront page host.

    98k GitHub stars~1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Openkb Deck Neon

    VectifyAI/OpenKB

    A skill your agent uses when the user asks the openkb chat to make a deck / slide presentation / PPT / slides / 演示稿 / 幻灯片 from their compiled KB content AND wants a dark, high-tech, neon / glow /…

    4.7k GitHub starsUsed in 1 repo~4.3k tokens
    Frontend & DesignAuto-check passed
  • Build, review, debug, reverse-engineer data sources for, and package FongMi/WebHome custom homepage single-file HTML.

    1.7k GitHub stars~3.8k tokensUpdated today
    Frontend & DesignAuto-check passed

More from meain/dotfiles

All 36 skills in this repo
  • Recall

    meain/dotfiles

    Search past Claude Code and Codex sessions. An agent skill from meain/dotfiles.

    285 GitHub starsUsed in 1 repo~684 tokens
    Auto-check passed
  • Grill With Docs

    meain/dotfiles

    Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise.

    285 GitHub starsUsed in 21 repos~875 tokens
    Auto-check passed
  • Backlog

    meain/dotfiles

    Daily backlog management — full planning review OR add a single entry from a URL.

    285 GitHub stars~3k tokensUpdated 1 mo ago
    Auto-check passed
  • Concern Review

    meain/dotfiles

    Generate an interactive local HTML review page for a large PR or diff, grouping the changed files by logical concern (not just by file) so a reviewer can go through one theme at a time instead of a…

    285 GitHub stars~2.2k tokensUpdated 1 mo ago
    Auto-check passed
  • My Weekly Report

    meain/dotfiles

    Generate a concise weekly status update in team format. An agent skill from meain/dotfiles.

    285 GitHub stars~2.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Web Search

    meain/dotfiles

    Search the web using lynx and DuckDuckGo. An agent skill from meain/dotfiles.

    285 GitHub stars~830 tokensUpdated 1 mo ago
    Auto-check passed

Works with

Questions about Explain Tests

What does Explain Tests do?

Explain test code changes as a side-by-side HTML page — real test code on the left, a short note on the right saying which case that code covers. Explain Tests is an agent skill from meain/dotfiles. Explain test code changes as a side-by-side HTML page — real test code on the left, a short note on the right saying which case that code covers.

When should I use Explain Tests?

Explain Tests fits situations like: understanding newly added/changed tests in a commit; tasks that involve HTML artifacts.

How do I install Explain Tests in Claude Code?

Run `npx skills add meain/dotfiles --skill explain-tests -a claude-code`. Or copy the skill folder (agents/.agents/skills/explain-tests in meain/dotfiles) into .claude/skills/explain-tests in your project. Claude Code loads it when a task matches its description.

How do I install Explain Tests in Codex?

Run `npx skills add meain/dotfiles --skill explain-tests -a codex`. Or copy the skill folder (agents/.agents/skills/explain-tests in meain/dotfiles) into .agents/skills/explain-tests in your project. Codex loads it when a task matches its description.

Can I use Explain Tests in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add meain/dotfiles --skill explain-tests -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/explain-tests, .gemini/skills/explain-tests, .github/skills/explain-tests and .opencode/skills/explain-tests in your project.

What does Explain Tests need to run?

Going by SKILL.md and its folder, Explain Tests needs the command-line tools its instructions call (git and gh).

Does Explain Tests access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Explain Tests safe to install?

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.

What licence does Explain Tests use?

Explain Tests is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Explain Tests use?

About 1.5k tokens (SKILL.md is roughly 5.9k 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.3k tokens, read only when the agent opens those files.

What are the alternatives to Explain Tests?

Skills that share tags, products or a category with Explain Tests: Review Walkthrough (trailofbits/skills, 7.4k stars), Explain (sammcj/agentic-coding, 162 stars), LobeHub Interactive Prototype (lobehub/lobehub, 83k stars) and Paperclip Page (paperclipai/paperclip, 98k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Explain Tests?

meain (a GitHub user) maintains it in meain/dotfiles, which has 285 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on September 5, 2026.

Source: meain/dotfiles on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.