# Create Pr

> Create PR

- Skill: `prostdev/create-pr` (Agent Skill)
- Install (CLI): `npx skillmds@latest add prostdev/create-pr`
- Raw SKILL.md: https://api.skillmd.com/api/skills/prostdev/create-pr/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ProstDev (https://skillmd.com/u/prostdev)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/prostdev/create-pr

---


# Create PR

> **User-invoked only — never self-invoke.** Do NOT run this skill on your own initiative, and do
> not chain into it from another skill or from "wrapping up". The **only** valid trigger is the user
> explicitly invoking `/create-pr` in the current message. If a PR seems warranted but the user has
> not invoked this, *ask* — do not run it. (This is deliberately stricter than the general
> never-commit/push rule, because this skill's whole job is to commit, push, and open a PR.)

One-step "wrap up and open a PR" for the **current** repo. The user invoking `/create-pr` **is** the
authorization to commit + push + open a PR — it overrides the never-commit/push hard rule **for that
invocation only**. Nothing else (a later "continue", a prior approval, another skill) carries it.

## What makes this different from `close-session`

`close-session` re-runs the full test suite; **this skill does not**. The user is trusting CI to
gate tests. Still run the cheap, fast checks so you never push something obviously broken — just not
the slow test suites.

## Run quietly

No play-by-play. Stay silent except a rare very-short status line. Emit exactly **one** summary at
the end (see below).

## Steps (in order)

1. **Accessibility** — if the session changed UI (HTML/JSX/CSS/component), invoke the
   `accessibility-review` skill on the changed surface and fix confirmed WCAG violations. Nothing
   renders UI this session → skip.
2. **Type-check, no tests** — run the repo's type-checker (e.g. `npx tsc --noEmit`, `mypy`).
   Honor the repo's pre-existing error baseline; report only **new** errors in **changed** files. Do
   **not** run the full test suite or integration suite. If new errors surface in changed files,
   **halt and tell the user** before opening the PR.
3. **Save** — invoke the `save-session` skill so any learning persists, routed to the right repo.
4. **Open the PR** (current repo only):
   - On the default branch? Create a branch first: `git switch -c <type>/<short-slug>`.
   - `git add -A`, then commit with a clear message ending in the repo's commit trailer if it has
     one. Push with `git push -u origin HEAD`.
   - `gh pr create` with a title and a body that summarizes what changed and how it was verified —
     state plainly that **tests are left to CI** (not run locally). End the body with the repo's PR
     trailer if it has one.
5. **Return to the default branch locally** — `git switch <default-branch>` so the local checkout is
   back on the default branch. Do **not** delete the pushed branch.

## Scope & cautions

- **Current repo only.** If the session also touched **other** repos, do **not** bundle them into
  this PR — they need their own commits/PRs. Name them in the summary so the user handles them
  separately.
- Never force-push, never delete branches, never merge. Leave the PR open for review.

## Final summary

One terse message: the a11y result, the type-check result (new errors: expected 0), what was saved,
the **PR URL**, and confirmation you're back on the default branch. Flag anything left for the user
(other-repo changes, unresolved type errors, a decision you couldn't make).

