jackin-merge-pr — скилл для Claude Code: гейт перед мержем PR
Прогоняет предмержевые проверки jackin❯, переносит пункт роадмапа в документацию и делает squash-merge пул-реквеста. Вызывается только вручную.
npx skills add jackin-project/jackin-dev --skill jackin-merge-pr -a claude-codeЧто делает jackin-merge-pr
Скилл закрывает финальную часть работы над PR в проекте jackin❯: сначала проверки, потом документация, потом мерж. Он не переписывает правила репозитория, а выстраивает их в нужном порядке. Правила из .github/ подтягиваются сами, PULL_REQUESTS.md тоже.
Порядок такой. Скилл находит PR по текущей ветке или по аргументу, смотрит gh pr view и gh pr diff, относит диф к высокому риску, если задета версионируемая схема, поверхность авторизации, .github/workflows/** или нужен force-push. Высокий риск — пауза и одно подтверждение. Дальше gh pr checks <PR>: пока проверки висят, скилл ждёт зелёного, если не передан --no-poll; упавшая проверка останавливает всё. Локально ничего не перезапускается, результат берётся у CI.
Потом пункт роадмапа: cargo xtask roadmap retire <slug> --plan печатает список работ, агент переносит детали в guides/, commands/ или reference/, правит ссылки, а --apply удаляет страницу и запись в meta.json и падает, если на мёртвый slug ещё кто-то ссылается. Частичная готовность помечается через --partial. В конце — squash-merge с телом из файла, которое собирает jackin-pr-trailers. Авторизация из прошлой сессии не переносится: без явного согласия на конкретный PR и с падающим CI скилл останавливается.
Какие задачи решает
- провести PR через предмержевые проверки без ручного перезапуска CI
- перенести завершённый пункт роадмапа в документацию и убрать страницу
- найти все входящие ссылки на удаляемый slug
- собрать тело squash-коммита с трейлерами DCO и Co-authored-by
- остановить мерж, когда проверка падает, а обхода нет
Примеры запросов агенту
- Смержи PR по текущей ветке через jackin-merge-pr
- Запусти jackin-merge-pr 412 --no-poll и покажи статус проверок
- Прогони jackin-merge-pr с --admin lint, если этот чек падает
Как установить jackin-merge-pr
1Через Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-merge-pr -a claude-code2Вручную: положить файлы
~/.claude/skills/jackin-merge-pr/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/jackin-merge-pr/
1Через Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-merge-pr -a codex2Вручную: положить файлы
.agents/skills/jackin-merge-pr/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-merge-pr -a cursor2Вручную: положить файлы
.cursor/skills/jackin-merge-pr/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install jackin-project/jackin-dev jackin-merge-pr2Вручную: положить файлы
.github/skills/jackin-merge-pr/SKILL.md1Через Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-merge-pr -a gemini-cli2Командой платформы
gemini skills install https://github.com/jackin-project/jackin-dev --path skills/jackin-merge-prВручную: положить файлы
.devin/skills/jackin-merge-pr/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add jackin-project/jackin-dev --skill jackin-merge-pr -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о jackin-merge-pr
Как установить jackin-merge-pr в Claude Code?
Выполните npx skills add jackin-project/jackin-dev --skill jackin-merge-pr -a claude-code. Скилл окажется в ~/.claude/skills/jackin-merge-pr/SKILL.md.
Что делает jackin-merge-pr?
Прогоняет проверки перед мержем, переносит пункт роадмапа в документацию и делает squash-merge. Вызов только явный, сам скилл не срабатывает.
Что означают флаги --no-poll и --admin?
--no-poll не ждёт висящие проверки CI, а останавливается и докладывает. --admin <check> разрешает обойти одну названную упавшую проверку, но всё равно требует подтверждения.
Исходный текст
SKILL.md · Apache-2.0
--- name: jackin-merge-pr description: 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. argument-hint: "[PR] [--no-poll] [--admin <check>]" disable-model-invocation: true license: Apache-2.0 user-invocable: true --- # 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 `--admin` bypass without `--admin <check>` + confirm). - Roadmap item not retired / not status-moved when the PR ships or advances it → STOP, fix first. ## Process 1. **Resolve PR.** Current branch's PR or the arg. Read `gh pr view` and `gh pr diff`. 2. **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). 3. **CI gate.** `gh pr checks <PR>`: if pending, **poll until green** (unless `--no-poll`); if any check fails, STOP. Trust CI — which runs `cargo xtask schema-check` plus the test/clippy/fmt jobs — no local re-run. 4. **Roadmap retirement.** Does this PR ship the **last** piece of its roadmap item? - **Yes** → `[bin]` `cargo xtask roadmap retire <slug> --plan` prints the worklist: the page content, every inbound link (`grep <slug>`), and the `meta.json` entry. `[agent]` Do the judgment moves — operator detail → `guides/`/`commands/`, design detail → `reference/`, write the `## Completed` bullet in `roadmap/index.mdx`, repoint inbound links; commit `docs:`. `[bin]` `cargo xtask roadmap retire <slug> --apply` removes the `meta.json` entry, deletes the `.mdx`, runs the audit, and **fails if any inbound link still points at the dead slug**. Run the `bun` docs gate; push. - **Partial** → `cargo xtask roadmap retire <slug> --partial` sets `**Status**: Partially implemented` and keeps the page; name the remaining phases; commit; push. 5. **Metadata reconcile.** Title/body match the final diff? Squash writes the title verbatim into history. Fix via `gh pr edit` if stale; surface the change in your reply. 6. **Squash-merge.** Build a body file (prose summary, no checklists), append trailers via `cargo run -p jackin-pr-trailers -- --body-file`, then `gh pr merge <PR> --squash --body-file`. Confirm the title carries `(#N)`. 7. **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: Resolved` roadmap 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.
© jackin-project · Apache-2.0 · jackin-project/jackin-dev