Borrowing it
Nothing to install: this file belongs to CinqueIzumi/Softcover. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/CinqueIzumi/Softcover/main/.claude/skills/release/SKILL.mdgit clone --depth 1 https://github.com/CinqueIzumi/SoftcoverWrote 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.
[](https://agentmods.dev/skills/cinqueizumi/softcover/release)<a href="https://agentmods.dev/skills/cinqueizumi/softcover/release"><img src="https://agentmods.dev/badge/skills/cinqueizumi/softcover/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.
<a href="https://agentmods.dev/skills/cinqueizumi/softcover/release"><img src="https://agentmods.dev/badge/skills/cinqueizumi/softcover/release.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00060 | $0.01176 |
| Opus 5.5 | $0.00024 | $0.00470 |
| Sonnet 5.5 | $0.00012 | $0.00235 |
| Haiku 4.5 | $0.00006 | $0.00118 |
Grade A, and why
release scanned grade A with 0 findings 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 12d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 51 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Orchestrate a release-prep pass by composing the existing skills. Never commit or tag; leave all changes unstaged for the user to review.
Steps:
-
Invoke the
update-readmeskill via the Skill tool to bring the README current with the latest features. -
Invoke the
style-checkskill via the Skill tool to auto-fix style and run the full gate. If the gate is not green, stop and report — do not bump the version on a red build. -
Read the current
versionCodeandversionNamefromapp/build.gradle.ktsand show them to the user. Ask for the newversionName(suggest the next semantic version). If the user provided one as an argument, use that. -
Invoke the
set-version-nameskill via the Skill tool with the new version name. It sets the version name across all platforms (AndroidversionName, iOSMARKETING_VERSION, desktoppackageVersion) and bumps the build number together — do not edit any of those fields yourself. -
Write the
CHANGELOG.mdentry. Read the commits since the previous tag (git log --no-merges --format=%s $(git describe --tags --abbrev=0)..HEAD) and add the entry at the top of the entries, directly below the intro line (anything above the first entry is never shown in the app; anything below it is, so keep notes and comments out of the file):## <version>: <headline> *<today, YYYY-MM-DD>* <optional one-sentence lede> - <bullet per reader-visible change>Write in the public editorial voice: what a reader gets, not what changed internally. No em-dashes or other AI tells. Then run
python3 scripts/changelog/extract_release_notes.py <version>; if it errors, fix the entry or stop and report — do not continue.Why it belongs here: releases tag the merge commit on
main, so the entry must be part of the release PR before the tag exists. The app fetchesCHANGELOG.mdfrommain, and the release workflow publishes this same entry as the GitHub Release body (and fails the release if it is missing). -
Close the shipped milestone. If a GitHub milestone matches the version being released, ask the user to confirm, then close it (
gh api -X PATCH repos/{owner}/{repo}/milestones/{n} -f state=closed). This is the one live GitHub write in an otherwise local skill, so confirm first; it is trivially reversible by reopening.Why it belongs here: the public roadmap is built from open milestones, so leaving it open makes
ROADMAP.mdname the new version as the current release and list it as a future release in the same file. Skipping this ships a self-contradictory roadmap to the in-app Roadmap screen. -
Update the "what shipped" sentence in
scripts/roadmap/header.md. This is the only line in the public roadmap that no machine can derive, and release time is the only moment it can be written.- Read the commits since the previous tag (
git log --no-merges --format=%s $(git describe --tags --abbrev=0)..HEAD) and summarise the release in the public, editorial voice already used in that file — what a reader gets, not what changed internally. - Lead with the new version and prune older detail rather than letting the sentence accumulate every patch forever. One or two sentences total.
- Leave
{{CURRENT_VERSION}}alone — it is substituted from Gradle at generation time.
- Read the commits since the previous tag (
-
Regenerate the public roadmap:
python3 scripts/roadmap/generate_roadmap.py --write.This is mandatory, not optional.
ROADMAP.mdis a generated file, and the Roadmap workflow runs--checkon any pull request touchingROADMAP.mdorscripts/roadmap/**. Editingheader.mdin step 7 without regenerating leaves the file stale and fails CI on the release PR. Verify with--checkbefore reporting. -
Remind the user to verify R8 after the tag is pushed. On the tag run, the
R8 release smokejob must have passed, theSoftcover-<tag>-mapping.txtfile must be attached to the GitHub release, and the mapping must be visible under the release in Play Console. Details indocs/reference/r8.md.
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.
- 12d ago Changed · +18 lines · +6 tokens per session 1440de729c23
- 2mo ago First seen · 33 lines · 54 tokens per session scan A 4dfead892b16
release is a skill published in the GitHub repository CinqueIzumi/Softcover (16 stars, last pushed yesterday), licensed MIT. It adds 60 tokens to every session and 1,176 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
release-announcement
Write a release announcement — changelog, blog post, in-app note, or social post — that leads with user impact, names the audience, and includes upgrade/migration steps without filler.
release-notes
Generate user-facing release notes from tickets, PRDs, or changelogs. Creates clear, engaging summaries organized by category (new features, improvements, fixes). Use when writing release notes, creating changelogs, announcing product updates, or summarizing what shipped.
release
Fully automate a release with version-bump and childhood.
multi-agent-release-manager
Cleans up the workspace, formats code, runs presubmit checks, and uploads CLs to Gerrit.
pack-submit
Package one of this agent's own skills as a standalone community pack and submit it to the aeon registry as a PR.
release-helper
Ensures configuration and code changes are released correctly. Use PROACTIVELY whenever you edit config.json, change any setting, or fix a configuration bug in this project, so the change reaches production.