explain-changes
Skill1 starsChanged 12 days agoMITView on GitHub
Summarize and explain the current uncommitted or unpushed code changes in a repository, in plain language, regardless of language or framework. Use whenever the user asks "what did I change," "explain my changes," "summarize this diff," or wants a recap before writing a commit message or PR description.
4 other projects use a version of this.
Adopted by
Most recently taken up by
- salvo8519/fairmarktheir own version, first seen Nov 8, 2026
- elie222/inbox-zerotheir own version, first seen Oct 8, 2026
- gregwebs/skills-sdlctheir own version, first seen Sep 29, 2026
- ernesto27/skillstheir own version, first seen Jun 21, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- elie222/inbox-zero★ 13ksame name
- gregwebs/skills-sdlc★ 20same name
- ernesto27/skills★ 1same name
- salvo8519/fairmark★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository9 other files it gives its agents.
- web/AGENTS.mdAGENTS.md
- apply-review-feedbackSkill
- code-changes-reviewSkill
- prd-generatorSkill
- pr-draftSkill
- project-explanationSkill
- push-to-originSkill
- releaseSkill
- skill-nameSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 16 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
16
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 23
Before producing any explanation, perform the following in order:
- Distinctive: line 25
Run git status to identify all modified, added, deleted, and renamed files in both the working tree and the staging area.
- Distinctive: line 26
If git status shows no changes, state this clearly and do not generate an explanation file.
- Distinctive: line 27
Run git diff to capture unstaged changes and git diff --staged to capture staged changes.
- Distinctive: line 28
Run git log --oneline -10 to understand recent commit history and the current branch, which provides context for inferring the intent …
- Distinctive: line 33
Do not list files in raw alphabetical or git status order.
- Distinctive: line 57
Before writing the output file, ask the user which directory they would like it saved to.
- Distinctive: line 58
Do not assume a default location or silently write to a directory without confirmation.
- Distinctive: line 62
Write the full explanation to a markdown file in the confirmed directory.
- Distinctive: line 64
Do not modify any source files.
- Distinctive: line 68
Do not speculate about intent beyond what the code reasonably supports.
- Distinctive: line 69
Keep the summary in plain language.
- Distinctive: line 70
Do not modify any source file, staged file, or git history.
- Distinctive: line 71
Always confirm the target directory with the user before writing the output file.
- Distinctive: line 72
If git status shows no changes, state that clearly and stop.
- Distinctive: line 73
Do not include sensitive information (secrets, credentials, personally identifiable data) in the explanation file, even if it appears in …
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
explain-changes
Purpose
Give a clear, accurate, and human-readable explanation of what changed in the codebase and why it likely matters. The goal is to help the developer understand the full scope of their own modifications without needing to re-read the raw diff themselves, which is particularly useful before writing a commit message, PR description, or changelog entry.
Trigger
Activate this skill when the user:
- Asks to "explain my changes," "summarize what I did," "what did I change," or "recap this diff."
- Wants context or a summary before writing a commit message or PR description.
- Wants to verify the scope of their modifications before staging or pushing.
- Asks for a changelog entry or release note based on the current diff.
Pre-flight Checks
Before producing any explanation, perform the following in order:
- Run
git statusto identify all modified, added, deleted, and renamed files in both the working tree and the staging area. - If
git statusshows no changes, state this clearly and do not generate an explanation file. Ask the user if they want to review a specific commit or branch instead. - Run
git diffto capture unstaged changes andgit diff --stagedto capture staged changes. Use both to form a complete picture. - Run
git log --oneline -10to understand recent commit history and the current branch, which provides context for inferring the intent behind the changes.
Workflow
Step 1: Group Changes Logically
- Do not list files in raw alphabetical or
git statusorder. - Group changes by their logical relationship: related feature files together, configuration changes separately, test files adjacent to the code they test, documentation changes as their own group.
- Common groupings include: core feature/logic changes, API or route changes, database or schema changes, configuration or environment changes, test additions or updates, and documentation or comment updates.
Step 2: Explain Each Group
For each logical group, provide:
- What changed: a plain-language description of the modifications (e.g., "Added a new
validateEmailfunction to the utilities module"). - Why it likely changed: the inferred purpose based on what the code does (e.g., "This appears to centralize email validation that was previously duplicated across three files"). Only state what the code reasonably supports. Do not speculate beyond what is evident.
- Impact: whether the change is additive, a bug fix, a breaking change, a performance improvement, or a refactor. Note any changes to public interfaces, API contracts, or database schemas explicitly, as these carry downstream risk.
Step 3: Flag Unrelated or Suspicious Files
- Identify any files in the diff that appear unrelated to the main body of change.
- Common examples: a configuration file changed alongside a feature, a seemingly unrelated test file modified, or a lock file updated.
- Surface these explicitly so the user can verify they were intentional before committing.
Step 4: Note Side Effects
- Identify and call out any notable side effects of the changes:
- New packages or dependencies introduced.
- Environment variable additions or changes.
- Database migration files created or modified.
- Breaking changes to public APIs or exported interfaces.
- Changes to CI/CD configuration or deployment scripts.
Step 5: Confirm Output Location
- Before writing the output file, ask the user which directory they would like it saved to.
- Do not assume a default location or silently write to a directory without confirmation.
- Name the file
changes-explanation-<YYYY-MM-DD>.mdorchanges-explanation-<branch-name>.mdbased on the context.
Step 6: Write the Explanation File
- Write the full explanation to a markdown file in the confirmed directory.
- Present the file path to the user after writing.
- Do not modify any source files. This skill is read-only with respect to the project's actual code.
Rules
- Do not speculate about intent beyond what the code reasonably supports. When the purpose is unclear, state the uncertainty explicitly rather than fabricating a plausible-sounding explanation.
- Keep the summary in plain language. Avoid restating the diff line by line or using excessive technical jargon.
- Do not modify any source file, staged file, or git history. This skill only reads code and writes the explanation document.
- Always confirm the target directory with the user before writing the output file. Never guess or silently default to a location.
- If
git statusshows no changes, state that clearly and stop. Do not generate a file with empty or fabricated content. - Do not include sensitive information (secrets, credentials, personally identifiable data) in the explanation file, even if it appears in the diff.
Output Format
A markdown file with the following sections, in order:
- Summary — A single paragraph giving an overall description of what the changes accomplish and their general purpose.
- Changes by Area — Grouped by logical area, each group containing: what changed, why it likely changed, and the impact on the system.
- Notable Side Effects — New dependencies, environment variable changes, schema changes, breaking API changes, or CI/CD modifications. Omit this section if none exist.
- Files to Double-Check — Files that appear unrelated to the main change and warrant a second look before committing. Omit this section if all files appear intentional.
- Full File List — A complete list of modified, added, deleted, and renamed files as reported by
git status.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

