releaselisted
Install: claude install-skill tsukumogami/shirabe
# Release
Cut a release. Handles version selection, precondition checks, blocker
identification, release notes, draft creation, workflow dispatch, and monitoring.
## Invocation
```
/release [version] [--dry-run]
```
- **`/release`** -- analyzes commits and recommends a version
- **`/release 0.3.0`** -- uses the specified version (`v0.3.0` also accepted)
- **`/release --dry-run`** -- previews without side effects
## Phases
### Phase 1: Version Analysis
Analyze conventional commits since the last release tag:
```bash
LAST_TAG=$(git describe --tags --abbrev=0 --match 'v*' 2>/dev/null || echo "")
```
If no tag exists, this is the first release -- ask for version.
Count commits by prefix since `$LAST_TAG`:
| Prefix | Bump signal |
|--------|------------|
| `feat!:`, `fix!:`, `BREAKING CHANGE` | major |
| `feat:` | minor |
| `fix:`, `docs:`, `chore:`, `ci:`, `refactor:`, `test:` | patch |
Normalize version input: accept both `0.3.0` and `v0.3.0`.
### Phase 2: Precondition Checks
All must pass before proceeding:
1. **Clean working tree**: `git status --porcelain` is empty
2. **CI green on HEAD**: Check CI status using this fallback chain:
- First try commit status: `gh api repos/{owner}/{repo}/commits/{sha}/status`
- If state is `pending` with 0 check runs (common for squash-merge commits where
CI ran on the PR branch, not the merge result), fall back to checking the latest
workflow runs on the branch: `gh run list --branch main --limit 3 --json conclu