release
Cut a new gflow-cli release — bump version, update CHANGELOG, tag, push, and back-merge.
Skill by ffroliva
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/ffroliva-release
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/release
What's inside
- Skill name
release- Description
- Cut a new gflow-cli release — bump version, update CHANGELOG, tag, push, and back-merge.
- License
- MIT
- Instructions
- 400 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- files: referenced but missing: scripts/ci/check_release_artifacts.py
Files (1)
- SKILL.md
SKILL.md (first lines)
# `/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.** | # | Site | Caught by | |---|---|---|
From ffroliva/gflow-cli, MIT.
More from ffroliva/gflow-cli
- 0.799score
scenario
ffroliva
Pre-implementation edge-case and scenario explorer for gflow-cli.
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
issue-assessment
ffroliva
Use 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.
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
llm-council
ffroliva
Use when a pr-council-review (PR or branch mode) result needs independent corroboration from a different model family before trusting a GREEN verdict —…
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
issue-resolve
ffroliva
Use when an assessed gflow-cli issue (verdict CONFIRMED-BUG or LIKELY-BUG) has localized, verifiable scope and should be driven to a fix.
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
live-verify
ffroliva
Two-part gate for gflow-cli feature/fix work.
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
plan
ffroliva
Creates a structured task-by-task implementation plan for a gflow-cli feature.
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
predict
ffroliva
Pre-implementation multi-persona adversarial analysis for gflow-cli proposals.
SkillAFreshness: A★ 332Claude Code +9 - 0.795score
sonar
ffroliva
Check the SonarCloud quality gate for a PR (or the current branch) and drive it to zero.
SkillAFreshness: A★ 332Claude Code +9 - 0.792score
check
ffroliva
Auto-fix lint and formatting, then report types and tests.
SkillAFreshness: A★ 332Claude Code +9 - 0.791score
status
ffroliva
Surfaces the current state of work in gflow-cli.
SkillAFreshness: A★ 332Claude Code +9 - 0.791score
spike
ffroliva
Gather EVIDENCE from the live Flow surface — DOM, network, HAR — before claiming a feature is broken, missing, or impossible.
SkillAFreshness: A★ 332Claude Code +9 - 0.786score
known-issues
ffroliva
Surface open known issues.
SkillAFreshness: A★ 332Claude Code +9
Signals
- Stars
- 332
- Forks
- 95
- Open issues
- 30
- Contributors
- 22
- Last commit (this folder)
- Oct 18, 2026 (10 days ago)
- Last release
- Oct 24, 2026 (4 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/ffroliva/gflow-cli
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ffroliva
- 0.799score
live-verify
ffroliva
Two-part gate for gflow-cli feature/fix work.
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
plan
ffroliva
Creates a structured task-by-task implementation plan for a gflow-cli feature.
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
issue-assessment
ffroliva
Use 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.
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
issue-resolve
ffroliva
Use when an assessed gflow-cli issue (verdict CONFIRMED-BUG or LIKELY-BUG) has localized, verifiable scope and should be driven to a fix.
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
llm-council
ffroliva
Use when a pr-council-review (PR or branch mode) result needs independent corroboration from a different model family before trusting a GREEN verdict —…
SkillAFreshness: A★ 332Claude Code +9 - 0.799score
predict
ffroliva
Pre-implementation multi-persona adversarial analysis for gflow-cli proposals.
SkillAFreshness: A★ 332Claude Code +9
Cite this page
release skill. Agent Mart. https://agentmart.dev/skills/ffroliva-release (last updated 2026-10-24)