pr-summary
Skill8 starsChanged 6 months agoMITView on GitHub
Analyze all PR changes and update PR description with accurate summary.
20 other projects use a version of this.
Adopted by
Most recently taken up by
- spencerldixon/skillstheir own version, first seen Nov 8, 2026
- snuffish/dotfilestheir own version, first seen Nov 1, 2026
- Esi-Abolfazl/skillstheir own version, first seen Oct 20, 2026
- hmj1026/dhpktheir own version, first seen Oct 13, 2026
- mourner/claudefilestheir own version, first seen Oct 13, 2026
- scenario-labs/blender-plugintheir own version, first seen Oct 13, 2026
Used with
Projects with it also use explain, onboard and 1 more.
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.
sunnyclinches44Skillexplain
Explains code using real-world analogies and ASCII diagrams
Also in 3 projects that use this
SentrySkillonboard
Onboard a service to sentry-options. Use when integrating a new service, creating schemas, or setting up the multi-repo sentry-options workflow.
Also in 3 projects that use this
SentrySkillcommit
Create commit messages following Sentry conventions. Use when committing code changes, writing commit messages, or formatting git history. Follows conventional commits with Sentry-specific issue references.
Also in 3 projects that use this
Other versions20 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 20
- scenario-labs/skills★ 3.5ksame name
- selfxyz/self★ 1.3ksame name
- scenario-labs/blender-plugin★ 962same name
- gittower/git-flow-next★ 458same name
- divinevideo/divine-mobile★ 265same name
- rabble/nostrvine★ 265same name
- sd0xdev/sd0x-dev-flow★ 192same name
- sd0xdev/sd0x-harness★ 192same name
- kjnez/claude-code-django★ 177same name
- gricha/dangerous-skills★ 38same name
10 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository62 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- address-pr-reviewSkill
- agent-evalSkill
- ai-cost-guardSkill
- autoplanSkill
- aws-costSkill
- bedrock-guardrailsSkill
- benchmarkSkill
- browseSkill
- canarySkill
- carefulSkill
- claudeSkill
- codexSkill
- connect-chromeSkill
- connect-reviewSkill
- context-restoreSkill
- context-saveSkill
- csoSkill
- design-consultationSkill
- design-htmlSkill
- design-reviewSkill
- design-shotgunSkill
- devex-reviewSkill
- diagramSkill
- document-generateSkill
- document-releaseSkill
- freezeSkill
- guardSkill
- healthSkill
- iac-reviewSkill
- improve-archSkill
- investigateSkill
- kb-reviewSkill
- land-and-deploySkill
- landing-reportSkill
- learnSkill
- make-pdfSkill
- mcp-reviewSkill
- office-hoursSkill
- open-browserSkill
- pair-agentSkill
- plan-ceo-reviewSkill
- plan-design-reviewSkill
- plan-devex-reviewSkill
- plan-eng-reviewSkill
- plan-tuneSkill
- qa-onlySkill
- qaSkill
- retroSkill
- reviewSkill
- scrapeSkill
- setup-browser-cookiesSkill
- setup-deploySkill
- shipSkill
- skillifySkill
- specSkill
- telegramSkill
- unfreezeSkill
- unslopSkill
- vibe-gcSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. 0 are common, 14 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
14
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 7
If this session was compacted, the copy of this skill in context may be cut off.
- Very specific: line 8
Read ${CLAUDE_SKILL_DIR}/SKILL.md from disk and resume at the step you are on.
- Distinctive: line 42
Read all changed files before writing the summary
- Distinctive: line 46
Do NOT add promotional or attribution footers
- Distinctive: line 47
Do NOT add unnecessary lines (Co-Authored-By, Generated with, etc.)
- Very specific: line 96
If the existing body contains user-added content, preserve it in a ## Notes section at the bottom.
- Very specific: line 171
Read the empty file, then Write the body into the printed PR_BODY_FILE with the Write tool, in the Step 5 format with every section filled …
- Distinctive: line 172
Write tool, in the Step 5 format with every section filled from the analysis (omit Breaking Changes when there are none).
- Distinctive: line 215
If the PR title is vague (e.g., "update", "fix", "WIP"), suggest a better title:
- Distinctive: line 226
Ask user before changing the title
- Distinctive: line 230
Do NOT write a summary without reading ALL changed files
- Distinctive: line 231
Do NOT rely only on commit messages — verify against actual diff
- Distinctive: line 232
Do NOT include changes that don't exist in the PR
- Distinctive: line 233
Do NOT use vague descriptions like "various improvements"
- Distinctive: line 234
Do NOT overwrite existing PR body without analyzing it first
- Distinctive: line 235
Do NOT skip reading file context — diffs alone can be misleading
- Distinctive: line 236
Do NOT add information that isn't supported by the code changes
- Distinctive: line 242
If you discovered a non-obvious pattern, pitfall, or insight during this session, log it:
“Common” is measured: kept by at least 6 in 10 of the 16 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.
Files
If this session was compacted, the copy of this skill in context may be cut off.
Read ${CLAUDE_SKILL_DIR}/SKILL.md from disk and resume at the step you are on.
Preamble
eval "$("${VIBESTACK_HOME:-$HOME/.vibestack}/bin/vibe-slug" 2>/dev/null)" 2>/dev/null || SLUG="unknown"
_LEARN_FILE="${VIBESTACK_HOME:-$HOME/.vibestack}/projects/${SLUG:-unknown}/learnings.jsonl"
if [ -f "$_LEARN_FILE" ]; then
_LEARN_COUNT=$(wc -l < "$_LEARN_FILE" 2>/dev/null | tr -d ' ')
echo "LEARNINGS: $_LEARN_COUNT entries loaded"
if [ "$_LEARN_COUNT" -gt 5 ] 2>/dev/null; then
"${VIBESTACK_HOME:-$HOME/.vibestack}/bin/vibe-learnings-search" --limit 5 2>/dev/null || true
fi
else
echo "LEARNINGS: none yet"
fi{{include lib/snippets/session-host.md}}
{{include lib/snippets/working-protocols.md}}
{{include lib/snippets/state-protocols.md}}
PR Summary Update
Philosophy
- Analyze all changes without exception — track all commits included in the PR, not just the latest.
- Accuracy is essential — do not guess; read the actual diff and code before describing.
- Write from the reviewer's perspective — explain "why" this change was needed and what impact it has.
Rules
- Read all changed files before writing the summary
- Analyze ALL commits in the PR, not just the latest
- Be precise — do not guess or hallucinate changes
- Preserve existing PR metadata (labels, assignees, reviewers)
- Do NOT add promotional or attribution footers
- Do NOT add unnecessary lines (Co-Authored-By, Generated with, etc.)
Process
Step 1: Identify PR
Determine the PR number from argument or current branch:
# If argument provided, use it directly
PR_NUMBER={argument}
# Otherwise, infer from current branch
gh pr view --json number -q '.number'Step 2: Gather PR Context
# Get current PR details
gh pr view {PR_NUMBER} --json title,body,baseRefName,headRefName,commits,files
# Get base branch
BASE_BRANCH=$(gh pr view {PR_NUMBER} --json baseRefName -q '.baseRefName')
# View all commits in PR
gh pr view {PR_NUMBER} --json commits -q '.commits[] | "\(.oid[:7]) \(.messageHeadline)"'
# View all changed files with stats
gh pr diff {PR_NUMBER} --stat
# View full diff
gh pr diff {PR_NUMBER}Step 3: Analyze Existing PR Body
CRITICAL: Check the existing PR body first.
# Get current PR body
EXISTING_BODY=$(gh pr view {PR_NUMBER} --json body -q '.body')Check for user-added content to preserve:
- Manual notes or context added by the author
- Links to related issues, designs, or discussions
- Sections not generated by this skill (e.g., custom sections)
If the existing body contains user-added content, preserve it in a ## Notes section at the bottom.
Step 4: Deep Analysis
CRITICAL: Do not rely on diff statistics alone — understand the meaning of the changes.
For large PRs (>20 files or >1000 lines changed):
- Group files by directory/module and analyze each group
- Focus on structural changes first, then detail changes
- Summarize at module level, not file level
For each changed file:
- Read the full diff — understand what was added, modified, removed
- Read the file — understand the full context around the changes
- Identify the purpose — why was this file changed?
- Assess impact — what depends on this? Could this break anything?
Categorize changes:
| Category | Description |
| New Feature | New functionality added |
| Bug Fix | Existing behavior corrected |
| Refactor | Code restructured without behavior change |
| Performance | Optimization improvements |
| Documentation | Docs, comments, README updates |
| Test | Test additions or modifications |
| Configuration | Config, CI/CD, build changes |
| Dependency | Package additions, updates, removals |
| Breaking Change | Changes that break existing API/behavior |
Deliberation questions:
- What is the single purpose of this PR?
- Are there breaking changes for consumers?
- What edge cases might be affected?
- Are there any risks or known limitations?
Step 5: Craft PR Summary
Before writing, articulate:
- What problem does this PR solve? (Summary)
- What specific changes were made and why? (Changes)
- Are there any breaking changes? (Breaking Changes)
- How should a reviewer verify this works? (Test Plan)
PR body format:
## Summary
- Brief description of what and WHY
## Changes
- Change 1: why this was needed
- Change 2: why this was needed
## Breaking Changes
- (if any) Description of breaking change and migration path
## Test Plan
- [ ] How to verify changes work
- [ ] Edge cases to testStep 6: Update PR Description
The body quotes commit messages, diff content and the existing PR text, so it never appears in shell source — not in a quoted argument, and not in a heredoc either: a line equal to the terminator ends the heredoc and everything after it runs as shell. Create a private file for it:
PR_BODY_FILE=$(mktemp "${TMPDIR:-/tmp}/vibe-pr-summary-XXXXXXXX")
echo "PR_BODY_FILE: $PR_BODY_FILE"Read the empty file, then Write the body into the printed PR_BODY_FILE with the
Write tool, in the Step 5 format with every section filled from the analysis
(omit Breaking Changes when there are none). Then publish that file, substituting
the printed path and the PR number:
PR_BODY_FILE='<PR_BODY_FILE>'
[ -s "$PR_BODY_FILE" ] || { echo "ABORT: $PR_BODY_FILE is empty — write the body with the Write tool first" >&2; exit 1; }
gh pr edit {PR_NUMBER} --body-file "$PR_BODY_FILE" && rm -f "$PR_BODY_FILE"Step 7: Verify Update
# Confirm PR was updated
gh pr view {PR_NUMBER} --json title,body -q '.body'Step 8: Report Summary
## PR Summary Updated
**PR**: #{PR_NUMBER}
**Title**: {title}
**Base**: {base_branch} ← {head_branch}
### Analysis
- Total commits: {N}
- Files changed: {N}
- Lines added: +{N}
- Lines removed: -{N}
### Categories
- feat: {N} changes
- fix: {N} changes
- refactor: {N} changes
- ...
PR description updated successfully.Title Update
If the PR title is vague (e.g., "update", "fix", "WIP"), suggest a better title:
gh pr edit {PR_NUMBER} --title "<type>(<scope>): <subject>"Note: PR title optionally uses scope. Commit messages use
<type>: <subject>format without scope.
Only suggest title changes when:
- Title is clearly vague or inaccurate
- Title doesn't reflect the actual changes
- Ask user before changing the title
Anti-Patterns
- Do NOT write a summary without reading ALL changed files
- Do NOT rely only on commit messages — verify against actual diff
- Do NOT include changes that don't exist in the PR
- Do NOT use vague descriptions like "various improvements"
- Do NOT overwrite existing PR body without analyzing it first
- Do NOT skip reading file context — diffs alone can be misleading
- Do NOT add information that isn't supported by the code changes
Capture Learnings
If you discovered a non-obvious pattern, pitfall, or insight during this session, log it:
"${VIBESTACK_HOME:-$HOME/.vibestack}/bin/vibe-learnings-log" '{"skill":"pr-summary","type":"TYPE","key":"SHORT_KEY","insight":"DESCRIPTION","confidence":N,"source":"SOURCE","files":["path/to/relevant/file"]}'Types: pattern, pitfall, preference, architecture, operational.
Only log genuine discoveries.
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
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.

