The single entry point for the AgentSystem engineering pipeline.

MITAuto-check: warningsDevelopment

Install Ship

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add AgentSystemLabs/core --skill ship -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install AgentSystemLabs/core ship --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/AgentSystemLabs/core.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/agentsystem-core/skills/ship .claude/skills/ship && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ship
GitHub stars
123
Token cost
~6.2k tokens
SKILL.md length
2,973 words
Files
83 (incl. references)
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

The single entry point for the AgentSystem engineering pipeline.

  • Works in 5 steps: Classify intent → Infer the depth mode → Announce the plan → …
  • LY on explicit invocation — use ship skill
  • SKILL.md covers Bundled reference resolution —…, Run preamble — announce the…, Step 1 — Classify intent and Step 2 — Infer the depth mode, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Ship is an agent skill from AgentSystemLabs/core. The single entry point for the AgentSystem engineering pipeline. Invoke EXPLICITLY only — it must not auto-fire on generic build/fix requests. Classifies the goal as CREATE / EVOLVE / POLISH / REMOVE / FIX / AUDIT, infers a depth mode (mode=fast|balanced|production, with include=/skip= phase overrides forwarded downstream), announces the pipeline, then runs the matching bundled workflow playbook (add-feature / modify-feature / polish-ui / remove-feature / fix-bug / audit), which in turn dispatches the bundled…

Its SKILL.md is about 6.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 91 other files, including reference files (for example `playbooks/add-e2e-test/PLAYBOOK.md`, `playbooks/add-empty-error-states/PLAYBOOK.md` and `playbooks/add-feature/PLAYBOOK.md`).

It sits in Development, covering Debugging and Subagents. It works with Git. The licence is MIT.

When your agent uses it

  • LY on explicit invocation — use ship skill
  • Tasks that involve Debugging
  • Tasks that involve Subagents

Example prompts

  • “use ship skill”
  • “ship this”
  • “autopilot this”
  • “/ship”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Classify intent
  2. Infer the depth mode
  3. Announce the plan
  4. Execute the routed workflow
  5. Report and hand off to git

What it can do on your machine

Read from SKILL.md and the folder at commit 1174de2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ship loads about 6.2k tokens when it runs, and up to ~8.2k if it reads all its reference files. Until then it costs about 222 tokens; SKILL.md has 2,973 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~222
When it runs · the whole SKILL.md, loaded when a task matches
~6.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningContains instruction-override wording (e.g. “without asking the user”)SKILL.md:211
    **Why:** Vibe coders bypass safety gates because they don't know what they're skipping. Surfacing the conflict gives t

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from AgentSystemLabs/core at commit 1174de2, republished under its MIT licence (© AgentSystemLabs). 2,973 words, ~6,233 tokens.

Download SKILL.mdSave it as .claude/skills/ship/SKILL.md (or your agent's skills folder). This skill also uses 82 other files; get the full folder from GitHub.
name
ship
description
The single entry point for the AgentSystem engineering pipeline. Invoke EXPLICITLY only — it must not auto-fire on generic build/fix requests. Classifies the goal as CREATE / EVOLVE / POLISH / REMOVE / FIX / AUDIT, infers a depth mode (`mode=fast|balanced|production`, with `include=`/`skip=` phase overrides forwarded downstream), announces the pipeline, then runs the matching bundled workflow playbook (add-feature / modify-feature / polish-ui / remove-feature / fix-bug / audit), which in turn dispatches the bundled reviewer subagents. STOPS at code-ready — never commits, pushes, or opens PRs. Trigger ONLY on explicit invocation — "use ship skill", "ship", "/ship", "ship this", "autopilot this". Skip for everything else, including pure git operations, planning-only requests, and questions about the codebase: if the user did not explicitly ask for ship, do not invoke it.

User-question protocol: Whenever this skill needs the user to pick between options, confirm an action, or answer a multiple-choice prompt, you MUST call the AskUserQuestion tool to render a proper interactive picker. Do NOT print numbered options as plain text and wait for the user to type a number — that produces a degraded UX. Free-form questions (open-ended typing) may be asked in prose, but any time you would write "1) … 2) … 3) …", use AskUserQuestion instead.

ship

The user gave you an engineering goal. Pick the right workflow, pick the right depth, announce both, run the workflow, report. Stop before git.

The tax on a vibe coder is choosing which skill to invoke and how thorough to be. This skill takes that tax off them — without hiding what was decided.


Bundled reference resolution — read before executing anything

This plugin registers exactly one skill: ship. Every workflow and reviewer named in this file and in every playbook it loads — add-feature, reviewer-code, write-tests, plan-red-team, findings-reconciler, etc. — is a bundled file inside this skill, not a separately registered skill or agent. Do not call the Skill tool for them and do not pass their names as subagent_type — nothing but ship is registered, so both error.

Resolve every bundled reference by reading a file, relative to the ship skill directory (the directory holding THIS file; ${CLAUDE_PLUGIN_ROOT}/skills/ship/ when that env var is set):

  • playbooks/<name>/PLAYBOOK.md — a workflow or sub-skill. Read it and follow it inline as your next phase of work, carrying the same args (mode=, run-id=, run-ledger=, headless=). Ship-root-relative.
  • subagents/<name>.md — a reviewer / mapper / verifier / tracer. Read it, then dispatch a fresh subagent with the Agent tool using subagent_type: "general-purpose", passing the file's body as the leading instructions followed by the concrete scope (diff, plan, artifact name, file list). These agents are read-only by role — tell them not to edit files. Dispatch several in one message to run them in parallel; that fan-out and their fresh-context isolation are the entire reason they are subagents rather than inline work — preserve both. Ship-root-relative.
  • references/<file> — a checklist or reference doc. Relative to the playbook currently being followed (not ship-root). Read it in place. Exception — shared references: when a playbook cites a file as ship's references/<file> (the shared risk-signals.md and run-ledger.md), resolve it at ship-root references/, not the playbook's own folder — those two are single-source and shared across playbooks.

If any instruction still shows an old Skill(skill="X") call or an Agent(subagent_type=agentsystem-core:Y) call, treat it as playbooks/X/PLAYBOOK.md / subagents/Y.md respectively.


Run preamble — announce the plugin version

At the start of every run, read the plugin version from the plugin manifest — ${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json if that env var exists, else the .claude-plugin/plugin.json two directories above this skill file — and announce it in the first status line, e.g.:

🚢 /ship (agentsystem-core v0.52.0) — pipeline: …

If the manifest can't be found, say "version unknown" rather than failing. The version line tells the user (and any later defect audit) exactly which generation of the gates ran.


Step 1 — Classify intent

Read the user's prompt and map to one of six core skills:

Phrasing in the promptIntentRoutes to
"add", "build", "implement", "create", "scaffold", "introduce", "set up" in an existing codebaseCREATEadd-feature
"update", "extend", "change", "also do X when Y", "make this also", "modify", "derive from" — request adds or shifts behavior on an existing feature; also handles small cosmetic/copy tweaks via mode=fastEVOLVEmodify-feature
"polish this", "give this a UX pass", "polish the dashboard", "audit the polish on this page", "run the UX checklist on X" — apply UX checklist to existing UI without changing behaviorPOLISHpolish-ui
"remove", "delete", "deprecate", "kill", "rip out", "get rid of"REMOVEremove-feature
"broken", "bug", "not working", "should have happened but didn't", "didn't trigger", "silent failure"FIXfix-bug
"audit the codebase", "tech-debt sweep", "deep clean", "full cleanup", "production-readiness pass", "find all the rot"AUDITaudit

EVOLVE vs POLISH boundary. EVOLVE is one specific change the user named (whether it's a single-element cosmetic tweak or a behavior extension); POLISH is "apply the checklist" without a specified change. If the user names what to change, it's EVOLVE. If they ask for a pass, it's POLISH. For purely cosmetic single-element changes ("make this button green", "fix the alignment"), route to EVOLVE with mode=fast.

Pre-classification probe (cheap, one search). Verb-mapping alone misleads: "add a settings page" in a repo that already has one is EVOLVE, not CREATE. Before locking a CREATE vs EVOLVE decision, run one quick Glob/Grep for the named artifact — the route path, component name, table, or endpoint. If it already exists → almost always EVOLVE (modify-feature); if it genuinely doesn't → CREATE (add-feature). One probe is far cheaper than a wrong full-pipeline run the user only notices at Step 5. Skip the probe only when the verb is unambiguous ("delete X", "why didn't X fire").

Ambiguous prompts — when two intents are equally plausible (e.g., "rebuild auth" could be EVOLVE or REMOVE+CREATE), ask exactly one disambiguating AskUserQuestion. Don't guess.

Multi-intent prompts — if the user lists clearly separable goals ("add X and remove Y"), execute them sequentially as separate /ship routings, not one combined run. State the order before starting.

Refactor / test-authoring prompts — two common asks sit just outside the six intents but do have a home:

  • "refactor this module", "clean this up", "DRY this", "find code smells" → route to simplify (pass scope=<the named path> so it isn't diff-limited). If the "refactor" actually changes behavior, it's EVOLVE → modify-feature instead.
  • "write tests for X", "add test coverage", "cover this with tests" → route to write-tests. Announce these like any other routing (Detected / Mode / Pipeline), then run the bundled playbook inline — read playbooks/simplify/PLAYBOOK.md or playbooks/write-tests/PLAYBOOK.md per Bundled reference resolution.

No-match prompts — if the user's request doesn't fit any intent above (e.g., explain code, document a flow, compare approaches, ask a question about the codebase, brainstorm features, or scaffold a new app from zero), /ship is the wrong tool. Stop and tell the user the request doesn't map to an engineering workflow this skill orchestrates, and — if the match is obvious — point at the matching tool directly (e.g., "review this PR" → /review, "explain this module" → no skill needed, just answer in the conversation).


Step 2 — Infer the depth mode

Three modes — fast, balanced, production. Pick one before announcing.

Risk signals (any one → production) — the canonical list lives in references/risk-signals.md; the mode-safety overrides in add-feature / modify-feature / remove-feature / fix-bug all cite that same file so the signals can't drift apart. In one line: auth / permissions / payments / secrets / external webhooks; schema migrations or persisted-data rewrites; destructive deletion of an external/public contract; background jobs / queues / cron / email / SMS / imports / exports / file writes / IPC / external APIs; caching / query-invalidation / feature flags / analytics / concurrency-sensitive mutations; or a multi-subsystem change (frontend + backend + DB together).

Tiny-scope signals (all four → fast):

  • Single file
  • Cosmetic / copy / styling only
  • No data layer touched
  • No new public API surface

Default → balanced.

Override: explicit mode=fast, mode=balanced, or mode=production in the user's prompt always wins — except when it conflicts with a high-risk signal (see NEVER below).

Headless option (headless=true). Also triggered by the word "headless" anywhere in the invocation. Headless removes user interaction, NOT rigor — it skips QUESTIONS, never QUALITY gates:

  • Never call AskUserQuestion. Every point where this skill would ask (intent disambiguation at Step 1, production "Proceed with this pipeline?" at Step 3, the mode-conflict prompt in NEVER) auto-resolves with best judgement instead. Record each assumption ("Assumed: EVOLVE over CREATE because the route already exists") in the per-run ledger and surface them all in the Step 5 report.
  • Forward headless=true to the routed skill (add-feature / modify-feature / fix-bug / etc.) alongside mode=, so its own question points (plan approval, clarify phase) convert to logged-plan-and-proceed under the same contract.
  • Every verify/review gate still runs. The routed skill's implementation, verification, gated reviews, and tests execute exactly as the resolved mode dictates. A headless run that shipped without its gates is a defect, not a feature.
  • Mode-conflict handling: if mode=fast collides with a high-risk signal, auto-upgrade to the mode the risk demands and record the decision — don't silently honor the dangerous override, and don't ask.

Step 3 — Announce the plan

Output a structured plan block before executing. Format:

Detected: <CREATE | EVOLVE | POLISH | REMOVE | FIX | AUDIT>
Risk:     <low | medium | high — one-line reason>
Mode:     <fast | balanced | production — one-line reason or "user-specified">
Pipeline:
  1. <phase>  → <core skill or sub-skill>
  2. <phase>  → <core skill or sub-skill>
  ...

Pipeline numbering must match what the routed core skill will actually run at the chosen mode (e.g., add-feature mode=production does Clarify → Explore → Design → Plan approval → Implement → Verify → Gated reviews → Tests → Post-steps). Do not invent phases the routed skill won't execute — those become a credibility hole at Step 5.

Create the per-run ledger. Read and follow references/run-ledger.md. Generate a unique run ID and write the ledger under the session scratch directory, falling back to .agentsystem/runs/<run-id>.md only when no scratch location exists. Record the goal, intent/mode/risk, base SHA, initial worktree, locked decisions/assumptions, pipeline, and input hash where available.

Update phase/task/reviewer status at every transition. Record file ownership, retries/fallbacks, findings dispositions, exact verification evidence, and terminal state. Never use a fixed .agentsystem/ship-run.md: concurrent sessions would overwrite each other. Step 5 reads this ledger rather than reconstructing the run from memory.

Confirmation gating depends on mode:

ModeGating
productionUse AskUserQuestion "Proceed with this pipeline?" before Step 4. Decline → stop.
balancedPrint the plan inline, then proceed to Step 4 in the same turn. User can abort with ESC or a new prompt before the routed skill begins.
fastPrint the plan inline as a one-line preamble, then execute immediately. No confirm prompt.

In headless runs the production confirm prompt is skipped like the others: print the plan inline, record "proceeded without confirmation (headless)" in the run ledger, and continue.


Step 4 — Execute the routed workflow

Routing is an inline playbook read, per Bundled reference resolution above — not a Skill call (the workflows are bundled files, not registered skills). Take the workflow name for the intent from Step 1 (add-feature for CREATE, modify-feature for EVOLVE, polish-ui for POLISH, remove-feature for REMOVE, fix-bug for FIX, audit for AUDIT), then:

  1. Read playbooks/<workflow>/PLAYBOOK.md (ship-root-relative).
  2. Follow it inline as your next phase of work, carrying:
    • the user's original goal
    • mode=<resolved>
    • headless=true when the run is headless — the playbook converts its own question points to recorded assumptions
    • run-id=<id> and run-ledger=<absolute path> — update phase, subagent, reviewer, finding-disposition, and verification records in this ledger
    • any include=<csv> / skip=<csv> overrides parsed from the user's prompt
  3. The playbook dispatches its own reviewer subagents (subagents/*.md) through the Agent tool per the resolution rule. Those dispatches are where fresh-context isolation and fan-out parallelism live — let them happen; don't collapse them into your own context.

The playbook is the engine; /ship is the router. Read it fresh each run rather than reconstructing it from memory — that keeps the engine canonical after every update.

Respect downstream gates. add-feature mode=production has its own Plan-approval gate. Let it fire. Don't bypass it from /ship.

One core skill per /ship run. Don't fan out to multiple core skills in parallel — that's the user's job to compose with multiple /ship invocations, or the routed core skill's job to subagent-fan-out internally.

Adjunct skills live downstream. /ship only chooses the top-level workflow. The routed skill owns stack/plugin-specific handoffs (TanStack, UX, backend, release-risk, etc.) and must announce those adjuncts in its own pipeline when their gates match.


Show full SKILL.md (1,147 more words)Show less

Step 5 — Report and hand off to git

After the routed skill returns, output a visible-pipeline summary. Read the completed-phase, reviewer coverage, findings-disposition, verification, and terminal-state records from the Step 3 per-run ledger rather than reconstructing them from memory. Validate that the ledger's base SHA/input identity still matches this run before trusting it.

✔ <phase 1>  — <one-line outcome>
✔ <phase 2>  — <one-line outcome>
✔ <phase 3>  — <one-line outcome>
...

Findings:
  - <each finding the routed skill or its sub-skill audits surfaced>

Terminal state: <diagnosed | locally-verified | partial | blocked>
Evidence: <final commands and runtime observation, or the exact missing/failed gate>

When terminal state is locally-verified, publishing is yours to drive — this plugin stops at code-ready and does not commit, push, or open PRs. Hand the working tree off to your own git workflow.

Use exactly one terminal state:

  • diagnosed — root cause or audit findings are established, but no code candidate was produced (including fix-bug mode=regression when it stops at root cause).
  • locally-verified — the routed skill's final post-mutation gate passed and the changed runtime path was observed locally. This does not claim CI, staging, deploy, or production health.
  • partial — code exists, but a required local command or runtime observation could not be completed. Name the missing evidence.
  • blocked — a required gate failed, a mandatory reviewer was unavailable with no fallback, or a user decision is required before safe continuation.

Never print publication handoff commands for diagnosed, partial, or blocked as though the candidate were ready.

Surface findings, not just "done." If a sub-skill audit (security, perf, a11y, duplication) returned issues that the routed skill chose not to auto-fix, name them here so the user sees them before publishing. “Production-ready” is not a valid terminal state: this pipeline proves a local candidate, not CI, deployment, rollback, or production health.

Do not commit. Do not push. The user picks the publish path.


NEVER

  • NEVER commit, push, or open PRs from inside this skill Instead: Stop at Step 5 and hand off to the user's own git workflow. Why: Engineering rigor and release decisions run on different cadences. Auto-publishing from an autopilot run removes the user's chance to review the diff and forces a one-size-fits-all release path on every project.

  • NEVER bypass a routed core skill's own approval gate Instead: Let the gate fire (e.g., add-feature's Plan-approval gate in production mode). The user interacts with the core skill's gate, not with /ship. Why: Routing past a gate that the core skill author put there means the user gets a fast-mode experience while believing they're in production mode. Trust collapses on the first surprise side effect.

  • NEVER replicate the core skill's pipeline inline from memory Instead: Always read the bundled playbook and follow it. Read playbooks/<workflow>/PLAYBOOK.md and follow that file verbatim — do not improvise the pipeline from your own recall of what add-feature or fix-bug "usually does". /ship is a router; the playbook is the engine. Why: Inlined pipelines drift from canonical core-skill behavior on every update. Two implementations of the same workflow guarantees one will be wrong after the next change to either. Reading the file each run keeps the engine canonical even when the Skill tool isn't available.

  • NEVER hide which mode and pipeline you picked Instead: Announce in every mode. Even fast prints the one-line preamble. production requires an explicit confirm. Why: "It just worked" is indistinguishable from "it did the wrong thing silently." The product story is "AI engineering workflow," not "ChatGPT writes code." Visibility is the differentiator.

  • NEVER guess between two plausible intents Instead: When the prompt is genuinely ambiguous (CREATE vs EVOLVE, EVOLVE vs REMOVE+CREATE), ask exactly one AskUserQuestion. One question, then commit. Why: A wrong intent cascades through the entire pipeline. The user only notices at Step 5 that the system rebuilt instead of patched, after the work is done. One disambiguation up-front is far cheaper than a wrong full-pipeline run.

  • NEVER honor a mode=fast override on a high-risk change without surfacing the conflict Instead: If mode=fast is requested for work that hits a risk signal (auth/payments/migrations/jobs/webhooks/destructive deletes/etc.), pause and surface the conflict via AskUserQuestion: "Detected high-risk signals (e.g., payments). You requested fast mode — that skips the production gates. Confirm fast anyway, or upgrade to production?" Honor whichever the user picks. Why: Vibe coders bypass safety gates because they don't know what they're skipping. Surfacing the conflict gives them informed consent without removing their authority. Silent honor of a dangerous override breaks the "no surprises" contract.


Appendix — Sub-skills the routed front doors hand off to

/ship itself is a router; the adjunct and handoff skills below are owned by the routed core skill (add-feature, modify-feature, fix-bug, remove-feature, audit). This appendix exists so users — and the announced pipeline at Step 3 — can see what the front door will likely invoke downstream when its gates trigger. The routed skill always has final say on whether a gate fires.

Phrasing for Step 3 announcements: when previewing the pipeline, name the most likely downstream sub-skills as (routed: <core>) → may invoke <sub-skill> rather than promising they'll run. The actual fire is gate-driven.

CREATE → add-feature may invoke
  • Adversarial orchestration: plan-red-team before approval for triggered production plans, including explicit scalability, reliability/failure-isolation, capacity, operability, rollback, and cost/complexity checks; findings-reconciler after 2+ reviewers; integration-verifier after all mutations for complex production changes.
  • UI scaffolding (when feature is user-facing): playbooks/add-empty-error-states/PLAYBOOK.md (empty + error UI), playbooks/polish-ui/PLAYBOOK.md (post-step UX checklist), playbooks/propagate-ui-pattern/PLAYBOOK.md (when 3+ siblings of a recurring surface exist).
  • Backend scaffolding (when persisted data or schema changes): playbooks/add-migration/PLAYBOOK.md, playbooks/add-observability/PLAYBOOK.md (integration-first lane), playbooks/audit-authz/PLAYBOOK.md (when the feature adds or changes server entry points with ownership/permission checks).
  • Tests (Phase 8): playbooks/write-tests/PLAYBOOK.md (unit/integration), playbooks/add-e2e-test/PLAYBOOK.md (browser flows when Playwright is wired).
  • Audits (Phase 7 gates): reviewer-* subagents (contracts, concurrency, data-integrity, security-regression, error-boundaries, loading-states, accessibility-regression, client-bundle, observability-coverage, perf, authz).
  • Cleanup (post-step): simplify, polish-ui.
EVOLVE → modify-feature may invoke
  • Adversarial orchestration: production plan challenge when scope/risk triggers, including explicit scalability, reliability/failure-isolation, capacity, operability, rollback, and cost/complexity checks; findings reconciliation after parallel reviews; final integration verification for multi-subsystem/parallel work.
  • UI extensions: playbooks/add-empty-error-states/PLAYBOOK.md, playbooks/polish-ui/PLAYBOOK.md.
  • Backend extensions: playbooks/add-migration/PLAYBOOK.md, playbooks/add-observability/PLAYBOOK.md, playbooks/audit-authz/PLAYBOOK.md (when the extension touches server entry points with ownership/permission checks).
  • Tests: playbooks/write-tests/PLAYBOOK.md, playbooks/add-e2e-test/PLAYBOOK.md when extension warrants browser coverage.
  • Contract / concurrency / data audits: reviewer-* subagents (contracts, concurrency, observability-coverage, data-integrity, security-regression, error-boundaries, loading-states, accessibility-regression, client-bundle).
  • Cleanup: simplify, polish-ui.
POLISH → polish-ui may invoke

polish-ui runs the project's UX polish checklist against the surface and auto-fixes mechanical gaps (kbd hints on hotkey-bound buttons, focus management, loading/disabled states, footer/chrome consistency). It does not fan out — the work is the checklist.

FIX → fix-bug may invoke
  • Adversarial orchestration: findings reconciliation after parallel post-fix reviews and final integration verification for complex production patches.
  • Reviewers (gated by the patch surface): reviewer-contracts, reviewer-authz, reviewer-concurrency, reviewer-data-integrity, reviewer-observability-coverage, reviewer-security-regression, reviewer-error-boundaries.
  • Backend / domain adjuncts: playbooks/add-migration/PLAYBOOK.md (corrective migration), playbooks/add-observability/PLAYBOOK.md (missing evidence), playbooks/realign/PLAYBOOK.md (domain-model mismatch).
  • Regression pinning (balanced + production): playbooks/add-regression-test/PLAYBOOK.md.
  • Cleanup: playbooks/simplify/PLAYBOOK.md (always), playbooks/polish-ui/PLAYBOOK.md (if UI changed, non-copy).
REMOVE → remove-feature may invoke
  • Schema cleanup: playbooks/add-migration/PLAYBOOK.md (when removal drops columns/tables).
  • Verification: reviewer-data-integrity and reviewer-contracts subagents.
AUDIT → audit may invoke
  • The reviewer-* subagent fleet across the repo (contracts, data-integrity, error-boundaries, loading-states, observability-coverage, perf, authz, security-regression, concurrency, client-bundle) plus simplify, harden-types, and audit-a11y (whole-app a11y). When 2+ reviewers run, findings-reconciler produces the deduplicated disposition ledger. See playbooks/audit/PLAYBOOK.md for exactly which auditors fire at each mode.

Course-author note: because these are gate-driven, a given /ship run will invoke only a subset. The Step 5 pipeline summary names exactly which ones did fire — that's the authoritative record, not this appendix.

© AgentSystemLabs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 82 other files (references) in plugins/agentsystem-core/skills/ship of AgentSystemLabs/core.

  • SKILL.md
  • playbooks/add-e2e-test/PLAYBOOK.md
  • playbooks/add-empty-error-states/PLAYBOOK.md
  • playbooks/add-feature/PLAYBOOK.md
  • playbooks/add-feature/references/code-review-checklist.md
  • playbooks/add-feature/references/performance-review-checklist.md
  • playbooks/add-feature/references/security-review-checklist.md
  • playbooks/add-feature/references/subagent-playbook.md
  • playbooks/add-migration/PLAYBOOK.md
  • playbooks/add-migration/references/change-classes.md
  • playbooks/add-observability/PLAYBOOK.md
  • playbooks/add-observability/references/boundary-recipes.md
  • … and 71 more

Open the folder on GitHubat commit 1174de2

Compare with similar skills

Ship next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ship compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ship this skillAgentSystemLabs/core123—~6.2kAutomated safety check: WarnMIT
Analyze Trajectoryyologdev/yoyo-evolve1.9k—~3.6kAutomated safety check: PassMIT
Leon Coding Agentleon-ai/leon18k—~1.1kAutomated safety check: PassMIT
Cursor Composer Task DelegateChachamaru127/claude-code-harness3.2k—~4.4kAutomated safety check: NotesMIT
Firewood Reviewava-labs/firewood153—~2.1kAutomated safety check: NotesCustom licence
Tutti Architecture Reviewtutti-os/tutti3.8k—~2.3kAutomated safety check: PassApache-2.0

Similar skills

  • Analyze Trajectory

    yologdev/yoyo-evolve

    Diagnoses a recurring failure such as a stuck task, repeated CI error or frequent reverts by sending sub-agents through the logs and returning one root-cause diagnosis.

    1.9k GitHub stars~3.6k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Leon Coding Agent

    leon-ai/leon

    Has Leon's agent investigate, change and verify code in a repository with its file, search and shell tools, staying inside the scope the owner authorized.

    18k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Cursor Composer Task Delegate

    Chachamaru127/claude-code-harness

    Hands one implementation task to Cursor Composer in an isolated git worktree, then reviews its diff and cherry-picks the result into the main branch.

    3.2k GitHub stars~4.4k tokensUpdated 3 days ago
    DevelopmentAuto-check: notes
  • Firewood Review

    ava-labs/firewood

    A skill your agent uses when reviewing ava-labs/firewood code changes — pull request or local workspace.

    153 GitHub stars~2.1k tokensUpdated today
    DevelopmentAuto-check: notes
  • Review tutti git diffs for project structure, layering, module ownership, and duplicate event-center infrastructure by planning focused architecture review tasks, then having the main agent…

    3.8k GitHub stars~2.3k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Veomni Review

    ByteDance-Seed/VeOmni

    Pre-PR code review gate. An agent skill from ByteDance-Seed/VeOmni.

    2.2k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed

More from AgentSystemLabs/core

  • Recall

    AgentSystemLabs/core

    Save durable project knowledge to Mission Control's Recall (project memory) so future sessions start already knowing it.

    123 GitHub stars~961 tokensUpdated 2 mo ago
    Auto-check passed

Works with

Questions about Ship

What does Ship do?

The single entry point for the AgentSystem engineering pipeline. Ship is an agent skill from AgentSystemLabs/core. The single entry point for the AgentSystem engineering pipeline.

When should I use Ship?

Ship fits situations like: LY on explicit invocation — use ship skill; tasks that involve Debugging; tasks that involve Subagents.

How do I install Ship in Claude Code?

Run `npx skills add AgentSystemLabs/core --skill ship -a claude-code`. Or copy the skill folder (plugins/agentsystem-core/skills/ship in AgentSystemLabs/core) into .claude/skills/ship in your project. Claude Code loads it when a task matches its description.

How do I install Ship in Codex?

Run `npx skills add AgentSystemLabs/core --skill ship -a codex`. Or copy the skill folder (plugins/agentsystem-core/skills/ship in AgentSystemLabs/core) into .agents/skills/ship in your project. Codex loads it when a task matches its description.

Can I use Ship in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgentSystemLabs/core --skill ship -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ship, .gemini/skills/ship, .github/skills/ship and .opencode/skills/ship in your project.

What does Ship need to run?

SKILL.md names no scripts, command-line tools or credentials: Ship is instructions for the agent only.

Does Ship access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Ship safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): contains instruction-override wording (e.g. “without asking the user”). Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Ship use?

Ship is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ship use?

About 6.2k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2k tokens, read only when the agent opens those files.

What are the alternatives to Ship?

Skills that share tags, products or a category with Ship: Analyze Trajectory (yologdev/yoyo-evolve, 1.9k stars), Leon Coding Agent (leon-ai/leon, 18k stars), Cursor Composer Task Delegate (Chachamaru127/claude-code-harness, 3.2k stars) and Firewood Review (ava-labs/firewood, 153 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ship?

AgentSystemLabs (a GitHub organization) maintains it in AgentSystemLabs/core, which has 123 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on July 24, 2026.

Source: AgentSystemLabs/core on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.