Agent skill

Managing Releases

by Comfy-Org in Comfy-Org/workflow_templates

Manages releases for this repository: how version bumps, PyPI publishing, and GitHub releases work.

MITAuto-check passed

Install Managing Releases

skills CLI
$ npx skills add Comfy-Org/workflow_templates --skill managing-releases -a claude-code

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

GitHub CLI
$ gh skill install Comfy-Org/workflow_templates managing-releases --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/Comfy-Org/workflow_templates.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/managing-releases .claude/skills/managing-releases && 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
managing-releases
GitHub stars
1.3k
Token cost
~2.4k tokens
SKILL.md length
934 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

Manages releases for this repository: how version bumps, PyPI publishing, and GitHub releases work.

  • Works in 5 steps: Make your template changes on a branch… → Bump the root version in pyproject.toml… → Open the PR. version-check.yml runs:… → …
  • Asked to: release
  • SKILL.md covers The two workflows (read these…, Version bump model (how…, How to make a PyPI release… and How to make a…, plus 7 more sections
  • Calls gh, python and pip

What it does

Managing Releases is an agent skill from Comfy-Org/workflow_templates. Manages releases for this repository: how version bumps, PyPI publishing, and GitHub releases work. Covers the release label, publish.yml / version-check.yml pipelines, auto-bump rules, frozen legacy media bundles, PyPI quota gates, and recovery/force-publish. Use when asked to: release, publish, cut a release, bump version, release label, PyPI publish, why was there no PyPI package, force publish, GitHub release, version bump PR, ship a version, check release status, frozen bundle, media wheel, PyPI quota. NOT…

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with GitHub. The repository describes itself as: ComfyUI template workflows. The licence is MIT.

When your agent uses it

  • Asked to: release
  • Why was there no PyPI package
  • Version bump PR
  • Check release status

Example prompts

  • “Use the managing-releases skill to manage releases for this repository: how version bumps, PyPI publishing, and GitHub releases work”
  • “/managing-releases”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Make your template changes on a branch (follow managing-templates).
  2. Bump the root version in pyproject.toml (e.g. 0.11.48 → 0.11.49). Semantic x.y.z with optional -prerelease / +build metadata — no v…
  3. Open the PR. version-check.yml runs: syncs manifests, auto-bumps affected sub-packages, pins them exactly in root pyproject.toml, posts…
  4. Add the release label to the PR
  5. Merge to main. publish.yml runs: quota gate → builds & publishes sub-packages in dependency order → verifies all meta deps are on PyPI →…

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • python
    • pip

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

  • Network

    No URLs in SKILL.md. Its commands use gh and pip, which can reach the network depending on how they are called.

    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

Managing Releases loads about 2.4k tokens when it runs. Until then it costs about 170 tokens; SKILL.md has 934 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~170
When it runs · the whole SKILL.md, loaded when a task matches
~2.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 Comfy-Org/workflow_templates at commit 8be1f8c, republished under its MIT licence (© Comfy-Org). 934 words, ~2,362 tokens.

Download SKILL.mdSave it as .claude/skills/managing-releases/SKILL.md (or your agent's skills folder).
name
managing-releases
description
Manages releases for this repository: how version bumps, PyPI publishing, and GitHub releases work. Covers the release label, publish.yml / version-check.yml pipelines, auto-bump rules, frozen legacy media bundles, PyPI quota gates, and recovery/force-publish. Use when asked to: release, publish, cut a release, bump version, release label, PyPI publish, why was there no PyPI package, force publish, GitHub release, version bump PR, ship a version, check release status, frozen bundle, media wheel, PyPI quota. NOT for template content changes (see managing-templates). Triggers on: release, publish, version bump, PyPI, GitHub release, frozen bundle, quota.

Managing Releases

How this repository turns template changes into version bumps → PyPI packages → GitHub releases. The short version: version bumps happen on the PR (author-driven + CI auto-bump); publishing happens after merge (label-driven); every merge with a version change creates a GitHub Release, but PyPI publish requires the release label.

The two workflows (read these first)

WorkflowPhaseTriggerWhat it does
version-check.ymlOn the PRPR touching templates/**, bundles.json, blueprints/**, pyproject.toml, version policy filesSyncs manifests, validates bundles, auto-bumps package versions (only when root version changed), posts PyPI quota + release-distribution comments, commits changes back to the PR branch
publish.ymlAfter mergePush to main with pyproject.toml changes, or manual dispatchChecks the merged PR for the release label, runs PyPI quota gate, builds & publishes affected packages in dependency order, always creates a GitHub Release

Version bump model (how versions move)

  • Root pyproject.toml (the meta package) is manually controlled by the PR author. CI never auto-bumps it.
  • Sub-packages (core, json, media_api, media_video, media_image, media_other, media_assets_01, media_assets_02, blueprints) are auto-bumped by ci_version_manager.py — but only when the PR author has changed the root version. Frozen packages in scripts/data/version_policy.json are skipped.
  • Template-only PRs (root version unchanged): no version bumps at all — manifests still get re-synced and committed.
PR typeAuto-bump?PyPI after merge?
Template / archive only (root version unchanged)❌ None❌ No (no version change → publish.yml not triggered on pyproject.toml)
Release PR (author bumps root version) without release label✅ Sub-packages❌ GitHub Release only
Release PR (author bumps root version) with release label✅ Sub-packages✅ Full PyPI publish + GitHub Release
Manual workflow_dispatch with force_publish=true—✅ Bypasses label; publishes packages whose local version ≠ PyPI
Sub-package bump granularity

ci_version_manager.py compares each package's changed files since its last bump (or merge-base with main):

  • json package ← any templates/*.json change or manifest.json JSON-asset hash change
  • media packages ← non-JSON template assets (thumbnails, previews, media) mapped via bundles.json + version_policy.json
  • core ← packages/core/**
  • blueprints ← blueprints/**, blueprints_bundles.json, blueprint manifest
  • meta ← always bumped when any non-meta package is bumped

How to make a PyPI release (the happy path)

  1. Make your template changes on a branch (follow managing-templates).

  2. Bump the root version in pyproject.toml (e.g. 0.11.48 → 0.11.49). Semantic x.y.z with optional -prerelease / +build metadata — no v prefix, no 1.2 shorthand. This matches the publish.yml validator.

  3. Open the PR. version-check.yml runs: syncs manifests, auto-bumps affected sub-packages, pins them exactly in root pyproject.toml, posts quota + distribution comments, and commits everything back to your branch.

  4. Add the release label to the PR:

    bash
    gh pr edit <PR-NUMBER> --add-label release
  5. Merge to main. publish.yml runs: quota gate → builds & publishes sub-packages in dependency order → verifies all meta deps are on PyPI → publishes meta → creates GitHub Release with notes.

Result: pip install comfyui-workflow-templates==<version> works, and the GitHub Release notes show Published to PyPI.

How to make a GitHub-Release-only merge (no PyPI)

Same as above but skip the release label. After merge, publish.yml still runs (pyproject.toml changed) but skips PyPI upload and creates the release with notes: Not published to PyPI.

Use case: hub-only / cloud-only template updates that don't need pip distribution.

Force publish / recovery (label was missed, or publish failed)

bash
gh workflow run "Publish to PyPI"   # manual dispatch

Then check "Force publish to PyPI" in the UI (or the equivalent input). Recovery mode:

  • Bypasses the label check.
  • Still only uploads packages where local version ≠ PyPI version (idempotent; twine upload --skip-existing also makes re-runs safe).
Show full SKILL.md (396 more words)Show less

Frozen legacy media bundles (why some packages never bump)

media_api, media_image, media_video, media_other, and media_assets_01 are frozen:

  • Version-pinned in root pyproject.toml, excluded from CI auto-bump (scripts/data/version_policy.json → frozen_packages).
  • Reason: PyPI has a ~100 MB per-file upload limit; these legacy wheels are 85–99 MB and would consume quota + risk rejection on every rebuild.
  • New template assets go to media-assets-02 — never add new templates/media to the frozen bundles (media-* or media-assets-01).
  • Full policy: scripts/docs/frozen_bundles.md. check_frozen_policy.py posts a non-blocking PR comment if a PR violates it.

To deliberately ship a legacy wheel (rare): manually bump packages/media_<bundle>/pyproject.toml, update the root pin, optionally un-freeze for one release, merge with release label.

PyPI quota gate

  • Config: .github/pypi-packages.json — project quota 10 GB (warn 80% / critical 90% / fail 95%), per-file limit 100 MB (warn 85 MB / critical 95 MB).
  • check_pypi_quota.py runs in two places:
    • PR phase (version-check.yml): posts a PR comment with quota status + delete-candidates when the root version differs from base.
    • Publish phase (publish.yml): a gate job blocks the PyPI publish job on critical/fail quota. GitHub Release creation is NOT blocked by quota.
  • It also cross-checks ComfyUI's requirements.txt pins (comfyui_reference_check) so we don't delete versions ComfyUI still references.

Release distribution report (pip vs cloud)

On version-bump PRs, release_distribution_report.py posts a comment summarizing how the release distributes: pip wheel content vs cloud-only vs custom-node-gated templates (the pip exclusion filter in sync_bundles.py keeps cloud-only / requiresCustomNodes templates out of pip wheels; --no-filter disables it).

Common failure modes & fixes

SymptomCauseFix
GitHub Release created but no PyPI packagesPR merged without release labelManual dispatch with Force publish
Version-check says "no bump" on a template PRRoot version wasn't changedThat's expected; bump root version only if you want a release
"Invalid version format"Non-semantic version in pyproject.tomlUse x.y.z[-prerelease][+build] (e.g. 0.11.49)
Publish blocked / quota comment criticalPyPI quota ≥ 90%Delete orphan versions (see delete-candidates in PR comment) or hold the release
media-* / frozen media-assets-01 never auto-bumpsFrozen by policyExpected; move new assets to media-assets-02
"No associated PR found" in publish.ymlGitHub API race right after mergeWorkflow retries 5×; if still missing, it creates the release without PyPI — force-publish after

Local status checks

bash
# current version
grep -E '^\s*version\s*=' pyproject.toml | head -1
# sub-package versions vs PyPI (all releaseable sub-packages)
for pkg in core json media-api media-video media-image media-other media-assets-01 media-assets-02 blueprints; do
  local=$(./scripts/ci/get_version.sh "packages/${pkg//-/_}/pyproject.toml")
  if [ "$pkg" = "blueprints" ]; then
    pypi_name="comfyui-subgraph-blueprints"
  else
    pypi_name="comfyui-workflow-templates-$pkg"
  fi
  pypi=$(./scripts/ci/get_pypi_version.sh "$pypi_name")
  echo "$pkg: local=$local pypi=$pypi"
done
# PyPI quota status
python scripts/ci/check_pypi_quota.py --release-packages --comfyui-ref

References (source of truth)

  • .github/workflows/publish.yml — publishing pipeline
  • .github/workflows/version-check.yml — PR auto-bump pipeline
  • scripts/ci/ci_version_manager.py — bump logic
  • scripts/ci/check_pypi_quota.py — quota gate + delete-candidates
  • scripts/ci/release_distribution_report.py — pip vs cloud report
  • scripts/docs/frozen_bundles.md — frozen bundle policy
  • docs/PUBLISHING.md — label workflow overview
  • docs/publishing-workflow-templates.md — manual wheel publishing / recovery
  • docs/cicd/workflows.md — workflow reference
  • docs/cicd/troubleshooting.md — recovery commands

© Comfy-Org, 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/managing-releases of Comfy-Org/workflow_templates.

Open the folder on GitHubat commit 8be1f8c

Compare with similar skills

Managing Releases 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.

Managing Releases compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Managing Releases this skillComfy-Org/workflow_templates1.3k—~2.4kAutomated safety check: PassMIT
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Greplooponyx-dot-app/onyx32k4 repos~3.3kAutomated safety check: PassMIT
GitHub Deep Researchbytedance/deer-flow84k4 repos~1.3kAutomated safety check: PassMIT
Diagnosing Superpowers Sessionsobra/superpowers297k3 repos~1.7kAutomated safety check: PassMIT
Update V8 Versionopeninterpreter/openinterpreter69k2 repos~845Automated safety check: PassApache-2.0

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed
  • GitHub Deep Research

    bytedance/deer-flow

    Researches a GitHub repository over four rounds using the GitHub API and web search, then writes a structured markdown report with timeline, metrics and Mermaid diagrams.

    84k GitHub starsUsed in 4 repos~1.3k tokens
    Research & ScienceAuto-check passed
  • Investigates a session where Superpowers went wrong, reads the transcripts on disk and produces an evidence-cited report, optionally prepared as a bug report for the maintainers.

    297k GitHub starsUsed in 3 repos~1.7k tokens
    Agent WorkflowsAuto-check passed
  • Update V8 Version

    openinterpreter/openinterpreter

    Bumps the pinned v8 and rusty_v8 versions in Codex, validates the release-candidate path with the v8-canary check, and traces failures to upstream build changes.

    69k GitHub starsUsed in 2 repos~845 tokens
    DevOps & CloudAuto-check passed
  • Last30days

    mvanhorn/last30days-skill

    Research what people actually say about any topic in the last 30 days.

    64k GitHub stars~7.9k tokensUpdated today
    Research & ScienceAuto-check: notes

More from Comfy-Org/workflow_templates

All 10 skills in this repo
  • Editing Site Content

    Comfy-Org/workflow_templates

    Edits, updates, rewrites, or adds content on the ComfyUI template site pages.

    1.3k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Importing Subgraphs

    Comfy-Org/workflow_templates

    Imports and registers subgraph blueprints into the ComfyUI workflowtemplates repository.

    1.3k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Managing Bundles

    Comfy-Org/workflow_templates

    Manages template bundles, categories, and ordering in the ComfyUI template repository.

    1.3k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Managing MCP Index

    Comfy-Org/workflow_templates

    Builds and maintains templates/index.mcp.json for Comfy Cloud MCP tools.

    1.3k GitHub stars~1.9k tokensUpdated today
    Auto-check: notes
  • Managing Templates

    Comfy-Org/workflow_templates

    Manages ComfyUI workflow templates end-to-end: add new templates and rename existing ones (files, index metadata, bundles, i18n, package sync).

    1.3k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Managing Thumbnails

    Comfy-Org/workflow_templates

    Manages thumbnail and preview images for ComfyUI workflow templates.

    1.3k GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Works with

Questions about Managing Releases

What does Managing Releases do?

Manages releases for this repository: how version bumps, PyPI publishing, and GitHub releases work. Managing Releases is an agent skill from Comfy-Org/workflow_templates. Manages releases for this repository: how version bumps, PyPI publishing, and GitHub releases work.

When should I use Managing Releases?

Managing Releases fits situations like: asked to: release; why was there no PyPI package; version bump PR; check release status.

How do I install Managing Releases in Claude Code?

Run `npx skills add Comfy-Org/workflow_templates --skill managing-releases -a claude-code`. Or copy the skill folder (.claude/skills/managing-releases in Comfy-Org/workflow_templates) into .claude/skills/managing-releases in your project. Claude Code loads it when a task matches its description.

How do I install Managing Releases in Codex?

Run `npx skills add Comfy-Org/workflow_templates --skill managing-releases -a codex`. Or copy the skill folder (.claude/skills/managing-releases in Comfy-Org/workflow_templates) into .agents/skills/managing-releases in your project. Codex loads it when a task matches its description.

Can I use Managing Releases 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 Comfy-Org/workflow_templates --skill managing-releases -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/managing-releases, .gemini/skills/managing-releases, .github/skills/managing-releases and .opencode/skills/managing-releases in your project.

What does Managing Releases need to run?

Going by SKILL.md and its folder, Managing Releases needs the command-line tools its instructions call (gh, python and pip). Our summary lists: Python 3.

Does Managing Releases access the network?

SKILL.md contains no URLs. Its commands use gh and pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Managing Releases 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 Managing Releases use?

Managing Releases 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 Managing Releases use?

About 2.4k tokens (SKILL.md is roughly 9.4k 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 Managing Releases?

Skills that share tags, products or a category with Managing Releases: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Greploop (onyx-dot-app/onyx, 32k stars), GitHub Deep Research (bytedance/deer-flow, 84k stars) and Diagnosing Superpowers Sessions (obra/superpowers, 297k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Managing Releases?

Comfy-Org (a GitHub organization) maintains it in Comfy-Org/workflow_templates, which has 1,278 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 10, 2026.

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