Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add jackin-project/jackin-dev --skill jackin-create-pr -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/jackin-create-pr/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/jackin-create-pr/

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

Similar skills

All skills for Git and GitHub →

From the same set8

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor