Skip to content
Back to skills

Delegate Ship

ASecurity

Claude Code only. Take an approved contract-level plan through delegate-plan (executor codex, grok, copilot or a claude subagent), independent re-verification, code-review --fix, commit, a PR with a blast-radius section, and hand-off to a babysit loop, in one move. Trigger on "/delegate-ship <executor> [--model <m>] [--effort <e>] <plan>", "delegate and ship", "grok implements then PR it", "have codex build the plan and open the PR", "have a claude subagent build it and PR it". Do NOT use for...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
ai-agentsgobashcode-reviewgit

Works with

  • claude code
  • cli
  • mcp

Security analysis

A100/100

Scanned September 26, 2026

npx -y skills add gtapps/skills --skill delegate-ship --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Delegate Ship?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Delegate Ship
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gtapps-delegate-ship/badge)](https://www.skillsdirectory.com/skills/gtapps-delegate-ship)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: delegate-ship
description: Claude Code only. Take an approved contract-level plan through delegate-plan (executor codex, grok, copilot or a claude subagent), independent re-verification, code-review --fix, commit, a PR with a blast-radius section, and hand-off to a babysit loop, in one move. Trigger on "/delegate-ship <executor> [--model <m>] [--effort <e>] <plan>", "delegate and ship", "grok implements then PR it", "have codex build the plan and open the PR", "have a claude subagent build it and PR it". Do NOT use for planning (plan-pipeline), for this session implementing the plan itself (worktree-ship), or for a PR from work already committed (open-pr).
compatibility: Requires Claude Code as the host; Codex, Grok, and Copilot may be delegated executors.
---

# delegate-ship

Resolve `<name-skill-dir>` to the absolute installed directory of the named skill before executing the commands below.

**The plan is approved. Every joint from here to a Copilot-clean PR is yours. Stop only for a finding the operator must decide.** One command: the operator pastes the goal line and comes back for the PR URL.

## Procedure

**1. Print the goal, resolve the inputs.** Print this line first so the operator can paste it:

    /goal <PLAN> is shipped by delegate-ship: DELEGATE_DONE shown; the plan's Closing verification re-run by me in the worktree after the last commit (verify.sh table shown, every row exit 0); review-to-pr ran /code-review high --fix in an Opus subagent and re-verified; any finding that reverses a plan contract halted for a Yes and the plan file was edited; the PR URL is shown with a blast-radius section. Or this session has halted where delegate-ship requires the operator: its last message is the numbered unfixed-findings list, a contract-change question, or a red verification table, with no operator reply yet. Never reset --hard; on push rejection fetch, rebase, retest, retry. Or stop after 30 turns.

The goal evaluator is binary: a halt satisfies the goal and clears it, which keeps it from pushing past a decision that belongs to the operator. So every time you halt for the operator, end the message with this goal line again, so they can re-pin it with their answer.

Then resolve `<executor>` (codex, grok, copilot or claude), the optional `--model <m>` and `--effort <e>`, and `<plan>` (a path, else the newest file under `~/.claude/plans/` by mtime; say which one you picked). Pass the two flags through to delegate-plan exactly as given and never fill them in yourself: its `config.json` owns the defaults, so an absent flag is passed as absent. The plan must contain a `## Closing verification` block. If it does not, stop and say so: there is nothing to re-verify against, and this skill never supplies its own test commands.

**2. Delegate and wait.** Invoke the `delegate-plan` skill with the executor, the flags and the plan. It freezes the grounded SHA, creates the worktree, launches the executor (under a Monitor, or as a background subagent when the executor is claude), and ends with a `DELEGATE_DONE executor=<x> exit=<rc> result=<path>` line (for claude, printed by its `finish_claude.sh`). Wait on that Monitor, or on the agent's completion for claude. Never poll `status.sh` by hand, never `/loop` to watch it; a stall arrives as a Monitor event and delegate-plan's own rules handle it.

delegate-plan's report closes with an operator menu and "do not review, stage, commit, push, or open a PR in this session". That stop is overridden here on purpose: this skill owns the rest of the pipeline, and the menu's first line is exactly step 4 below. Say so in one line when you continue past it.

**3. Re-verify from the plan, not from memory.** In the worktree, run

    bash <delegate-plan-skill-dir>/scripts/verify.sh <run-dir>

and print its `<exit>  <command>` table verbatim. Every row comes from the plan's Closing verification block. A red row stops the pipeline here with the table shown; the executor's `result.json` claims are not evidence.

**4. Review and publish.** Invoke `review-to-pr --level high --model opus`. The executor may be a lower-effort or non-Claude harness, so the review runs on Opus whatever the session model is. Hand it:
- the goal line from step 1 (review-to-pr prints none of its own);
- `bash <delegate-plan-skill-dir>/scripts/verify.sh <run-dir>` as its verification command (plus the smoke below, when the plan names a protocol), with the step 3 table as its pre-review run;
- the section below as an extra PR body section.

review-to-pr commits the executor's tree without simplify (the executor already ran its own), runs the review in a fresh-context Opus subagent, re-verifies, and opens the PR. It halts on a red table, unfixed findings, or a finding that reverses a plan contract. On a contract halt, edit the plan file to record the new contract after the operator's Yes. The PR body section:

    ## Blast radius
    - Released surfaces touched: ...
    - Unreleased surfaces touched: ...
    - Downstream operators: ...
    - Downstream hermits: ...
    - Per-actor ledger: executor <executor>[:<model>] <what it wrote> / code-review:opus <what it changed> / operator <what was decided>

The executor's name and model come from the run's `freeze.json` (`executor`, `model`; omit the model when null), so a PR reviewer sees which harness and model wrote the code.

If the plan names an external protocol (a wire format, an MCP or HTTP contract, a channel bridge), add one real-client smoke against the worktree build to the verification commands you hand review-to-pr, and have review-to-pr paste its command and output into the PR body. No protocol named: skip the smoke, do not invent one.

**5. Report and stop.** Print the PR URL. open-pr already prints `/loop 15m /babysit-prs` and the drain-review-queue goal; pass them through as printed, do not restate them. Copilot and CI comments are the babysit loop's job, not this session's.

## Rules

- Absolute paths everywhere. The worktree is the repo root (`git rev-parse --show-toplevel`), never the main checkout.
- No test or typecheck command is named in this file. They come from the plan, through verify.sh.
- Never reset --hard. On a rejected push: fetch, rebase, re-run verify.sh, push again.
- Don't reimplement `delegate-plan` or `review-to-pr`; invoke them.
- Don't wait on the executor with sleep or status polls; the Monitor, or the agent completion for claude, wakes you.
- GUEST_REPORT is not a step here. Sessions in a hermit-managed repo already receive that mandate from the project's startup context.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…