Agent skill

Release

by ffroliva in ffroliva/gflow-cli

Cut a new gflow-cli release — bump version, update CHANGELOG, tag, push, and back-merge.

MITAuto-check passedDevelopment

Install Release

skills CLI
$ npx skills add ffroliva/gflow-cli --skill release -a claude-code

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

GitHub CLI
$ gh skill install ffroliva/gflow-cli 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/ffroliva/gflow-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/release .claude/skills/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
release
GitHub stars
264
Token cost
~5.1k tokens
SKILL.md length
2,461 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
MIT

At a glance

Cut a new gflow-cli release — bump version, update CHANGELOG, tag, push, and back-merge.

  • Works in 2 steps: Version — the new version (e.g. 0.4.0,… → Pre-release? — prerelease versions stay…
  • Tasks that involve Changelog and release notes
  • SKILL.md covers Inputs, Sequence, Critical reminders and See also
  • Calls git, gh and uv

What it does

Release is an agent skill from ffroliva/gflow-cli. Cut a new gflow-cli release — bump version, update CHANGELOG, tag, push, and back-merge.

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

It sits in Development, covering Changelog and release notes and AI video generation. The repository describes itself as: Drive Google Flow from the command line: Veo video and Imagen images, scripted, batched and pipeline-ready. Ships an MCP server so coding agents can drive it too, giving you and… The licence is MIT.

When your agent uses it

  • Tasks that involve Changelog and release notes
  • Tasks that involve AI video generation

Example prompts

  • “/release”

Requirements

  • Python 3
  • Docker

Workflow steps

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

  1. Version — the new version (e.g. 0.4.0, 0.4.0a3, 1.0.0rc1). Use PEP 440 prerelease suffixes (aN, bN, rcN). If they don't know, run…
  2. Pre-release? — prerelease versions stay marked as GitHub prereleases. Only the user can say when a release line is ready for the stable tag.

What it can do on your machine

Read from SKILL.md and the folder at commit cb6d501. 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:

    • git
    • gh
    • uv
    • rg

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

  • Network

    Links to these hosts (documentation or services it may open):

    • pypi.org

    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

Release loads about 5.1k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 2,461 words of instructions outside code blocks.

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

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 ffroliva/gflow-cli at commit cb6d501, republished under its MIT licence (© ffroliva). 2,461 words, ~5,108 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Cut a new gflow-cli release — bump version, update CHANGELOG, tag, push, and back-merge.
version
1.0

/gflow:release — Cut a new release

Follow this sequence verbatim. Every step matters.

Branch-protection note: main blocks direct pushes. The release commit travels via a chore/release-vX.Y.Z branch PR. The signed tag is pushed independently (tag pushes bypass branch protection and trigger the CI release workflow immediately).

Source-branch note (read first): develop is the integration branch — it carries ALL unreleased work and main usually lags it. The release branch is cut from develop, NOT main. The PR chore/release-vX.Y.Z → main then brings the full integration history onto main. Do not expect the work to already be on main.

Inputs

Ask the user (if not already provided):

  1. Version — the new version (e.g. 0.4.0, 0.4.0a3, 1.0.0rc1). Use PEP 440 prerelease suffixes (aN, bN, rcN). If they don't know, run /gflow:changelog first and propose the next bump (PATCH for fixes only, MINOR for new features, MAJOR for breaks).
  2. Pre-release? — prerelease versions stay marked as GitHub prereleases. Only the user can say when a release line is ready for the stable tag.

Sequence

1. Review what's queued.

Run /gflow:changelog — confirm the [Unreleased] block is non-empty and accurate before proceeding.

2. Verify (or triage) a clean working tree.

bash
git status --short

If empty, continue. If not, triage before aborting — do not blindly stop:

  • Auto-injected boilerplate (e.g. a context-mode routing block appended to CLAUDE.md by an MCP plugin's SessionStart hook): this is plugin-injected, not project content — git restore it. Confirm with the user if unsure.
  • Build/temp artifacts (e.g. a stray tmp*.tar.gz sdist at repo root): delete them.
  • Genuine uncommitted work: STOP and tell the user to commit or stash on the appropriate branch (never commit straight to develop).

The tree must be clean before you create the release branch.

3. Verify develop is the release source and up-to-date.

The release is cut from develop, NOT main (see Source-branch note above). Confirm direction explicitly — a backwards divergence means a prior back-merge was skipped.

bash
git fetch origin
git rev-parse --abbrev-ref HEAD                      # expect "develop"
git rev-list --count HEAD..origin/develop            # local behind origin — expect 0
git rev-list --count origin/main..origin/develop     # develop AHEAD of main — expect > 0 (the work to release)
git rev-list --count origin/develop..origin/main     # main AHEAD of develop — expect 0

If not on develop: git checkout develop && git pull origin develop. If local is behind origin: git pull origin develop. If main is AHEAD of develop (last count > 0): STOP. A prior release skipped its main → develop back-merge — recover first (see the release-back-merge-gap-recovery memory) or the release branch will hit conflicts on pyproject.toml / __init__.py / CHANGELOG.md.

4. Run quality gates.

Run /gflow:check — all gates must pass. Abort if any fail.

4b. Live-verify the release's user-facing features (REQUIRED gate).

For every new/changed user-facing feature in this release, exercise it against live Flow (credit-free wherever possible — image gen, entity attach, upscale, and scene/timeline ops cost no Veo credits) and write the evidence to docs/LIVE_VERIFICATION_v<NEW_VERSION>.md using the 5-layer ledger (file count + magic bytes + dimensions/shape + structlog invariants + a user-confirmable artifact). Add it to the "what was live-verified" entry in docs/INDEX.md. This doc shipped for every release v0.7.0→v0.13.0, then lapsed for v0.14.0–v0.15.1 — which is why it is now an explicit gate. If a feature genuinely cannot be verified this cycle, record that and the reason in the doc; never silently omit it. Stage the doc into the release-prep commit (step 11).

5. Create a release branch off develop — in its own worktree, after telling every other session.

bash
git worktree add -b chore/release-v<NEW_VERSION> .claude/worktrees/release-v<NEW_VERSION> origin/develop
cd .claude/worktrees/release-v<NEW_VERSION>

Before cutting, run ListAgents (or the equivalent in your harness) and message every other session working on this repo: "Cutting v<NEW_VERSION> from develop@<sha>; do not push to develop until the back-merge lands." Then cut in a dedicated worktree (the repo convention is .claude/worktrees/<slug>), never in the shared checkout. The cut is from origin/develop, which step 3 just verified local develop is not behind — a local develop that goes stale later no longer matters (unpushed local commits on develop are deliberately NOT in the release; push them first if they should be). Steps 6–13 run inside this worktree; step 14 returns to the main checkout and removes it.

Why. On 2026-09-05 the v0.68.0 release branch was cut in the shared checkout and then switched out from under the release runner by another session's git checkout, costing a recovery; separately, an unrelated PR landed on develop between the cut and the tag, so the signed tag had to be deleted and re-signed on a merged head (nothing had been pushed, so no public tag moved — step 12 now checks for this). A worktree makes the branch immune to sibling checkouts; the announcement makes the develop race visible instead of discovered at tag time.

This branch now contains all of develop (⊇ main) plus your release prep. All release prep commits live here; the PR into main (step 14) carries the full integration history forward.

6. Bump the shared release version — SEVEN sites, and no single gate sees them all.

This is the canonical list. It is the only one that spans all three gates; the previous version of this step named four sites, check_repo_hygiene.py's docstring named three, and its own function checked five. A release engineer then met each omission as a gate failure mid-release (#839). If you add a version site, add it here.

#SiteCaught by
1pyproject.toml [project].versioncheck_repo_hygiene._check_version_agreement
2src/gflow_cli/__init__.py __version__same
3.codex-plugin/plugin.json "version"same
4uv.lock (the gflow-cli package block)same — re-resolved by uv lock
5server.json .version and .packages[*].version (twice)same
6plugins/gflow/.claude-plugin/plugin.json "version"tests/test_plugin_manifests.py::test_plugin_version_tracks_pyproject
7docker/Dockerfile ARG GFLOW_VERSIONtests/test_dockerfile_version_pin.py

server.json is the one that bites quietly: it is the MCP Registry's copy of our metadata, and the registry publish carries whatever the ref says. Forget it and the listing points at a superseded version with nothing downstream noticing.

Do not bulk-replace the old version across the repo. docker/README.md quotes measured results (gflow_cli : <version>, ✅ measured); rewriting those turns a record of what was tested into a false claim. Bump declaration sites only — the seven above — and leave measurement records alone unless the measurement was re-run.

Sites 1–3 and 6:

toml
[project]
version = "<NEW_VERSION>"
json
{
  "version": "<NEW_VERSION>"
}

7. Bump package version in src/gflow_cli/__init__.py:

python
__version__ = "<NEW_VERSION>"

8. Update version assertion tests if present:

bash
rg -n "__version__|<OLD_VERSION>|version assertion" tests src pyproject.toml .codex-plugin/plugin.json plugins/gflow/.claude-plugin/plugin.json

9. Migrate CHANGELOG.

  • Move all entries under ## [Unreleased] to a new ## [<NEW_VERSION>] — YYYY-MM-DD section.
  • Leave ## [Unreleased] empty.
  • Update the link footer. Match the repo's existing convention — every prior entry uses the compare/vPREV...vNEW form, so use that for the new version too (NOT the releases/tag/ form), or /gflow:doc-review will flag the inconsistency:
    [Unreleased]: https://github.com/ffroliva/gflow-cli/compare/v<NEW_VERSION>...HEAD
    [<NEW_VERSION>]: https://github.com/ffroliva/gflow-cli/compare/v<PREV_VERSION>...v<NEW_VERSION>

9b. Update docs/PROJECT_STATUS.md — this is an ACTION, not a review finding.

Rewrite the ## Current release section to describe the release being cut, and add a milestone-history row for its headline change. Demote the previous release into a <details><summary>vPREV — …</summary> block rather than deleting it.

The file's own header says "Updated on every signed tag" — a promise that went unkept for five consecutive releases, and again in v0.64.0, where the section still announced v0.63.0 as current at tag time. It was caught only because a human council happened to read the file. scripts/ci/check_release_artifacts.py now enforces it (violation 6): the version being cut must appear in that section specifically, not merely somewhere in the file — every past release is still named further down, so a whole-file search would pass on a fully stale header. Run it before committing:

bash
uv run python scripts/ci/check_release_artifacts.py

Doing this at step 9b rather than discovering it at step 10 is the point: doc-review is a detector, and a gate that only detects still costs a round trip every release.

10. Run the documentation review gate.

Run /gflow:doc-review — audit all version refs, INDEX completeness, evidence files, the published website/docs/ mirror (PII gate + content-drift check, §4b), code↔docs parity via git log (§4c), skill files, CHANGELOG footer, and memory files. Fix every FAIL before continuing. Fold all discovered fixes into the release prep commit — including any website/docs/ re-sync (the mirror is anonymized and hand-synced; a canonical doc change this release must be mirrored, and CHANGELOG.md must never appear under website/docs/).

Also consolidate shipped planning artifacts here: extract any durable patterns into auto-memory, then remove the now-shipped docs/superpowers/ plan / spec / verification files (keep only in-flight work). check_repo_hygiene.py enforces the root-doc allowlist, so a stray review doc or session marker left at the repo root will fail the gate.

11. Commit the release prep.

bash
# All seven version sites from step 6 — a bumped-but-unstaged site fails the gate
# on the release branch, after the tag is already in your fingers.
git add pyproject.toml .codex-plugin/plugin.json plugins/gflow/.claude-plugin/plugin.json
git add src/gflow_cli/__init__.py uv.lock server.json docker/Dockerfile CHANGELOG.md
git add docs/PROJECT_STATUS.md                 # step 9b — enforced by check_release_artifacts
git add docs/ website/docs/ skills/ .claude/commands/gflow/   # include any doc-review + mirror fixes
# doc-review version-currency fixes often also touch ROOT docs — stage them too:
git add README.md PLAN.md KNOWN_ISSUES.md AGENTS.md llms.txt 2>/dev/null || true
git status --short                            # review EVERYTHING staged before committing
git commit -m "chore(release): v<NEW_VERSION>"
  • uv.lock changes on every version bump (the editable package version is pinned in the lockfile) — it is easy to forget and must ship in this commit.
  • .codex-plugin/plugin.json tracks the package version so marketplace installs receive a new cache path for every release.
  • server.json carries the version TWICE — top level and inside the PyPI package entry. _check_version_agreement checks both; a half-bump fails the gate.
  • The release-prep commit must NOT carry a Co-Authored-By trailer (see reminders).

12. Tag the release commit. Use -s for a signed annotated tag so GitHub shows "Verified" AND .github/workflows/release.yml passes the signed-tag gate (unsigned or lightweight tags are rejected by CI).

First confirm develop has not moved since step 5 — anything merged there in the meantime is not in this branch and would ship in the next release while its CHANGELOG entry sits under a heading that no longer exists:

bash
git fetch origin
git rev-list --count HEAD..origin/develop   # expect 0

If it is non-zero: git merge origin/develop, move the newcomers' [Unreleased] entries under ## [<NEW_VERSION>], re-run steps 4, 4b and 10 — 4b because the newcomers are user-facing features that just entered this release and each needs its LIVE_VERIFICATION_v<NEW_VERSION>.md row (v0.68.0 shipped #672 this way and the ledger had no row until a reviewer supplied one) — amend or add to the step 11 commit, and only then tag. Exception: if the only newcomers are docs(sponsors): refresh hall of fame commits from .github/workflows/sponsors.yml (a daily bot that cannot see a release freeze), git merge origin/develop and move on — they carry no [Unreleased] entry, no 4b row and nothing to re-verify. If a tag was already created locally, git tag -d v<NEW_VERSION> and re-sign it on the merged head — this is safe only while the tag is unpushed (see the NEVER force-push a release tag reminder below). develop can still move between this check and the step 13 push; that cannot corrupt the tag, it only means a late commit ships in the next release — re-run the rev-list immediately before pushing if you care.

Show full SKILL.md (830 more words)Show less
bash
git tag -s v<NEW_VERSION> -m "v<NEW_VERSION>"

Signing requirements:

  • SSH signing (preferred): git config --global gpg.format ssh + user.signingkey pointing at your public key.
  • GPG: any registered GPG key works.
  • Run git config --global user.signingkey to confirm a key is configured.

Confirm the tag actually carries a signature (this is what CI checks):

bash
git cat-file -p v<NEW_VERSION> | grep -c "BEGIN SSH SIGNATURE"   # expect 1 (or "BEGIN PGP SIGNATURE" for GPG)

Benign local-verify error: git tag -v v<NEW_VERSION> may fail with gpg.ssh.allowedSignersFile needs to be configured. This is a local verification-config gap only — the tag IS validly signed and CI still passes (CI greps for the signature header, above). To make local verify work once and for all, create an allowed-signers file (<your-email> ssh-rsa AAAA...) and run git config --global gpg.ssh.allowedSignersFile <path>. See the release-signing memory for the exact recipe. Do NOT treat this error as a signing failure.

13. Push the tag first (bypasses branch protection; triggers the CI release workflow immediately):

⚠ POINT OF NO RETURN — confirm with the user before this push. Pushing the tag immediately triggers .github/workflows/release.yml → PyPI publish + public GitHub Release. A pushed release tag must NOT be force-replaced (ship a PATCH instead). Get an explicit go-ahead, then push.

bash
git push origin v<NEW_VERSION>

CI will start building the release. Watch https://github.com/ffroliva/gflow-cli/actions. Wait for the Release run to report completed / success and confirm the GitHub Release published before continuing (gh release view v<NEW_VERSION>).

14. Push the release branch and open the PR.

bash
git push -u origin chore/release-v<NEW_VERSION>
gh pr create --base main --head chore/release-v<NEW_VERSION> \
  --title "chore(release): v<NEW_VERSION>"

Wait for PR CI to go green (gh pr checks <N> --watch). The SonarCloud analysis check must be green (gate passed) — not just the test matrix. If it is red or you want the verdict, run /gflow:sonar <N> and drive it to zero before merging.

Before merging, leave the release worktree and remove it — --delete-branch deletes the local branch too, and git refuses to delete a branch a worktree has checked out (error: cannot delete branch … used by worktree). The branch is pushed, so nothing is lost:

bash
cd <main checkout>                                   # e.g. C:/development/github/gflow-cli
git worktree remove --force .claude/worktrees/release-v<NEW_VERSION>
git worktree prune

Then merge with a merge commit — never squash:

bash
gh pr merge <N> --merge --delete-branch

On Windows the removal can fail on the worktree's .venv file lock. git worktree prune does not help — it only forgets worktrees whose directory is already gone, so the branch stays held and --delete-branch still fails. In that case merge without it and delete the remote ref explicitly; remove the directory and the local branch later (CLAUDE.md § Worktrees):

bash
gh pr merge <N> --merge
git push origin --delete chore/release-v<NEW_VERSION>

NEVER --squash this PR. Because the branch was cut from develop, the PR carries the entire batch of unreleased integration commits. A squash collapses them into one opaque commit on main and destroys that history. --merge preserves it. (The release workflow already ran from the tag push in step 13 — this PR is to bring the bump commit + integration history onto main.)

15. Back-merge main into develop.

After the release PR is merged, bring the bump commit back to develop so branches stay aligned. This runs in the main checkout (step 14 already returned you there) — develop is checked out there, and git refuses git checkout develop from any other worktree (fatal: 'develop' is already used by worktree at …):

bash
cd <main checkout>
git checkout develop
git pull origin develop
git fetch origin main
git merge origin/main --no-ff -m "chore: back-merge main (v<NEW_VERSION>) into develop"
git push origin develop

If there are conflicts (rare — only if develop has commits that touched the same lines as the bump), resolve them, keeping develop's unreleased work and main's version bump.

16. Report.

Tell the user:

  • Tag push triggered .github/workflows/release.yml.
  • Watch https://github.com/ffroliva/gflow-cli/actions for the release workflow.
  • On success: PyPI publish + GitHub Release with auto-generated notes.
  • On failure (most common: PyPI Trusted Publishing not yet configured): point to https://pypi.org/manage/account/publishing/.
  • develop is now synced with main (back-merge done in step 15).
  • The release worktree is gone (step 14); if Windows held its .venv, name the directory that still needs a manual delete.
  • Message the sessions you announced to in step 5: the back-merge has landed, develop is open again.
  • Next development cycle starts on develop — open ## [Unreleased] in CHANGELOG is ready.
Pipeline Continuation (Next Step Handoff)

Upon completing a Release:

  1. Proactively announce: "Release v<NEW_VERSION> shipped to PyPI & GitHub Releases! Back-merge to develop complete. Next step: Phase 1 Triage (/gflow:issue-assessment <N>) for the next development cycle."

Critical reminders

  • ALWAYS cut the release branch from develop, not main — develop carries the work.
  • NEVER --squash the release PR into main — it destroys the integration history the branch carries. Use --merge.
  • NEVER skip the main → develop back-merge (step 15) — skipping it guarantees conflicts at the next release.
  • NEVER add Co-Authored-By: Claude (or any AI co-author) to the release commit.
  • NEVER force-push a release tag once it's on GitHub. Ship a PATCH fix instead.
  • NEVER --no-verify past hooks. Fix the underlying issue.
  • NEVER push directly to main — branch protection will reject it. Always use a PR.
  • A git tag -v allowedSignersFile error is benign (verify-only) — the tag is still signed and CI passes. Don't treat it as a failure.
  • CONFIRM with the user before the step 13 tag push — it's the irreversible PyPI + public Release trigger.
  • If quality gates fail at step 4, STOP. Surface the failures to the user.
  • If doc-review fails at step 10, STOP. Fix before committing.

See also

© ffroliva, 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 skills/release of ffroliva/gflow-cli.

Open the folder on GitHubat commit cb6d501

Compare with similar skills

Release 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.

Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skillffroliva/gflow-cli264—~5.1kAutomated safety check: PassMIT
Add Release HighlightsArcReel/ArcReel5.4k—~194Automated safety check: PassAGPL-3.0
Simple Englishmoeru-ai/airi50k2 repos~4.6kAutomated safety check: PassMIT
StarRocks Release NotesStarRocks/starrocks12k—~1.9kAutomated safety check: NotesApache-2.0
Cutting A ReleaseTriliumNext/Trilium38k—~3.2kAutomated safety check: PassAGPL-3.0
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT

Similar skills

  • Add Release Highlights

    ArcReel/ArcReel

    起草指定版本的版本亮点;确认后同步到 Changelog 与 GitHub Release,并推送 main. An agent skill from ArcReel/ArcReel.

    5.4k GitHub stars~194 tokensUpdated today
    DevelopmentAuto-check passed
  • Simple English

    moeru-ai/airi

    Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.

    50k GitHub starsUsed in 2 repos~4.6k tokens
    DevelopmentAuto-check passed
  • StarRocks Release Notes

    StarRocks/starrocks

    Drafts English release notes for a StarRocks patch release from the PRs merged into its release branch, then opens a documentation PR and hands translation to /translate.

    12k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check: notes
  • Cutting A Release

    TriliumNext/Trilium

    A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.

    38k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check passed
  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.

    70k GitHub stars~2.5k tokensUpdated today
    DevelopmentAuto-check passed

More from ffroliva/gflow-cli

All 17 skills in this repo
  • Gflow CLI

    ffroliva/gflow-cli

    A skill your agent uses when the user wants to drive Google Flow (Veo image-to-video, Veo text-to-video, Imagen / Nano Banana image generation) from the terminal or a script — including…

    264 GitHub stars~4.8k tokensUpdated yesterday
    Auto-check: notes
  • Issue Assessment

    ffroliva/gflow-cli

    A skill your agent uses when triaging a GitHub issue for gflow-cli — a reporter's bug claim, a freshly-filed issue, or deciding whether and how to act on one.

    264 GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • Issue Resolve

    ffroliva/gflow-cli

    A skill your agent uses when an assessed gflow-cli issue (verdict CONFIRMED-BUG or LIKELY-BUG) has localized, verifiable scope and should be driven to a fix.

    264 GitHub stars~3.5k tokensUpdated yesterday
    Auto-check passed
  • Live Verify

    ffroliva/gflow-cli

    Two-part gate for gflow-cli feature/fix work. An agent skill from ffroliva/gflow-cli.

    264 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Video Production

    ffroliva/gflow-cli

    A skill your agent uses when the user wants a finished video out of gflow rather than a single clip — a scripted scene, a talking-head or dialogue piece, an explainer, a product montage, a story…

    264 GitHub stars~7k tokensUpdated yesterday
    Auto-check passed
  • Check

    ffroliva/gflow-cli

    Auto-fix lint and formatting, then report types and tests. An agent skill from ffroliva/gflow-cli.

    264 GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Release

What does Release do?

Cut a new gflow-cli release — bump version, update CHANGELOG, tag, push, and back-merge. Release is an agent skill from ffroliva/gflow-cli. Cut a new gflow-cli release — bump version, update CHANGELOG, tag, push, and back-merge.

When should I use Release?

Release fits situations like: tasks that involve Changelog and release notes; tasks that involve AI video generation.

How do I install Release in Claude Code?

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

How do I install Release in Codex?

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

Can I use Release 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 ffroliva/gflow-cli --skill 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/release, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git, gh, uv and rg). Our summary lists: Python 3; Docker.

Does Release access the network?

SKILL.md names 1 domain. As links in the text: pypi.org. This is read from the text; nothing was executed.

Is Release 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 Release use?

Release 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 Release use?

About 5.1k tokens (SKILL.md is roughly 20k 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 Release?

Skills that share tags, products or a category with Release: Add Release Highlights (ArcReel/ArcReel, 5.4k stars), Simple English (moeru-ai/airi, 50k stars), StarRocks Release Notes (StarRocks/starrocks, 12k stars) and Cutting A Release (TriliumNext/Trilium, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

ffroliva (a GitHub user) maintains it in ffroliva/gflow-cli, which has 264 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 7, 2026.

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