prepare-public-releaselisted
Install: claude install-skill T72/task-orchestrator
# /prepare-public-release
Prepare a public-facing software release suitable for external distribution.
## Inputs
- Optional explicit version argument, for example `v1.2.0`
- Repository root path (current working directory)
## Output
Create a release folder under `public-releases/<version>/` with:
- `release-package.*`
- `README.md`
- `CHANGELOG.md`
- `RELEASE_NOTES.md`
- `RELEASE_MANIFEST.md`
- `LICENSE`
- `THIRD_PARTY_LICENSES.md`
## Workflow
0. Enforce release source branch
- Default release branch to `main`.
- Abort if current git branch is not the release branch.
- Require `HEAD` to equal `origin/main` by default (configurable via `RELEASE_REF`).
- Allow explicit override only for exceptional dry-runs (`ALLOW_NON_RELEASE_BRANCH=1`).
- Record branch and commit in release manifest for traceability.
1. Detect project context
- Detect language ecosystem, build system, package manager, and repository structure.
- Resolve version with successor-release semantics:
1. If explicit version is provided, require semver (`vX.Y.Z` or `X.Y.Z`) and normalize to `vX.Y.Z`.
2. Discover metadata version from `VERSION`, `package.json`, `pyproject.toml`/`setup.py`, or `Cargo.toml`.
3. Discover highest released version from semver git tags and `CHANGELOG.md` headings.
4. Choose candidate:
- If metadata version exists and is greater than highest released version, use metadata version.
- Otherwise compute next version from highest released version (or metadata, or `v0.0