一键导入
ship
Run local CI checks and ship changes — create branch, commit, push, and PR. Optionally link to a GitHub issue. Use when changes are ready to ship.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Run local CI checks and ship changes — create branch, commit, push, and PR. Optionally link to a GitHub issue. Use when changes are ready to ship.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when orchestrating parallel Claude Code instances across tmux panes with git worktree isolation — managing multiple concurrent development tasks visually
Use when production incident occurs, alerts fire, service degradation detected, or on-call escalation needed - guides systematic organizational response before technical fixes
Use when conducting manual PR reviews - provides structured checklist covering security, performance, maintainability, and code quality dimensions with anti-sycophancy principles
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
Architecture guide using Next.js App Router's Parallel Routes for Widget-Slot pattern. Separates static layouts from dynamic widgets to achieve separation of concerns, fault isolation, and plug-and-play development.
Run local CI checks and ship changes — create branch, commit, push, and PR. Optionally link to a GitHub issue. Use `--full` to run all workspace checks. Use when changes are ready to ship.
| name | ship |
| description | Run local CI checks and ship changes — create branch, commit, push, and PR. Optionally link to a GitHub issue. Use when changes are ready to ship. |
Run local CI checks, then create branch, commit, push, and PR in one workflow.
Follow every step in order. Stop and report if any step fails.
Check if $ARGUMENTS is provided:
With issue (/ship 613 or /ship https://github.com/.../issues/613):
gh issue view <number> --json title,body,labels
Use the issue title and labels to inform branch name, commit message, and PR description.
Without issue (/ship):
Skip issue fetch. Derive context entirely from the changed files and git diff. The user will be asked to confirm the commit message and PR title before proceeding.
git status
git diff --stat
If there are no changes to ship, stop and inform the user.
Detect whether the project is a monorepo or single-repo by checking for configuration:
codingbuddy.config.jsonIf codingbuddy.config.json exists and contains custom.ship, use it:
// codingbuddy.config.json
{
"custom": {
"ship": {
"packageManager": "yarn", // "yarn" | "npm" | "pnpm" | "bun"
"structure": "monorepo", // "monorepo" | "single"
"workspaces": [
{
"name": "my-app",
"paths": ["apps/my-app/**"],
"checks": ["lint", "format:check", "typecheck", "test:coverage", "build"]
},
{
"name": "my-lib",
"paths": ["packages/my-lib/**"],
"checks": ["lint", "typecheck", "test"]
}
],
"globalChecks": [
{
"name": "schema-validation",
"command": "npx ajv-cli validate -s schema.json -d 'data/*.json'"
},
{
"name": "markdown-lint",
"command": "npx markdownlint-cli2 '**/*.md'"
}
],
"skipPaths": ["docs/**", "*.md", ".github/**"]
}
}
}
If no custom.ship config exists, auto-detect:
bun.lock → pnpm-lock.yaml → yarn.lock → package-lock.json. Default to npm.package.json for workspaces field. If present → monorepo; otherwise → single-repo.workspaces from package.json, resolve glob patterns against git diff --name-only to find affected workspaces.<pm> [workspace <name>] lint
<pm> [workspace <name>] typecheck
<pm> [workspace <name>] test
<pm> [workspace <name>] build
Where <pm> is the detected package manager and workspace <name> is included only for monorepos.Run git diff --name-only (include both staged and unstaged) and classify into workspaces.
Monorepo: Match changed file paths against workspace paths patterns to find affected workspaces.
Single-repo: All changes belong to the single workspace.
If changed files match only skipPaths (or don't match any workspace in auto-detect), skip CI checks entirely and proceed to Step 6.
Run checks only for affected workspaces. Execute checks sequentially within each workspace. Stop at first failure.
Configured (from custom.ship.workspaces):
# For each affected workspace, run each check:
<pm> workspace <workspace-name> <check>
Auto-detected:
# Monorepo — run for each affected workspace:
<pm> workspace <workspace-name> lint
<pm> workspace <workspace-name> typecheck
<pm> workspace <workspace-name> test
<pm> workspace <workspace-name> build
# Single-repo — run at project root:
<pm> run lint
<pm> run typecheck
<pm> run test
<pm> run build
Skip any script that does not exist in the workspace's package.json — check with <pm> run --json or by reading package.json scripts.
If custom.ship.globalChecks is configured, run each global check command after workspace checks pass:
<command> # executed from project root
Security audit must run across ALL workspaces, not just affected ones:
# Monorepo — run for ALL workspaces (not just affected):
<pm> audit
# Or for npm:
npm audit --workspaces
Why: A vulnerability in an unaffected workspace still ships with the project. Security scanning must be comprehensive.
When modifying CI workflow files (e.g., .github/workflows/*.yml), verify the workflow's on.push.paths or on.pull_request.paths filter includes the workflow file itself:
# ✅ Correct — workflow file is included in its own paths filter
on:
push:
paths:
- 'src/**'
- '.github/workflows/ci.yml' # Self-included
# ❌ Wrong — workflow changes won't trigger the workflow
on:
push:
paths:
- 'src/**'
# Missing: .github/workflows/ci.yml
Why: If a workflow file is not in its own paths filter, changes to the workflow itself won't trigger CI, making it impossible to validate workflow changes before merging.
If ANY check fails, stop and report the failure. Do NOT proceed to shipping.
git log --oneline -10
Identify the commit message convention from recent history. Common conventions:
type(scope): description (Conventional Commits)type: description<type>/<short-description>-<issue-number> (e.g., feat/add-auth-613)<type>/<short-description> (e.g., fix/login-redirect)git checkout -b <branch-name>
# Stage relevant files (never use git add -A)
git add <specific-files>
# Exclude task artifacts from staging
git reset HEAD RESULT.json TASK.md 2>/dev/null || true
# Commit with convention — use HEREDOC for message
git commit -m "$(cat <<'EOF'
type(scope): concise description
- Detail 1
- Detail 2
Closes #<issue-number> ← only if issue provided
EOF
)"
Rules:
git add (never git add -A or git add .)Closes #<number> if an issue was providedgit push -u origin <branch-name>
Create PR using gh pr create:
gh pr create --title "<type>(scope): description" --label "<labels>" --body "$(cat <<'EOF'
## Summary
<bullet points summarizing changes>
## Test plan
<verification steps>
Closes #<issue-number>
EOF
)"
gh pr create --title "<type>(scope): description" --label "<labels>" --body "$(cat <<'EOF'
## Summary
<bullet points summarizing changes>
## Test plan
<verification steps>
EOF
)"
enhancement for feat, bug for fix)PR Rules:
Print the PR URL and a summary of: