releaselisted
Install: claude install-skill lklimek/claudius
# Release
Load `claudius:git-and-github` first — all commit, push, and PR conventions come from there.
## Arguments
Optional: `major`, `minor`, or `patch`. If omitted, auto-detect from git history.
## Steps
### 0. Pre-flight
1. Working tree must be clean. If dirty, stop and ask.
2. If on a feature branch, warn and ask whether to release from here or switch to main first.
### 1. Detect Project Stack
Scan repo for version-carrying files:
| File | Version location |
|---|---|
| `Cargo.toml` (root/workspace) | `[package].version` or `[workspace.package].version` |
| `Cargo.toml` (workspace members) | each member's `[package].version` (may use `workspace = true`) |
| `pyproject.toml` | `[project].version` or `[tool.poetry].version` |
| `setup.py` / `setup.cfg` | `version=` kwarg or `[metadata].version` |
| `package.json` (root + workspaces) | `"version"` field |
| `lerna.json` | `"version"` (`"independent"` = per-package) |
| `.claude-plugin/plugin.json` | `"version"` field |
| `version.txt` / `VERSION` | entire file content |
If no version files found, stop and ask.
### 2. Validate Version Consistency
Collect all detected versions:
1. **All identical** — proceed.
2. **Intentionally independent** (Cargo workspace members with explicit versions, lerna `"independent"`, npm workspaces with different versions) — list each component + version, ask user which to release.
3. **Unexpectedly inconsistent** — stop, show mismatch table, let user decide.
### 3. Determine New Ver