Git Release
wesammustafa/opencode-primer
Draft release notes from merged PRs, propose a semver bump, and emit a copy-pasteable gh release create command.
Chooses ecosystem-native release and changelog tooling (Changesets, Melos, release-plz) plus binary distribution (GitHub Release tarballs, install.sh) when the product is an executable.
$ npx skills add Arenukvern/mcp_flutter --skill release-changelog-harness -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Arenukvern/mcp_flutter release-changelog-harness --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/Arenukvern/mcp_flutter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release-changelog-harness .claude/skills/release-changelog-harness && 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-changelog-harness" agent skill from https://github.com/Arenukvern/mcp_flutter/tree/main/.agents/skills/release-changelog-harness into .claude/skills/release-changelog-harness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-changelog-harness", 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/Arenukvern/mcp_flutter/tree/main/.agents/skills/release-changelog-harnessType 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 Arenukvern/mcp_flutter --skill release-changelog-harness -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Arenukvern/mcp_flutter release-changelog-harness --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arenukvern/mcp_flutter.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/release-changelog-harness .agents/skills/release-changelog-harness && 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-changelog-harness" agent skill from https://github.com/Arenukvern/mcp_flutter/tree/main/.agents/skills/release-changelog-harness into .agents/skills/release-changelog-harness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-changelog-harness", 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 Arenukvern/mcp_flutter --skill release-changelog-harness -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Arenukvern/mcp_flutter release-changelog-harness --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arenukvern/mcp_flutter.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/release-changelog-harness .cursor/skills/release-changelog-harness && 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-changelog-harness" agent skill from https://github.com/Arenukvern/mcp_flutter/tree/main/.agents/skills/release-changelog-harness into .cursor/skills/release-changelog-harness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-changelog-harness", 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/Arenukvern/mcp_flutter.git --path .agents/skills/release-changelog-harness--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 Arenukvern/mcp_flutter --skill release-changelog-harness -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Arenukvern/mcp_flutter release-changelog-harness --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arenukvern/mcp_flutter.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/release-changelog-harness .gemini/skills/release-changelog-harness && 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-changelog-harness" agent skill from https://github.com/Arenukvern/mcp_flutter/tree/main/.agents/skills/release-changelog-harness into .gemini/skills/release-changelog-harness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-changelog-harness", 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 Arenukvern/mcp_flutter release-changelog-harnessInstalls 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 Arenukvern/mcp_flutter --skill release-changelog-harness -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Arenukvern/mcp_flutter.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/release-changelog-harness .github/skills/release-changelog-harness && 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-changelog-harness" agent skill from https://github.com/Arenukvern/mcp_flutter/tree/main/.agents/skills/release-changelog-harness into .github/skills/release-changelog-harness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-changelog-harness", 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 Arenukvern/mcp_flutter --skill release-changelog-harness -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Arenukvern/mcp_flutter release-changelog-harness --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arenukvern/mcp_flutter.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/release-changelog-harness .opencode/skills/release-changelog-harness && 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-changelog-harness" agent skill from https://github.com/Arenukvern/mcp_flutter/tree/main/.agents/skills/release-changelog-harness into .opencode/skills/release-changelog-harness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-changelog-harness", 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-changelog-harnessChooses ecosystem-native release and changelog tooling (Changesets, Melos, release-plz) plus binary distribution (GitHub Release tarballs, install.sh) when the product is an executable.
Release Changelog Harness is an agent skill from Arenukvern/mcp_flutter. Chooses ecosystem-native release and changelog tooling (Changesets, Melos, release-plz) plus binary distribution (GitHub Release tarballs, install.sh) when the product is an executable. Use for release CI, install.sh, versioning, CHANGELOGs, shipping MCP/CLI without clone, or meta repos that only ship skills via npx skills—not domain app tutorials.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/binary-release-contract.md`, `references/ecosystem-tooling.md` and `references/mixture-of-experts.md`).
It sits in Development, covering Changelog and release notes. It works with Model Context Protocol, GitHub and Git. The repository describes itself as: MCP Toolkit for Flutter AI Agent Driven Development (MCP/CLI + custom client side tools) - via closed feedback loop (visual & semantic snapshot) and high client side… The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 62f3ee1. 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:
pnpmnpxgitchangesetdartFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.commelos.invertase.devFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GITHUB_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release Changelog Harness loads about 2.6k tokens when it runs, and up to ~7.2k if it reads all its reference files. Until then it costs about 94 tokens; SKILL.md has 1,017 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 Arenukvern/mcp_flutter at commit 62f3ee1, republished under its MIT licence (© Arenukvern). 1,017 words, ~2,596 tokens.
.claude/skills/release-changelog-harness/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Make releases understandable: every version bump has structured intent that agents and humans can read in git—not only in a maintainer’s head or a GitHub Releases textarea.
This skill is meta harness culture (which tool, which gates, which docs). It is not a full tutorial for every package manager.
| Expert lens | Verdict on “use JS Changesets everywhere” |
|---|---|
| JS monorepo maintainer | Strong default: .changeset/*.md + changeset version beats hand-editing five package.json files. |
| Dart / Flutter publisher | Weak fit as-is: pub uses tags + CHANGELOG.md; monorepos often use Melos version / changelog, not npm Changesets. |
| Rust / Go shipper | Use release-plz, cargo-release, or git-cliff—forcing Changesets adds alien workflow. |
| Agent operator | Wins when notes live as small structured files in git agents can read and PR—not prose-only in Slack. |
Multi-repo steward (~/mcp) | One legibility contract across siblings; different generators per ecosystem is fine. |
| Skill Steward charter | Teach when + gate + doc placement; link to upstream docs; do not paste 200-line configs into SKILL.md. |
Improved framing (use this):
Adopt the release legibility contract first; pick the ecosystem-native generator second (Changesets is one excellent generator for JS workspaces, not the universal hammer).
See mixture-of-experts.md for extended debate and anti-patterns.
Before picking a tool, agree the repo obeys:
.changeset/foo.md, conventional commit scope, or ADR note)—not “bump version when you remember.”CHANGELOG.md (or per-package changelogs) reflects what shipped; agents can answer “what changed in vX?”| Signal in repo | Default tooling | Notes |
|---|---|---|
pnpm-workspace.yaml / npm workspaces | @changesets/cli | Industry standard for JS monorepos; pair with GitHub Action. |
| Single Node package, high release cadence | release-please or Changesets | release-please = conventional commits → PR; Changesets = explicit human/agent intent files. |
Dart monorepo (melos.yaml) | Melos version + changelog | Align with pub publish order in DX_FAQ. |
| Single Dart package | CHANGELOG.md + git tag + dart pub publish | Keep entries agent-editable markdown. |
| Rust workspace | release-plz or cargo-release + git-cliff | Prefer automation that opens version PRs. |
| Product harness w/ binaries | release-please + tag CI + install.sh | Do not add a second version source; follow binary-release-contract.md |
| Meta + CLI binary (Skill Steward) | Changesets + single Release workflow + install.sh | Version PR updates git truth first; the release workflow tags, builds assets, creates/updates GitHub Release, and verifies latest/install trust per ADR 0014 |
Full matrix: ecosystem-tooling.md. Binary/install: binary-release-contract.md.
repo-quality-system-lifecycle)Use repo-quality-system-lifecycle archetypes (app, library, CLI/tool, plugin, harness, meta/governance). Meta and harness repos need legibility; app repos need legibility and runtime compatibility notes.
| Question | If yes → |
|---|---|
| Multiple publishable JS packages? | Changesets (default) |
| Single package, commit-msg driven releases? | release-please |
| Maintainer writes explicit release notes per PR? | Changesets |
| Pub or Cargo primary? | Ecosystem table above—not Changesets |
Record choice in docs/decisions/NNNN-release-changelog-tooling.md when more than one option is reasonable.
| Surface | Action |
|---|---|
| DX_FAQ | Memory-palace block: add changeset, version, publish, verify tag |
| CI | Block publish/tag if changesets/changelog policy violated; for binaries, use one release owner or an explicit workflow_run/PAT handoff |
| AGENTS.md | One row in doc router—no full Changesets essay |
| CONTRIBUTING | “Every user-facing PR adds a changeset or CHANGELOG entry” |
Contributor adds:
---
"package-name": patch
---
Short imperative summary agents can quote in release notes.By default, Changesets ignores packages marked with "private": true in package.json. To allow version bumps for a private root package or private workspace modules, update .changeset/config.json to include:
"privatePackages": {
"version": true,
"tag": false
}Use "tag": false when a custom release script owns the public vX.Y.Z tag. Use "tag": true only when Changesets itself should create package-scoped tags.
Maintainer flow:
pnpm changeset # or npx @changesets/cli
pnpm changeset version
pnpm install # if lockfile must update
git commit -am "chore: version packages"Publish: project-specific (changeset publish, GitHub Action, or npm provenance)—document exact commands in DX_FAQ, not here.
For automated Changesets releases, prefer:
merge feature PR with changeset
→ CI opens/updates Version PR
→ merge Version PR
→ same Release workflow creates vX.Y.Z, builds artifacts, creates/updates GitHub Release, verifies latest release stateIf the tag is pushed with GITHUB_TOKEN, do not depend on a separate on: push: tags workflow to build assets; GitHub suppresses recursive workflow triggers for that token.
| Ship unit | Pattern |
|---|---|
| Executable MCP/CLI | GitHub Release binaries + checksums + install.sh — binary-release-contract.md |
| Skills only | npx skills add owner/repo — no repo tarball for consumers |
| Libraries | pub.dev / npm / crates.io per ecosystem table |
Skill Steward: skills via npx skills; steward_cli precompiled AOT binaries via GitHub Releases & install.sh (ADR 0014).
install.sh defaults to latest and pinned examples use placeholders or generated checks| Anti-pattern | Why it hurts |
|---|---|
| Changesets in a Rust-only repo | Wrong culture; contributors ignore it |
| Changelog only on GitHub Releases | Agents in repo context miss it |
| 1,000-line release doc in AGENTS.md | Crowds task context; belongs in DX_FAQ / ADR |
| Skipping changesets “because AI will write CHANGELOG at release” | Non-deterministic; no PR-time review |
| Version bumps without consumer-facing sentence | Users and agents can’t assess upgrade risk |
| Binary Releases without changelog in git | Users see version; agents miss intent |
Separate tag-triggered binary workflow after a GITHUB_TOKEN tag push | GitHub suppresses recursive workflow triggers; latest release/assets can silently lag |
| Static pinned install examples with real old versions | README/DX says one thing while GitHub Releases/install.sh say another |
git clone as end-user install for a server product | Use install.sh + Release assets (binary release pattern) |
| Skill | Use for |
|---|---|
repo-quality-system-lifecycle | Repo archetype, mechanical gates, evidence path |
mcp-harness-repo-maintainer | Typed actions, probes, benchmarks, CLI/MCP parity |
repository-governance-lifecycle | ADRs, DESIGN_FAQ/DX_FAQ updates, and plan hygiene |
skill-source-citations | Durable release-tooling sources |
npx skills add arenukvern/skill_steward --skill release-changelog-harness© Arenukvern, MIT. 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 4 other files (references) in .agents/skills/release-changelog-harness of Arenukvern/mcp_flutter.
Open the folder on GitHubat commit 62f3ee1
Release Changelog Harness 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 Changelog Harness this skillArenukvern/mcp_flutter | 387 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Git Releasewesammustafa/opencode-primer | 399 | — | ~409 | Automated safety check: Pass | MIT | |
| Release Crater3bl-org/r3bl-open-core | 485 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Rea Changelog Updatemorluto/rea | 80k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Draft Release Notesjamiepine/voicebox | 57k | — | ~941 | Automated safety check: Pass | MIT | |
| Mole Release Notes Publishertw93/Mole | 70k | — | ~1.9k | Automated safety check: Pass | GPL-3.0 |
wesammustafa/opencode-primer
Draft release notes from merged PRs, propose a semver bump, and emit a copy-pasteable gh release create command.
r3bl-org/r3bl-open-core
Publish a crate release to crates.io with changelog, standalone release notes, git tag, and GitHub release.
morluto/rea
Prepare or rewrite REA release changelogs and GitHub release notes from pinned Git history, with verified contributor thanks and Release Please synchronization.
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.
Arenukvern/mcp_flutter
Design, implement, and integrate generalized validation harnesses across a producer-consumer boundary after a local harness contract exists.
Arenukvern/mcp_flutter
Run a Mixture of Experts (MoE) audit on any topic, plan, codebase, evidence archive, or process.
Arenukvern/mcp_flutter
Plan and document handoffs, parent lane contracts, and parallel batch contracts between specialized AI agents (foreman, workers, reviewers).
Arenukvern/mcp_flutter
Designs public or private Agent Skill and plugin marketplaces for Cursor, Claude Code, Codex, Zed, Open Plugin, and npx skills—manifest layout, install matrix, and Skill Steward vs product boundaries.
Arenukvern/mcp_flutter
Master orchestration for repository governance, North Star impact, sub-Star boundaries, and repair-first or evidence-first drift checks.
Arenukvern/mcp_flutter
Scaffold and formally review a new Agent Skill in this marketplace repo.
Works with
Categories
Chooses ecosystem-native release and changelog tooling (Changesets, Melos, release-plz) plus binary distribution (GitHub Release tarballs, install.sh) when the product is an executable. Release Changelog Harness is an agent skill from Arenukvern/mcp_flutter.sh) when the product is an executable.
Release Changelog Harness fits situations like: shipping MCP/CLI without clone; meta repos that only ship skills via npx skills—not domain app tutorials.
Run `npx skills add Arenukvern/mcp_flutter --skill release-changelog-harness -a claude-code`. Or copy the skill folder (.agents/skills/release-changelog-harness in Arenukvern/mcp_flutter) into .claude/skills/release-changelog-harness in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Arenukvern/mcp_flutter --skill release-changelog-harness -a codex`. Or copy the skill folder (.agents/skills/release-changelog-harness in Arenukvern/mcp_flutter) into .agents/skills/release-changelog-harness 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 Arenukvern/mcp_flutter --skill release-changelog-harness -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-changelog-harness, .gemini/skills/release-changelog-harness, .github/skills/release-changelog-harness and .opencode/skills/release-changelog-harness in your project.
Going by SKILL.md and its folder, Release Changelog Harness needs the command-line tools its instructions call (pnpm, npx, git, changeset and dart) and credentials named GITHUB_TOKEN. Our summary lists: Node.js; A credential in GITHUB_TOKEN.
SKILL.md names 2 domains. As links in the text: github.com and melos.invertase.dev. 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 Changelog Harness is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k 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 4.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Release Changelog Harness: Git Release (wesammustafa/opencode-primer, 399 stars), Release Crate (r3bl-org/r3bl-open-core, 485 stars), Rea Changelog Update (morluto/rea, 80k stars) and Draft Release Notes (jamiepine/voicebox, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Arenukvern (a GitHub user) maintains it in Arenukvern/mcp_flutter, which has 387 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 3, 2026.
Source: Arenukvern/mcp_flutter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.