| name | gdd-ship |
| description | Post-verify PR flow - creates a clean PR branch, invokes code review check, and prepares the PR for merge. Activates for requests involving finishing a cycle, packaging design output, or moving work to a pull request. |
| argument-hint | [--title <PR title>] [--draft] |
| tools | Read, Write, Bash, AskUserQuestion, Task |
| disable-model-invocation | true |
{{command_prefix}}ship
Closes the verify → merge gap: runs {{command_prefix}}pr-branch for a clean branch, assembles a PR body from design artifacts, and creates the PR via gh.
Steps
- Pre-flight verify check: Check that
.design/DESIGN-VERIFICATION.md exists and shows a pass. If missing or failing, ask: "Verify has not completed / failed. Ship anyway? (yes/no)"
- Clean branch: Invoke
{{command_prefix}}pr-branch to produce a branch with only src/ commits (no .design/ or .planning/ noise). Use the resulting branch for the PR.
- PR title: Use
--title argument if given, otherwise ask (AskUserQuestion): "PR title?"
- PR body: Auto-generate from:
- Goals section of
.design/DESIGN-PLAN.md
- Summary of
.design/DESIGN-VERIFICATION.md (per-task pass/fail)
- Top-line audit score from
.design/DESIGN-AUDIT.md if present
Format as Markdown with ## Goals, ## Verification, ## Audit sections.
- Create PR: Run
gh pr create --title "<title>" --body "<body>" [--draft] via Bash. If gh is not installed, print the full body and instruct the user to create the PR manually.
- Print PR URL on success.
Do Not
- Do not push to
main/master directly.
- Do not include
.design/ or .planning/ files in the PR branch - that is {{command_prefix}}pr-branch's job.
- Do not skip the verify pre-flight silently - always surface a failure and ask.
Step 6.5 - PR inline review surface (pr-commenter)
ONLY on the success path - after the PR has been created (Step 5) and its URL printed (Step 6) - spawn agents/pr-commenter.md via the Task tool to post GDD's verify/audit output inline on the new PR: inline review comments on changed lines, Preview/Chromatic before-after screenshot pairs, and the gdd/design-review check-run (audit pillar scores + verify pass/fail + a11y). Pass the PR number + owner/repo in the Task context.
This is a degrade-to-noop surface and MUST NOT fail the ship: if gh is unavailable, the GDD_DISABLE_PR_COMMENTER kill-switch (env or .design/config.json) is set, or the agent errors, the ship still succeeds (pr-commenter prints the bodies for manual paste). Skip this step entirely if PR creation failed in Step 5. The posting contract (gh-api shapes, check-run payload, redaction, branch-protection setup) lives in reference/pr-review-integration.md.
Step 7 - Update notice (post-closeout surface)
ONLY on the success path - after the PR has been created and the URL has been printed - emit the plugin-update banner. If PR creation failed earlier, skip this step (do not suggest upgrades in the middle of a PR-creation failure).
[ -f .design/update-available.md ] && cat .design/update-available.md
Written by hooks/update-check.sh; suppressed mid-pipeline and when the latest release is dismissed.
SHIP COMPLETE