Cull Release Prepare
Principle
Prepare one reproducible release commit.
Preparation cannot tag, push, dispatch workflows, publish, or update Homebrew.
Required inputs
- An explicit
patch|minor|major; never infer the bump. - Green cull-release-check evidence bound to
expectedSourceandexpectedVersion. - Curated release notes and compatibility-review JSON matching Cull's CLI schema.
Prepare
- Fetch
origin/mainand create a dedicated clean worktree from it. Preserve unrelated dirty worktrees. - Confirm the check evidence still matches HEAD and the expected next version.
- Store curated notes in a safely quoted path. Use argument arrays or separately quoted variables; never evaluate a concatenated command.
- Run the dry run first:
npm run release:cull -- prepare ... --dry-run --json. - Parse exactly one JSON envelope. Continue only when it lists exactly the configured version, changelog, compatibility, and state files.
- Run the same prepare command without
--dry-run. - Verify one
chore(release): vX.Y.Zcommit, stateprepared, the declared file set, no tag, and no remote mutation.
On failure, show diagnostics and changed files. Never reset, discard, or overwrite work outside the release-owned file set.