change-description
Draft a title and markdown description for the change on the current branch — pull request, merge request, or patch series.
Skill by lukemiller
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/lukemiller-change-description
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: documents, writing
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/change-description
What's inside
- Skill name
change-description- Description
- Draft a title and markdown description for the change on the current branch — pull request, merge request, or patch series. Use when the user asks for a PR or MR description or title, says they are about to open or raise a PR/MR, asks you to write up their branch, or wants something they can paste into a forge. Reads the branch diff, sizes the change, and follows the project's own template when it has one. Generates and prints only; never posts, opens, edits, or pushes anything, and never uses the network. Do not use for commit messages — that is commit-messages — or for summarizing an uncommitted working tree for the user's own reading, which is summarize-changes.
- License
- MIT
- Compatibility
- opencode
- Metadata
- audience: developers · keywords: pull request, merge request, PR description, MR description, changelog entry · workflow: git
- Instructions
- 117 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (5)
- README.md
- SKILL.md
- TEMPLATE.md · references/
- WRITING_RULES.md · references/
- change-context.sh · scripts/
SKILL.md (first lines)
# Change Description Draft the title and description for the change on the current branch, print them, and stop. The destination decides whether it is called a pull request, a merge request, or a patch series; the writing is the same either way. ## Gotchas - **An empty diff usually means "not committed yet", not "no change".** People ask for a description immediately *before* committing. Never report "no changes" without checking the working tree — `scripts/change-context.sh` classifies this for you. - **Size is the main quality lever.** A three-line fix arriving with six headings is what teaches reviewers to skip generated text. Budget sections before writing prose, not after. - **Never emit an H1.** Every forge renders the title separately. - **Never use bare `!123` or `#123`.** Short refs render as plain text outside the forge that minted them. Full URLs always. - **Never introduce a prefix style the project's log doesn't already use.** Most repositories are not Conventional Commits; check before assuming. ## Rules - **Generate only.** Never run `gh pr create`, `glab mr create`, `gh pr edit`, `git push`, or anything else that creates or alters a change on a forge. If asked to open it afterwards, decline — that is a different tool's job. - **No network.** Local git refs plus files on disk is the entire dependency set. No forge CLI, no API, no token. - **No placeholder text.** A section with nothing to say is omitted, not filled with "None", "N/A", or "TODO". ## 1. Gather `SKILL_DIR` is the directory containing this file; resolve it from this file's own path. Run from the repository being described: ```bash "$SKILL_DIR/scripts/change-context.sh" [base-ref] ``` Resolves the base ref from local refs only, classifies what there is to describe, sizes it, finds any project template and `CONTRIBUTING.md`, and prints the recent log so you can match its subject convention. **Follow every `hint:` line it emits** — that is where the non-obvious cases are handled. Pass an explicit base ref when the operator names one, or when the script reports it found none. ## 2. Size The script suggests a class, and sizes on **substantive** lines: planning narrative, lock files, and vendored or generated trees are excluded, because their bulk says nothing about how much prose the change deserves. It lists every path it excluded — if that list looks wrong for the repository, pass `CHANGE_SIZE_EXCLUDE` (colon-separated globs, empty to disable). Treat the class as a floor; several unrelated concerns push a change up one. | Size | Shape | |---|---| | **Small** (<50 lines, one concern) | Summary only, one to three sentences, plus Related if there are links. Nothing else. | | **Medium** (50–200) | Summary plus at most two sections that earn their space. | | **Large** (200+, or several concerns) | Every section that applies. | **Budget rule:** for small and medium changes the description must be shorter than its own diff. If it is longer, it is restating the diff. ## 3. Skeleton The project's own template wins — follow its structure exactly, and still omit sections you have no evidence for. Add a heading it lacks only when the diff clearly needs one. With no template, use [references/TEMPLATE.md](references/TEMPLATE.md). If `CONTRIBUTING.md` states description expectations, they outrank both. ## 4. Title Match the convention in the log the script printed. Absent one: imperative, capitalized, no trailing period, 72 characters or fewer, shaped as `<Verb> <what> [in/for/to <context>]`. Derive it from the branch name when that name is semantic, otherwise from the commits. Cap consecutive nouns at two — three or more make a title the reader has to backtrack through. Examples and the read-aloud test are in [references/WRITING_RULES.md](references/WRITING_RULES.md). ## 5. Description Explain what the diff cannot show: motivation, tradeoffs, rejected alternatives, context living outside the code. Four rules, in full in [references/WRITING_RULES.md](references/WRITING_RULES.md): 1. **Could a reviewer learn this sentence from the diff or CI output?** Then cut it, unless it is the change's central point. 2. **Explain non-obvious choices.** Undocumented decisions get re-litigated in review. 3. **No AI tells.** Never open with "This PR" or "This change"; prefer a concrete number to a vague claim. 4. **The six-month test.** Would a stranger reading this through `git log` in six months understand why? Wrap anything long in `<details><summary>…</summary>`. ## 6. Print Output the title and description as two separated blocks, the description fenced so it can be copied verbatim. Add one line naming the size class and which template you followed, so the operator can tell the shape was chosen rather than stumbled into. Write to a file only if asked. ## References - **Fallback skeleton, by size**: [references/TEMPLATE.md](references/TEMPLATE.md) - **Title rules, anti-patterns, AI tells, formatting**: [references/WRITING_RULES.md](references/WRITING_RULES.md) - **Context gathering**: [scripts/change-context.sh](scripts/change-context.sh)
From lukemiller/agentic-toolkit, MIT.
More from lukemiller/agentic-toolkit
- 0.519score
plan
lukemiller
Create a high-level plan for implementing a feature, fixing a bug, or making a significant change.
SkillBFreshness: BClaude Code +9 - 0.516score
verify
lukemiller
Run full lint and test suite to validate changes before committing.
SkillBFreshness: BClaude Code +9 - 0.515score
sentry-issue
lukemiller
Evaluate and resolve Sentry issues.
SkillBFreshness: BClaude Code +9 - 0.278score
pr-review
lukemiller
No description from the publisher yet.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 5, 2026 (23 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/lukemiller/agentic-toolkit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from lukemiller
- 0.519score
plan
lukemiller
Create a high-level plan for implementing a feature, fixing a bug, or making a significant change.
SkillBFreshness: BClaude Code +9 - 0.516score
verify
lukemiller
Run full lint and test suite to validate changes before committing.
SkillBFreshness: BClaude Code +9 - 0.515score
sentry-issue
lukemiller
Evaluate and resolve Sentry issues.
SkillBFreshness: BClaude Code +9
Cite this page
change-description skill. Agent Mart. https://agentmart.dev/skills/lukemiller-change-description (last updated 2026-10-24)