About release
A release skill that delegates to each repository’s mise release tasks, using the repository’s own task sequence and configuration. If those tasks are absent, it falls back to instructions from a semantic-release skill.
Key features
- 01Detect repository release tasks
- 02Run full or dry-run releases
- 03Check release status
- 04Fall back to semantic-release guidance
- 05Reflect reproducible fixes in the skill
Use cases
- 01Running a repository’s configured release workflow
- 02Previewing a release without modifications
- 03Checking the current version and release state
- 04Handling repositories without mise release tasks
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill releaseAfter installing, type/releasein Claude Code to confirm it loaded.
Bundled filesreferences/evolution-log.md
Details
From the project README/itp:release
Delegate to the repository's mise release tasks. Every repo should define its own release DAG in .mise/tasks/release/.
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
First Action: Detect Repo's Release Tasks
# Check if the repo has mise release tasks
mise tasks ls 2>/dev/null | grep -i release
- If tasks exist: Delegate to
mise run release:full(or the repo's equivalent) - If no tasks: Fall back to reading the semantic-release skill for guidance
Arguments
| Flag | Short | Description |
|---|---|---|
--dry | -d | Dry-run mode (preview, no modifications) |
--status | -s | Show current version and release state |
Execution
# Full release (preflight → version → sync → verify)
mise run release:full
# Dry-run (preview what would be released)
mise run release:dry
# Check current state
mise run release:status
Why mise Tasks Over Prescriptive Skills
| Concern | Prescriptive Skill | mise Task Delegation |
|---|---|---|
| Repo-specific logic | Duplicated in skill | Lives in .mise/tasks/ |
| DAG enforcement | Manual ordering | depends array enforced |
| Maintainability | Update skill + tasks | Single source in tasks |
| Portability | Assumes npm/bun | Uses whatever the repo configures |
| Secrets | Hardcoded patterns | [env] in .mise.toml |
Expected mise Release Task Structure
Repos should follow the hub-and-spoke pattern:
.mise.toml # Hub: [env] + [tools] + task docs
.mise/tasks/
└── release/
├── _default # Help / navigation
├── preflight # Phase 1: Validate prerequisites
├── version # Phase 2: Bump version (semantic-release)
├── sync # Phase 3: Sync artifacts (marketplace, cache)
├── verify # Phase 4: Verify release artifacts
├── full # Orchestrator: depends on all phases
├── dry # Dry-run preview
└── status # Current version info
Task DAG
┌──────────┐
│ preflight│
└─────┬────┘
│ depends
┌─────▼────┐
│ version │
└─────┬────┘
│ sequential
┌─────▼────┐
│ sync │
└─────┬────┘
│ sequential
┌─────▼────┐
│ verify │
└──────────┘
Key Patterns
# .mise/tasks/release/full (orchestrator)
depends = ["release:preflight"]
# Chains: preflight → version → sync → verify
# .mise/tasks/release/preflight (guard)
# Checks: clean dir, auth, plugins, releasable commits
# .mise/tasks/release/version (core)
depends = ["release:preflight"]
# Runs: semantic-release (or language-specific versioning)
Fallback: No mise Tasks
If the repo has no mise release tasks, read the semantic-release skill:
Read: ${CLAUDE_PLUGIN_ROOT}/skills/semantic-release/SKILL.md
Read: ${CLAUDE_PLUGIN_ROOT}/skills/semantic-release/references/local-release-workflow.md
Then follow the 4-phase workflow documented there.
Error Recovery
| Error | Resolution |
|---|---|
mise tasks not found | Install mise: curl https://mise.run | sh |
| No release tasks | Create .mise/tasks/release/ or use fallback skill |
| Working dir not clean | git stash or commit changes |
| Not on main branch | git checkout main |
| No releasable commits | Create a feat: or fix: commit first |
| Wrong account | Check GH_TOKEN / GH_ACCOUNT in .mise.toml [env] |
Reference
Post-Execution Reflection
After this skill completes, check before closing:
- Did the command succeed? — If not, fix the instruction or error table that caused the failure.
- Did parameters or output change? — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
- Was a workaround needed? — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.
Only update if the issue is real and reproducible — not speculative.