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.
A skill your agent uses when releasing OpenSpec: audit merged work and changeset coverage, decide whether a catch-up changeset PR is needed, prepare or resume the Changesets Version Packages PR, cut…
$ npx skills add goern/forgejo-mcp --skill release-openspec -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install goern/forgejo-mcp release-openspec --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release-openspec .claude/skills/release-openspec && rm -rf skills-srcUse ~/.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/
Install the "release-openspec" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.agents/skills/release-openspec into .claude/skills/release-openspec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-openspec", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/goern/forgejo-mcp/tree/main/.agents/skills/release-openspecType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add goern/forgejo-mcp --skill release-openspec -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install goern/forgejo-mcp release-openspec --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/release-openspec .agents/skills/release-openspec && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release-openspec" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.agents/skills/release-openspec into .agents/skills/release-openspec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-openspec", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add goern/forgejo-mcp --skill release-openspec -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install goern/forgejo-mcp release-openspec --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/release-openspec .cursor/skills/release-openspec && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "release-openspec" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.agents/skills/release-openspec into .cursor/skills/release-openspec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-openspec", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/goern/forgejo-mcp.git --path .agents/skills/release-openspec--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add goern/forgejo-mcp --skill release-openspec -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install goern/forgejo-mcp release-openspec --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/release-openspec .gemini/skills/release-openspec && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "release-openspec" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.agents/skills/release-openspec into .gemini/skills/release-openspec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-openspec", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install goern/forgejo-mcp release-openspecInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add goern/forgejo-mcp --skill release-openspec -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/release-openspec .github/skills/release-openspec && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "release-openspec" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.agents/skills/release-openspec into .github/skills/release-openspec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-openspec", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add goern/forgejo-mcp --skill release-openspec -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install goern/forgejo-mcp release-openspec --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/goern/forgejo-mcp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/release-openspec .opencode/skills/release-openspec && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "release-openspec" agent skill from https://github.com/goern/forgejo-mcp/tree/main/.agents/skills/release-openspec into .opencode/skills/release-openspec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-openspec", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
release-openspecA skill your agent uses when releasing OpenSpec: audit merged work and changeset coverage, decide whether a catch-up changeset PR is needed, prepare or resume the Changesets Version Packages PR, cut…
Release Openspec is an agent skill from goern/forgejo-mcp. Use this skill when releasing OpenSpec: audit merged work and changeset coverage, decide whether a catch-up changeset PR is needed, prepare or resume the Changesets Version Packages PR, cut a beta or stable release, verify publishing, and polish GitHub release notes. Also use when asked whether an open release PR is complete, what the next release step is, or to continue a release paused for human approval.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `agents/openai.yaml` and `references/release-notes.md`).
It sits in Development, covering Changelog and release notes. It works with GitHub. The repository describes itself as: MIRROR ONLY!! This Model Context Protocol (MCP) server provides tools and resources for interacting with the Forgejo (specifically Codeberg.org) REST API. The licence is GPL-3.0.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 64a14bc. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
ghgitpnpmnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, git, pnpm and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release Openspec loads about 3.2k tokens when it runs, and up to ~4k if it reads all its reference files. Until then it costs about 107 tokens; SKILL.md has 1,666 words of instructions outside code blocks.
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.
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.
The full file from goern/forgejo-mcp at commit 64a14bc, republished under its GPL-3.0 licence (© goern). 1,666 words, ~3,157 tokens.
.claude/skills/release-openspec/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Run the OpenSpec release workflow as a resumable state machine. Inspect live GitHub state on every invocation and take only the next safe action. Do not assume an earlier invocation completed.
Fission-AI/OpenSpec and origin/main as the release source of truth.origin/main for release-authored commits when the checkout is dirty or not on main.mergedAt and the commit is present on main.Keep these distinct in output and decisions:
.changeset/*.md files. Prefer adding a changeset to the feature/fix PR; create a catch-up changeset PR only for already-merged work that should be included.changeset-release/main PR titled chore(release): version packages. Merging or adding changesets to main updates this same PR. Merging it publishes the stable release.An open Version Packages PR does not prohibit a catch-up changeset PR. It means a catch-up PR is useful only when the audit finds missing release-worthy work. Once that PR merges, wait for the existing Version Packages PR to update.
Verify the repository and tools:
gh repo view --json nameWithOwner,url.gh, git, and pnpm before write actions.Fission-AI/OpenSpec.Refresh without modifying the worktree:
git fetch origin mainDo not fetch every tag indiscriminately. This repository may contain a conflicting historical local tag, which can make git fetch --tags fail even though origin/main fetched successfully.
Find the latest stable GitHub release. Exclude drafts and prereleases; do not use git describe, because a beta tag may be newer than the stable baseline.
gh release list --repo Fission-AI/OpenSpec \
--exclude-drafts --exclude-pre-releases --limit 100 \
--json tagName,publishedAt \
--jq 'max_by(.publishedAt) | {tagName, publishedAt}'Ensure that exact stable tag resolves locally before using it as a git log boundary. Fetch only that tag if it is missing. If a same-named local tag disagrees with the canonical remote, report the mismatch and use a separately resolved canonical commit; never force-rewrite the user's tag as part of an audit.
Find open release-related PRs:
gh pr list --repo Fission-AI/OpenSpec --state open \
--head changeset-release/main \
--json number,title,headRefName,baseRefName,url,reviewDecision,statusCheckRollupIdentify the Version Packages PR by headRefName == "changeset-release/main", not title alone. Separately list likely changeset PRs and inspect their files; require positive additions to .changeset/*.md. Do not mistake the Version Packages PR's changeset deletions for authored changesets, and do not rely on titles because a feature/fix PR may add release tracking.
Read the live release policy in .changeset/README.md, pending .changeset/*.md files on origin/main, and the Version Packages PR body/files when it exists.
List first-parent commits since the latest stable tag:
git log --first-parent --date=short \
--pretty=format:'%h%x09%ad%x09%s' <stable-tag>..origin/mainMap release-worthy merged PRs to existing changesets. Use PR files and changeset history; do not infer coverage from similar wording alone.
Classify the audit as:
missing-tracking: user-facing work intended for this release lacks a changeset;awaiting-changeset-review: a suitable changeset PR already exists;awaiting-merge-queue: an approved changeset or Version Packages PR is queued but has not landed on main;awaiting-version-update: required changesets are on main, but the Version Packages PR has not incorporated them;awaiting-version-review: the Version Packages PR is current but lacks approval;ready-to-publish: the Version Packages PR is current, approved, and green;publishing: the Version Packages PR merged but artifacts are incomplete;needs-finalization: npm, tag, and GitHub Release exist but notes are still raw;complete: package, tag, GitHub Release, and polished notes agree.Present a compact audit with the stable baseline, proposed version, covered changes, possible omissions, intentionally skipped internal/docs work, open PRs, and next action.
Follow .changeset/README.md rather than assuming every merged PR needs a changeset.
Include work selected for release tracking, especially:
Normally skip documentation-only work, tests, CI/tooling, and internal refactors. Flag ambiguous user-visible changes instead of silently excluding them. Ask the user only when the ambiguity materially changes release scope or the semantic version; otherwise use best judgment and let PR review be the approval gate.
Do this only for missing-tracking.
If an open changeset PR already covers the missing work, reuse it. Inspect its headRefName, head repository, and maintainerCanModify; fetch that exact head branch from its owning repository into a temporary worktree, make the update there, and push back to the same PR head. Stop if the branch is not writable. Do not create a duplicate PR or replacement branch.
Read .changeset/README.md immediately before authoring.
Only when no suitable PR exists, create a short changeset-<scope> branch from current origin/main. Use a temporary worktree so the operator's checkout remains untouched.
Prefer one changeset per coherent release unit. A single catch-up changeset may summarize several small items selected for the same release.
Use the exact package name "@fission-ai/openspec", the highest required semantic bump, only relevant headings, and user-focused descriptions.
Validate before pushing:
pnpm exec changeset statusCommit, push, and open a PR whose body lists the covered merged PRs and explains why the catch-up is needed.
Stop after returning the PR URL and request human approval. Do not approve it yourself.
On a later invocation, if the PR is approved and checks are green, merge or enqueue it only when the user asked to continue or complete the release. If GitHub uses a merge queue, inspect mergeQueueEntry, queue checks, and mergedAt; remain in awaiting-merge-queue until the PR actually lands on main. Then wait for the Changesets action on main to update the existing Version Packages PR. Poll with concise progress updates; do not push an empty commit or another branch update, because that can dismiss approval and restart the queue.
Before calling it ready:
main from changeset-release/main and is generated by the expected automation..changeset/*.md file on current main, excluding .changeset/README.md. Verify the PR consumes every one and contains the corresponding changelog content. If any pending changeset should be deferred, stop: remove or revise it through a separately reviewed change and wait for automation to regenerate the Version Packages PR before continuing.baseRefOid and headRefOid with gh pr view, require baseRefOid to equal current origin/main, and create clean detached temporary worktrees for both revisions. If the head object is missing locally, fetch the immutable pull/<number>/head ref first. Never validate from the operator's current worktree.pnpm exec changeset status --output changeset-status.json and read the expected package/version from that file. Install locked dependencies in the temporary worktree first if the Changesets CLI is unavailable.package.json, CHANGELOG.md, removed changeset files, PR body, and proposed version must all agree. This is a base-to-head comparison because the head has already consumed the changesets and cannot calculate the pending release itself.gh pr view / gh pr checks.If current but unapproved, return the URL and pause for human approval. If approved and green, merge or enqueue only when the user asked to release or continue. With merge queue enabled, do not treat approval, auto-merge enablement, or queue entry as the stable publish trigger; wait for mergedAt and confirmation that the merge reached main.
After the Version Packages PR merges:
npm view @fission-ai/openspec@<version> versionv<version> points at the expected commit;gh release view v<version> exists and is not a prerelease.Only enter this path when the user explicitly asks for a beta or prerelease.
release-prepare.yml workflow on main; do not calculate or set the beta version locally.beta dist-tag, remote tag, and prerelease GitHub Release.push run of release-prepare.yml occurred after the latest changeset reached main.changeset-release/main.Report:
© goern, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in .agents/skills/release-openspec of goern/forgejo-mcp.
Open the folder on GitHubat commit 64a14bc
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in goern/forgejo-mcp, which our catalogue first saw on October 7, 2026.
Release Openspec 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Release Openspec this skillgoern/forgejo-mcp | 140 | 1 repos | ~3.2k | Automated safety check: Pass | GPL-3.0 | |
| Cutting A ReleaseTriliumNext/Trilium | 38k | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| Mole CLI Release Flowtw93/Mole | 69k | — | ~2.5k | Automated safety check: Pass | GPL-3.0 | |
| Draft Release Notesjamiepine/voicebox | 57k | — | ~941 | Automated safety check: Pass | MIT | |
| Mole Release Notes Publishertw93/Mole | 69k | — | ~1.9k | Automated safety check: Pass | GPL-3.0 | |
| Release Bumpjamiepine/voicebox | 57k | — | ~1.1k | Automated safety check: Pass | MIT |
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.
tw93/Mole
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.
jamiepine/voicebox
Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.
tw93/Mole
Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.
jamiepine/voicebox
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
jfernandez/bpftop
Cut a new versioned release of bpftop — pick the version, open a version-bump PR, sign-tag the merge commit on main, and draft GitHub release notes in the project's established format.
goern/forgejo-mcp
Fetch and display notifications from both GitHub and Codeberg in a unified markdown view with clickable links.
goern/forgejo-mcp
Compress a memory file such as CLAUDE.md or a todo list into caveman format to save input tokens, keeping a readable backup.
goern/forgejo-mcp
Collaborative page-drafting mode for the OpenSpec docs. An agent skill from goern/forgejo-mcp.
goern/forgejo-mcp
Fact-checks OpenSpec user documentation with a fresh-context subagent that re-runs commands and checks claims against source.
goern/forgejo-mcp
Create a new worktrunk worktree (optionally in another repo) and switch this session's working directory into it.
goern/forgejo-mcp
Quick-reference card for caveman modes, skills and commands.
Works with
Categories
A skill your agent uses when releasing OpenSpec: audit merged work and changeset coverage, decide whether a catch-up changeset PR is needed, prepare or resume the Changesets Version Packages PR, cut…. Release Openspec is an agent skill from goern/forgejo-mcp. Use this skill when releasing OpenSpec: audit merged work and changeset coverage, decide whether a catch-up changeset PR is needed, prepare or resume the Changesets Version Packages PR, cut a beta or stable release, verify publishing, and polish GitHub release notes.
Release Openspec fits situations like: releasing OpenSpec: audit merged work and changeset coverage; decide whether a catch-up changeset PR is needed; resume the Changesets Version Packages PR; verify publishing.
Run `npx skills add goern/forgejo-mcp --skill release-openspec -a claude-code`. Or copy the skill folder (.agents/skills/release-openspec in goern/forgejo-mcp) into .claude/skills/release-openspec in your project. Claude Code loads it when a task matches its description.
Run `npx skills add goern/forgejo-mcp --skill release-openspec -a codex`. Or copy the skill folder (.agents/skills/release-openspec in goern/forgejo-mcp) into .agents/skills/release-openspec in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add goern/forgejo-mcp --skill release-openspec -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-openspec, .gemini/skills/release-openspec, .github/skills/release-openspec and .opencode/skills/release-openspec in your project.
Going by SKILL.md and its folder, Release Openspec needs the command-line tools its instructions call (gh, git, pnpm and npm).
SKILL.md contains no URLs. Its commands use gh, git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Release Openspec is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 806 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Release Openspec: Cutting A Release (TriliumNext/Trilium, 38k stars), Mole CLI Release Flow (tw93/Mole, 69k stars), Draft Release Notes (jamiepine/voicebox, 57k stars) and Mole Release Notes Publisher (tw93/Mole, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
goern (a GitHub user) maintains it in goern/forgejo-mcp, which has 140 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 6, 2026.
Source: goern/forgejo-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.