ship-checklisted
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