Cc-skills run-full-release
Run the current repo's mise release pipeline, or bootstrap one if missing. Use when user wants to release, version bump, publish a package, or set up release automation for a new repo. Detects ecosystem (Python/Rust/Node/mixed) and scaffolds individualized mise release tasks.
git clone https://github.com/terrylica/cc-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/terrylica/cc-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/mise/skills/run-full-release" ~/.claude/skills/terrylica-cc-skills-run-full-release && rm -rf "$T"
plugins/mise/skills/run-full-release/SKILL.md/mise:run-full-release
Run the current repo's mise release pipeline — or bootstrap one if it doesn't exist yet.
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.
Step 1: Detect Existing Release Tasks
mise tasks ls 2>/dev/null | grep -i release
If tasks exist → skip to Step 3: Execute. If tasks NOT found → continue to Step 2.
Step 2: Bootstrap Release Workflow
This step scaffolds an individualized release pipeline for THIS repo. Every repo is different — do not copy templates verbatim. Audit first, then scaffold what fits.
2a. Audit the Repository
Run all of these to understand what this repo needs:
# Ecosystem detection ls pyproject.toml Cargo.toml package.json setup.py 2>/dev/null # Existing mise config cat .mise.toml 2>/dev/null || cat mise.toml 2>/dev/null # Existing release infra (semantic-release, Makefile, GitHub Actions) ls .releaserc* release.config.* 2>/dev/null ls .github/workflows/*release* 2>/dev/null grep -i release Makefile 2>/dev/null # Credentials already configured grep -E 'GH_TOKEN|GITHUB_TOKEN|UV_PUBLISH_TOKEN|CARGO_REGISTRY_TOKEN|NPM_TOKEN' .mise.toml mise.toml 2>/dev/null
2b. Read the Reference Implementation
Read cc-skills' own release tasks as a working example — adapt, don't copy:
ls $HOME/.claude/plugins/marketplaces/cc-skills/.mise/tasks/release/
Also read:
$HOME/.claude/plugins/marketplaces/cc-skills/docs/RELEASE.md
2c. Scaffold .mise/tasks/release/
.mise/tasks/release/Create only the tasks this repo actually needs. The 5-phase pattern is:
| Phase | Task | Purpose | Required? |
|---|---|---|---|
| 1. Preflight | | Clean dir, auth, branch check | Always |
| 2. Version | | (or repo-specific versioning) | Always |
| 3. Publish | | or custom script | If Python |
| (Rust 1.90+) | If Rust | |
| | If Node | |
| 4. Verify | | Tag exists, release exists, artifacts published | Always |
| 5. Postflight | | Clean git state, no unpushed, lockfile reset | Always |
Orchestrator:
full task chains the phases with depends = [...].
Key rules:
- Credentials in
.mise.toml
, not hardcoded in scripts[env] - Tool versions in
.mise.toml[tools] - Lockfile drift reset in both
andpreflight
(build artifacts, not intentional changes)postflight
and--dry
convenience tasks--status
2d. Known Issues
untracked file explosion: v10.x runs @semantic-release/git
git ls-files -m -o without --exclude-standard. Patch after install:
find $(npm root -g 2>/dev/null) node_modules \ -path "*/@semantic-release/git/lib/git.js" 2>/dev/null | while read f; do grep -q 'exclude-standard' "$f" || \ sed -i '' "s/\['ls-files', '-m', '-o'\]/['ls-files', '-m', '-o', '--exclude-standard']/" "$f" done
Partial semantic-release failure (version bumped, no tag): Do NOT re-run semantic-release. Manually create tag + GitHub release, then continue with publish tasks.
Step 3: Execute
# Pre-release sync git pull origin main # Check for unpushed commits git log --oneline @{u}..HEAD # Route by flags mise run release:full # default mise run release:dry # --dry mise run release:status # --status
If working directory is dirty: commit related changes or stash WIP first. Reset lockfile drift if present:
git diff --name-only | grep -E '(uv\.lock|package-lock\.json|Cargo\.lock|bun\.lockb)$' | xargs -r git checkout --
Post-Execution Reflection
After this skill completes, reflect before closing the task:
- Locate yourself. — Find this SKILL.md's canonical path before editing.
- What failed? — Fix the instruction that caused it.
- What worked better than expected? — Promote to recommended practice.
- What drifted? — Fix any script, reference, or dependency that no longer matches reality.
- Log it. — Evolution-log entry with trigger, fix, and evidence.
Do NOT defer. The next invocation inherits whatever you leave behind.