Visual Review
ai-dynamo/dynamo
Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores…
Explain a code change as a standalone offline HTML page with a five-question quiz.
$ npx skills add claesbackman/AI-research-feedback --skill explain-diff -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install claesbackman/AI-research-feedback explain-diff --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/claesbackman/AI-research-feedback.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Skills/explain-diff .claude/skills/explain-diff && 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 "explain-diff" agent skill from https://github.com/claesbackman/AI-research-feedback/tree/main/Skills/explain-diff into .claude/skills/explain-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "explain-diff", 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/claesbackman/AI-research-feedback/tree/main/Skills/explain-diffType 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 claesbackman/AI-research-feedback --skill explain-diff -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install claesbackman/AI-research-feedback explain-diff --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/claesbackman/AI-research-feedback.git skills-src && mkdir -p .agents/skills && cp -r skills-src/Skills/explain-diff .agents/skills/explain-diff && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "explain-diff" agent skill from https://github.com/claesbackman/AI-research-feedback/tree/main/Skills/explain-diff into .agents/skills/explain-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "explain-diff", 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 claesbackman/AI-research-feedback --skill explain-diff -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install claesbackman/AI-research-feedback explain-diff --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/claesbackman/AI-research-feedback.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/Skills/explain-diff .cursor/skills/explain-diff && 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 "explain-diff" agent skill from https://github.com/claesbackman/AI-research-feedback/tree/main/Skills/explain-diff into .cursor/skills/explain-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "explain-diff", 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/claesbackman/AI-research-feedback.git --path Skills/explain-diff--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 claesbackman/AI-research-feedback --skill explain-diff -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install claesbackman/AI-research-feedback explain-diff --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/claesbackman/AI-research-feedback.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/Skills/explain-diff .gemini/skills/explain-diff && 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 "explain-diff" agent skill from https://github.com/claesbackman/AI-research-feedback/tree/main/Skills/explain-diff into .gemini/skills/explain-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "explain-diff", 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 claesbackman/AI-research-feedback explain-diffInstalls 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 claesbackman/AI-research-feedback --skill explain-diff -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/claesbackman/AI-research-feedback.git skills-src && mkdir -p .github/skills && cp -r skills-src/Skills/explain-diff .github/skills/explain-diff && 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 "explain-diff" agent skill from https://github.com/claesbackman/AI-research-feedback/tree/main/Skills/explain-diff into .github/skills/explain-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "explain-diff", 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 claesbackman/AI-research-feedback --skill explain-diff -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install claesbackman/AI-research-feedback explain-diff --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/claesbackman/AI-research-feedback.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/Skills/explain-diff .opencode/skills/explain-diff && 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 "explain-diff" agent skill from https://github.com/claesbackman/AI-research-feedback/tree/main/Skills/explain-diff into .opencode/skills/explain-diff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "explain-diff", 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.
explain-diffExplain a code change as a standalone offline HTML page with a five-question quiz.
Explain Diff is an agent skill from claesbackman/AI-research-feedback. Explain a code change as a standalone offline HTML page with a five-question quiz. Reads the diff and the surrounding code from scratch, states the consequences for the empirical results, and saves the page outside the repository under a dated filename.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Education, covering HTML artifacts. It works with Git. The repository describes itself as: A collection of Claude Code skills for academic research review. These tools were developed by Claes Bäckman. The licence is MIT.
Read from SKILL.md and the folder at commit d129756. 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:
BashReadWriteGlobGrepFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From 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.
Explain Diff loads about 2.1k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 1,255 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Write, Glob, GrepAutomated 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 claesbackman/AI-research-feedback at commit d129756, republished under its MIT licence (© claesbackman). 1,255 words, ~2,064 tokens.
.claude/skills/explain-diff/SKILL.md (or your agent's skills folder).Produce one self-contained HTML page that explains a code change well enough that someone who did not write it could defend it, ending in a quiz that tests whether they actually followed.
Set the target from $ARGUMENTS:
HEAD. Use git status --short and git diff (add git diff --cached if anything is staged).abc123, main) — that ref against the working tree, or against HEAD if the tree is clean.main..HEAD, abc123..def456) — use it as given.New files are part of the change. git diff shows nothing for an untracked file, so a change that only adds scripts looks empty. Always read git status --short for ?? entries and treat every new file as an addition to explain: read it in full, since there is no diff to read. A new robustness script is exactly the kind of change worth explaining, and it is the one the diff will hide.
Stop only when git status --short and the diff are both empty.
Work only from the code and the diff. If the conversation already contains an account of this change — yours or the user's — ignore it and read the files. A summary written earlier is a hypothesis, not evidence.
Do not stop at the diff hunks. For every changed block, read the function, script, or stage that contains it, and read what consumes its output. A three-line addition to a pipeline stage is usually only comprehensible from the two files on either side of it.
The single most common failure here is reporting a change in results that did not happen, or missing one that did. Check, do not infer:
.tex bodies, and rendered figures often show as modified when only a timestamp comment or a nondeterministic tie-break changed. Diff them and look at what actually differs before calling it a result change.git show HEAD:path/to/figure.png > /tmp/old-figure.png — then read the extracted copy alongside the working-tree one. A re-render with identical content is not a finding.Write these five, in order, under clear headings.
1. What this code did before. Explore the surrounding scripts. Do not rely on the diff alone. Establish what the code produced, what consumed it, and — where it matters — what it conspicuously did not produce.
2. What changed and why, in plain language. No code in this section at all. Prose only. Name the problem the change solves before describing the solution.
3. Consequences for the results. Which sample, which coefficients, which tables, and in which direction. Be specific about magnitudes. If the answer is that nothing changed, say so explicitly and prominently, then show the evidence — matching observation counts, matching coefficients, timestamp-only diffs. A reader must not have to infer "no effect" from the absence of a claim. Where a change adds something rather than altering something, say what is new and what sample it rests on.
4. Walkthrough of the changed code, grouped by purpose rather than by file. One group per job the change does, even when a single job spans two files. Quote the code in <pre> blocks with the file and line range above each. Explain the lines that are load-bearing and skip the ones that are not, and say why a line is there when the reason is not obvious from reading it.
5. Quiz. Five multiple-choice questions, medium difficulty — hard enough that answering requires understanding the substance, not gotchas.
Single HTML file. Embed all CSS and JavaScript so it works offline with no network access.
<pre> tags, with the file path and line range in a small monospace label above.prefers-color-scheme.overflow-x: auto container.Pages accumulate. Six months on, the only thing that makes one worth keeping is knowing exactly which change it describes, so record that in the page itself rather than trusting the filename.
Directly under the page title, a small block giving:
git rev-parse --show-toplevel.git rev-parse --abbrev-ref HEAD.git diff against HEAD, git diff abc123, main..HEAD.git rev-parse. Short SHAs collide as a repository grows; the page is the archival record, so it carries the full one.When the comparison involves the working tree, say so explicitly and add the list of changed and new files. An uncommitted tree is not reproducible — the state this page describes may never exist again, and a reader who later checks out the recorded SHA will not see it. That caveat belongs on the page.
Save outside the repository. Default directory ~/Documents/; use a different one if the user names it. Confirm with git status afterwards that the repo is untouched.
Filename: today's date in YYYY-MM-DD- format, a short kebab-case slug of the change, then a ref tag so the file can be matched back to a commit without opening it.
HEAD — wt- plus the short SHA of HEAD, as in 2026-08-01-cluster-by-municipality-wt-e956a7e.html.a1b2c3d-def4567.Then tell the user the path, and follow it with a short plain-text summary of what you found — the same conclusions the page reaches, including anything you noticed while reading that the change's author might want to know. Do not make the user open the file to learn whether the results moved.
© claesbackman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in Skills/explain-diff of claesbackman/AI-research-feedback.
Open the folder on GitHubat commit d129756
Explain Diff 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 |
|---|---|---|---|---|---|---|
| Explain Diff this skillclaesbackman/AI-research-feedback | 491 | — | ~2.1k | Automated safety check: Notes | MIT | |
| Visual Reviewai-dynamo/dynamo | 8.2k | — | ~4.5k | Automated safety check: Pass | Apache-2.0 | |
| Paper ReaderAlphaLab-USTC/ResearchClaw | 134 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Researcherkrzysztofdudek/ResearcherSkill | 265 | — | ~5.5k | Automated safety check: Warn | MIT | |
| Flashcardsserenakeyitan/open-exam-skills | 142 | — | ~1.5k | Automated safety check: Pass | Custom licence | |
| Lesson Generatordair-ai/dair-academy-plugins | 614 | 2 repos | ~1.1k | Automated safety check: Pass | MIT |
ai-dynamo/dynamo
Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores…
AlphaLab-USTC/ResearchClaw
Deep-read an arXiv paper and generate structured Deep Note reading notes.
krzysztofdudek/ResearcherSkill
A skill your agent uses when user wants to optimize or tune something measurable through repeated experiments — "make X faster", "improve [metric]", "find best config", "iterate overnight", "run…
serenakeyitan/open-exam-skills
Render study flashcards into an interactive HTML deck. An agent skill from serenakeyitan/open-exam-skills.
dair-ai/dair-academy-plugins
Builds a self-contained multi-lesson course page with lesson navigation, objectives, flashcards, quizzes and source links, as plain HTML, CSS and JavaScript.
yaojingang/yao-open-skills
Convert uncertain real-world choices into an auditable Bayesian evidence-to-action report with priors, evidence grading, posterior update, action thresholds, sensitivity checks, multi-turn decision…
claesbackman/AI-research-feedback
Build a Quarto reveal.js slide deck in the explorable-explanation style (Nicky Case) — one idea per slide, assertion titles, a concrete running example, run-time SVG stages the presenter drives…
claesbackman/AI-research-feedback
Split a PDF into chunks and convert it to readable markdown text.
claesbackman/AI-research-feedback
Run a fast 2-agent pre-submission check for an economics paper — focuses on contribution, identification, and causal overclaiming.
claesbackman/AI-research-feedback
Convert a LaTeX research paper into a policy brief, 1-page summary, or 5-page summary for a general audience, with factual review and a standalone HTML page for GitHub Pages.
claesbackman/AI-research-feedback
Run a 6-agent pre-submission panel review for a grant proposal targeting a specified funder or program
claesbackman/AI-research-feedback
Run a fast 3-agent mechanical check of an economics paper — spelling and grammar, internal consistency and cross-references, and unsupported claims.
Works with
Categories
Explain a code change as a standalone offline HTML page with a five-question quiz. Explain Diff is an agent skill from claesbackman/AI-research-feedback. Explain a code change as a standalone offline HTML page with a five-question quiz.
Explain Diff fits situations like: tasks that involve HTML artifacts.
Run `npx skills add claesbackman/AI-research-feedback --skill explain-diff -a claude-code`. Or copy the skill folder (Skills/explain-diff in claesbackman/AI-research-feedback) into .claude/skills/explain-diff in your project. Claude Code loads it when a task matches its description.
Run `npx skills add claesbackman/AI-research-feedback --skill explain-diff -a codex`. Or copy the skill folder (Skills/explain-diff in claesbackman/AI-research-feedback) into .agents/skills/explain-diff 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 claesbackman/AI-research-feedback --skill explain-diff -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-diff, .gemini/skills/explain-diff, .github/skills/explain-diff and .opencode/skills/explain-diff in your project.
Going by SKILL.md and its folder, Explain Diff needs the command-line tools its instructions call (git). Its frontmatter pre-approves these tools: Bash, Read, Write, Glob, Grep.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Explain Diff is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Explain Diff: Visual Review (ai-dynamo/dynamo, 8.2k stars), Paper Reader (AlphaLab-USTC/ResearchClaw, 134 stars), Researcher (krzysztofdudek/ResearcherSkill, 265 stars) and Flashcards (serenakeyitan/open-exam-skills, 142 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
claesbackman (a GitHub user) maintains it in claesbackman/AI-research-feedback, which has 491 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on September 25, 2026.
Source: claesbackman/AI-research-feedback on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.