Agent skill

PR Description

by TanStack in TanStack/ai

A skill your agent uses when writing a pull request title or body, when about to run gh pr create, when about to git push on a branch that already has an open PR, or when the user says…

MITAuto-check: warningsDevelopment

Install PR Description

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add TanStack/ai --skill pr-description -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install TanStack/ai pr-description --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/TanStack/ai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.grok/skills/pr-description .claude/skills/pr-description && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pr-description
GitHub stars
3.2k
Token cost
~2.2k tokens
SKILL.md length
1,196 words
Files
1
Skills in repo
24
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when writing a pull request title or body, when about to run gh pr create, when about to git push on a branch that already has an open PR, or when the user says…

  • Works in 6 steps: Ground in the repo → Classify the PR → Feat gate: easy test path → …
  • Writing a pull request title
  • SKILL.md covers When to run, Required skills for the title…, Procedure and Red flags
  • Calls gh, git and pnpm

What it does

PR Description is an agent skill from TanStack/ai. Use when writing a pull request title or body, when about to run gh pr create, when about to git push on a branch that already has an open PR, or when the user says /pr-description, "write the PR description", or "update the PR title". Don't use for commit messages, changelogs, or review comments.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Pull requests. It works with Git and GitHub. The repository describes itself as: 🤖 Type-safe, provider-agnostic TypeScript AI SDK for streaming chat, tool calling, agents, and multimodal apps across OpenAI, Anthropic, Gemini, React, Vue, Svelte, and Solid. The licence is MIT.

When your agent uses it

  • Writing a pull request title
  • About to run gh pr create
  • About to git push on a branch that already has an open PR
  • The user says /pr-description

Example prompts

  • “write the PR description”
  • “update the PR title”
  • “/pr-description”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Ground in the repo
  2. Classify the PR
  3. Feat gate: easy test path
  4. Write the title
  5. Write the body
  6. Post immediately

What it can do on your machine

Read from SKILL.md and the folder at commit 68aeada. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git
    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, git and pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

PR Description loads about 2.2k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 1,196 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~78
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningTells the agent its actions are pre-authorized / not to stop for confirmationSKILL.md:8
    tHub PR title and body, then post them. Do not wait for approval.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from TanStack/ai at commit 68aeada, republished under its MIT licence (© TanStack). 1,196 words, ~2,180 tokens.

Download SKILL.mdSave it as .claude/skills/pr-description/SKILL.md (or your agent's skills folder).
name
pr-description
description
Use when writing a pull request title or body, when about to run gh pr create, when about to git push on a branch that already has an open PR, or when the user says /pr-description, "write the PR description", or "update the PR title". Don't use for commit messages, changelogs, or review comments.

pr-description

Write the GitHub PR title and body, then post them. Do not wait for approval.

Work from the diff, not from memory.

When to run

This skill is auto plus on demand.

Run it:

  • When the user asks for a PR title or body, or types /pr-description.
  • Immediately before gh pr create.
  • Immediately after an agent git push on a branch that already has an open PR. Then run gh pr edit with a fresh title and body.

Do not run it on a human-only git push in another terminal. Do not add a git hook.

A later push must rewrite the GitHub text. Do not leave a stale description.

A fix PR must pass bugfix-pr first. If those gates fail, stop. Do not run gh pr create. Do not run gh pr edit.

Required skills for the title and body

simple-english and i-have-adhd are prerequisites. They apply to the PR title and body, not to the rest of the session.

Load both immediately before writing the title and body. Use the Skill tool if this harness has one. If it does not, Read:

  • .claude/skills/simple-english/SKILL.md
  • .claude/skills/i-have-adhd/SKILL.md

Copies also live at .agents/skills/ (Codex) and .grok/skills/ (Grok). Keep those three files identical.

If either file is missing, stop. Do not post a weaker substitute.

When i-have-adhd is loaded from this skill, ignore its persistence section. Do not switch the rest of the session into ADHD mode.

Use pragmatic simple-english. Then shape the text with i-have-adhd: next action first in the lead, numbered steps for manual test, lists capped at 5.

Procedure

1. Ground in the repo
  1. Find the base branch (main / master / develop).
  2. Read git log --oneline base...HEAD and git diff base...HEAD.
  3. Read .github/pull_request_template.md if it exists (also check .github/PULL_REQUEST_TEMPLATE.md and .github/PULL_REQUEST_TEMPLATE/).
  4. Read about 15 recent PR titles in this repo (gh pr list --limit 15 --state all --json title). Match that shape. Do not invent a new title style.
  5. Collect linked issues from branch name, commit messages, and Closes # / Fixes # text.
2. Classify the PR

Pick one kind from the diff:

KindSignal
fixRestores broken behavior. A user-visible bug, a failing test, a regression.
featAdds behavior that did not exist. New export, new command, new user-facing flow.
chore / docsAgent files, CI, docs-only, refactors with no user-visible behavior change.

If both a feat and a fix are in the diff, the larger user-visible story wins. Say so in the lead.

3. Feat gate: easy test path
<HARD-GATE>
A **feat** PR cannot be posted until the branch has at least one of:
  • A new or updated automated test that covers the new behavior
  • A command a reviewer can copy and run
  • A change in an official example app that shows the new behavior

If none of those exist, stop. Do not run gh pr create. Do not run gh pr edit. Tell the user what is missing. Wait until they add one, then continue.

A fix does not use this gate. A fix uses bugfix-pr. Load it first. A chore / docs PR does not use this gate. </HARD-GATE>

4. Write the title

Match this repo's recent PR titles. In a conventional-commit repo, write type(scope): summary. Keep it one line.

The title must still make sense if the reviewer never opens the body.

5. Write the body

Load simple-english and i-have-adhd, then write in this order.

Lead (required, 1 to 4 sentences, before the template).

  • feat: what the PR does for a user of the product.
  • fix: what the bug is, then how this PR fixes it.
  • chore / docs: what changed, in product or repo terms, not a file list.

No preamble. No "This PR aims to". Start with the fact.

Repo template (required when the file exists).

Fill every section honestly. Leave a checkbox unchecked when the claim is false. Do not tick "I ran pnpm test:pr" if you did not run it.

Extra sections after the template, in this order. Testing and Risk / rollback are always present. For a fix, Root cause and Possible alternatives are also always present. Linked issues and Public API change are omitted when they do not apply.

Root cause (fix only)

Required for a fix. Copy from the bugfix-pr report. Do not paste the diff. Write:

markdown
## Root cause

**Issue.** What is broken, for whom, under which inputs.
**Cause.** Why it happens in the code. Name the function or path.
**Fix.** How this PR's change kills that cause.
Show full SKILL.md (488 more words)Show less
Possible alternatives (fix only)

Required for a fix. Copy from the bugfix-pr report. Write:

markdown
## Possible alternatives

- **<name>.** What it is. Why this PR did not take it.

If there is no other real way, write None. Do not omit the heading.

Testing

Three parts, all required:

  1. Commands run. What you ran, what passed, what you skipped and why. If you ran nothing, say so.
  2. Manual test. Numbered steps a reviewer can follow to see the change. For a fix, step 1 is how to reproduce the old bug, then how to confirm it is gone.
  3. How this PR makes testing easy. Name the artifacts on the branch: tests, a command, an example app change. If there are none (allowed for fix and chore / docs), write that. Do not invent an easy path.
Linked issues

Omit this heading when nothing links. When an issue links, use Closes #N or Fixes #N.

Risk / rollback

What could break. How to undo (revert the PR, turn a flag off, and so on). If risk is low, say that in one line. Do not skip the heading.

Public API change

Omit this heading when the PR does not touch the published surface.

Published surface means: exported functions, types, components, CLI flags, env vars, and documented contracts from published packages. Tests, internal files, agent skills, AGENTS.md, and CLAUDE.md do not count.

When it does touch that surface, show caller usage, not the internal diff:

markdown
## Public API change

**Before**

\`\`\`ts
old call site
\`\`\`

**After**

\`\`\`ts
new call site
\`\`\`

Two short snippets. What a user writes today, then what they write after this PR.

6. Post immediately

Do not wait for the user to approve the text.

  • No PR yet: gh pr create --title "..." --body-file ...
  • PR already open: gh pr edit --title "..." --body-file ...

If gh fails, stop and show the error. Leave the drafted body in the chat so it is not lost.

Do not attach screenshots to the PR. Do not commit screenshot files for this skill.

Red flags

You catch yourselfDo instead
Writing the body from the branch nameRead the diff.
Ticking a template checkbox you did not doLeave it unchecked and say so in Testing.
Posting a feat with no test, command, or exampleStop. The feat gate failed.
A 1-4 sentence lead that lists filesRewrite as what a user can do, or what bug is gone.
Public API section that shows the internal diffShow caller usage before and after.
Public API section on an AGENTS.md-only PROmit the heading.
"I'll update the description later" after a pushRewrite now with gh pr edit.
Waiting for the user to approve the textPost. This skill does not wait.
Uploading or committing screenshots for the PR bodySkip. Do not put images on the PR.
Writing without loading simple-english and i-have-adhdLoad both from the repo copies. If missing, stop.
Posting a fix before bugfix-pr gates passStop. Load bugfix-pr. Do not create or edit.
A fix PR with no Root cause or Possible alternativesCopy both sections from the bugfix-pr report.

© TanStack, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .grok/skills/pr-description of TanStack/ai.

Open the folder on GitHubat commit 68aeada

Compare with similar skills

PR Description next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

PR Description compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PR Description this skillTanStack/ai3.2k—~2.2kAutomated safety check: WarnMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Create Pull Requestcline/cline70k1 repos~1.6kAutomated safety check: PassApache-2.0
Pull Request Title and Body Writeropeninterpreter/openinterpreter69k2 repos~1.1kAutomated safety check: PassApache-2.0
PR Review State Fetchprisma/orm48k—~767Automated safety check: PassApache-2.0
Creating Description For Gh PRredis/jedis12k—~838Automated safety check: PassMIT

Similar skills

  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Pull Request Title and Body Writer

    openinterpreter/openinterpreter

    Rewrites the title and body of one or more pull requests with gh, leading with why the change was made, then what changed, and describing only the net result.

    69k GitHub starsUsed in 2 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Official

    Fetches a pull request's canonical review state as JSON, validates it, and renders markdown, a text summary and triage target files from it using bundled scripts.

    48k GitHub stars~767 tokensUpdated today
    DevelopmentAuto-check passed
  • Official

    Generate a clear, concise GitHub PR title and description from the diff between two local git branches, and save it to prDescription.md in the repo root.

    12k GitHub stars~838 tokensUpdated today
    DevelopmentAuto-check passed
  • Opens a pull request for the current branch using the repo's template, a work item ID in the title and a description filled in from the actual diff.

    61k GitHub stars~824 tokensUpdated today
    DevelopmentAuto-check passed

More from TanStack/ai

All 24 skills in this repo
  • I Have Adhd

    TanStack/ai

    A skill your agent uses when the user invokes /i-have-adhd, says they have ADHD, or asks for ADHD-friendly output.

    3.2k GitHub starsUsed in 5 repos~1.8k tokens
    Auto-check passed
  • PR Sweep

    TanStack/ai

    Sweep open (or listed) PRs with up to 100 parallel agents: security-scan outside contributors, rebase onto main when behind (push --force-with-lease), approve pending first-time-contributor CI when…

    3.2k GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • A skill your agent uses when wiring honcho() from @tanstack/ai-memory/honcho — a hosted memory adapter where recall is a dialectic answer over the user's representation (no discrete fragments).

    3.2k GitHub starsUsed in 1 repo~457 tokens
    Auto-check passed
  • A skill your agent uses when wiring inMemory() from @tanstack/ai-memory/in-memory — explains setup, options (embedder, extract, topK/minScore), when to pick it (dev/tests/single-process demos), and…

    3.2k GitHub starsUsed in 1 repo~448 tokens
    Auto-check passed
  • A skill your agent uses when wiring redis() from @tanstack/ai-memory/redis in production — covers client setup (ioredis or node-redis via fromNodeRedis), the storage model, client-side ranking…

    3.2k GitHub starsUsed in 1 repo~840 tokens
    Auto-check passed
  • A skill your agent uses when adding a public teaching example or a docs tutorial.

    3.2k GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about PR Description

What does PR Description do?

A skill your agent uses when writing a pull request title or body, when about to run gh pr create, when about to git push on a branch that already has an open PR, or when the user says…. PR Description is an agent skill from TanStack/ai. Use when writing a pull request title or body, when about to run gh pr create, when about to git push on a branch that already has an open PR, or when the user says /pr-description, "write the PR description", or "update the PR title".

When should I use PR Description?

PR Description fits situations like: writing a pull request title; about to run gh pr create; about to git push on a branch that already has an open PR; the user says /pr-description.

How do I install PR Description in Claude Code?

Run `npx skills add TanStack/ai --skill pr-description -a claude-code`. Or copy the skill folder (.grok/skills/pr-description in TanStack/ai) into .claude/skills/pr-description in your project. Claude Code loads it when a task matches its description.

How do I install PR Description in Codex?

Run `npx skills add TanStack/ai --skill pr-description -a codex`. Or copy the skill folder (.grok/skills/pr-description in TanStack/ai) into .agents/skills/pr-description in your project. Codex loads it when a task matches its description.

Can I use PR Description in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TanStack/ai --skill pr-description -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-description, .gemini/skills/pr-description, .github/skills/pr-description and .opencode/skills/pr-description in your project.

What does PR Description need to run?

Going by SKILL.md and its folder, PR Description needs the command-line tools its instructions call (gh, git and pnpm).

Does PR Description access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is PR Description safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way.

What licence does PR Description use?

PR Description is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does PR Description use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to PR Description?

Skills that share tags, products or a category with PR Description: Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Create Pull Request (cline/cline, 70k stars), Pull Request Title and Body Writer (openinterpreter/openinterpreter, 69k stars) and PR Review State Fetch (prisma/orm, 48k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PR Description?

TanStack (a GitHub organization) maintains it in TanStack/ai, which has 3,172 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 8, 2026.

Source: TanStack/ai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.