
pr-update
by furiosa-ai
SKILL.md
name: pr-update description: | Update existing pull request title and description based on latest changes. Use when user wants to refresh PR with latest commits. Triggers include:
- Korean: "PR 업데이트해줘", "PR 수정해줘", "PR 다시 만들어줘"
- English: "update PR", "refresh PR", "regenerate PR description"
- Context: User has existing PR and wants to update title/description after adding more commits
Pull Request Updater
Overview
Refresh PR title and description based on latest final diff analysis.
⚠️ Critical Execution Rules
NEVER cd to skill folder. Always execute scripts from user's current working directory to preserve git repository context.
Script execution:
- You know where this skill's SKILL.md is located when you load it
- Marketplace root = parent directory of the skill directory
- Scripts are at:
<marketplace_root>/scripts/analyze_diff.py- Analyze final diff
- Compute the path, then execute from user's current working directory
Important Principles
- Must have existing PR: Check PR exists for current branch
- User confirmation required: Show old vs new content before updating
- Respect PR template: Use same template as creation workflow
- Final diff is source of truth: PR description based on latest
base..HEADdiff - Warn about manual edits: User may have edited PR on GitHub - ask before overwriting
Workflow
Step 1: Get Current PR Information
gh pr view --json number,title,body,baseRefName
If no PR exists, inform user to create PR first.
Returns:
{
"number": 123,
"title": "Old PR title",
"body": "Old PR body...",
"baseRefName": "main"
}
Step 2: Analyze Latest Final Diff
⚠️ IMPORTANT: Use final diff as source of truth. Analyze current state of base..HEAD.
Three-tier strategy for large PRs:
- Tier 1 (≤5000 lines): Full diff
- Tier 2 (>5000 total, ≤5000 additions): Additions only
- Tier 3 (>5000 additions): Error (use
--allow-largeto force)
# Normal execution (auto-fallback)
python3 <marketplace_root>/scripts/analyze_diff.py <base> --json
# Force large PR (if additions > 5000)
python3 <marketplace_root>/scripts/analyze_diff.py <base> --json --allow-large
Reuse recent analysis: If user ran this or pr-create recently with same base, and got successful diff, can reuse that analysis for efficiency.
Step 3: Check for PR Template
Check common locations (same as pr-create):
.github/PULL_REQUEST_TEMPLATE.md.github/pull_request_template.md.github/PULL_REQUEST_TEMPLATE/*.mddocs/PULL_REQUEST_TEMPLATE.mdPULL_REQUEST_TEMPLATE.md(root)
Use template if found for consistency with original PR.
Step 4: Generate New Title and Body
Analysis logic:
- Analyze final diff (NOT commits) to describe overall change
- Follow Chris Beams' rules for title
- Use PR template structure if available
- Add Claude Code attribution
Step 5: Show Comparison to User
Current PR #123:
Title: [old title]
Body preview: [first 3 lines...]
Proposed update:
Title: [new title]
Body preview: [first 3 lines...]
The body was generated using [template name / default format].
Should I update the PR? You can ask me to:
- Modify the title or body
- Show the full body comparison
- Cancel the update
Warning check: If old body doesn't have Claude Code attribution, it may have been manually edited. Ask:
⚠️ This PR may have been manually edited on GitHub.
Any manual changes will be overwritten by this update.
Do you want to proceed?
Step 6: Update PR
Only after user approval:
gh pr edit <pr-number> --title "..." --body "..."
Step 7: Confirm Update
✅ Pull request #123 updated
View at: https://github.com/owner/repo/pull/123
Use Cases
Added More Commits:
User: "I added 3 more commits, update the PR"
Assistant: (Run pr-update skill)
- Gets current PR info
- Analyzes latest final diff
- Generates new description including new changes
- Shows comparison and updates after approval
Fixed Review Comments:
User: "I addressed all review comments, refresh the PR description"
Assistant: (Run pr-update skill)
- Regenerates description from current state
- Reflects fixes made during review
Rebased on Latest Main:
User: "Just rebased on main, update PR"
Assistant: (Run pr-update skill)
- Base is still same (main)
- Final diff now relative to latest main
- Description updated to reflect current changes
Requirements
ghCLI must be installed and authenticated- Current branch must have an open PR
- Latest changes should be pushed to remote
Examples
Before Update:
Title: Add authentication
Body: WIP - adding JWT support
After Update (after adding more commits):
Title: Add user authentication system
Body:
## Summary
- Implement JWT authentication with role-based access control
- Add login/logout endpoints
- Integrate session management with Redis
- Add authentication middleware for protected routes
## Testing
- Added unit tests for auth service
- Added integration tests for auth endpoints
- Manually tested with different user roles
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Notes
- This workflow regenerates the entire PR description
- Manual GitHub edits will be overwritten
- If user wants to preserve some manual content, they should mention it before update
- Consider asking "Should I preserve any of the existing content?" if manual edits detected
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon