skills/pr/SKILL.md
Commit changes and create or update a pull request following project standards. Use when the user wants to commit work, create a PR, update an existing PR, or use the /pr command.
npx skillsauth add ilamanov/skills prInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
git branch --show-currentgit status --shortgh pr view --json number,title,url 2>/dev/null || echo "No PR exists"git log main..HEAD --oneline 2>/dev/null || git log -3 --onelineIf not on main and a PR already exists for the current branch, check if it has been merged:
gh pr view --json state --jq '.state'
If the state is MERGED:
git stash --include-untracked (skip if working tree is clean)git checkout maingit pullgit stash popgit diff --cached --stat):
git add anything else)If no PR exists: Create a new PR following the standards below.
If a PR already exists (and is OPEN):
Show the user the existing PR (number, title, URL) and ask for confirmation using AskUserQuestion:
If the user chose "Update existing PR":
a. Read the existing PR:
gh pr view --json title,body,labels,number
gh pr diff --stat
Read specific files directly rather than dumping the full diff.
b. Review whether the PR content accurately reflects the current diff:
c. Update if needed:
gh pr edit <number> --title "new title" --body "new body"
d. Push any new commits (regular push, not force push)
If the user chose "Create new branch & PR":
a. Create a new branch from the current HEAD with a descriptive name based on the user's notes or the staged changes b. Push the new branch to the remote c. Create a new PR following the standards below
Search for related issues and link them using Closes #123 or Relates to #123.
If the user invokes this skill together with fix-pr-reviews, finish the PR creation/update first, then immediately hand off to the review-finding workflow for the resulting PR:
Do not wait for review findings or review fixes before creating the watcher in the combined workflow.
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.
Use semantic PR titles (Conventional Commits):
<type>(<scope>): <description>
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 tasksA noun describing the affected area: fix(editor):, feat(sync):, docs(examples):
feat(editor): add snap threshold configuration optionfix(arrows): correct binding behavior with rotated shapesdocs: update sync documentation<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
Start with: "In order to X, this PR does Y."
[x]Include when changes affect api-report.md:
### API changes
- Added `Editor.newMethod()` for X
- Breaking! Removed `Editor.oldMethod()`
tools
Generally-applicable conventions for how code is written and arranged — tooling/package manager, import style, file & component naming, comments, and where files live (colocation vs. global folders). Use whenever creating, naming, moving, or importing a file, running project commands, or deciding where a new module belongs. Consult BEFORE writing the code so the conventions are baked in, not retrofitted. If a convention below matches the work, apply it — don't ask, just follow it (call out the choice in one line so the user can override).
development
Generally-applicable frontend/UI best practices. Use whenever building, modifying, or reviewing UI — adding a form/button/dialog/modal, wiring keyboard shortcuts, creating any interactive surface that submits a form, or any time TSX/JSX is being written or edited. Consult BEFORE writing the code so the patterns are baked in, not retrofitted. If a scenario described in the skill body matches the work, apply the pattern — don't ask, just follow it (call out the choice in one line so the user can override).
tools
Generally-applicable backend/data best practices. Use whenever writing or modifying backend/data code — API routes, server actions, DB writes, background jobs, agent tools, import flows, webhooks, paste handlers, or anywhere data enters the system. Consult BEFORE writing the code so the patterns are baked in, not retrofitted. If a scenario described in the skill body matches the work, apply the pattern — don't ask, just follow it (call out the choice in one line so the user can override).
development
Runs on a schedule to mine recent Codex and Claude Code conversations across configured projects, find moments where things went off plan (the user had to steer, correct, abort, or re-explain), and propose targeted improvements to the specific skills that were in use at the time. Opens one pull request per run against the skills repo, with each proposed edit annotated with the concrete steering moment that motivated it. Also analyzes its own runs (the `skills` repo is one of the configured projects) so it iteratively improves itself. Use this skill when the user asks to "analyze recent conversations", "find what went wrong", "improve skills based on past runs", or sets up a scheduled run of skill-improver. Make sure to use this skill whenever the user mentions recursive skill improvement, post-mortem analysis of agent conversations, or automating skill quality based on real usage.