pull-request
Installation
SKILL.md
pull-request
Turn the current branch into a pull request that follows the repo's own conventions — an umbrella Conventional-Commits title and a body filled from the repo's PR template — then create it after your confirmation, update your own existing PR, or just show the exact command. The backend is chosen by config (pr.backend); GitHub (via gh) is the only backend implemented in v1.
Workflow
1. Detect conventions (read the repo — never assume)
- Backend — from
pr.backend(v1: onlygithubis implemented; any other value → say it's not supported yet and stop). For GitHub, confirm the repo is reachable:gh repo view --json nameWithOwner,defaultBranchRef. If it fails (no GitHub remote, orghnot authenticated), stop with a clear message. - Base ← head — base =
pr.basefrom.tituskirch-skills.jsonif set, elsedefaultBranchRef.name; head = current branch (git branch --show-current). Never hardcodemain/dev; showbase ← headin the plan and let the user override. - PR template — find
.github/pull_request_template.md,.github/PULL_REQUEST_TEMPLATE.md,.github/PULL_REQUEST_TEMPLATE/*.md, or a root/docs/variant. Use it verbatim as the body skeleton and fill its sections; if none, fall back to Summary / Changes / Related issues. - Title convention — Conventional Commits when the repo uses them. Read it from the shared convention cache (
$(git rev-parse --git-common-dir)/tituskirch-skills/conventions, written byatomic-commitor by this skill — same detection, memoized); if the cache is missing/stale, detect it (commitlint config + history) and write the block yourself. Honor the cachedheader_max_lengthfor the title — PR titles are commonly linted too.pr.title.convention: plainin.tituskirch-skills.jsonforces a non-Conventional title. - Existing PR —
gh pr list --head <branch> --state openand check its author (step 5). - Config —
.tituskirch-skills.jsonat the repo root (optional, committed) can setpr.base,pr.title.convention, and the sharedlanguage;pr.backendexists but v1 supports onlygithub. Read withjq(missing file/jq→ ignore, warn once). Keys: REFERENCE.md.
Detection recipes and the shared cache: REFERENCE.md.