cyboflow: Skill for Claude Code

.claude/skills/release/SKILL.md

release is a skill for Claude Code from kesteva/cyboflow. It costs 108 tokens per session (6,654 once invoked), scanned A, original, MIT.

A release procedure for the Cyboflow macOS desktop app. It covers testing, version and changelog updates, building signed and notarized installers for both Mac processor types, publishing update feeds, and creating a GitHub release.

In plain words
What is it for?
Use it when preparing, verifying, and publishing a Cyboflow release, including stable and development builds for arm64 and x64 Macs.
Why use it?
It makes sure users can receive the new version through the app’s actual update channel, not only from GitHub.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: mentions Claude Code; mentions Codex.

This is kesteva/cyboflow's own configuration. It tells Claude Code how to work on cyboflow itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything cyboflow configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is node scripts/gen-mac-latest-yml.mjs dist-electron/latest-mac.yml \.

Reuse

Borrowing it

Nothing to install: this file belongs to kesteva/cyboflow. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/kesteva/cyboflow/main/.claude/skills/release/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/kesteva/cyboflow

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for release

README.md
[![agentmods](https://agentmods.dev/badge/skills/kesteva/cyboflow/release/github.svg)](https://agentmods.dev/skills/kesteva/cyboflow/release)
Your own site
<a href="https://agentmods.dev/skills/kesteva/cyboflow/release"><img src="https://agentmods.dev/badge/skills/kesteva/cyboflow/release/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for release

Your own site · 80×15
<a href="https://agentmods.dev/skills/kesteva/cyboflow/release"><img src="https://agentmods.dev/badge/skills/kesteva/cyboflow/release.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 108 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,654 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 2 findings, up to medium

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • medium Excessive Agency · line 10
    Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
    Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
  • medium Excessive Agency · line 22
    Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
    Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00108 $0.06654
Opus 5.5 $0.00043 $0.02662
Sonnet 5.5 $0.00022 $0.01331
Haiku 4.5 $0.00011 $0.00665

Measured 28d ago against content hash 690ec85ca771, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

release scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 28d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s https://updates.cyboflow.com/stable/latest-mac.yml | grep -m1 version
.claude/skills/release/SKILL.md · 459 lines

How it starts

The opening of the file, as written. The whole thing — 459 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Release

Execute a Cyboflow release. The authoritative procedure and its rationale live in docs/RELEASE-RUNBOOK.md — read it first; this skill is the executable checklist. Work through the phases in order and do not skip verification.

A release is a tag push. Phases 0–2 prepare the commit; Phase 3 tags and pushes it; .github/workflows/stable-release.yml does the building, verifying, publishing and the GitHub release. The hand-built path is kept below as a fallback for when CI cannot run.

Guardrails

  • Never build a universal macOS binary (electron-builder --universal) — it fails on the bundled claude/codex binaries. The release is per-arch DMGs; build:mac / build:mac:dev just run the arm64 then x64 recipes.
  • R2 is the real release channel, not GitHub. The app auto-updates from updates.cyboflow.com/<variant>/latest-mac.yml (R2) and never reads the GitHub release. Publishing GitHub without the R2 step (Phase 5) leaves every user on the old version. Do NOT call the release done until both R2 feeds show the new version.
  • Hold all outward actions until the user confirms. Do the gate, bump, builds, and verification, then stop and ask before publishing to R2, pushing main, the tag, or the GitHub release — unless the user has already said to push without asking.
  • Every mac build recompiles native modules for the Electron ABI; restore the host-Node ABI afterward — rebuild both or the gate fails with a pty.node / better_sqlite3.node dlopen arch mismatch: pnpm rebuild better-sqlite3 @homebridge/node-pty-prebuilt-multiarch.
  • Don't launch the app while a build:mac runs (it can wedge the DMG eject).

Phase 0 — Preconditions

  1. Confirm a clean tree on main (git status), and read the recent log to see what's shipping (git log --oneline v<last>..HEAD).
  2. Decide the new version. Default is a patch bump of the current package.json version; ask the user if a minor/major bump is intended.
  3. The default path needs no local creds — CI holds all ten secrets. Confirm they are on GitHub instead: gh secret list must show CSC_LINK, CSC_KEY_PASSWORD, APPLE_ID, APPLE_TEAM_ID, APPLE_APP_SPECIFIC_PASSWORD, AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, R2_ACCOUNT_ID, R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY, SENTRY_DSN, APTABASE_APP_KEY. (The GitHub CSC_LINK is the base64 of the .p12; the .envrc.local variable of the same name is a filesystem path.) Steps 4–6 below are only needed for the manual fallback — skip them otherwise.
  4. Re-resolve the dependency tree before gating — the gate is otherwise blind to lockfile defects:
    pnpm install --frozen-lockfile
    
    node_modules can be self-consistent while the lockfile is not, so Phase 1 would pass against dependencies that no longer match what CI installs. This is exactly how 0.2.9 shipped a dead E2E suite: a dep bump split playwright (1.62.1) from @playwright/test (1.54.1) in the lock, but the un-reinstalled tree still held a matched 1.54.1 pair, so the local smoke tier passed and every nightly after it failed at spec collection. --frozen-lockfile also hard-fails outright when package.json and the lockfile disagree. Runs BEFORE step 5 on purpose: it prunes to host arch, so the cross-arch binary check must follow it, never precede it.
  5. Confirm all four agent binaries are present (a plain install prunes to host arch):
    ls -l node_modules/@anthropic-ai/claude-agent-sdk-darwin-{arm64,x64}/claude \
          node_modules/@openai/codex-darwin-{arm64,x64}/vendor/*-apple-darwin/bin/codex
    
    Test the binaries, never ls -d on the package dirs — those are pnpm symlinks that outlive a prune as dangling links and pass the check while the x64 build dies at preflight (0.4.1). If any are missing, run the cross-arch install with --force (see runbook), then node node_modules/electron/install.js — the forced install strips electron/dist, which gen-mac-latest-yml.mjs needs.
  6. Windows leg prerequisites: gh auth status is logged in (dispatching windows.yml + downloading its artifacts), osslsigncode is installed (brew install osslsigncode), and the repo has the AZURE_TENANT_ID / AZURE_CLIENT_ID / AZURE_CLIENT_SECRET secrets (gh secret list | grep AZURE_ shows all three).

Read the full file on GitHub · 459 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 28d ago Changed · +1 lines 690ec85ca771
  2. 1mo ago Changed · +40 lines 84a58599d014
  3. 1mo ago Changed · +10 lines f84a463c3f07
  4. 1mo ago Changed · +70 lines · -19 tokens per session a4f190d1f130
  5. 1mo ago Changed · +4 lines 2a29920eb598
  6. 1mo ago Changed · +129 lines · +26 tokens per session da0aafb66387
  7. 2mo ago Changed · +14 lines fdd09cbe1dfc
  8. 2mo ago First seen · 191 lines · 101 tokens per session scan A 4f9e763668d1

Subscribe to this mod's changes

release is a skill published in the GitHub repository kesteva/cyboflow (65 stars, last pushed 8d ago), licensed MIT. It adds 108 tokens to every session and 6,654 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

release compared with skills from other repositories

release next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
releasekesteva/cyboflowSkill658d agoMITA108Claude Code
release-announcementpaperclipai/paperclipSkill111kyesterdayMITA42Claude Code, Codex
releasethedotmack/claude-memSkill114kyesterdayApache-2.0A13Claude Code
release-notesphuryn/pm-skillsSkill28k8d agoMITA57Claude Code
multi-agent-release-managerchromium/chromiumSkill25kyesterdayBSD-3-ClauseA27Claude Code, Codex
pack-submitaeonfun/aeonSkill788yesterdayMITA27Claude Code, Codex
updater_guidesiddsachar/row-botSkill1.7kyesterdayApache-2.0A22Claude Code, Codex