Borrowing it
Nothing to install: this file belongs to Koroqe/OPOS. 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/Koroqe/OPOS/main/.claude/skills/release-from-changelog/SKILL.mdgit clone --depth 1 https://github.com/Koroqe/OPOSWrote 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/koroqe/opos/release-from-changelog)<a href="https://agentmods.dev/skills/koroqe/opos/release-from-changelog"><img src="https://agentmods.dev/badge/skills/koroqe/opos/release-from-changelog/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/koroqe/opos/release-from-changelog"><img src="https://agentmods.dev/badge/skills/koroqe/opos/release-from-changelog.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.00032 | $0.01844 |
| Opus 5 | $0.00016 | $0.00922 |
| Sonnet 5 | $0.00006 | $0.00369 |
| Haiku 4.5 | $0.00003 | $0.00184 |
Grade C, and why
release-from-changelog scanned grade C 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 10d 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.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
rm -rf /tmp/opos-prerelease-check How it starts
The opening of the file, as written. The whole thing — 106 lines — stays where its author put it; the contents beside it link to each section on GitHub.
release-from-changelog
When to use
When cutting a new version release. Replaces the multi-step manual workflow (extract section via awk → check no-existing-release → gh release create --notes-file) with one skill invocation. Canonicalizes the same awk pattern documented in MAINTAINER.md.
Inputs
version— the release tag, e.g.v0.2.0. Required.target_branch— git ref to tag the release against. Default: current branch ($(git rev-parse --abbrev-ref HEAD)).repo—owner/name. Default: read from.claude/task-tracking.config.jsonrepofield.
Steps
-
Verify CHANGELOG.md has the version entry.
grep -F "## [<version-without-v>]" CHANGELOG.mdmust return a match. If not, ABORT with message: "no## [<version>]heading found in CHANGELOG.md". -
Extract the section to a temp file via the canonical awk pattern from
MAINTAINER.md:awk '/^## \['"$VERSION_NO_V"'\]/{p=1;print;next} /^## \[/{p=0} /^\[[0-9]/{p=0} p' CHANGELOG.md > /tmp/release-notes-"$VERSION".mdThe
p=1;print;nextclause starts capturing; the/^## \[/{p=0}clause stops at the next version heading; the/^\[[0-9]/{p=0}clause stops at the link-reference block at file bottom. -
Verify extract non-empty:
test -s /tmp/release-notes-"$VERSION".md. If empty (the awk pattern didn't find content), ABORT with "extracted notes empty — check CHANGELOG format". -
Verify no existing release with this version (INVERTED exit-code logic —
gh release viewreturns 0 when release EXISTS, which we don't want):if gh release view "$VERSION" --repo "$REPO" > /dev/null 2>&1; then echo "ERROR: release $VERSION already exists" >&2 exit 1 fi -
Pre-release scaffold check (added v0.3.1; auto-install dev-deps added v0.7.2). Before tagging, verify the working tree scaffolds cleanly via Copier. First, ensure pinned Python dev-deps are installed — this catches the v0.7.0 + v0.7.1 fresh-machine failure mode where
copieritself was missing/broken:# v0.7.2: ensure dev-deps are pinned/installed BEFORE the scaffold check. # Prevents the "copier missing on fresh machine" failure mode that skipped # the v0.7.0 + v0.7.1 scaffold checks. Warn-and-continue on pip failure so # the release pipeline isn't held hostage by a broken pip. pip install --quiet -r "$REPO_ROOT/requirements-dev.txt" || { echo "WARNING: pip install -r requirements-dev.txt failed. Falling back to" echo " best-effort scaffold check (may also fail). Investigate after." } rm -rf /tmp/opos-prerelease-check python3 -m copier copy . /tmp/opos-prerelease-check \ -d COMPANY_NAME=PreReleaseCheck --defaults --vcs-ref=HEAD rm -rf /tmp/opos-prerelease-checkAssert exit 0. This catches Copier-side breakage (renamed templates, missing
_skip_if_exists, stray.jinjafiles that shouldn't be templated, etc.) BEFORE the release is tagged. If this fails, ABORT — fix the scaffolding issue and re-run; do NOT proceed. Rationale: v0.3.0's first cut shipped broken templates becauseui/templates/*.html.jinjafiles were being rendered by Copier instead of shipped verbatim, requiring a destructive delete-and-re-cut. This step would have caught it.
What ships with it
18 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- history/.gitkeep 0 B
- history/2026-05-28-v020.md 3.1 KB
- history/2026-05-28-v030.md 4.5 KB
- history/2026-05-29-v031.md 2.5 KB
- history/2026-05-29-v040.md 2.4 KB
- history/2026-05-29-v050.md 2.7 KB
- history/2026-05-30-v051.md 3.8 KB
- history/2026-05-30-v052.md 3.1 KB
- history/2026-05-30-v053.md 3.6 KB
- history/2026-05-30-v060.md 4.2 KB
- history/2026-05-31-v061.md 4.3 KB
- history/2026-06-10-v070.md 5.7 KB
- history/2026-06-12-v071.md 3.5 KB
- history/2026-06-25-v072.md 4.7 KB
- history/2026-06-26-v080.md 4.7 KB
- history/2026-08-19-release-v090.md 1.2 KB
- history/2026-08-20-release-v091.md 796 B
- PROCESS.md 2.8 KB
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.
- 10d ago First seen · 106 lines · 32 tokens per session scan C 94909f941632
release-from-changelog is a skill published in the GitHub repository Koroqe/OPOS (2 stars, last pushed 9d ago), licensed MIT. It adds 32 tokens to every session and 1,844 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
Release Notes Generator
Generate professional software release notes from a commit log: classify changes, write user-facing summaries, draft a publishable announcement, and assess release readiness. Use for release, changelog, version, and deploy requests.
Release Readiness Reviewer
Reviews a release candidate and produces a go/no-go readiness decision.
Release Checklist
Check release readiness and record a release note. Use for release and rollback requests.
publish-github-release
Use this whenever the user asks to ship, publish, release, tag, or cut a new version of the project — OR when CHANGELOG.md has an "Unreleased" / in-progress section ready to be shipped. The skill bumps the version across all version-bearing files, regenerates the CHANGELOG entry from git log since the last tag…
release-init
Detect project type and generate a tailored project-level /release skill. Run once per project to set up releasing.
github-release-management
Comprehensive GitHub release orchestration with AI swarm coordination for automated versioning, testing, deployment, and rollback management.