From juftin
Open and refine pull requests. Use when the user asks to create a PR, open a pull request, push a branch for review, respond to review feedback, update a PR, or iterate on an open PR. Covers conventional commit and gitmoji PR titles (controlled by GITMOJI env var), body formatting with gh CLI, and review response workflow.
How this skill is triggered — by the user, by Claude, or both
Slash command
/juftin:prThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Open and refine pull requests. These instructions are derived from the author's
Open and refine pull requests. These instructions are derived from the author's global development constitution.
The GITMOJI environment variable controls which format to use:
GITMOJI=1 → gitmoji emoji prefixes (✨, 🐛, ♻️)feat:, fix:, chore:)Both formats follow the same structure:
<type> [scope?][:?] <summary>
If the title needs "and" in the summary, the PR is too broad — narrow the scope.
GITMOJI=1)| Prefix | Intent |
|---|---|
| ✨ | New feature |
| 🐛 | Bug fix |
| 💥 | Breaking change |
| ♻️ | Refactor |
| 📝 | Documentation |
| ⚡ | Performance |
| 🧪 | Tests |
| 🔧 | Configuration |
| ⬆️ | Dependency bump |
| 🎉 | Initial commit / project start |
| 🔖 | Version bump |
| 📈 | Analytics |
| ♿️ | Accessibility |
| 🌐 | Internationalization |
Examples:
🎉 package-name — initial commit✨ Add login via OAuth🐛 Fix onClick event handler⚡️ Lazyload home screen images♻️ (components): Transform classes to hooks♿️ (account): Improve modals a11y📈 Add analytics to the dashboard🌐 Support Japanese language🔖 Bump version to 1.2.0Full commit message with body:
⚡️ Lazyload home screen images
Optimize performance by loading images only when they are
about to enter the viewport.
For breaking changes, include the BREAKING CHANGE: footer in the body:
💥️ Remove support for legacy auth
BREAKING CHANGE: Legacy username/password auth is no longer
supported. Users must migrate to OAuth before upgrading.
| Type | Intent |
|---|---|
feat | New feature |
fix | Bug fix |
refactor | Refactor |
docs | Documentation |
perf | Performance |
test | Tests |
chore | Configuration, deps, version |
ci | CI/CD pipelines |
build | Build system / tooling |
style | Formatting (no logic change) |
revert | Revert a prior commit |
Examples:
feat: add login via OAuthfix: resolve race condition in checkoutrefactor(components): transform classes to hooksperf: lazyload home screen imagesdocs: document OAuth flowtest: add checkout edge case coverageci: add release workflowchore: bump version to 1.2.0Full commit message with body:
feat(perf): increase parallel computations
Use asynchronous thread workers to get more work done
concurrently.
For breaking changes, include the BREAKING CHANGE: footer in the body:
feat: remove support for legacy auth
BREAKING CHANGE: Legacy username/password auth is no longer
supported. Users must migrate to OAuth before upgrading.
When a ticketing system (Jira, Linear, GitHub Issues, etc.) is in use, put the ticket number as the scope:
| Mode | Example |
|---|---|
| Gitmoji | ✨ (CED-123): Add login via OAuth |
| Conventional | feat(CED-123): add login via OAuth |
git push -u origin HEADgh pr diff — read every changed line as if you were the reviewergh pr checks — do not open the PR until it passesWrite the PR body to a temp file first, then create the PR with --body-file:
mkdir -p /tmp/pr
BODY_FILE="/tmp/pr/$(uuidgen).md"
PR_BODY="$(cat <<EOF
## Summary
...
EOF
)"
echo "${PR_BODY}" > "${BODY_FILE}"
gh pr create \
--title "<type> [scope?]: <summary>" \
--body-file "${BODY_FILE}"
Use gh pr create --web if the user wants to preview in the browser before
submitting.
Write this to the temp file before running gh pr create:
## Summary
[Concise summary of what this PR achieves.]
## Context
[The "why" behind this work — feature, bugfix, or chore reasoning.]
## Changes
[Detailed description of code changes, ideally organized by file or feature area.]
<details><summary>Code Changes</summary>
<p>
- **`path/to/file.py`**
- Detailed description of changes.
</p>
</details>
## Test Plan
[Steps to verify changes work as intended, only include manual/post-merge steps if necessary.]
- [x] Initial verification (completed by agent or user).
- [ ] Manual verification step.
- [ ] Post-merge verification if necessary.
## Behavior Diagram
[Only if relevant: a Mermaid diagram explaining this PR]
```mermaid
graph LR
A[Square Rect] -- Link text --> B((Circle))
A --> C(Round Rect)
B --> D{Rhombus}
C --> D
```
gh pr view --commentsgh pr comment --body "..." explaining why notgh pr comment --body "..." so the reviewer knows it was handledgit push origin HEADgh pr checks --watchgh pr view — summary of the PR (title, body, status, checks)gh pr view --comments — all review comments and threadsgh pr checks — CI status for the current branchgh pr status — list PRs you've opened or are assigned to review.env files or decrypt secrets into contextGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub juftin/skills --plugin juftin