Skip to content
Agentmart
Submit a tool

annotated-diff

Create or maintain a standalone Markdown document that explains a Git diff, groups related changes by purpose, presents readable diff excerpts, and accounts…

Skill by edemaine

IndexedMIT★ 1
Write a review

Chalk Labs

Need help deploying annotated-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.

Book a call

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/edemaine-annotated-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.

We use your email only for this newsletter. Privacy

About

Create or maintain a standalone Markdown document that explains a Git diff, groups related changes by purpose, presents readable diff excerpts, and accounts for the complete change set. Use when the user asks for an annotated diff, an explanatory diff document, to refresh one after code changes, or continues implementation in a task where one is already being maintained.

Use cases: documents, productivity

No 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 and code. Checked Nov 1, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/annotated-diff

What's inside

Skill name
annotated-diff
Description
Create or maintain a standalone Markdown document that explains a Git diff, groups related changes by purpose, presents readable diff excerpts, and accounts for the complete change set. Use when the user asks for an annotated diff, an explanatory diff document, to refresh one after code changes, or continues implementation in a task where one is already being maintained.
License
MIT
Instructions
126 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • openai.yaml · agents/

SKILL.md (first lines)

# Annotated Diff

Create a reviewable Markdown artifact for readers who have the repository but
not the surrounding conversation. Explain both what changed and why.

## Establish the comparison

- Respect a user-specified base, scope, and output path.
- Otherwise infer the base from the current branch's PR or upstream metadata;
  use the repository's normal main branch as a fallback. Record the resolved
  base ref and short commit hash in the document.
- Include committed changes after the base plus staged and unstaged tracked
  changes. Ignore untracked files by default, but report their paths as omitted
  so the user can decide whether they belong in scope. Include one only when the
  user requests it or the specified scope clearly includes it, e.g., because
  it was created in the current conversation. Exclude the annotated-diff
  document itself from its inventory.
- Read repository instructions and any existing annotated-diff document before
  editing. Preserve useful prose, organization, and user edits when updating.
- This skill authorizes creating or updating the requested documentation, not
  changing the underlying implementation.

## Inventory before writing

Inspect the complete diff, not only its stat or the first tool-sized chunk.
Start with the status, name/status list, and stat, then read every changed file's
diff. Continue paginated or truncated output until every hunk has been seen.
Use status to identify untracked paths for the omission warning; do not inspect
their contents unless they are in scope.

Maintain a private coverage ledger while writing: every in-scope changed file
and hunk must have a destination section. Do not silently omit small supporting
edits, tests, comments, imports, renames, deletions, or in-scope newly added
files. Generated or mechanical changes may be summarized instead of reproduced
only when showing them would materially reduce readability; identify them
explicitly and state what caused them.

## Organize by rationale

Group changes by behavior, invariant, or design purpose rather than Git order or
filename. A file may appear in several sections when its changes support
different ideas. Put tests next to the behavior they verify. Collect truly
mechanical supporting changes, such as imports and exports, only when they do
not belong more naturally with their use.

For each group:

1. Give it a descriptive heading.
2. Explain the previous limitation or inaccurate model.
3. Explain the new approach and why it is preferable.
4. State any behavior change, preserved invariant, downstream use, or test that
   makes the reason concrete.
5. Show the relevant diff excerpts with a filename caption immediately above
   each fence, for example `**\`source/parser.civet\`**` followed by a
   `diff`-language fence.

Move back and forth between explanatory prose and diff blocks within a section
as needed. Explain each conceptual step near the excerpt it interprets instead
of forcing all prose before all code or all code into one block.

Write for a reader outside the current conversation. Avoid references such as
"the cast that motivated this refactor", "our earlier discussion", or "the
change above" when the referent is not self-contained. Do not infer a rationale
that the code does not support; inspect callers or history when necessary.

## Edit diff excerpts for comprehension

Diff blocks are explanatory excerpts, not a pasted chronological dump. They
must remain faithful to the actual before and after code.

- Split large raw hunks into smaller blocks when they contain independent
  concepts.
- Include enough unchanged context to identify the declaration, rule, or call
  site. Use `...` only to mark omitted unchanged context, never to conceal an
  unexplained changed line.
- Every changed line should be represented by a diff block; exposition does
  not suffice.
- Pair independent one-line replacements as `-`, `+`, `-`, `+` when raw Git
  output groups them as `-`, `-`, `+`, `+`. This is especially useful for
  parallel field or type edits:

  ```diff
  -  name: string
  +  name?: string
  -  id: Identifier
  +  id?: BindingIdentifier
  ```

  Do not reorder lines when their relative order changed, when additions and
  deletions are not one-to-one, or when pairing would imply a false
  correspondence.
- Keep related additions together when their ordering or combined shape is the
  point of the change.
- Do not invent diff lines, normalize away meaningful formatting, or show a
  proposed version that differs from the workspace.
- Use a plain filename caption because fenced Markdown has no portable filename
  metadata.

## Maintain an existing document

Recompute the comparison rather than appending only the latest edit. Update the
base hash if needed, revise explanations whose implementation changed, remove
stale excerpts, add newly introduced hunks to the appropriate semantic groups,
and renumber sections consistently. Prefer integrating a new change into an
existing rationale over creating a chronological "follow-up" section.

When this skill is active during an ongoing implementation task, keep the
annotated diff synchronized through later code changes before final handoff; do
not require a separate refresh request for every intermediate edit.

After editing, reread the Markdown and the complete current diff side by side.
Verify:

- every file and hunk in the inventory is represented or explicitly accounted
  for;
- every displayed removal and addition still matches the real comparison;
- filenames and the recorded base are correct;
- prose describes the final code rather than an abandoned intermediate design;
- tests appear with the behavior they cover;

From edemaine/agents-config, MIT.

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Oct 21, 2026 (10 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from edemaine

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

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying annotated-diff?

CallGet help
Cite this page

annotated-diff skill. Agent Mart. https://agentmart.dev/skills/edemaine-annotated-diff (last updated 2026-10-24)