ship
Original:🇺🇸 English
Translated
Commit, push, open a PR, and mark the issue done — one command to ship a finished change. Operator invokes only after manual verification.
3installs
Sourcealimtunc/turkit
Added on
NPX Install
npx skill4agent add alimtunc/turkit shipTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Ship
Finalize a validated change: commit → push → PR → close out the ticket.
Preconditions: the operator has manually verified the change works. This skill does not run the test suite. It does not hard-require GitHub CLI — the PR host is resolved per .
references/vcs-host-detection.mdSteps
-
Confirm branch is not the base branch. Resolve base via. If
references/build-tool-detection.md#base_branchequals the base, abort with a clear message — never commit ongit rev-parse --abbrev-ref HEAD/the base branch.main -
Confirm a worktree or feature branch exists. If on a detached HEAD or a suspicious state, abort.
-
Stage and commit changes.
- Write a commit subject in the configured language per and the project's convention if detectable (Conventional Commits if prior commits follow it — check
references/output-preferences.md).git log --oneline -20 - Include a 1–3 sentence body only if the diff needs motivation; otherwise subject-only.
- Never add or AI credit.
Co-Authored-By - Run commit via HEREDOC to preserve formatting.
- Write a commit subject in the configured language per
-
Push..
git push -u origin HEAD -
Create the PR. Resolve the create command via(
references/vcs-host-detection.md, else.turkit.yaml → vcs.pr_create, elsegh, else the manual fallback).glab- Title: short, under 70 chars ().
$TITLE - Body: delegate to (or re-use its output if already generated this session). Write it to a temp file and pass it as
/pr-descriptionso multi-line markdown never has to be shell-quoted.$BODY_FILE - Detect CLIs with /
command -v ghbefore choosing a fallback. Do not treat "CLI missing" as an error when the manual fallback is available.command -v glab - If a configured custom command is blocked by the host/tool sandbox, do not bypass approval. Print the exact manual command plus title/body/branch and use the manual fallback output.
vcs.pr_create - No PR host available (no config, no , no
gh): do not fail. Print the title + body and the pushed branch name, and tell the operator to open the PR in their host UI or CLI. Report withglaband thePR : opened manually — <branch>line carrying the number the operator assigns (or#<PR_NUMBER>if unknown).#-
- Title: short, under 70 chars (
-
Mark the ticket Done. Via. If no tracker, skip silently.
references/issue-tracker-detection.md -
Report. Emit the Output format block exactly — no prose before it, no prose after it. The bareMUST be the very last line of the entire response so the operator (and other tools) can extract it without parsing.
#<PR_NUMBER>
Output format
The final response of this skill MUST end with this exact block. Fill placeholders, keep field labels and order intact, keep the blank line before , and emit nothing after the number:
#<PR_NUMBER>✅ Shipped
- Commit : <short-hash> — <subject>
- Branch : <branch>
- Ticket : <ID> → Done (or: no tracker detected)
- PR : <url> (or: opened manually — <branch>)
#<PR_NUMBER>Rules:
- No trailing prose. The line is the last line of the response. Do not add a recap, next steps, or commentary after it.
#<PR_NUMBER> - No prefix prose. Optionally one short status line before the block if a step needs explanation (e.g. pre-commit hook fix). Otherwise: jump straight to the block.
- Always include all four fields (Commit, Branch, Ticket, PR), even if redundant. If the ticket field is "no tracker detected", keep the line. If the PR was opened manually (no host CLI), use .
opened manually — <branch> - is the bare PR number prefixed by
#<PR_NUMBER>(e.g.#), on its own line. Not the URL, not a hash — the number. If the host could not assign one (manual fallback), use#42.#-
Guardrails
- Never , never
--force, never skip hooks.--no-verify - Never amend an already-pushed commit.
- If a pre-commit hook fails: fix the underlying issue, re-stage, create a new commit. Do not amend.
- Do not assume GitHub. Resolve PR creation per ; a missing host CLI degrades to the manual fallback, never a hard failure.
references/vcs-host-detection.md - Custom commands may require operator approval depending on the host/tool sandbox. If approval is unavailable, use the manual fallback.
vcs.pr_create - Apply for operator-facing language/style.
references/output-preferences.md