releaselisted
Install: claude install-skill AnotherSava/claude-code-common
# Release
Tag the current `main` commit as `vX.Y.Z` and let the project's CI workflow build the artifact(s) and publish a GitHub Release. Supports multiple project stacks via dispatch — same shape as the global `deploy` skill.
## Context
### Git state (universal)
Both counts below carry their own `git fetch`, and the repetition is deliberate: `!` lines are not
evaluated in the order they are written, so a standalone fetch line guarantees nothing to the lines
under it, and a stale `0` here is what clears a release that should stop. A second fetch of the same
ref is a no-op. See `~/.claude/learnings/skill-context-evaluator.md`.
- Repo root: !`git rev-parse --show-toplevel 2>/dev/null || pwd`
- Working tree clean?: !`git status --porcelain`
- Current branch: !`git branch --show-current`
- Unmerged remote commits: !`git fetch origin main 2>/dev/null || true; git rev-list HEAD..origin/main --count 2>/dev/null || echo 0`
- Unpushed local commits: !`git fetch origin main 2>/dev/null || true; git rev-list origin/main..HEAD --count 2>/dev/null || echo 0`
- Latest tag: !`git describe --tags --abbrev=0 2>/dev/null || echo "(none)"`
- Repo: !`gh repo view --json nameWithOwner --jq .nameWithOwner 2>/dev/null || echo unknown`
### Project type probes
- Chrome extension: !`R=$(git rev-parse --show-toplevel 2>/dev/null || pwd) && test -f "$R/manifest.json" && test -f "$R/package.json" && grep -q '"manifest_version"' "$R/manifest.json" 2>/dev/null && echo yes || echo no`
- .NET project: