Install
$ agentstack add skill-mirkobozzetto-arsenal-ship ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Execute a locked upstream spec end to end. ship consumes EITHER a finalized prd folder or an Accepted rfc, builds a dependency DAG straight from the artifact, locks a definition-of-done contract, implements it on a capability-detected engine, and emits a verification bundle the USER runs plus a trace ledger that survives context reset. ship authors zero product or spec work and never runs build/test toolchain by default.
| Flag | Long | Description | |------|------|-------------| | -h | --help | Show usage guide (references/help-text.md) and exit | | -a | --auto | Skip non-safety confirmations, auto-pick Recommended (DB/destructive ops still ask) | | -e | --economy | Force solo tier, no fan-out, save tokens | | -r | --resume | Resume from an existing trace.md (stepsCompleted) | | --yolo | | After listing the commands and how they run, ship may run the SAFE verification commands itself to completion (destructive/DB/deploy stay user-only) | | -m | --mode | Force engine tier: teams / subagents / solo (overrides the probe) |
Parsing: Defaults from steps/step-00-init.md. Flags override. Remainder of input = the artifact path (a docs/prd// folder OR an RFC.md).
| Variable | Type | Set by | |----------|------|--------| | {triage_mode} | enum(prd,rfc,inline) | step-00-triage | | {artifact_path} | string\|null | step-00-triage | | {artifact_kind} | enum(prd,rfc,inline) | step-00-triage | | {auto_mode} | boolean | step-00-init | | {economy_mode} | boolean | step-00-init | | {resume_mode} | boolean | step-00-init | | {yolo_mode} | boolean | step-00-init | | {engine_override} | enum(teams,subagents,solo)\|null | step-00-init | | {project_root} | string | step-00-init | | {output_dir} | string | step-00-init | | {detected_stack} | object | step-01-ingest | | {tasks} | array | step-01-ingest | | {contract_path} | string | step-02-plan | | {independent_groups} | array | step-02-plan | | {engine_tier} | enum(teams,subagents,solo) | step-03-engine | | {ultracode_signal} | enum(on,off,unknown) | step-03-engine | | {team_name} | string\|null | step-04-execute | | {trace_path} | string | step-04-execute | | {bundle_path} | string | step-05-verify | | {final_status} | enum(shipped,halted,rejected) | step-04 / step-05 | | {stepsCompleted} | array | every step |
ship!=prd: prd produces the durable product spec (what/why) + tasks. ship consumes it; it never interviews or authors a PRD.ship!=rfc: rfc produces the technical design (how). ship consumes an Accepted RFC; it never designs.- ship is the IMPLEMENTER: terminal of the chain
prd -> rfc -> ship, and the direct executor of a bare prompt via a minimal inline contract (a task list + acceptance items, never a full PRD).
Auto-detected by artifact shape (set in step-00-triage, parsed in step-01-ingest):
- CASE A (prd): a
docs/prd//folder. RUN-GATE =prd.mdfrontmatterstatus: ready(set by prd step-04). Thetasks.md"Do NOT implement" line is a PROHIBITION on prd, NOT an authorization token: never treat its presence as a gate. Parsetasks.md(frontmattertype: tasks,## Relevant Files, the## Tasksnested checklist- [ ] N.0parents /- [ ] N.xsub-tasks); followsource_prdtoprd.mdfor the WHY (Acceptance criteria, Success metrics, Out-of-scope = never build). The checkbox ledger is reconciled from trace.md exactly once, at finish (step-06): a shipped run with its criteria satisfied flips the done tasks[ ] -> [x], no per-unit confirm. - CASE B (rfc): an
RFC.md. RUN-GATE = frontmatterstatus: Accepted(Draft / Review / Rejected -> refuse + HALT). Build the DAG from section 10 Implementation Plan task table (ID, title, files, deps, effort, accept) cross-checked with thegraph TDMermaid; Accept column = done, Files column = edit scope. Read section 6 Proposed Design for HOW, resolve section 11 BLOCKER/MAJOR findings first, sections 7-8 for hazards. NEVER mutate an Accepted RFC.md: rfc progress lives only in ship's trace.md. - CASE C (inline): a bare prompt with no artifact => ship offers a choice: ship direct, or write prd/rfc first. On "ship direct" it runs a short prompt-creator-structured interview (context / task / requirements / success), builds a minimal contract (task list + 2-5 acceptance items), confirms it (your OK is the run-gate), then executes. Never a full PRD.
- Disambiguation: nested
- [ ] N.0/N.1=> prd; flat| T0n |task table => rfc; no artifact => inline.
FIRST ACTION: Load steps/step-00-triage.md
| Step | File | Purpose | |------|------|---------| | 00t | steps/step-00-triage.md | --help; classify input (prd-folder / RFC.md / bare-prompt -> inline); route | | 00 | steps/step-00-init.md | Parse flags, resolve paths + output_dir, detect resume | | 01 | steps/step-01-ingest.md | Read spec, apply run-gate, parse tasks/DAG, detect stack | | 02 | steps/step-02-plan.md | DAG -> independent groups + serialization sets; write contract.md | | 03 | steps/step-03-engine.md | Capability probe -> select tier; engine-confirm; ultracode suggestion | | 04 | steps/step-04-execute.md | Implement on the tier; risk-boundary checkpoints; mutate trace ledger | | 05 | steps/step-05-verify.md | Read-only self-checks; write verification-bundle.md + trace.md | | 06 | steps/step-06-finish.md | Team shutdown, handoff, git-guard; MANDATORY on every path |
| File | Content | |------|---------| | references/help-text.md | Full usage guide shown by --help | | references/guardrails.md | Irreversible-op hazard list + the Bash boundary | | references/role-templates.md | Teammate constraint floor + per-tier worker prompts | | templates/contract.md | Definition-of-done scaffold | | templates/verification-bundle.md | User-run command list scaffold | | templates/trace.md | Per-task ledger scaffold (single source of truth) | | templates/state.yaml | Full state shape for resume | | scripts/detect-stack.sh | Deterministic toolchain detection: lockfile/manifest -> JSON {language, package_manager} | | scripts/scaffold.sh | Seed contract.md / verification-bundle.md / trace.md from templates into the output dir |
- NEVER re-author product or spec work. ship only executes the artifact.
- NEVER run build/test/typecheck toolchain by default. Emit a user-run bundle.
--yoloruns only SAFE commands, after listing them; DB/destructive/deploy stay user-only ALWAYS. - NEVER set effort/ultracode itself. It detects/suggests; the user toggles via /effort.
- NEVER mutate an Accepted RFC.md. trace.md is the single progress source.
- NEVER hardcode a toolchain (pnpm/Node). Detect the stack; ask when unknown.
- NEVER use
rm -rf. Usetrash. NEVER modify a database without explicit approval. - Cleanup (step-06) is MANDATORY on every path (shipped / halted / rejected).
- Prose in English; identifiers in English. Web via Exa MCP only. Honor the git write-guard.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: mirkobozzetto
- Source: mirkobozzetto/arsenal
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.