← ClaudeAtlas

releaselisted

Publish an Kiroshi release end to end — read the commits since the last release, draft one to three user-facing highlights, and hand them to `bun run release` as the release notes.
shoto290/kiroshi-monorepo · ★ 1 · AI & Automation · score 80
Install: claude install-skill shoto290/kiroshi-monorepo
# Release Kiroshi This skill calls `scripts/release.ts`. It never edits that script or `.github/workflows/`. ## 1. Preflight One call: ```bash ANCHOR=$(git log -1 --format=%H --grep='^chore(app): release v' HEAD) echo "branch: $(git rev-parse --abbrev-ref HEAD)" echo "dirty: $(git status --porcelain | wc -l)" echo "notes: $(grep -c -- '--notes' scripts/release.ts)" git log ${ANCHOR:+$ANCHOR..}HEAD --no-merges --format='%s' ``` The anchor is the last release **commit** reachable from HEAD, not the last tag: releases land on `main` squash-merged, so `v*` tags are usually unreachable and `git describe` fails. The grep matches the commit message `scripts/release.ts` writes, so the two stay in step. No anchor means no release yet — the range is the whole history. Stop, and publish nothing, when: - The commit list is empty — say nothing has landed since the last release. - `notes:` is `0` — `scripts/release.ts` does not carry `--notes` yet, so the notes would be silently dropped. Say so and stop. - `dirty:` is non-zero — the script refuses a dirty tree. Ask what to do; never commit or stash on your own. ## 2. Version Use `$ARGUMENTS` when it is `patch`, `minor`, or `major`. Otherwise ask with `AskUserQuestion`, recommending what the commits justify: a new capability → `minor`, fixes and polish only → `patch`. While the version is `0.x`, a breaking change is also `minor` — never propose `major` without being asked for it. ```bash bun run release <type> --dry-run ``` It