Agent skill

ZCF Release Automation

by UfoMiao in UfoMiao/zcf

Automates a version release with changesets: analyzes code changes, writes a bilingual CHANGELOG, bumps the version and commits through a release branch and pull request.

MITAuto-check passedDevelopment

Install ZCF Release Automation

skills CLI
$ npx skills add UfoMiao/zcf --skill zcf-release -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install UfoMiao/zcf zcf-release --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/UfoMiao/zcf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/zcf-release .claude/skills/zcf-release && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
zcf-release
GitHub stars
6.1k
Token cost
~3.4k tokens
SKILL.md length
561 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Automates a version release with changesets: analyzes code changes, writes a bilingual CHANGELOG, bumps the version and commits through a release branch and pull request.

  • Works in 7 steps: Parameter Parsing → Check Working Directory Status → Analyze Version Changes → …
  • Cutting a patch, minor or major release of an npm package that uses changesets
  • SKILL.md covers Usage, Parameters, Context and Your Role, plus 3 more sections
  • Calls git, pnpm and node; reaches claude.ai

What it does

Run as /zcf-release with a patch, minor or major flag, or an exact version such as a beta, this skill acts as a release assistant. It checks that the working directory is a project root with a package.json and is in a releasable state, then analyzes everything changed since the last release tag with git.

From that analysis it writes a CHANGELOG entry with English first and Chinese second, sorted into groups such as new features, optimization and fixes, creates a changeset file with a timestamped name and uses changeset to update the version number. Because the main branch is protected, it creates a release branch and pull request, commits code changes without manual tags, and relies on GitHub Actions to publish to npm and tag after the PR merges. Its allowed tools cover reading files and running git, pnpm, node, date, cat and gh.

When your agent uses it

  • Cutting a patch, minor or major release of an npm package that uses changesets
  • Generating a bilingual changelog from the changes since the last tag
  • Preparing a release pull request for a protected main branch

Example prompts

  • “Run /zcf-release for a minor version.”
  • “Release version 2.0.0-beta.1 using changesets.”
  • “Create the release branch and PR for a patch release and write the changelog.”

Requirements

  • A Node project with a package.json and changesets
  • git, pnpm and the gh CLI
  • Pre-approved tools (allowed-tools): Read(**), Exec(git, pnpm, node, date, cat, gh)

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Parameter Parsing
  2. Check Working Directory Status
  3. Analyze Version Changes
  4. Generate CHANGELOG Content
  5. Create Changeset
  6. Update Version Number
  7. Create Release Branch and Handle Commits

What it can do on your machine

Read from SKILL.md and the folder at commit 63cb2d0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read(**)
    • Exec(git
    • pnpm
    • node
    • date
    • cat
    • gh)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • pnpm
    • node
    • tsx
    • gh
    • changeset

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • claude.ai

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

ZCF Release Automation loads about 3.4k tokens when it runs. Until then it costs about 17 tokens; SKILL.md has 561 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~17
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from UfoMiao/zcf at commit 63cb2d0, republished under its MIT licence (© UfoMiao). 561 words, ~3,371 tokens.

Download SKILL.mdSave it as .claude/skills/zcf-release/SKILL.md (or your agent's skills folder).
name
zcf-release
description
Automate version release and code commit using changeset
allowed-tools
Read(**), Exec(git, pnpm, node, date, cat, gh)
disable-model-invocation
true

ZCF Release - Automated Release and Commit

Automate version release and code commit using changeset.

Usage

bash
/zcf-release [-p|-mi|-ma|<version>]

Parameters

  • -p or --patch: Patch version (default) - bug fixes, minor changes
  • -mi or --minor: Minor version - new features, backward compatible
  • -ma or --major: Major version - breaking changes, incompatible
  • <version>: Specific version number (e.g., 1.2.3, 2.0.0-beta.1) - directly use provided version

Context

  • Automatically analyze code changes and generate bilingual CHANGELOG
  • Use changeset for version management
  • Create release branch and pull request for protected main branch
  • Auto commit code changes (NO manual tags)
  • Support GitHub Actions auto publish to npm with automatic tagging after PR merge

Your Role

You are a professional release management assistant responsible for:

  1. Analyzing code changes
  2. Generating standardized CHANGELOG
  3. Executing version release process

Execution Flow

Parse arguments: $ARGUMENTS

1. Parameter Parsing
bash
VERSION_TYPE="patch"  # Default to patch version
SPECIFIC_VERSION=""   # For user-specified exact version

# Check if argument looks like a version number (matches semver pattern)
if [[ "$ARGUMENTS" =~ ^[0-9]+\.[0-9]+\.[0-9]+([.-].*)?$ ]]; then
  SPECIFIC_VERSION="$ARGUMENTS"
  VERSION_TYPE="custom"
  echo "🚀 Preparing to release exact version: $SPECIFIC_VERSION"
else
  case "$ARGUMENTS" in
    -p|--patch)
      VERSION_TYPE="patch"
      ;;
    -mi|--minor)
      VERSION_TYPE="minor"
      ;;
    -ma|--major)
      VERSION_TYPE="major"
      ;;
    "")
      VERSION_TYPE="patch"
      ;;
    *)
      echo "❌ Unknown parameter: $ARGUMENTS"
      echo "Usage: /zcf-release [-p|-mi|-ma|<version>]"
      echo "Examples:"
      echo "  /zcf-release -p          # Patch version bump"
      echo "  /zcf-release -mi         # Minor version bump"
      echo "  /zcf-release -ma         # Major version bump"
      echo "  /zcf-release 1.2.3       # Exact version"
      echo "  /zcf-release 2.0.0-beta.1 # Pre-release version"
      exit 1
      ;;
  esac
  echo "🚀 Preparing to release $VERSION_TYPE version"
fi
2. Check Working Directory Status

Check if the current working directory meets release conditions:

bash
# Ensure in project root directory
if [ ! -f "package.json" ]; then
  echo "❌ Error: package.json not found, please run in project root"
  exit 1
fi

# Check for uncommitted changes and handle automatically
HAS_UNCOMMITTED=false
if ! git diff --quiet || ! git diff --cached --quiet; then
  echo "⚠️  Detected uncommitted changes:"
  git status --short
  echo ""
  HAS_UNCOMMITTED=true
fi

echo "✅ Working directory status OK"
3. Analyze Version Changes

Analyze all changes since last release:

bash
# Get last release tag
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")

if [ -z "$LAST_TAG" ]; then
  echo "📊 No previous version tag found, analyzing all commits"
  COMMITS=$(git log --oneline)
else
  echo "📊 Last version: $LAST_TAG"
  echo "Analyzing changes since $LAST_TAG..."
  COMMITS=$(git log $LAST_TAG..HEAD --oneline)
fi

# Show commit history
echo -e "\n📝 Changes:"
echo "$COMMITS"

# Analyze file changes
echo -e "\n📁 File change statistics:"
if [ -z "$LAST_TAG" ]; then
  git diff --stat
else
  git diff --stat $LAST_TAG..HEAD
fi
4. Generate CHANGELOG Content

Based on code change analysis, I will generate CHANGELOG following these standards:

Format Requirements:

  1. English description first, Chinese description second
  2. No mixing Chinese and English on the same line
  3. Organize by category: New Features, Optimization, Fixes, Documentation, etc.
  4. Each entry should be concise and clear

Example Format:

markdown
## New Features

- Add technical execution guidelines with command best practices
- Support automated release command /zcf-release
- Automatic quote handling for Windows paths

## 新功能

- 添加技术执行指南文档,提供命令执行最佳实践
- 支持自动化发版命令 /zcf-release
- Windows 路径自动加引号处理

## Optimization

- Prioritize ripgrep for better search performance
- Improve template file organization

## 优化

- 优先使用 ripgrep 提升搜索性能
- 改进模板文件组织结构

## Fixes

- Fix Windows path backslash escaping issue

## 修复

- 修复 Windows 路径反斜杠丢失问题
5. Create Changeset

Create changeset file based on analysis:

bash
# Generate timestamp
TIMESTAMP=$(date +%Y%m%d%H%M%S)
CHANGESET_FILE=".changeset/release-$TIMESTAMP.md"

# Create changeset file
echo "📝 Creating changeset file..."
if [ "$VERSION_TYPE" = "custom" ]; then
  # For specific version, use the exact version number
  cat > "$CHANGESET_FILE" << EOF
---
"zcf": $SPECIFIC_VERSION
---

[Bilingual CHANGELOG content generated based on actual changes]
EOF
  echo "✅ Changeset file created with exact version: $SPECIFIC_VERSION"
else
  # For version type (patch/minor/major), use the type
  cat > "$CHANGESET_FILE" << EOF
---
"zcf": $VERSION_TYPE
---

[Bilingual CHANGELOG content generated based on actual changes]
EOF
  echo "✅ Changeset file created with version type: $VERSION_TYPE"
fi
6. Update Version Number

Use changeset to update version number and CHANGELOG:

bash
echo "🔄 Updating version number and CHANGELOG..."
pnpm changeset version

# Note: The changeset version command will automatically:
# 1. Update package.json version
# 2. Generate/update CHANGELOG.md
# 3. DELETE the temporary changeset file in .changeset/ directory
# No manual cleanup needed!

# Get new version number
NEW_VERSION=$(node -p "require('./package.json').version")
if [ "$VERSION_TYPE" = "custom" ]; then
  echo "📦 New version set to: v$NEW_VERSION (specified: $SPECIFIC_VERSION)"
else
  echo "📦 New version: v$NEW_VERSION"
fi

# Show CHANGELOG update
echo -e "\n📋 CHANGELOG has been updated, please review the content"
echo "✅ Temporary changeset file has been automatically deleted"
7. Create Release Branch and Handle Commits

Create release branch first, then handle commits separately to avoid polluting main branch:

bash
echo "🚀 Creating release branch..."

# Create and switch to release branch
RELEASE_BRANCH="release/v$NEW_VERSION"
git checkout -b "$RELEASE_BRANCH"

# Handle uncommitted changes first (if any)
if [ "$HAS_UNCOMMITTED" = true ]; then
  echo "📝 Committing pre-release changes..."
  
  # Stage only the uncommitted changes (exclude changeset modifications)
  git add .
  git reset HEAD package.json CHANGELOG.md 2>/dev/null || true
  
  # Check if there are still changes to commit after reset
  if ! git diff --quiet --staged; then
    # Analyze the staged changes to generate appropriate commit message
    echo "🔍 Analyzing uncommitted changes..."
    CHANGED_FILES=$(git diff --staged --name-only)
    
    # Generate commit message based on changed files
    COMMIT_TYPE="chore"
    COMMIT_SCOPE=""
    COMMIT_DESCRIPTION="pre-release changes"
    
    # Analyze file patterns to determine commit type and scope
    if echo "$CHANGED_FILES" | grep -E "\.(md|txt)$" >/dev/null; then
      if echo "$CHANGED_FILES" | grep -i "readme" >/dev/null; then
        COMMIT_TYPE="docs"
        COMMIT_SCOPE="readme"
        COMMIT_DESCRIPTION="update README documentation"
      elif echo "$CHANGED_FILES" | grep -E "\.claude/" >/dev/null; then
        COMMIT_TYPE="docs"
        COMMIT_SCOPE="commands"
        COMMIT_DESCRIPTION="update command documentation"
      else
        COMMIT_TYPE="docs"
        COMMIT_DESCRIPTION="update documentation"
      fi
    elif echo "$CHANGED_FILES" | grep -E "\.(ts|js|tsx|jsx)$" >/dev/null; then
      if echo "$CHANGED_FILES" | grep -E "test|spec" >/dev/null; then
        COMMIT_TYPE="test"
        COMMIT_DESCRIPTION="update tests"
      else
        COMMIT_TYPE="feat"
        COMMIT_DESCRIPTION="code changes"
      fi
    elif echo "$CHANGED_FILES" | grep -E "\.json$" >/dev/null; then
      if echo "$CHANGED_FILES" | grep "package" >/dev/null; then
        COMMIT_TYPE="chore"
        COMMIT_DESCRIPTION="update dependencies"
      else
        COMMIT_TYPE="chore"
        COMMIT_DESCRIPTION="update configuration"
      fi
    fi
    
    # Build commit message
    if [ -n "$COMMIT_SCOPE" ]; then
      COMMIT_MSG="${COMMIT_TYPE}(${COMMIT_SCOPE}): ${COMMIT_DESCRIPTION}"
    else
      COMMIT_MSG="${COMMIT_TYPE}: ${COMMIT_DESCRIPTION}"
    fi
    
    # Add file list to commit body
    COMMIT_BODY=""
    for file in $CHANGED_FILES; do
      COMMIT_BODY="${COMMIT_BODY}- Update ${file}
"
    done
    COMMIT_BODY="${COMMIT_BODY}
🤖 Generated with [Claude Code](https://claude.ai/code)
    
    # Create the commit
    git commit -m "${COMMIT_MSG}

${COMMIT_BODY}"
    
    echo "✅ Pre-release changes committed: $COMMIT_MSG"
  else
    echo "ℹ️  No additional changes to commit after version update"
  fi
fi

echo "💾 Committing release version changes..."

# Add version-related changes
git add package.json CHANGELOG.md

# Create release version commit
git commit -m "chore: release v$NEW_VERSION

- Update version to $NEW_VERSION
- Update CHANGELOG.md
- Generated by /zcf-release command"

# Push release branch to remote and set upstream tracking
git push -u origin "$RELEASE_BRANCH"

# If push fails due to conflicts, use force-with-lease to safely overwrite
# git push --force-with-lease origin "$RELEASE_BRANCH"

# Set upstream tracking if not set automatically
git branch --set-upstream-to=origin/$RELEASE_BRANCH $RELEASE_BRANCH

### 8. Create Pull Request

```bash
echo "📋 Creating pull request..."

# Create pull request using gh CLI following the project's PR template
gh pr create --title "🚀 Release v$NEW_VERSION" --body "$(cat <<'EOF'
## Description

Release version v$NEW_VERSION with automated version bump and CHANGELOG update.

This release includes important changes, please review CHANGELOG.md for details.

## Type of Change

- [x] New feature
- [ ] Bug fix
- [ ] Breaking change
- [x] Documentation update

## Testing

- [x] Tests added/updated
- [x] All tests pass
- [x] Coverage maintained

## Checklist

- [x] Code follows style guidelines
- [x] Self-review completed
- [x] Documentation updated
- [x] No new warnings introduced

## Release Notes

⚠️ **IMPORTANT**: After merge, GitHub Actions will automatically:
- Create release tag
- Publish to npm  
- Generate GitHub Release

🤖 Generated by /zcf-release command
EOF
)"

echo -e "\n✅ Release preparation complete!"
echo "📦 Version v$NEW_VERSION is ready"
echo "🔗 Pull request created successfully"
echo ""
echo "⚠️  IMPORTANT: Review and merge the PR to trigger the release"
echo "⚠️  Do NOT create or push tags manually!"
echo "🤖 After PR merge, GitHub Actions will automatically:"
echo "   - Create the release tag"
echo "   - Publish to npm"
echo "   - Generate GitHub Release"
echo "👀 View release status: https://github.com/UfoMiao/zcf/actions"

Complete Workflow Summary

  1. Preparation Phase: Check parameters (version type or exact version), working directory status
  2. Analysis Phase: Analyze commit history and file changes
  3. Generation Phase: Create bilingual CHANGELOG
  4. Execution Phase: Update version (automatic bump or exact version)
  5. Branch Creation Phase: Create release branch BEFORE committing
  6. Commit Phase: Commit changes on release branch
  7. PR Creation Phase: Push release branch and create pull request
  8. Review & Release Phase: Manual PR review and merge, then GitHub Actions auto publish
Show full SKILL.md (228 more words)Show less

Important Notes

⚠️ CRITICAL: NEVER create or push Git tags manually! GitHub Actions will automatically:

  • Create the version tag after successful PR merge
  • Generate GitHub Release
  • Publish to npm registry

Manual tags will cause conflicts with the automated release process!

New Protected Branch Workflow:
  • 🛡️ Main branch is protected: Cannot push directly to main
  • 🌿 Release branch created: Automatic creation of release/v{version} branch
  • 📋 Pull Request required: All releases must go through PR review process
  • ✅ Manual approval needed: PR must be reviewed and merged manually
  • 🤖 Auto-release after merge: GitHub Actions triggers after PR merge
Additional Notes:
  • Ensure all code has been tested before running release command
  • CHANGELOG must follow bilingual format standards
  • When using version types (-p/-mi/-ma), choose the correct type for your changes
  • When providing exact version numbers, ensure they follow semantic versioning (e.g., 1.2.3, 2.0.0-beta.1)
  • Exact version numbers bypass automatic version determination - use carefully
  • Carefully review CHANGELOG content in the created PR before merging
  • No manual cleanup needed: changeset version automatically deletes temporary changeset files
  • The .changeset/ directory should only contain config files, not temporary release files
  • Requires gh CLI: Ensure GitHub CLI is installed and authenticated for PR creation

Version Parameter Examples:

  • /zcf-release or /zcf-release -p - Auto patch bump (2.9.11 → 2.9.12)
  • /zcf-release -mi - Auto minor bump (2.9.11 → 2.10.0)
  • /zcf-release -ma - Auto major bump (2.9.11 → 3.0.0)
  • /zcf-release 1.5.0 - Exact version (→ 1.5.0)
  • /zcf-release 3.0.0-alpha.1 - Pre-release version (→ 3.0.0-alpha.1)

Now starting release process...

© UfoMiao, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/zcf-release of UfoMiao/zcf.

Open the folder on GitHubat commit 63cb2d0

Compare with similar skills

ZCF Release Automation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

ZCF Release Automation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
ZCF Release Automation this skillUfoMiao/zcf6.1k—~3.4kAutomated safety check: PassMIT
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT
Hunk Release Workflowmodem-dev/hunk9.6k—~3.8kAutomated safety check: PassMIT
ClawRouter Release ChecklistBlockRunAI/ClawRouter6.6k—~1.4kAutomated safety check: PassMIT
npm Package Publisherklaudworks/universal-skills181—~923Automated safety check: PassMIT
CI Automationjeremylongshore/tons-of-skills-marketplace2.8k—~1.4kAutomated safety check: NotesMIT

Similar skills

  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Hunk Release Workflow

    modem-dev/hunk

    Maintainer workflow for preparing, publishing, verifying and curating Hunk releases, with confirmation gates before tags, publishes and public edits.

    9.6k GitHub stars~3.8k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • ClawRouter Release Checklist

    BlockRunAI/ClawRouter

    Walks the agent through every ClawRouter release step in order, from the version bump and changelog entry to build, tests, npm publish, git tag and GitHub release.

    6.6k GitHub stars~1.4k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • npm Package Publisher

    klaudworks/universal-skills

    Releases an npm package by committing changes, bumping the version with npm version, pushing the tag and checking the GitHub Actions publish.

    181 GitHub stars~923 tokensUpdated 8 mo ago
    DevelopmentAuto-check passed
  • CI Automation

    jeremylongshore/tons-of-skills-marketplace

    A skill your agent uses when running GitHub Actions locally, creating task runner recipes, generating changelogs from git history, managing GitHub PRs/issues/releases programmatically, or creating…

    2.8k GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check: notes
  • AionUi Version Bump

    iOfficeAI/AionUi

    Automates an AionUi release: checks the latest AionCore release and its artifacts, updates package.json, writes the changelog, opens a PR and tags the release.

    33k GitHub stars~2.1k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from UfoMiao/zcf

  • Onboards a corporate sponsor to ZCF by listing it in the three READMEs, and optionally registers its API preset and places ad cards in docs.

    6.1k GitHub stars~2.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Analyzes the current branch's changes since it diverged from base and opens a pull request through the GitHub CLI with an auto-generated, standardized description.

    6.1k GitHub stars~2.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Compares code changes since the last Git tag with the multilingual docs and CLAUDE.md, then updates them or only reports mismatches with --check-only.

    6.1k GitHub stars~4k tokensUpdated 1 mo ago
    Auto-check passed

Questions about ZCF Release Automation

What does ZCF Release Automation do?

Automates a version release with changesets: analyzes code changes, writes a bilingual CHANGELOG, bumps the version and commits through a release branch and pull request. Run as /zcf-release with a patch, minor or major flag, or an exact version such as a beta, this skill acts as a release assistant.json and is in a releasable state, then analyzes everything changed since the last release tag with git.

When should I use ZCF Release Automation?

ZCF Release Automation fits situations like: cutting a patch, minor or major release of an npm package that uses changesets; generating a bilingual changelog from the changes since the last tag; preparing a release pull request for a protected main branch.

How do I install ZCF Release Automation in Claude Code?

Run `npx skills add UfoMiao/zcf --skill zcf-release -a claude-code`. Or copy the skill folder (.claude/skills/zcf-release in UfoMiao/zcf) into .claude/skills/zcf-release in your project. Claude Code loads it when a task matches its description.

How do I install ZCF Release Automation in Codex?

Run `npx skills add UfoMiao/zcf --skill zcf-release -a codex`. Or copy the skill folder (.claude/skills/zcf-release in UfoMiao/zcf) into .agents/skills/zcf-release in your project. Codex loads it when a task matches its description.

Can I use ZCF Release Automation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add UfoMiao/zcf --skill zcf-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/zcf-release, .gemini/skills/zcf-release, .github/skills/zcf-release and .opencode/skills/zcf-release in your project.

What does ZCF Release Automation need to run?

Going by SKILL.md and its folder, ZCF Release Automation needs the command-line tools its instructions call (git, pnpm, node, tsx, gh and changeset). Our summary lists: A Node project with a package.json and changesets; git, pnpm and the gh CLI. Its frontmatter pre-approves these tools: Read(**), Exec(git, pnpm, node, date, cat, gh).

Does ZCF Release Automation access the network?

SKILL.md names 1 domain. In commands or code: claude.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is ZCF Release Automation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does ZCF Release Automation use?

ZCF Release Automation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does ZCF Release Automation use?

About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to ZCF Release Automation?

Skills that share tags, products or a category with ZCF Release Automation: Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars), Hunk Release Workflow (modem-dev/hunk, 9.6k stars), ClawRouter Release Checklist (BlockRunAI/ClawRouter, 6.6k stars) and npm Package Publisher (klaudworks/universal-skills, 181 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains ZCF Release Automation?

UfoMiao (a GitHub organization) maintains it in UfoMiao/zcf, which has 6,079 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on August 31, 2026.

Source: UfoMiao/zcf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.