ship-it
Skill2 starsChanged 20 days agoMITView on GitHub
Turn intent or a frozen spec into a released, verified outcome on Orca. Entry is either a frozen spec (validate → decompose) or raw intent (grill → freeze → decompose); after freeze both enter one canonical pipeline: decompose → build (tested slices) → acceptance review → runtime-prove → land → release → observe, stopping at the highest release state you're authorized to reach (BUILT / PROMOTION_READY / RELEASED / DEPLOYED_AND_VERIFIED). Use when "build and ship this", "spec to shipped product", "ship this feature", "ship this fix", "land this change", "build me this feature", or an autonomous build-to-release run. Not for closing an existing backlog (clean-sweep), diagnosing why a build or test fails (root-cause), or a foggy goal that needs charting first (map-it).
46 other projects use a version of this.
Adopted by
Most recently taken up by
- alexandrosandre/agentic-engineeringtheir own version, first seen Nov 8, 2026
- alexandrosandre/alice-issue-agenttheir own version, first seen Nov 8, 2026
- spencerldixon/skillstheir own version, first seen Nov 8, 2026
- unional/skillstheir own version, first seen Nov 6, 2026
- frappe/skillstheir own version, first seen Nov 1, 2026
- schalk-conradie/skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use modern-go, loop-it and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
jidechaoSkillmodern-go
Modernize Go code by applying version-appropriate idioms and APIs (gofix-style transformations). Scans go.mod for the Go version, then transforms Go source files to use modern patterns—from Go 1.0 through 1.26+. Use when the user says "现代化","现代Go语言", "地道的", "idiomatic", "modernize", "modern-go", "update Go code", "gofix", or wants to upgrade Go idioms.
Also in 3 projects that use this
jidechaoSkillloop-it
Automated issue loop with checkpoint/resume: fetch open GitHub issues → dependency-aware topological sort → implement each issue end-to-end → review with /review-it → document with /note-it → ship with /ship-it → repeat. Persists state to .loop-state.json for crash recovery. Triggers on: loop-it, loop issues, auto implement, 批量实现, 循环实现, 实现所有issue, 恢复循环, resume loop.
Also in 3 projects that use this
SentrySkillcreate-pr
Create pull requests following Sentry conventions. Use when opening PRs, writing PR descriptions, or preparing changes for review. Follows Sentry's code review guidelines.
Also in 5 projects that use this
GitHubSkillrefactor
Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.
Also in 4 projects that use this
GoogleSkillto-issues
Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices.
Also in 3 projects that use this
Hugging FaceSkillsimplify
Refactor code after tests pass. The "Refactor" phase of Red-Green-Refactor.
Also in 3 projects that use this
- +1 more from jidechao
Other versions46 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 46
- vectorize-io/hindsight★ 60ksame name
- learntocloud/learn-to-cloud-app★ 1.1ksame name
- leonvanzyl/agentic-coding-starter-kit★ 447same name
- smallnest/goal-workflow★ 283same name
- frappe/skills★ 162same name
- DECRUX9812/hermes-plugin-gameforge★ 44same name
- awslabs/llm-evaluation-system★ 26same name
- LunkiBR/ship-it★ 18same name
- paultyng/skill-issue★ 8same name
- davidmeirlevy/obvious-skills★ 6same name
36 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository22 other files it gives its agents.
- AGENTS.mdAGENTS.md
- absorb-itSkill
- access-itSkill
- attest-itSkill
- clean-sweepSkill
- deflake-itSkill
- document-itSkill
- field-test-itSkill
- floor-itSkill
- harden-itSkill
- map-itSkill
- migrate-itSkill
- modernize-itSkill
- offload-itSkill
- oncall-itSkill
- oss-contributeSkill
- pin-itSkill
- prove-itSkill
- reshape-itSkill
- review-itSkill
- root-causeSkill
- speed-itSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 42 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 37
Read ARCHITECTURE.md once.
- Very specific: line 54
If units or criteria are parked with human-approved reasons while the rest landed, append -WITH-PARKED to the highest clean state reached …
- Distinctive: line 102
Every frozen acceptance criterion maps to a passing test in a TRACEABILITY table, verified on the BASE head (the integrated whole, not …
- Distinctive: line 109
Every slice: merged PR, ancestry-verified, reviewed-SHA fresh, negative control passing (revert-audited on a ≥10% sample by a fresh worker).
- Very specific: line 114
Every unit row: boolean flags true or an allowed park (CODE_CLOSED + VERIFY_AT_SCALE plan when acceptance is OPS-only — never a silent full …
“Common” is measured: kept by at least 6 in 10 of the 42 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
ship-it — intent or spec → a released, verified outcome
You are the COORDINATOR. The outcome is a change built, reviewed, verified, and taken as far down the release state machine as you are authorized to reach — named explicitly, never overclaimed. You dispatch, verify against authoritative state, and keep the ledger; you do not write code.
Read ARCHITECTURE.md once. Composes decide-and-freeze, decompose-dag,
build-change, acceptance-review, runtime-prove, linear-enumeration; rides dispatch-lifecycle,
merge-serialization, reviewed-sha-freshness, evidence-manifest, gate-classification, sandbox-policy,
ledger-contract, attention-budget. Worker TASK pack: exactly one of matt | addy |
gstack (tdd=matt, build/verify=addy|matt, review/ship=gstack; the grill is coordinator-side, matt) — never
co-mount two routers.
DEFERRED READS, loaded ON ENTERING their phase and never at activation: liveness-resume.md when a worker stalls or a run resumes · plan-review.md on the map-it handoff route · risk-review.md when a slice's surface triggers a lens · release.md at RELEASE · observe.md at DEPLOYED_AND_VERIFIED · human-handoff.md at a handoff · completion-audit.md + compound-learn.md at run close · mission-chaining.md as a chain link.
Terminal states (name the one you reach)
BUILT (all units merged to BASE, ancestry-verified) → PROMOTION_READY (promotion PR open with a traceability table) → RELEASED
(human merged to default) → DEPLOYED_AND_VERIFIED (deployed revision == released SHA, canary green over its window). Stop at the
highest state authorization and deploy availability allow; the manifest names it and what blocks the next.
If units or criteria are parked with human-approved reasons while the rest landed, append -WITH-PARKED to the highest clean state
reached (e.g. BUILT-WITH-PARKED). Allowed parks: needs-human, CODE_CLOSED + VERIFY_AT_SCALE plan, or human-authorized scope
exclusion. Never claim a clean terminal while parked work is in scope. SOLO RUN (no second GitHub identity): a mutation unit cannot
close — record RED with the unit short of REVIEWED, or re-dispatch on the executed-control lane only if it qualified dark-eligible at dispatch; never self-approve (acceptance-review.md).
Preflight
orca status --json running · orchestration on · Orca CLI + orchestration skill available · git.
Repo state: real code → foundation fills gaps, tests green at baseline (else you can't tell
regressions) · empty/near-empty git repo → foundation scaffolds · no git repo → git init + minimal
README/.gitignore commit on default, then a remote (an existing one, or gh repo create private after
a human confirm — it is account-visible) so write preflight can run; a local-only host takes the
offline lane below and stops at BASE.
Then runtime/scripts/preflight.py --mission ship-it --base <BASE> --fork-point <ledger-header sha> green (BASE ≠
default — dispatch-lifecycle.md; requires gh + a visible remote, or --offline --default <branch>
for the no-gh lane from unit one). If gh later dies mid-run, use merge-serialization no-gh local
merge (PR_OPEN=n/a); either way the run stops at BASE with the promotion PR owed. Ledger: header +
phase marker + unit boolean flags (ledger-contract.md).
Pipeline (one canonical path after freeze)
ENTRY ─┬─ frozen spec → VALIDATE (decide-and-freeze: validate branch) → DECOMPOSE
├─ intent/draft → GRILL + FREEZE (decide-and-freeze: grill branch, human gate #1) → DECOMPOSE
└─ map-it handoff (frozen spec + frozen prepared DAG) → VALIDATE the freeze, re-run
decompose-dag's VERIFY section on the prepared DAG, ADOPT its task ids — skip DECOMPOSE
(re-decomposing would duplicate or orphan the prepared tasks)
→ DECOMPOSE (decompose-dag: tracer-bullet slices → Orca DAG; read orca-dag-semantics.md here — it
is the DAG phase's doc, not standing load) — first two routes only
→ BUILD waves (build-change per slice; foundation serializes, slices parallelize under
attention-budget WIP)
→ ACCEPTANCE-REVIEW (build-blind, per slice) [+ RISK-REVIEW lens if the slice triggers one]
→ RUNTIME-PROVE per slice (doubt-driven artifact review + drive the real entry point)
→ LAND (merge-serialization) → INTEGRATED PROVE at the BASE head (runtime-prove Part B over the
whole; the TRACEABILITY table is verified here — per-slice green alone never reaches BUILT) → BUILT
→ RELEASE state machine (release.md): PROMOTION_READY → [human gate #2] → RELEASED
→ DEPLOYED_AND_VERIFIED phase (release.md): observe.md BASELINE captured first, THEN deploy,
then observe.md's canary loop — the state is claimed only after the window is green
→ REFLECT (`compound-learn` + readiness/backlog/OPS queue — ledger-contract.md)Each phase runs its playbook; each worker emits an evidence manifest; the coordinator verifies each
against authoritative state (evidence-manifest.md) before advancing. Unit flags advance only in the
ledger file (BUILD_DONE…WT_CLEAN).
Convergence proof (this mission's definition of done)
- Every frozen acceptance criterion maps to a passing test in a TRACEABILITY table, verified on the
BASE head (the integrated whole, not per-slice-only). The denominator is not worker-chosen and it
is TWO-LEVEL (evidence-manifest.md): each slice manifest binds to ITS OWN task-spec criteria at
contract.digest(so a narrow slice is completable), and the coordinator verifies the UNION of slice contracts equals the frozen spec's criterion set — at decompose verification and again here. A criterion no slice claimed is unassigned work; a criterion with no passing test is UNMET work. Neither is a waiver. - Every slice: merged PR, ancestry-verified, reviewed-SHA fresh, negative control passing (revert-audited on a ≥10% sample by a fresh worker).
- The manifest names the terminal release state with its evidence (merge SHA / deploy revision /
canary window verdict). Reaching BASE with an open promotion PR is
PROMOTION_READY, never RELEASED. - Noticed-but-not-touched adjacent work is a backlog file (scope discipline made visible).
- Every unit row: boolean flags true or an allowed park (
CODE_CLOSED+VERIFY_AT_SCALEplan when acceptance is OPS-only — never a silent full close).
Gates (only these)
- Human gate #1: FREEZE (intent entry only). Human gate #2: PROMOTION to default (one-way, gate-classification.md). Deploy and rollback are one-way too: executed only under a recorded human grant (release.md; observe.md never auto-rolls back). Lane B product forks: draft both, then human. Everything else is mechanical/taste per the classifier (append the DECISIONS log under docs/). Merge ≠ deploy; the fleet never self-merges the promotion or self-authorizes a deploy.
Supervision + resume
Stalls → liveness-resume.md WATCH (reflection-before-retry). Waves respect attention-budget.md. Compaction → CONTEXT HANDOFF then RESUME (ledger-contract.md). Death → RESUME (ledger-scoped, git-verified).
Anti-patterns
Fanning the grill to a worker (HITL leak). Building a moving spec (freeze first). Per-slice green mistaken for done (runtime-prove the integrated whole). Claiming RELEASED at an open PR. Two playbook routers in one worker TASK. Loading a DEFERRED READ at activation — it is phase-scoped for a reason.
Related
map-it (charts a foggy goal into the spec this consumes), clean-sweep (close an existing set),
review-it (verdict without building), mission-chaining (gated tail of a harden-it/prove-it chain).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

