diff-explainer SKILL.md skillA

diff-explainer from thoughtbot/rails-consultant is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add thoughtbot/rails-consultant/diff-explainer@git:20261106.5b1536c

Pins git:20261106.5b1536c in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
thoughtbot/rails-consultant
Path
skills/diff-explainer/SKILL.md
Versions recorded
3
Latest version
git:20261106.5b1536c, committed Nov 6, 2026
First version recorded
Nov 6, 2026
Size
9,985 bytes
Repository stars
29
License
MIT

Builds a shareable HTML walkthrough of the current changes, highlighting risks, tradeoffs, and alternatives considered.

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# Diff explainer

The diff already shows what changed. What it can't show is why — why this approach
and not the obvious one, what broke when you tried that, what you're nervous about,
what you decided not to do. Supply that. Your reader is a sharp, time-poor developer
who may not know this stack.

## 1. Work out what you're explaining

No argument means the current branch against its base, diffed from the merge base
so other people's commits don't leak in.

```bash
BASE=$(git rev-parse --verify --quiet @{upstream} \
    || git rev-parse --verify --quiet refs/remotes/origin/HEAD \
    || git rev-parse --verify --quiet refs/heads/main \
    || git rev-parse --verify --quiet refs/heads/master)
MB=$(git merge-base "$BASE" HEAD)
test -n "$MB" || echo "No base found — ask which branch to diff against."
git diff --stat "$MB" && git log --oneline "$MB"..HEAD
git status --porcelain -uall   # untracked files the diff won't show
```

Size up the change from the stat before reading `git diff "$MB"` — a diff you pull
into context whole is one you can no longer decide to skip. Upstream first, and
`refs/heads/` not bare `main`, or you diff against the wrong base: a fork of
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add thoughtbot/rails-consultant/diff-explainer@sha256:c3a9c6f69b03b2e8

The line at the top of this page pins the label git:20261106.5b1536c, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_tfwt4s72qh26quvi.svg)](https://markdownregistry.com/a/art_tfwt4s72qh26quvi)

1 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 3 versions of this file, all committed on Nov 6, 2026.

versioncommittedcommitsizeaudit
git:20261106.5b1536c latest2026-11-06 5b1536c 9,985 BA view · diff
git:20261106.7724c752026-11-06 7724c75 9,942 BA view · diff
git:20261106.ce8ab682026-11-06 ce8ab68 9,676 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (9985 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

thoughtbot/rails-consultant · 29 stars · license MIT · pushed 2026-11-07 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_tfwt4s72qh26quvi
GET https://markdownregistry.com/api/v1/resolve?ref=thoughtbot/rails-consultant/diff-explainer
GET https://markdownregistry.com/api/v1/blob/c3a9c6f69b03b2e81edbf4cc217ce7fa018425f923c1746aa3e33dc3bb062658

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from thoughtbot/rails-consultant

ask-claude SKILL.md skill
thoughtbot/rails-consultant · skills/ask-claude/SKILL.md · Recommend the best way to have Claude do something, checked against Anthropic's current docs, then write the prompt and…
git:20261106.ce8ab68 · audit A · 29 stars
commit SKILL.md skill
thoughtbot/rails-consultant · skills/commit/SKILL.md · Commit the current changes as atomic commits, recording risks, tradeoffs, and alternatives considered.
git:20261106.7724c75 · audit A · 29 stars
domain-model SKILL.md skill
thoughtbot/rails-consultant · skills/domain-model/SKILL.md · Turn a described business process into a domain model.
git:20261106.ce8ab68 · audit A · 29 stars
eli5 SKILL.md skill
thoughtbot/rails-consultant · skills/eli5/SKILL.md · Explain something to someone who knows nothing about it.
git:20261106.ce8ab68 · audit A · 29 stars
implement-with-tdd SKILL.md skill
thoughtbot/rails-consultant · skills/implement-with-tdd/SKILL.md · Implement a SPEC, plan, or feature outside-in, with TDD.
git:20261106.ce8ab68 · audit A · 29 stars
multi-lens-review SKILL.md skill
thoughtbot/rails-consultant · skills/multi-lens-review/SKILL.md · Review a change for defects, then against its spec, its codebase's conventions, the domains trying to emerge from it…
git:20261106.ce8ab68 · audit A · 29 stars
pr SKILL.md skill
thoughtbot/rails-consultant · skills/pr/SKILL.md · Open a pull request whose description you write yourself, with a suggested title and a light proofread.
git:20261106.7724c75 · audit A · 29 stars
preparatory-refactor SKILL.md skill
thoughtbot/rails-consultant · skills/preparatory-refactor/SKILL.md · Identify opportunities to introduce a refactor that would make a feature easy to implement.
git:20261106.ce8ab68 · audit A · 29 stars
risk-score SKILL.md skill
thoughtbot/rails-consultant · skills/risk-score/SKILL.md · Score how risky a pull request or branch is with fixed rules, and reply with the result as JSON. Use when asked how…
git:20261106.ce8ab68 · audit A · 29 stars
rubber-duck SKILL.md skill
thoughtbot/rails-consultant · skills/rubber-duck/SKILL.md · Start a rubber duck session.
git:20261106.ce8ab68 · audit A · 29 stars
ship SKILL.md skill
thoughtbot/rails-consultant · skills/ship/SKILL.md · Implement, verify and review a feature based on its SPEC, then open a draft PR.
git:20261106.ce8ab68 · audit A · 29 stars
slice SKILL.md skill
thoughtbot/rails-consultant · skills/slice/SKILL.md · Cut a feature or idea down to one full-stack slice.
git:20261106.7724c75 · audit A · 29 stars

Every file in thoughtbot/rails-consultant

Other files named diff-explainer

diff-explainer SKILL.md skill
stevepolitodesign/skills · diff-explainer/SKILL.md · Builds a shareable HTML walkthrough of the current changes, highlighting risks, tradeoffs, and alternatives considered.
git:20261104.fc359ac · audit A · 10 stars

Browse by kind, by grade A, or by owner.