Simple English
moeru-ai/airi
Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.
Prepare and cut TFx semver releases (CHANGELOG, validation, tagging via Taskfile).
$ npx skills add straubt1/tfx --skill release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install straubt1/tfx release --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/straubt1/tfx.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/release .claude/skills/release && 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" agent skill from https://github.com/straubt1/tfx/tree/main/.cursor/skills/release into .claude/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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/straubt1/tfx/tree/main/.cursor/skills/releaseType 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 straubt1/tfx --skill release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install straubt1/tfx release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/straubt1/tfx.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/release .agents/skills/release && 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" agent skill from https://github.com/straubt1/tfx/tree/main/.cursor/skills/release into .agents/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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 straubt1/tfx --skill release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install straubt1/tfx release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/straubt1/tfx.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/release .cursor/skills/release && 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" agent skill from https://github.com/straubt1/tfx/tree/main/.cursor/skills/release into .cursor/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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/straubt1/tfx.git --path .cursor/skills/release--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 straubt1/tfx --skill release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install straubt1/tfx release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/straubt1/tfx.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/release .gemini/skills/release && 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" agent skill from https://github.com/straubt1/tfx/tree/main/.cursor/skills/release into .gemini/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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 straubt1/tfx releaseInstalls 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 straubt1/tfx --skill release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/straubt1/tfx.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/release .github/skills/release && 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" agent skill from https://github.com/straubt1/tfx/tree/main/.cursor/skills/release into .github/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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 straubt1/tfx --skill release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install straubt1/tfx release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/straubt1/tfx.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/release .opencode/skills/release && 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" agent skill from https://github.com/straubt1/tfx/tree/main/.cursor/skills/release into .opencode/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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.
releasePrepare and cut TFx semver releases (CHANGELOG, validation, tagging via Taskfile).
Release is an agent skill from straubt1/tfx. Prepare and cut TFx semver releases (CHANGELOG, validation, tagging via Taskfile). Use when the user asks to prepare a release, update CHANGELOG for a new version, cut vX.Y.Z, run release:patch/minor/major, or avoid post-merge release failures.
Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Changelog and release notes. The repository describes itself as: TFx is a standalone CLI for HCP Terraform and Terraform Enterprise. The licence is MIT.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f7494e5. 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:
gitgoghFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
keepachangelog.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
HOMEBREW_TAP_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release loads about 1.2k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 415 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 straubt1/tfx at commit f7494e5, republished under its MIT licence (© straubt1). 415 words, ~1,246 tokens.
.claude/skills/release/SKILL.md (or your agent's skills folder).Two-phase workflow: prepare on a branch (PR) → tag on main after merge. Never tag before the CHANGELOG PR is merged.
| Bump | Task | Example |
|---|---|---|
| Patch — bugfixes only | task release:patch | v0.4.0 → v0.4.1 |
| Minor — new features | task release:minor | v0.3.3 → v0.4.0 |
| Major — breaking changes | task release:major | v0.4.0 → v1.0.0 |
Confirm the target version with the user when ambiguous.
git checkout main && git pull
git checkout -b release/vX.Y.ZThis repo uses Keep a Changelog with versioned unreleased sections:
## [vX.Y.Z] - UnreleasedIf an unreleased section already exists (e.g. [v0.3.4] - Unreleased but releasing v0.4.0): rename the heading to the target version and review bullets.
If no unreleased section exists, create one after the intro block. Gather changes since the latest tag:
git log $(git describe --tags --abbrev=0 --match "v[0-9]*.[0-9]*.[0-9]*")..HEAD --onelineGroup bullets under Added, Changed, Fixed, Removed. Include PR numbers where available.
Fix compare links at the bottom of CHANGELOG.md:
[Unreleased]: https://github.com/straubt1/tfx/compare/vX.Y.Z...HEAD
[vX.Y.Z]: https://github.com/straubt1/tfx/compare/vPREVIOUS...vX.Y.ZReplace vPREVIOUS with the tag before this release.
Leave the date as Unreleased in the prep PR.
Run all checks — do not skip:
# CHANGELOG must contain the exact version string the release task will look for
grep "\[vX.Y.Z\]" CHANGELOG.md
go build ./...
go test ./...
# Simulates goreleaser build (no tag required); cask written to dist/
task release:dry-runGoreleaser v2 may emit 2 informational dockers_v2 warnings; these are harmless.
Do not edit version/version.go — goreleaser injects the version from the git tag at build time.
Stage only release-prep files (typically CHANGELOG.md; include the skill if updated):
git add CHANGELOG.md
git push -u origin HEAD
gh pr create --title "Prepare release vX.Y.Z" --body "$(cat <<'EOF'
## Summary
- Finalize CHANGELOG for vX.Y.Z
## Test plan
- [ ] `grep "\[vX.Y.Z\]" CHANGELOG.md` passes
- [ ] `go build ./...` and `go test ./...` pass
- [ ] `task release:dry-run` succeeds
## After merge
On `main`, run the matching release task: `task release:<patch|minor|major>`.
EOF
)"Do not commit or push unless the user asks.
Use the Taskfile release tasks only. Do not tag, push tags, or cut the release manually.
On up-to-date main:
git checkout main && git pull
task release:minor # pick the task that matches the bump chosen in Phase 1| Bump | Task |
|---|---|
| Patch | task release:patch |
| Minor | task release:minor |
| Major | task release:major |
Each task delegates to _release-bump, which:
v*.*.* git tagCHANGELOG.md lacks a [vNEXT_VERSION] entryAfter the task completes, monitor GitHub Actions — the release workflow runs on tag push and publishes binaries, Docker (GHCR), Linux packages, and the Homebrew tap.
Requires HOMEBREW_TAP_TOKEN in repo secrets (classic PAT with repo scope on straubt1/homebrew-tap).
To test the pipeline locally before tagging: task release:dry-run.
| Symptom | Cause | Fix |
|---|---|---|
_release-bump warns about missing CHANGELOG | Heading uses wrong version (e.g. v0.3.4 but tagging v0.4.0) | Rename section to exact target: ## [v0.4.0] |
| Goreleaser fails in CI | Build/test issue on main | Fix on main, delete bad tag if created, re-tag |
| Homebrew tap not updated | Missing/expired HOMEBREW_TAP_TOKEN | Check repo secrets; re-run release workflow |
| Wrong version published | Used wrong bump task | Delete remote tag (with user approval), fix CHANGELOG, re-cut |
git describe --tags --abbrev=0 --match "v[0-9]*.[0-9]*.[0-9]*" # current tag
task release:dry-run # local pipeline test
task release:patch | release:minor | release:major # cut releaseSee also: DEVELOPMENT.md § Releasing, CLAUDE.md § Release Process.
© straubt1, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .cursor/skills/release of straubt1/tfx.
Open the folder on GitHubat commit f7494e5
Release 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 this skillstraubt1/tfx | 110 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Simple Englishmoeru-ai/airi | 50k | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| StarRocks Release NotesStarRocks/starrocks | 12k | — | ~1.9k | Automated safety check: Notes | Apache-2.0 | |
| Cutting A ReleaseTriliumNext/Trilium | 38k | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| React Router Release Notes Prepremix-run/react-router | 57k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Mole CLI Release Flowtw93/Mole | 70k | — | ~2.5k | Automated safety check: Pass | GPL-3.0 |
moeru-ai/airi
Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.
StarRocks/starrocks
Drafts English release notes for a StarRocks patch release from the PRs merged into its release branch, then opens a documentation PR and hands translation to /translate.
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.
remix-run/react-router
Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.
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.
PrefectHQ/fastmcp
Cut a FastMCP release end to end. An agent skill from PrefectHQ/fastmcp.
straubt1/tfx
Upgrade macOS Go and all module dependencies in TFx via task go:upgrade, then verify build and tests.
straubt1/tfx
This skill should be used when the user says "reflection", "reflect on the changes", "reflect on this session", or asks to capture lessons learned from the current conversation.
straubt1/tfx
Create a VHS .tape file for recording terminal GIF/MP4/WebM demos.
straubt1/tfx
Create a new function in the data/ package following project conventions
Categories
Prepare and cut TFx semver releases (CHANGELOG, validation, tagging via Taskfile). Release is an agent skill from straubt1/tfx. Prepare and cut TFx semver releases (CHANGELOG, validation, tagging via Taskfile).
Release fits situations like: the user asks to prepare a release; update CHANGELOG for a new version; run release:patch/minor/major; avoid post-merge release failures.
Run `npx skills add straubt1/tfx --skill release -a claude-code`. Or copy the skill folder (.cursor/skills/release in straubt1/tfx) into .claude/skills/release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add straubt1/tfx --skill release -a codex`. Or copy the skill folder (.cursor/skills/release in straubt1/tfx) into .agents/skills/release 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 straubt1/tfx --skill release -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, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.
Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git, go and gh) and credentials named HOMEBREW_TAP_TOKEN. Our summary lists: Docker; A credential in HOMEBREW_TAP_TOKEN.
SKILL.md names 1 domain. As links in the text: keepachangelog.com. 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 is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Release: Simple English (moeru-ai/airi, 50k stars), StarRocks Release Notes (StarRocks/starrocks, 12k stars), Cutting A Release (TriliumNext/Trilium, 38k stars) and React Router Release Notes Prep (remix-run/react-router, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
straubt1 (a GitHub user) maintains it in straubt1/tfx, which has 110 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on August 28, 2026.
Source: straubt1/tfx on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.