ship-prlisted
Install: claude install-skill martinappberg/chimaera
# Shipping a PR on Chimaera
Merges to `main` use an automated release decision: shipping prefixes publish a
release, while docs/chore/refactor-only prefixes do not. The PR *title* and
commit prefix are therefore load-bearing. See [AGENTS.md](../../../AGENTS.md) →
"Releases" for the full rules.
## Before opening
1. **Rebase on latest main.** The remote is `upstream`:
`git fetch upstream && git rebase upstream/main`.
2. **Gate is green:** `just check` (fmt + clippy + test). If you touched
`web-ui/**`, run its `check`, `test`, and `build` scripts. If you touched
`crates/chimaera-app/**`, run `just app-check`; `app.yml` also builds the
Tauri bundle on the PR.
3. **Verified live**, not just tested (see the **verify-app** skill). The PR body
should say what you ran and observed.
4. **Shipping a `feat:`? It carries its docs.** A new user-facing capability must update
its [feature-catalog](../../../docs/features/README.md) page — the **document-feature**
skill — and capture the human's *why* via the **capture-feature-intent** skill. Only
`feat:` triggers the intent questionnaire (never `fix:`/`refactor:`/`chore:`/`docs:`);
"feature" is defined once, in [`scripts/version-bump.sh`](../../../scripts/version-bump.sh).
## Choose the title deliberately — it becomes the squash commit
On squash-merge the commit subject defaults to the **PR title**, and
`scripts/version-bump.sh` reads that **subject** (never the body) to decide the
bump. Full rules + rationale: