agentleFS
atomicinnovationatomicinnovation/accelerator/skills/github/describe-pr/SKILL.md

describe-pr

Skill34 starsChanged 51 days agoMITView on GitHub

Generate a comprehensive pull request description following the

8 other projects use a version of this, 5 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use iterate-plan.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • corticalstackSkill

    iterate-plan

    Revise an existing implementation plan in flow/plans/ based on feedback, researching when needed. Explicit-only; run only when invoked via /iterate-plan or explicitly asked.

    Also in 3 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

29 rules. 2 are common, 17 are distinctive, and 10 are very specific to this project.

  • 2

    Common

    Most of the 8 edited versions we read keep these.

  • 17

    Distinctive

    This author's own choices. Worth a look.

  • 10

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the template carefully to understand all sections and requirements

    line 35
  2. Very specific:

    Check if the current branch has an associated PR: gh pr view --json url,number,title,state 2>/dev/null

    line 39
  3. Very specific:

    If no PR exists for the current branch, or if on main/master, list open PRs: gh pr list --limit 10 --json number,title,headRefName,author

    line 41
  4. Distinctive:

    Ask the user which PR they want to describe

    line 43
  5. Very specific:

    Check if {prs directory}/{number}-description.md already exists

    line 47
  6. Distinctive:

    If it exists, read it and inform the user you'll be updating it

    line 48
  7. Distinctive:

    Consider what has changed since the last description was written

    line 49
  8. Very specific:

    If you get an error about no default remote repository, instruct the user to run gh repo set-default and select the appropriate repository

    line 54
  9. Distinctive:

    Read through the entire diff carefully

    line 65
  10. Common:

    Look for breaking changes or migration requirements

    line 69
  11. Distinctive:

    Look for any checklist items in the "How to verify it" section of the template

    line 73
  12. Very specific:

    If it's a command you can run (like make check test, npm test, etc.), run it

    line 75
  13. Very specific:

    If it passes, mark the checkbox as checked: - [x]

    line 77
  14. Very specific:

    If it fails, keep it unchecked and note what failed: - [ ] with explanation

    line 78
  15. Distinctive:

    If it requires manual testing (UI interactions, external services), leave unchecked and note for user

    line 80
  16. Distinctive:

    Document any verification steps you couldn't complete

    line 82
  17. Distinctive:

    Write a concise changelog entry

    line 91
  18. Distinctive:

    Ensure all checklist items are addressed (checked or explained)

    line 92
  19. Distinctive:

    Use the unified pr-description template as the source of the frontmatter block:

    line 96
  20. Distinctive:

    Before writing the artifact file, capture metadata and substitute the unified base fields into the template's frontmatter block:

    line 101
  21. Distinctive:

    Substitute: every field below with the indicated value:

    line 110
  22. Very specific:

    Write the completed description with the substituted frontmatter block to {prs directory}/{number}-description.md.

    line 142
  23. Distinctive:

    Read the file content

    line 163
  24. Very specific:

    Ensure the tmp directory exists: mkdir -p {tmp directory}

    line 168
  25. Very specific:

    Write everything after the closing --- line to {tmp directory}/pr-body-{number}.md

    line 169
  26. Distinctive:

    If the command exits non-zero, surface its stderr verbatim to the user.

    line 181
  27. Distinctive:

    If any verification steps remain unchecked, remind the user to complete them before merging

    line 190
  28. Common:

    If the PR touches multiple components, organize the description accordingly

    line 200
  29. Distinctive:

    Always attempt to run verification commands when possible

    line 201

“Common” is measured: kept by at least 6 in 10 of the 8 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

Generate PR Description

!accelerator config context --skill describe-pr --fail-safe

PRs directory: !accelerator config path prs --fail-safe Tmp directory: !accelerator config path tmp --fail-safe

IMPORTANT: Wherever {prs directory} or {tmp directory} appears in the instructions below, substitute the actual resolved path shown above.

PR description template:

!accelerator config template pr-description --fail-safe

You are tasked with generating a comprehensive pull request description following the repository's standard template.

Steps to follow:

Step 1: Use the PR description template

  • The template is shown above under "PR description template"
  • Read the template carefully to understand all sections and requirements

Step 2: Identify the PR to describe

  • Check if the current branch has an associated PR: gh pr view --json url,number,title,state 2>/dev/null
  • If no PR exists for the current branch, or if on main/master, list open PRs: gh pr list --limit 10 --json number,title,headRefName,author
  • Ask the user which PR they want to describe

Step 3: Check for existing description

  • Check if {prs directory}/{number}-description.md already exists
  • If it exists, read it and inform the user you'll be updating it
  • Consider what has changed since the last description was written

Step 4: Gather comprehensive PR information

  • Get the full PR diff: gh pr diff {number}
  • If you get an error about no default remote repository, instruct the user to run gh repo set-default and select the appropriate repository
  • Get commit history: gh pr view {number} --json commits
  • Review the base branch: gh pr view {number} --json baseRefName
  • Get PR metadata: gh pr view {number} --json url,title,number,state

Step 5: Analyze the changes thoroughly

(ultrathink about the code changes, their architectural implications, and potential impacts)

  • Read through the entire diff carefully
  • For context, read any files that are referenced but not shown in the diff
  • Understand the purpose and impact of each change
  • Identify user-facing changes vs internal implementation details
  • Look for breaking changes or migration requirements

Step 6: Handle verification requirements

  • Look for any checklist items in the "How to verify it" section of the template
  • For each verification step:
    • If it's a command you can run (like make check test, npm test, etc.), run it
    • If it passes, mark the checkbox as checked: - [x]
    • If it fails, keep it unchecked and note what failed: - [ ] with explanation
    • If it requires manual testing (UI interactions, external services), leave unchecked and note for user
  • Document any verification steps you couldn't complete

Step 7: Generate the description

  • Fill out each section from the template thoroughly:
    • Answer each question/section based on your analysis
    • Be specific about problems solved and changes made
    • Focus on user impact where relevant
    • Include technical details in appropriate sections
    • Write a concise changelog entry
  • Ensure all checklist items are addressed (checked or explained)

Step 8: Populate frontmatter and save the description

Use the unified pr-description template as the source of the frontmatter block:

!accelerator config template pr-description --fail-safe

Before writing the artifact file, capture metadata and substitute the unified base fields into the template's frontmatter block:

  1. Invoke accelerator corpus metadata derive to obtain Current Date/Time (UTC):, Current Revision:, and Repository Name:. Also capture PR-specific extras via gh pr view <number> --json url,number,title,mergeCommit to fill pr_url:, pr_number:, title:, and (when the PR is merged) merge_commit:.
  2. Substitute every field below with the indicated value:

    • type: ← pr-description
    • id: ← the PR number as a quoted YAML string (e.g. "42")
    • title: ← the PR title from gh pr view
    • date: ← the Current Date/Time (UTC): value
    • author: ← the author resolved per the standard chain (config → VCS user → prompt)
    • producer: ← describe-pr
    • status: ← complete
    • pr_url: ← the URL from gh pr view
    • pr_number: ← the PR number as a bare integer
    • merge_commit: ← the merge commit SHA. Fill when the PR is merged; otherwise omit the key entirely.
    • revision: ← the Current Revision: value
    • repository: ← the Repository Name: value
    • last_updated: ← the same Current Date/Time (UTC): value
    • last_updated_by: ← the same value resolved for author
    • schema_version: ← 1 (bare integer)

    Optional linkage/foreign-ref keys are omit-by-default: the template shows each as ""/[], but write a key into the artifact only when it has a value, and omit it entirely otherwise (do not carry the empty placeholder through).

    • parent: ← the work item this PR implements, as a typed-linkage ref ("work-item:NNNN"). Fill when the PR has an owning work item; otherwise omit the key.
    • relates_to: ← list of typed-linkage refs to related artifacts (["work-item:NNNN", ...]). Fill when relationships are explicit; otherwise omit the key.
    • work_item_id: ← the linked work item's full ID (quoted). Fill when the PR is linked to a work item; otherwise omit the key.
  3. Write the completed description with the substituted frontmatter block to {prs directory}/{number}-description.md.
  • Show the user the generated description (without frontmatter). GitHub receives the same text with its soft line breaks unwrapped, so wrapped prose flows at the page's full width.
  • On re-run (when {prs directory}/{number}-description.md already exists), regenerate the unified frontmatter rather than only updating date:. Creation-time fields are immutable on re-run: date:, author:, id:, pr_number:, and pr_url: are preserved verbatim from the existing on-disk file. last_updated: is refreshed to the new Current Date/Time (UTC): value; last_updated_by: is rewritten to the current author per the standard resolution chain; merge_commit: is filled if the PR is now merged. Step 3 already handles reading the prior description for context.

Step 9: Update the PR

  • The {prs directory}/{number}-description.md file contains YAML frontmatter that should not appear on GitHub. Before posting, strip the frontmatter block from the start of the file:
    1. Read the file content
    2. The frontmatter block starts with --- on line 1 and ends at the next --- line (which closes the YAML block). Only match the opening frontmatter block — do not match --- lines that appear later in the body (e.g., markdown horizontal rules).
    3. Ensure the tmp directory exists: mkdir -p {tmp directory}
    4. Write everything after the closing --- line to {tmp directory}/pr-body-{number}.md
    5. Post the body via the helper binary, which resolves the base (upstream) repository for cross-fork safety and PATCHes via the GitHub REST API in-process:
      accelerator collaboration pr update-body {number} --body-file {tmp directory}/pr-body-{number}.md
      update-body unwraps soft line breaks before posting; the body file and the saved description stay wrapped. A line that must render on its own, such as a trailer or Closes #n, needs a hard break (two trailing spaces or \) or a list item. If the command exits non-zero, surface its stderr verbatim to the user. Exit codes:
      • Exit 2 → usage/refusal — e.g. missing --body-file, body-file read failure, no origin remote configured
      • Exit 1 → any other failure — base-repo resolution failure, GitHub REST API failure stderr always names which stage failed.
    6. Clean up {tmp directory}/pr-body-{number}.md
  • Confirm the update was successful
  • If any verification steps remain unchecked, remind the user to complete them before merging

Important notes:

  • This command works across different repositories - always read the local template
  • Be thorough but concise - descriptions should be scannable
  • Focus on the "why" as much as the "what"
  • Include any breaking changes or migration notes prominently
  • If the PR touches multiple components, organize the description accordingly
  • Always attempt to run verification commands when possible
  • Clearly communicate which verification steps need manual testing

!accelerator config instructions describe-pr --fail-safe

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.