explain-diff
Write one rich HTML explainer of a finished feature (background, intuition, code walkthrough, quiz), publish it (or put it in the user's Notion), and check…
Skill by caioba-codes
Chalk Labs
Need help deploying explain-diff?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/caioba-codes-explain-diff
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: frontend, writing, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/explain-diff
What's inside
- Skill name
explain-diff- Description
- Write one rich HTML explainer of a finished feature (background, intuition, code walkthrough, quiz), publish it (or put it in the user's Notion), and check which explainers the user hasn't reviewed yet. Use when a feature's last PR lands, for 'explain this diff/PR/feature', and at the start of a new feature conversation (pending check).
- License
- MIT
- Instructions
- 73 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (3)
- SKILL.md
- pending.sh · scripts/
- publish.sh · scripts/
SKILL.md (first lines)
# Explain diff **Once agents merge their own PRs, the user stops reviewing every diff, so each finished feature leaves them one page that makes them actually understand it.** Adapted from Geoffrey Litt's `explain-diff-html` skill (https://gist.github.com/geoffreylitt/a29df1b5f9865506e8952488eac3d524, announced at https://x.com/geoffreylitt/status/2072522251300409556). The page format below is his. When it's sent, where it goes, and the review loop are cflow's. ## When - **A feature is finished.** That means its last PR has merged, been verified, and been deployed if the repo deploys. A multi-PR program that ships three features writes three pages, each one as its feature lands. Write the page, publish it, and put the link in the final report. Don't write one when a thread merely goes idle, because idle can also mean blocked. - **The user asks** for one on any PR, branch, or diff. - **A one-PR fix gets no page** unless they ask. ## The pending check (start of a new feature conversation) At the start of a new feature, list the explainers the user hasn't reviewed, as an informational reading-list check. When a Notion destination is set (see **Notion destination**), they are its database's rows whose review checkbox is unticked, read with the Notion connector. Otherwise run `scripts/pending.sh` (installed at `~/.claude/skills/explain-diff/scripts/pending.sh`): each line is one (`<title><TAB><url>`). Unreviewed pages, a missing script, or an unknown result never block planning, implementation, merges, deployments, or subsequent features. Do not ask for review acknowledgment or repeat the check as a merge gate. - **Anything pending.** Link each page for the user to read when convenient, then continue the authorized work. - **`none`.** Say nothing about it. - **Missing script, an unreachable Notion, or `unknown: ...`.** Report the limitation briefly, then continue the authorized work. Review tracking is optional. Without a Notion destination or a `cflow-explain-pending` hook on PATH (see Publishing), the check prints `none`. ## Writing the page Make a rich, interactive explanation of the feature's whole change: every PR in it, read as one diff (`git diff <base-before-the-first-PR>..<merge-of-the-last-PR>`). It has these sections. - **Background.** Explain the existing system relevant to this change, exploring the surrounding code broadly. We don't know how much the reader already knows, so include a deep background for beginners (note that it can be skipped if the reader is already familiar), then a narrower background directly relevant to the change. - **Intuition.** Explain the core intuition for the change. Focus on the essence, not the full details. Use concrete examples with toy data, and figures and diagrams liberally. - **Code.** A high-level walkthrough of the code changes, grouped and ordered so they're easy to follow. Link each PR (`https://github.com/<owner>/<repo>/pull/<n>`) and its verifier verdict, and say how each was proven on the running app. - **Quiz.** Five medium-difficulty questions that test the reader's knowledge of this change. They should be hard enough that answering needs the substance of the change, but not gotchas. Present them as interactive multiple-choice questions. A click tells the reader whether they were right and gives feedback. Format: - **One self-contained HTML file** with its CSS and JavaScript inline. One long page with section headers and a table of contents, and no tabs for the top-level structure. Responsive, so it reads on a phone. Light and dark via `prefers-color-scheme`. It must have a closing `</body>`, so a publish hook can add to the page there. - **Write with the clarity and flow of Martin Kleppmann**, engaging and in classic style, with smooth transitions between sections. Run the prose through the **unslop** skill. - **Diagrams.** Pick a small number of diagram families and reuse them to explain different cases. Useful kinds: a very simplified version of the UI the user sees (for UI changes), and a system diagram of data flow between components, with example data. - **No ASCII diagrams.** Use simple HTML for diagrams and HTML lists for lists. Code blocks use `<pre>`. A custom styled div must have `white-space: pre-wrap`, or the browser collapses its newlines. Before saving, check every code block's CSS has `pre` or `pre-wrap`. - **Callouts** for key concepts, definitions, and important edge cases. - **No secrets, tokens, or private data** in examples. The page may be published somewhere other people can read. Write it outside the code repo, for example `/tmp/<slug>.html`. ## Publishing ``` scripts/publish.sh /tmp/<slug>.html --slug <YYYY-MM-DD>-<repo>-<feature> --title "<Feature in plain words>" --repo <owner/repo> --prs "<n> <n> ..." ``` It prints where the page lives. Put that in the feature's final report as its own line. With a Notion destination, the Notion page is the link the user gets; see **Notion destination**. By default it saves the page to `$EXPLAIN_DIR/<slug>/index.html` (default `~/explainers`) and prints its `file://` path. To publish somewhere else, put an executable `cflow-explain-publish` on PATH. `publish.sh` passes it the same arguments, and the hook prints the page's URL as its last line. It can upload to a server or static site, open a review task, or anything else. A matching `cflow-explain-pending` hook feeds the pending check. If a hook fails, say in the report that publishing failed and attach the HTML instead. ## Notion destination The user can make Notion the place their lessons live: their instructions (`CLAUDE.md`, `AGENTS.md`, project instructions or memory), or an installed skill named `explain-destination`, name a Notion database for explainers. Keep it in a skill when the user works from cloud sessions too, since those can't read files on their machine; the skill's name is the contract. Read that skill or instruction before publishing: it says which properties to fill and which checkbox means "reviewed". Without a named database, skip this section and don't ask. With a destination set, every explainer becomes one page in that database, written with the Notion connector or API, from whatever machine the session runs on. It is a page to read, not a task: no checklist items, due dates or reminders. Leave the review checkbox unticked; the user ticks it. Fetch the database first and fill its title property with the page's title, plus the properties the destination names. Run `publish.sh` too. When it prints an `http(s)` URL, put it in the page's first line and in the property the destination names for it. A `file://` path from a machine the user isn't on goes nowhere, so leave it out. The final report links the Notion page. If the Notion connector is missing or needs authorization, say so in the report with what the user must connect, and attach the HTML instead. The Notion page is a rewrite for reading on a phone in the Notion app, not a paste of the HTML: - **Same sections, same order, same prose.** Keep the substance; drop only what Notion can't show. - **Headings and short paragraphs.** `##` for sections, `###` for subsections, paragraphs of two to four sentences. A one-line summary under each section heading. - **Callouts** for the key ideas, definitions and edge cases the HTML marks as callouts. - **Diagrams** become a Mermaid code block when it's a flow between components (Notion renders it), or a numbered list of steps with the example data inline. Never an image of text, never ASCII art. - **Tables** of at most three narrow columns; wider ones become a bulleted list per row. - **Code** in code blocks with the language set, kept short; long listings go in a toggle. - **Long detail** (beginner background, per-file notes) goes in toggles so the page scrolls fast. - **Quiz:** each question as a numbered item with its options, and the answer with its explanation inside a toggle under it. - **Links** to PRs, files and sources stay as links. The same privacy rule applies: no secrets, tokens or private data.
From caioba-codes/cflow, MIT.
More from caioba-codes/cflow
- 0.570score
explain-flow
caioba-codes
Write a one-file HTML page for an agent workflow with two tabs: Get started (prerequisites, then one canned feature step by step, each step marked you or…
SkillAFreshness: AClaude Code +9 - 0.567score
cflow
caioba-codes
poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work.
SkillAFreshness: AClaude Code +9 - 0.567score
cflow-help
caioba-codes
Guides users through cflow setup, /cflow, and picking the skill, playbook, or principle for a task.
SkillAFreshness: AClaude Code +9 - 0.565score
grilling
caioba-codes
Grill the user in rounds of numbered questions about a plan before anything is built.
SkillAFreshness: AClaude Code +9 - 0.565score
explain-repo
caioba-codes
Write one HTML recap of a whole repo for someone coming back to it after time away: what the product does, how it's used, the architecture and why it was…
SkillAFreshness: AClaude Code +9 - 0.541score
how
caioba-codes
Use for "how does X work", code walkthroughs before changing something, and placement / ownership / layering questions ("where should this live", "which…
SkillAFreshness: AClaude Code +9 - 0.541score
architect
caioba-codes
Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in.
SkillAFreshness: AClaude Code +9 - 0.536score
arena
caioba-codes
Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 23, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/caioba-codes/cflow
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from caioba-codes
- 0.570score
explain-flow
caioba-codes
Write a one-file HTML page for an agent workflow with two tabs: Get started (prerequisites, then one canned feature step by step, each step marked you or…
SkillAFreshness: AClaude Code +9 - 0.567score
cflow
caioba-codes
poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work.
SkillAFreshness: AClaude Code +9 - 0.567score
cflow-help
caioba-codes
Guides users through cflow setup, /cflow, and picking the skill, playbook, or principle for a task.
SkillAFreshness: AClaude Code +9 - 0.565score
grilling
caioba-codes
Grill the user in rounds of numbered questions about a plan before anything is built.
SkillAFreshness: AClaude Code +9 - 0.565score
explain-repo
caioba-codes
Write one HTML recap of a whole repo for someone coming back to it after time away: what the product does, how it's used, the architecture and why it was…
SkillAFreshness: AClaude Code +9 - 0.541score
how
caioba-codes
Use for "how does X work", code walkthroughs before changing something, and placement / ownership / layering questions ("where should this live", "which…
SkillAFreshness: AClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get explain-diff running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
explain-diff skill. Agent Mart. https://agentmart.dev/skills/caioba-codes-explain-diff (last updated 2026-10-24)