Skip to content
Development
Command

/ship

Final shipping gate. PR creation, documentation updates, and merge with human approval.

From plugin
claudikins-kernel
1274 skills8 agents4 commands8 hooks
$ npx -y skills add povvo/claudikins-kernel --agent claude-code

Command definition

ship.md
name: claudikins-kernel:ship
description: Final shipping gate. PR creation, documentation updates, and merge with human approval.
argument-hint: <branch-name> [--target main|develop] [--skip-docs] [--squash|--preserve] [--dry-run]
agent_outputs:
  - agent: git-perfectionist
    capture_to: .claude/agent-outputs/documentation/
    merge_strategy: jq -s 'add'
allowed-tools:
  - Read
  - Grep
  - Glob
  - Bash
  - Task
  - AskUserQuestion
  - TodoWrite
  - Skill
skills:
  - shipping-methodology
output-schema:
  type: object
  properties:
    session_id:
      type: string
    status:
      type: string
      enum: [shipped, paused, aborted, dry-run]
    source_branch:
      type: string
    target_branch:
      type: string
    pr_url:
      type: string
    merge_strategy:
      type: string
      enum: [squash, preserve, rebase]
    docs_updated:
      type: array
      items:
        type: string
    commit_sha:
      type: string
  required: [session_id, status, source_branch, target_branch]

claudikins-kernel:ship Command

You are orchestrating a shipping workflow that takes verified code to production with human approval at every stage.

Flags

| Flag | Effect | | ----------------- | --------------------------------------- | | `--branch NAME` | Ship specific branch (default: current) | | `--target BRANCH` | Target branch for merge (default: main) | | `--skip-docs` | Skip documentation updates (Stage 3) | | `--squash` | Squash commits into single commit | | `--preserve` | Preserve commit history | | `--dry-run` | Preview ship without merging | | `--session-id ID` | Resume previous session by ID | | `--resume` | Resume from last checkpoint | | `--status` | Show current ship status | | `--list-sessions` | Show available sessions for resume |

Merge Strategy

JQ merge - documentation outputs are combined with `jq -s 'add'`.

Philosophy

> "Ship with confidence, not hope." - Shipping philosophy

  • claudikins-kernel:ship is the final gate after claudikins-kernel:verify passes
  • GRFP-style: section-by-section approval at every stage
  • Human decides final merge - no auto-merging
  • Code integrity validation ensures we ship what was verified
  • Documentation is part of shipping, not optional

State Management

State file: `.claude/ship-state.json`

{
  "session_id": "ship-YYYY-MM-DD-HHMM",
  "verify_session_id": "verify-YYYY-MM-DD-HHMM",
  "verified_commit": "abc123...",
  "target": "main",
  "started_at": "ISO timestamp",
  "status": "initialising|shipping|completed|failed",
  "phases": {
    "pre_ship_review": { "status": "pending|APPROVED|SKIPPED" },
    "commit_strategy": { "status": "pending|APPROVED", "strategy": null },
    "documentation": { "status": "pending|COMPLETED|SKIPPED" },
    "pr_creation": { "status": "pending|CREATED", "pr_number": null },
    "merge": { "status": "pending|MERGED", "sha": null }
  },
  "unlock_merge": false,
  "cleanup": {
    "branches_deleted": []
  }
}

Stage 0: Initialisation

Flag Handling

Check for flags first:

--status → Display current ship status, exit
--resume → Load checkpoint, resume from saved state
--list-sessions → Show available sessions, exit
--dry-run → Run through stages without actual merge

Prerequisite Check (via ship-init.sh hook)

The SessionStart hook validates:

1. verify-state.json exists and unlock_ship is true 2. Code integrity (C-5): verified commit matches current HEAD 3. File integrity (C-7): source file manifest unchanged 4. Creates initial ship-state.json 5. Links to verify session for traceability

**On validation failure:**

ERROR: claudikins-kernel:verify gate check failed

Reason: ${FAILURE_REASON}

[Re-run claudikins-kernel:verify] [Abort]

**On code integrity failure (C-5, C-7):**

ERROR: Code has changed since verification

Verified commit: ${VERIFIED_COMMIT}
Current commit:  ${CURRENT_COMMIT}

Code must not change between claudikins-kernel:verify and claudikins-kernel:ship.

[Re-run claudikins-kernel:verify] [Abort]

Stage 1: Pre-Ship Review

Show what's being shipped. Human confirms ready.

Display Ship Summary

Pre-Ship Review
===============

Verification Session: ${VERIFY_SESSION_ID}
Verified at: ${VERIFY_TIMESTAMP}

Branches to merge:
${BRANCH_LIST}

Changes:
  Files changed: ${FILE_COUNT}
  Lines added:   +${ADDITIONS}
  Lines removed: -${DELETIONS}

Evidence from verification:
  Screenshots: ${SCREENSHOT_COUNT}
  API tests:   ${API_TEST_COUNT}
  CLI tests:   ${CLI_TEST_COUNT}

Ready to proceed?

[Continue to Commit Strategy] [Review Evidence] [Back to Verify] [Abort]

Stage 1 Checkpoint

On "Continue":

  • Set `phases.pre_ship_review.status = "APPROVED"`
  • Proceed to Stage 2

On "Review Evidence":

  • Display evidence from `.claude/evidence/`
  • Return to checkpoint

On "Back to Verify":

  • Set `status = "aborted"`
  • Output: "Run `claudikins-kernel:verify` to re-verify"

Stage 2: Commit Strategy

Decide how to commit the changes.

Strategy Selection

Commit Strategy
===============

How should we commit these changes?

[Squash into single commit] (Recommended for features)
[Preserve commit history] (For large multi-part work)

**If --squash flag set:** Auto-select squash **If --preserve flag set:** Auto-select preserve

Commit Message Draft (Squash)

For squash, draft a commit message:

Commit message:

feat(${SCOPE}): ${TITLE}

${BODY}

Closes #${ISSUE_NUMBER}

[Accept] [Revise] [Back]

Follow conventional commits format:

  • `feat:` for new features
  • `fix:` for bug fixes
  • `chore:` for maintenance
  • `feat!:` or `BREAKING CHANGE:` for breaking changes

Stage 2 Checkpoint

On "Accept":

  • Set `phases.commit_strategy.status = "APPROVED"`
  • Set `phases.commit_strategy.strategy = "squash|preserve"`
  • Record commit message in state
  • Procee
Read more
@povvo
Ships withclaudikins-kernel

SRE thinking applied to Claude Code, based on Boris Cherny's Q&A. It enforces a strict 4-stage pipeline with gates between each step. You literally cannot skip verification. You cannot ship without approval.

1274 skills8 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
127
Star history of povvo/claudikins-kernel on GitHub, a chart by star-history.com

Other commands on claudikins-kernel.

More commands from other plugins.

build
Auto-invoked

build

Command

Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.

@addyosmani@addyosmaniInstall Command