agentleFS
ahmadammarmahmadammarm/musyskills/skills/explain-changes/SKILL.md

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

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
  1. Distinctive:

    Before producing any explanation, perform the following in order:

    line 23
  2. Distinctive:

    Run git status to identify all modified, added, deleted, and renamed files in both the working tree and the staging area.

    line 25
  3. Distinctive:

    If git status shows no changes, state this clearly and do not generate an explanation file.

    line 26
  4. Distinctive:

    Run git diff to capture unstaged changes and git diff --staged to capture staged changes.

    line 27
  5. Distinctive:

    Run git log --oneline -10 to understand recent commit history and the current branch, which provides context for inferring the intent …

    line 28
  6. Distinctive:

    Do not list files in raw alphabetical or git status order.

    line 33
  7. Distinctive:

    Before writing the output file, ask the user which directory they would like it saved to.

    line 57
  8. Distinctive:

    Do not assume a default location or silently write to a directory without confirmation.

    line 58
  9. Distinctive:

    Write the full explanation to a markdown file in the confirmed directory.

    line 62
  10. Distinctive:

    Do not modify any source files.

    line 64
  11. Distinctive:

    Do not speculate about intent beyond what the code reasonably supports.

    line 68
  12. Distinctive:

    Keep the summary in plain language.

    line 69
  13. Distinctive:

    Do not modify any source file, staged file, or git history.

    line 70
  14. Distinctive:

    Always confirm the target directory with the user before writing the output file.

    line 71
  15. Distinctive:

    If git status shows no changes, state that clearly and stop.

    line 72
  16. Distinctive:

    Do not include sensitive information (secrets, credentials, personally identifiable data) in the explanation file, even if it appears in …

    line 73

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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:

  1. Run git status to identify all modified, added, deleted, and renamed files in both the working tree and the staging area.
  2. If git status shows 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.
  3. Run git diff to capture unstaged changes and git diff --staged to capture staged changes. Use both to form a complete picture.
  4. Run git log --oneline -10 to 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 status order.
  • 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 validateEmail function 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>.md or changes-explanation-<branch-name>.md based 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 status shows 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:

  1. Summary — A single paragraph giving an overall description of what the changes accomplish and their general purpose.
  2. Changes by Area — Grouped by logical area, each group containing: what changed, why it likely changed, and the impact on the system.
  3. Notable Side Effects — New dependencies, environment variable changes, schema changes, breaking API changes, or CI/CD modifications. Omit this section if none exist.
  4. 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.
  5. Full File List — A complete list of modified, added, deleted, and renamed files as reported by git status.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.