← ClaudeAtlas

ship-checklisted

Gate a diff against the intent it claims to serve before committing, pushing, or opening a PR — check that changed files trace to an artifact, that the story's acceptance criteria are actually met, and that the change didn't quietly widen beyond what was asked. Use before any commit or PR, when the user asks "is this ready", "does this match what I asked for", or after finishing a chunk of agent-written work.
ChindanaiNaKub/openthought · ★ 0 · Code & Development · score 72
Install: claude install-skill ChindanaiNaKub/openthought
# Ship check The moment before a commit is the last cheap point to notice that the diff answers a question nobody asked. This gate runs then. ``` coherence ship # gate the working tree coherence ship --story story-x # against a specific artifact coherence ship --base main # diff against a ref instead coherence ship --json # structured, for your own reasoning ``` (Commands assume `coherence` on PATH; a repo may vendor it at `bin/coherence` instead. Use whichever exists.) Exit 1 means something blocking. It reports rather than locks. A solo builder can always override, and should be told what they are overriding instead of stopped. ## What it does mechanically 1. Collects changed files (working tree, staged, and untracked). 2. Maps each onto artifacts via their `code:` globs. 3. Resolves what the diff claims to serve, from `--story` or `coherence focus`. 4. Reports: - **`untraced-change`**: changed files no artifact owns. Blocks when nothing is in focus at all. Warns when a story is focused but the files fall outside its globs, because that is usually scope creep. - **`stale-premise`**: you are shipping under an ancestor that is dropped or done. Blocks. The reason for this work may be gone. - **`no-criteria`**: the focused story has no acceptance criteria, so there is nothing to judge the diff against. - **`coverage-gap`**: the story serves no problem or user. 5. Prints the acceptance criteria. ## W