pr
npx skills add https://github.com/ilamanov/skills --skill pr
Agent 安装分布
Skill 文档
PR Workflow
Context
- User’s notes: $ARGUMENTS
- Current branch: !
git branch --show-current - Git status: !
git status --short - Existing PR: !
gh pr view --json number,title,url 2>/dev/null || echo "No PR exists" - Recent commits: !
git log main..HEAD --oneline 2>/dev/null || git log -3 --oneline
Step 1: Prepare the branch
- If on main, create a new branch with a descriptive name
- Commit all changes (except API keys or explicitly private content)
- Push changes to the remote
Step 2: Create or update the PR
If no PR exists: Create a new PR following the standards below.
If a PR already exists:
-
Read the existing PR:
gh pr view --json title,body,labels,number gh pr diff --statRead specific files directly rather than dumping the full diff.
-
Review whether the PR content accurately reflects the current diff:
- Does the title follow semantic format?
- Does the description accurately describe all commits?
- Is the test plan still accurate?
- Are the release notes complete?
-
Update if needed:
gh pr edit <number> --title "new title" --body "new body" -
Push any new commits (regular push, not force push)
Step 3: Link related issues
Search for related issues and link them using Closes #123 or Relates to #123.
Handling problems
Committing automatically runs the linter. Fix any lint/type errors unless they require meaningful code changesâin that case, notify the user:
I can’t create/update this PR because [reason]. Would you like me to [suggestion]?
Never force commit or force push.
PR Standards
Title format
Use semantic PR titles (Conventional Commits):
<type>(<scope>): <description>
Types
feat– New featurefix– Bug fixdocs– Documentation onlyrefactor– Code change that neither fixes a bug nor adds a featureperf– Performance improvementtest– Adding or fixing testschore– Maintenance tasks
Scope (optional)
A noun describing the affected area: fix(editor):, feat(sync):, docs(examples):
Examples
feat(editor): add snap threshold configuration optionfix(arrows): correct binding behavior with rotated shapesdocs: update sync documentation
Body template
<description paragraph>
### Change type
- [x] `bugfix` | `improvement` | `feature` | `api` | `other`
### Test plan
1. Step to test...
- [ ] Unit tests
- [ ] End to end tests
### Release notes
- Brief description of changes for users
Description paragraph
Start with: “In order to X, this PR does Y.”
- Keep it specificâavoid vague phrases like “improve user experience”
- Link related issues in the first paragraph
- Don’t expect readers to also read the linked issue
Change type
- Tick exactly one type with
[x] - Delete unticked items
Test plan
- List manual testing steps if applicable
- Remove the numbered list if changes cannot be manually tested
- Tick checkboxes for included test types
Release notes
- Write brief notes describing user-facing changes
- Use imperative mood: “Add…”, “Fix…”, “Remove…”
- Omit entirely for internal work with no user-facing impact
API changes section
Include when changes affect api-report.md:
### API changes
- Added `Editor.newMethod()` for X
- Breaking! Removed `Editor.oldMethod()`
Important
- Never include AI attribution (“Generated with Claude Code”, “Co-Authored-By: Claude”, etc.) in commits, PR titles, or descriptions
- Never use title case for descriptionsâuse sentence case
- Never put yourself as co-author of any commits