pr-descriptions
Write high-signal pull request descriptions with mermaid diagrams, real code snippets, and PR-train conventions.
Skill by nikhil-vytla
Chalk Labs
Need help deploying pr-descriptions?
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.
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/nikhil-vytla-pr-descriptions
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: 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
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/pr-descriptions
What's inside
- Skill name
pr-descriptions- Description
- Write high-signal pull request descriptions with mermaid diagrams, real code snippets, and PR-train conventions. Use when drafting or improving PR bodies, especially for stacked PR trains in large repos. Ships a reusable PR_TEMPLATE.md for repos where a checked-in template is not an option.
- License
- MIT
- Instructions
- 82 lines in SKILL.md · view on GitHub
Files (2)
- PR_TEMPLATE.md
- SKILL.md
SKILL.md (first lines)
# PR descriptions
A PR description is the one artifact every reviewer reads before the diff. Its job: let a reviewer predict what they will see in the diff, and judge the change without reverse-engineering intent from code. Everything below serves that.
## Core structure
Four sections, in this order. Omit a section only when it would be empty, never because it is hard to write.
1. **Problem** — the need, written for someone outside the immediate work. State what is missing or broken and why it matters, without mentioning the solution. If the reader would ask "why now?", answer it here.
2. **Solution** — what changed, as bullets. One bullet per idea, each anchored to a file or symbol in backticks. Inline a short code snippet under the bullet when the key API or shape says it better than prose.
3. **Architecture** (or a content-specific heading like "How a score is built", "Run pipeline", "Shape") — one diagram and/or one exemplar snippet. See the diagram and snippet rules below.
4. **Testing** — the exact command, then what the tests *pin* (invariants, counts, regressions), not adjectives. "31 tests: dimension counts pinned exactly, weights sum to 100" beats "well tested". Include real output tables for E2E runs.
## Diagrams (mermaid)
GitHub renders ` ```mermaid ` fences natively — prefer them over image attachments: they diff, they survive repo moves, and they cost nothing to update.
Choose the diagram type by what the reviewer must hold in their head:
| Content | Type |
| --- | --- |
| Data contracts, record/model relationships | `classDiagram` |
| Runtime protocol, call ordering, loops per item | `sequenceDiagram` |
| Pipelines, composition, provenance, dataflow | `flowchart LR` / `flowchart TD` |
Rules that keep mermaid rendering on GitHub:
- Quote every node label: `A["load_bundle"]`. Unquoted parentheses, commas, and angle brackets break the parser.
- Line-break inside labels with `<br/>`.
- Keep node ids short and alphanumeric; put the real names in the label.
- Edge annotations: `-- label -->` for solid, `-. label .->` for dotted (good for "warning path", "drift test").
- One diagram per PR, maximum. Diagram the one structure the diff is about — not the whole system (save that for the combined/final PR).
- `Note over X: ...` in sequence diagrams is the place for cross-cutting facts (e.g. "blinded — system_id is type-unreachable").
## Code snippets
- **Real over invented**: paste from the diff, the resources, or actual output — then trim. A trimmed real preset teaches more than a schematic one.
- Show the **API or data shape**, not the implementation. A reviewer needs the call site and the row format; the implementation is the diff itself.
- Trim aggressively with `...` and keep snippets under ~15 lines.
- Annotate inline with comments or `<- arrows` for the one thing to notice: `models: [- *gemini_flash] # add a second anchor here -> judge panel`.
- Real output (CSV rows, leaderboard excerpts, error messages) is the strongest possible evidence in a Testing section.
## Callouts
Use GitHub alert syntax for meta-context — things about *reviewing the PR*, not about the code:
```markdown
> [!NOTE]
> Large by line count but entirely static markdown snapshots — reviewing this PR is spot-checking transcription fidelity, not reading code.
```
Good uses: not-for-merge branches, review-cost guidance ("mostly generated/static"), separability notes ("this carriage could move to its own ticket"). One per PR, at most two.
## PR-train specifics
- **TOC in every PR body**, wrapped in `<pr-train-toc>...</pr-train-toc>`, with a pointer (👉/👈) on the current PR. Update every body when the train changes shape.
- **Position narrative**: one sentence on where the PR sits and why — "Sits between the scorers (#N) and the wiring (#N+2) so the import in `_registry` resolves; earlier carriages don't import it."
- **Each PR must be CI-green standalone**; say so in Testing with the per-branch test count.
- **No cross-PR churn**: author every file once, in its final form, in the PR that owns it. If a later PR rewrites an earlier PR's file, the boundary is wrong — move the content, don't document the churn.
- **Size**: target 250–500 changed lines. Static transcriptions/snapshots/generated files may exceed it if the body says so with a callout. Split at genuine seams (a module whose tests import nothing else is a seam).
- **Combined branch**: not for review, not for merge — say it in a callout. This is the home for the whole-system architecture diagram and E2E results tables.
- **File tables with SHA-pinned permalinks** (`https://github.com/org/repo/blob/<sha>/path`) when the file set is non-obvious; reference-style links keep the table readable.
## Anti-patterns
- Restating the diff in prose ("added function X that does Y" for every function).
- Adjectives as evidence ("thoroughly tested", "significantly faster") — give the command, the count, the number.
- A diagram of the entire system on a 300-line PR.
- Screenshots of code or terminal output — paste the text.
- Describing what reviewers can see instead of what they cannot: intent, constraints, rejected alternatives, and where the bodies say "why", commit messages and PR bodies are the correct home for cross-project context that does not belong in code comments.
## Naming
- **PR title**: `[JIRA-XXX] Short description of changes` — the ticket key up front so it's greppable in PR lists and release notes.
- **Branch name**: `<username>-YYYYMMDD-camelCaseDescription` — e.g. `nikhil-20260920-fixScorerDrift`.
- **JIRA link**: every PR body ends with a `---` divider followed by `JIRA: <link-to-jira-ticket>` (see `PR_TEMPLATE.md`).
## Template
`PR_TEMPLATE.md` in this skill directory is the fill-in skeleton. Use it directly in repos where a checked-in `.github/PULL_REQUEST_TEMPLATE.md` is not an option (e.g. a monorepo you don't own): copy it into the PR body and fill it in, or point this skill at it when drafting.From nikhil-vytla/skills, MIT.
More from nikhil-vytla/skills
- 0.562score
codebase-design
nikhil-vytla
Shared vocabulary for designing deep modules.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
domain-modeling
nikhil-vytla
Build and sharpen a project's domain model.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
code-review
nikhil-vytla
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes: Standards (does the code follow this repo's documented coding…
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
tdd
nikhil-vytla
Test-driven development.
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
triage
nikhil-vytla
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
improve-codebase-architecture
nikhil-vytla
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
SkillAFreshness: A★ 1Claude Code +9 - 0.553score
retro
nikhil-vytla
Conduct a retrospective on a coding session.
SkillAFreshness: A★ 1Claude Code +9 - 0.553score
implement-spec
nikhil-vytla
Implement the result of /to-spec and /to-tickets in code.
SkillAFreshness: A★ 1Claude Code +9 - 0.552score
papercuts
nikhil-vytla
Log small frictions the moment they happen, using the papercut CLI bundled with this skill.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
clean-copy
nikhil-vytla
Cut interface copy that shouldn't exist — captions that restate a label, hints that pre-empt a worry the user never had, warnings that are scar tissue from a…
SkillBFreshness: B★ 1Claude Code +9 - 0.522score
prototype
nikhil-vytla
Build a throwaway prototype to answer a design question.
SkillBFreshness: B★ 1Claude Code +9 - 0.519score
wayfinder
nikhil-vytla
Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time…
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 21, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/nikhil-vytla/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from nikhil-vytla
- 0.562score
tdd
nikhil-vytla
Test-driven development.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
domain-modeling
nikhil-vytla
Build and sharpen a project's domain model.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
codebase-design
nikhil-vytla
Shared vocabulary for designing deep modules.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
code-review
nikhil-vytla
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes: Standards (does the code follow this repo's documented coding…
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
improve-codebase-architecture
nikhil-vytla
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
triage
nikhil-vytla
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
SkillAFreshness: A★ 1Claude Code +9
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 pr-descriptions 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.
Cite this page
pr-descriptions skill. Agent Mart. https://agentmart.dev/skills/nikhil-vytla-pr-descriptions (last updated 2026-10-24)