Jackin Merge PR
Use only when the user explicitly requests this skill. Runs the jackin❯ pre-merge gate, retires the roadmap item into docs, and squash-merges a pull request.
- Skill ID
- jackin-project/jackin-dev/jackin-merge-pr
- Publisher
- jackin-project
- Repository
- jackin-dev
- Installs
- 0
- Files
- 2
- License
- Apache-2.0
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
jackin-project/jackin-dev/jackin-merge-prInstalls these files- SKILL.md
- agents/openai.yaml
What this skill tells the agent
jackin-merge-pr
Sequence the jackin❯ pre-merge gates fail-closed, retire the roadmap item into docs, then squash-merge. Reuses the .github/ agent rules (auto-loaded) and PULL_REQUESTS.md — sequences them, never restates them.
When to use
- Operator runs
jackin-merge-pr [<PR>]to merge a jackin❯ PR (defaults to the current branch's PR).
When NOT to use
- Opening or iterating a PR →
jackin-create-pr/jackin-propose.
Arguments
--no-poll— do not wait on pending CI; stop and report instead.--admin <check>— authorize bypassing one named failing check (still needs the high-blast-radius confirm).
Red flags — STOP
- No clear authorization for this PR and it is high-blast-radius → STOP, confirm first.
- Any required CI check failing → STOP (no
--adminbypass without--admin <check>+ confirm). - Roadmap item not retired / not status-moved when the PR ships or advances it → STOP, fix first.
Process
- Resolve PR. Current branch's PR or the arg. Read
gh pr viewandgh pr diff. - Blast-radius classify. High if the diff touches a versioned schema, auth/security surface,
.github/workflows/**, or needs a force-push /--admin. High → pause for one explicit confirm. Normal → proceed (invoking the skill is the go). - CI gate.
gh pr checks <PR>: if pending, poll until green (unless--no-poll); if any check fails, STOP. Trust CI — which runscargo xtask schema-checkplus the test/clippy/fmt jobs — no local re-run. - Roadmap retirement. Does this PR ship the last piece of its roadmap item?
- Yes →
[bin]cargo xtask roadmap retire <slug> --planprints the worklist: the page content, every inbound link (grep <slug>), and themeta.jsonentry.[agent]Do the judgment moves — operator detail →guides//commands/, design detail →reference/, write the## Completedbullet inroadmap/index.mdx, repoint inbound links; commitdocs:.[bin]cargo xtask roadmap retire <slug> --applyremoves themeta.jsonentry, deletes the.mdx, runs the audit, and fails if any inbound link still points at the dead slug. Run thebundocs gate; push. - Partial →
cargo xtask roadmap retire <slug> --partialsets**Status**: Partially implementedand keeps the page; name the remaining phases; commit; push.
- Metadata reconcile. Title/body match the final diff? Squash writes the title verbatim into history. Fix via
gh pr editif stale; surface the change in your reply. - Squash-merge. Build a body file (prose summary, no checklists), append trailers via
cargo run -p jackin-pr-trailers -- --body-file, thengh pr merge <PR> --squash --body-file. Confirm the title carries(#N). - Report. Merged SHA and what retirement did.
Common mistakes
- Carrying a prior session's "just merge everything" as authorization — it does not carry forward.
- Merging on pending/failing CI, or
--admin-bypassing without explicit per-check opt-in. - Leaving a
Status: Resolvedroadmap page instead of retiring it into docs. - Squash title missing the
(#N)suffix or the DCO / Co-authored-by trailers.
Tooling
Bundles jackin-pr-trailers. cargo xtask roadmap retire <slug> --plan gives the agent the retirement worklist; --apply does the mechanical removal + audit and fails on a dangling link; --partial sets the Status. The content moves themselves are the agent's judgment. CI runs cargo xtask schema-check (the 5-artifact gate); this skill only reads its result.
More from jackin-project
Use this skill in a project
Open any RiverX project, search the Skills panel for jackin-project/jackin-dev/jackin-merge-pr, and install it in one click.
