jackin-create-pr — Claude Code skill: pull requests for small fixes
Opens a pull request for a small change in the jackin❯ repo: a typo, a dependency bump, a one-line bugfix. The PR body comes from the repo template with verify-locally blocks picked from the diff.
npx skills add jackin-project/jackin-dev --skill jackin-create-pr -a claude-codeWhat jackin-create-pr does
The skill walks through the usual PR steps: branch, commit, body, create, check the render. It commits inline, so no separate commit skill is involved. Repo rules live in PULL_REQUESTS.md, BRANCHING.md, COMMITS.md and the agent rules under .github/; they load on their own, and the skill only puts them in order.
cargo xtask pr body --base origin/main > /tmp/pr-body.md prints the skeleton. A classified digest of the diff (rust, docs, capsule, schema plus the file list) goes to stderr; the template from .github/PULL_REQUEST_TEMPLATE.md lands in the file with its verify-locally blocks already chosen. Checkout and isolation env are always in. Rust tests appear for a Rust change, docs checks and walk for docs/**, the jackin-capsule smoke for crates/jackin-capsule/ (pass --capsule before console or load), and a migration smoke when a versioned schema is touched. The agent writes the prose sections, then runs gh pr create --body-file.
Committing straight to main is off the table. On that branch the skill makes a fix/, chore/, docs/ or refactor/ branch and asks for confirmation unless you pass --auto-branch or --branch. --title sets both the commit and PR title; without it the name is derived from the diff in Conventional Commits style. Commits carry a DCO sign-off via git commit -s. You need cargo xtask inside the jackin❯ repo and gh on the machine.
What it helps with
- open a PR for a one-line bugfix that has no roadmap item
- build the PR body with the right verify-locally blocks from the diff
- commit the change to a branch without touching
main - name the commit and PR title in Conventional Commits and sign it with DCO
- confirm the prose added to the PR body renders without stray escaping
Example prompts for the agent
- Open a PR for this fix following
COMMITS.md, pick the branch name yourself - Create the PR with the title
fix: handle empty capsule manifest - Open a PR for the dependency bump in
Cargo.toml
How to install jackin-create-pr
1Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-create-pr -a claude-code2Manually: put the files in place
~/.claude/skills/jackin-create-pr/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/jackin-create-pr/
1Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-create-pr -a codex2Manually: put the files in place
.agents/skills/jackin-create-pr/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-create-pr -a cursor2Manually: put the files in place
.cursor/skills/jackin-create-pr/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install jackin-project/jackin-dev jackin-create-pr2Manually: put the files in place
.github/skills/jackin-create-pr/SKILL.md1Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-create-pr -a gemini-cli2Platform CLI
gemini skills install https://github.com/jackin-project/jackin-dev --path skills/jackin-create-prManually: put the files in place
.devin/skills/jackin-create-pr/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-create-pr -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about jackin-create-pr
How do I install jackin-create-pr in Claude Code?
Run npx skills add jackin-project/jackin-dev --skill jackin-create-pr -a claude-code. The skill file then sits at ~/.claude/skills/jackin-create-pr/SKILL.md.
What does jackin-create-pr do?
It takes a small change in the jackin❯ repo through a branch, a commit and a pull request. The PR body comes from the repo template, and verify-locally blocks are selected from the diff.
Can I use it for a new feature?
No. Ideas that need a roadmap item go through jackin-propose, and a finished item is implemented with /goal Implement <slug>.md.
Source text
SKILL.md · Apache-2.0
--- name: jackin-create-pr description: Use only when the user explicitly requests this skill. Opens a pull request for a small jackin❯ change with the correct body shape and auto-selected verify-locally blocks. argument-hint: "[--branch <name>|--auto-branch] [--title <msg>]" disable-model-invocation: true license: Apache-2.0 user-invocable: true --- # jackin-create-pr Open a PR for a **small fix** in the jackin❯ repo — typo, dependency bump, one-line bugfix, doc tweak — that needs no roadmap item. Also the shared PR-mechanics path other skills reuse. Commits inline; no separate commit skill. jackin❯ rule files auto-load — `PULL_REQUESTS.md`, `.github/` agent rules, `BRANCHING.md`, `COMMITS.md`. This skill sequences them, never restates them. Read them for full rules. ## When to use - Operator runs `jackin-create-pr`. - Small, self-contained change (no design, no roadmap item). ## When NOT to use - Feature/idea worth a roadmap item → `jackin-propose`. - Implementing a finalized roadmap item → `/goal Implement <slug>.md`. ## Arguments - `--branch <name>` — explicit branch name. - `--auto-branch` — pick the branch name yourself, no confirmation. - `--title <msg>` — commit + PR title (else derive from the diff, Conventional Commits). ## Process 1. **Branch.** Never commit to `main`. If on `main`, create a `fix/` / `chore/` / `docs/` / `refactor/`-prefixed branch named from the change. Suggest and confirm unless `--auto-branch` or `--branch` given. 2. **Commit.** Uncommitted changes → commit inline per `COMMITS.md`: Conventional Commits subject, DCO sign-off (`git commit -s`). Already committed → skip. Then `git push`. 3. **Build the body.** `[bin]` Run `cargo xtask pr body --base origin/main > /tmp/pr-body.md`. The classified change digest (rust / docs / capsule / schema + file list) prints to **stderr** — read it; the body skeleton goes to the file: the PR template (read from `.github/PULL_REQUEST_TEMPLATE.md` at runtime) with the verify-locally blocks already selected and byte-exact, prose left as placeholders. Block selection: Checkout + isolation env always; Rust tests on a Rust change; Docs checks + walk on `docs/**`; jackin-capsule smoke (with `--capsule` *before* any `console`/`load`) on `crates/jackin-capsule/`; schema migration smoke on a versioned-schema touch. 4. **Fill + create.** `[agent]` Edit `/tmp/pr-body.md` — write the prose sections (Summary, What ships, Behavior changes) from the digest + diff; drop the optional sections you do not need. Then `gh pr create --body-file /tmp/pr-body.md`. The binary already wrote the body, so there is no heredoc to quote. 5. **Verify render.** `gh pr view <PR> --json body -q .body` — confirm the prose you added renders (no stray `\`` or `\$` from hand-editing). Fix with `gh pr edit --body-file` if needed. 6. **Reply.** Share the PR URL and repeat the Verify-locally commands in your final message. ## Common mistakes - Committing to `main` instead of a branch. - Hand-building the body or template instead of `cargo xtask pr body` — it reads the template and selects the verify blocks for you. - Posting the skeleton with the prose placeholders left unfilled. - Deployed docs URLs in the body (break post-merge) — refer to docs by name. ## Tooling `cargo xtask pr body` (jackin❯ repo) emits the change digest + the template skeleton with verify-locally blocks auto-selected from the diff. Shared with `propose`. The binary guarantees the mechanical parts (block selection, capsule ordering, exact command text, heredoc quoting); the agent writes the prose.
© jackin-project · Apache-2.0 · jackin-project/jackin-dev