release
ONLY activated by the explicit /release slash command.
Skill by fallguyconsulting
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/fallguyconsulting-release
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/release
What's inside
- Skill name
release- Description
- ONLY activated by the explicit /release slash command. Never auto-triggered by conversation content. Project-local maintenance skill for releasing THIS repo (the plumbline plugin): determine the semver bump from changes since the last tag, bump the plugin version in .claude-plugin/plugin.json, commit, tag, and push.
- License
- Apache-2.0
- Instructions
- 109 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# /release — cut a plumbline plugin release
Releases **this repository** (the plumbline plugin). It inspects what changed since the last git tag, decides a semver bump, applies it to the `version` field in `.claude-plugin/plugin.json`, commits the pending work as a release commit, tags it `vX.Y.Z`, and pushes the branch and the tag to `origin`.
This is a repo-maintenance tool for the plugin author. It is **not** part of the distributed plugin (that is why it lives in `.claude/skills/`, not `skills/`). Do not add it to any user-facing skill table.
This skill commits and pushes. The user invoking `/release` **is** the authorization to do so — run end to end without pausing for confirmation. Only stop on a genuine preflight failure (below). Do not generate release notes.
## Preflight — abort with a clear message if any fail
- Inside a git repo, on a branch (not detached HEAD): `git rev-parse --abbrev-ref HEAD` must not be `HEAD`.
- An `origin` remote exists: `git remote get-url origin`.
- `.claude-plugin/plugin.json` exists and has a `"version"` field.
If a check fails, report exactly what is missing and stop. Do not try to repair the repo.
## Procedure
### 1. Find the baseline and survey the changes
```bash
last_tag=$(git describe --tags --abbrev=0 2>/dev/null)
echo "last_tag: ${last_tag:-<none>}"
git status --short
```
- **A tag exists** → the changes being released are `git log --oneline "$last_tag"..HEAD` and `git diff "$last_tag"..HEAD`, plus any uncommitted changes (`git diff HEAD`, and untracked files from `git status --short`). Read enough of the diff to judge the bump.
- **No tag exists (first release)** → there is no baseline to diff against. Assume everything already committed represents the current `version`, and the changes being released are the uncommitted ones (`git diff HEAD` + untracked). Read those.
**Nothing to release:**
- No tag **and** a clean working tree → nothing has changed since the current version was set. Create and push a baseline tag at the current version (`v<current>`), report that you established the baseline, and stop. No bump, no commit.
- A tag exists, `"$last_tag"..HEAD` is empty, **and** the tree is clean → report "nothing to release since `$last_tag`" and stop.
### 2. Read the current version
Read the `version` field from `.claude-plugin/plugin.json` (e.g. `0.5.1`). Tags are this string prefixed with `v` (e.g. `v0.5.1`); the `version` field itself carries no `v`.
### 3. Decide the bump
Judge **major / minor / patch** from what the change set does to the plugin's surface. The surface is what consumers depend on:
- The `plumbline` CLI binary and its subcommands (lint, patterns, budget, suggest, slug, starter, doctor, explain, ci) — names, flags, exit codes, output shape.
- The PostToolUse hook (`hooks/post-edit.js`) — its stdin/stdout contract with Claude Code.
- The slash commands under `skills/` — names and behavior.
- The `.plumbline.json` schema — field names, types, accepted values.
- The lint rules themselves (comment-hygiene exemptions, citation-resolution semantics) — what previously-clean code now fails on.
- The canonical cheatsheet (`docs/plumbline-cheatsheet.md`) materialized into consuming projects by `/plumbline:affirm`.
| Level | Bump | When |
|-------|------|------|
| **major** (`X`) | breaking | A CLI subcommand or slash command is removed or renamed; the lint's exit-code contract changes; the post-edit hook's stdin/stdout contract changes; `.plumbline.json` schema changes incompatibly (field removed, renamed, or repurposed); the comment-hygiene rule changes such that previously-clean projects begin failing (e.g. an exemption removed or narrowed). |
| **minor** (`Y`) | feature | A new CLI subcommand or slash command; a new lint check; a new structural exemption or citation-resolution mode; a new `.plumbline.json` field whose default preserves prior behavior; any backward-compatible capability added to an existing subcommand or skill. |
| **patch** (`Z`) | fix | Bug fixes in the lint, hook, or skills; prose tightening in docs and the cheatsheet that doesn't shift what the lint enforces; internal refactors that leave the published surface unchanged. |
Print the chosen level and a one-line rationale citing what in the change set drove it. If the change set spans more than one level, the highest level wins. If it is genuinely ambiguous between two levels, choose the **higher** and say so. Compute the new version from the current one.
### 4. Cheatsheet-drift note (informational, do not abort)
If `docs/plumbline-cheatsheet.md` is among the changed files, mention in the final report that consuming projects will need to re-run `/plumbline:affirm` to pick up the new cheatsheet. This is informational only — never blocks the release.
### 5. Apply the bump
The version string is duplicated in two places — both must move together so `/plumbline:version` keeps reporting the truth:
1. The `version` field in `.claude-plugin/plugin.json` (the plugin manifest, source of truth).
2. The `VERSION` constant in `bin/plumbline` (what `plumbline version` echoes; near the top of the file as `const VERSION = '...';`).
Edit both with the Edit tool — single-line, precise changes that preserve formatting. Do not touch any other field or constant. After the edits, run `node bin/plumbline version` and confirm it prints the new version; if it doesn't, fix the `VERSION` constant before continuing. Any future location that hardcodes the version also belongs in this step — grep for the previous version string to catch drift (`git grep -n "<prev>"`).
### 6. Commit
```bash
git add -A
```
Then commit. Message body is `Release vX.Y.Z`. End the commit message with the trailer this environment requires, naming the current model — e.g.:
```
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
```
### 7. Tag
Annotated tag on the release commit:
```bash
git tag -a "vX.Y.Z" -m "Release vX.Y.Z"
```
### 8. Push
Push the current branch and the new tag to `origin`:
```bash
git push origin "$(git rev-parse --abbrev-ref HEAD)"
git push origin "vX.Y.Z"
```
### 9. Report
Print: previous version → new version, the bump level and its one-line rationale, the files in the release commit, the commit SHA, the tag name, and confirmation that branch and tag were pushed. Include the cheatsheet-drift note from step 4 if it fired.
## Notes
- This skill bumps only the plugin `version` in `.claude-plugin/plugin.json`. It does not touch `.claude-plugin/marketplace.json` (which carries plugin metadata, not version) or any other manifest.
- The first release (no prior tag) cannot precisely separate "already released" from "new" commits, so it treats committed history as the current version and the uncommitted tree as the new release. Every release after the first diffs cleanly against the previous tag.
- Prior commits referenced versions in their messages (e.g. `fix(v0.5.1): ...`) without tags being created. The first `/release` invocation will therefore land in the "no tag exists" branch — that is expected, and the baseline-or-bump logic in step 1 handles it.From fallguyconsulting/plumbline, Apache-2.0.
More from fallguyconsulting/plumbline
- 0.471score
explain
fallguyconsulting
Show the canonical definition and examples for a Plumbline concept — a check code, the citations config, or the docstring opt-in marker.
SkillCFreshness: CClaude Code +9 - 0.471score
audit
fallguyconsulting
Audit the current project against the Plumbline lint.
SkillCFreshness: CClaude Code +9 - 0.471score
budget
fallguyconsulting
One-way violation ratchet for projects whose Plumbline backlog is too large to clear at once.
SkillCFreshness: CClaude Code +9 - 0.471score
ci
fallguyconsulting
Emit a CI workflow that runs the Plumbline lint and budget check on every PR.
SkillCFreshness: CClaude Code +9 - 0.471score
doctor
fallguyconsulting
Diagnose the Plumbline installation in the current project — config present and valid, cheatsheet committed, plugin enabled, budget baseline if used.
SkillCFreshness: CClaude Code +9 - 0.471score
patterns
fallguyconsulting
Cluster Plumbline lint violations by shape so a hundred similar violations surface as one cluster with a proposed bulk fix.
SkillCFreshness: CClaude Code +9 - 0.471score
port
fallguyconsulting
Generate a complete Plumbline port plan for the current project.
SkillCFreshness: CClaude Code +9 - 0.471score
slug
fallguyconsulting
Turn a prose description into a stable kebab-case slug suitable for citation identifiers (e.g.
SkillCFreshness: CClaude Code +9 - 0.471score
starter
fallguyconsulting
Generate a project-shaped .plumbline.json by scanning the repo for known patterns (Go module, Node package, ok-planner sibling, generated dirs).
SkillCFreshness: CClaude Code +9 - 0.471score
suggest
fallguyconsulting
Walk Plumbline lint violations and propose a fix for each — delete the comment, convert its load-bearing content to code (assertion / test / type / name), or…
SkillCFreshness: CClaude Code +9 - 0.471score
affirm
fallguyconsulting
Affirm the Plumbline rules in this project.
SkillCFreshness: CClaude Code +9 - 0.461score
version
fallguyconsulting
Print the installed plumbline plugin version.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 25, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/fallguyconsulting/plumbline
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from fallguyconsulting
- 0.471score
explain
fallguyconsulting
Show the canonical definition and examples for a Plumbline concept — a check code, the citations config, or the docstring opt-in marker.
SkillCFreshness: CClaude Code +9 - 0.471score
audit
fallguyconsulting
Audit the current project against the Plumbline lint.
SkillCFreshness: CClaude Code +9 - 0.471score
budget
fallguyconsulting
One-way violation ratchet for projects whose Plumbline backlog is too large to clear at once.
SkillCFreshness: CClaude Code +9 - 0.471score
ci
fallguyconsulting
Emit a CI workflow that runs the Plumbline lint and budget check on every PR.
SkillCFreshness: CClaude Code +9 - 0.471score
doctor
fallguyconsulting
Diagnose the Plumbline installation in the current project — config present and valid, cheatsheet committed, plugin enabled, budget baseline if used.
SkillCFreshness: CClaude Code +9 - 0.471score
patterns
fallguyconsulting
Cluster Plumbline lint violations by shape so a hundred similar violations surface as one cluster with a proposed bulk fix.
SkillCFreshness: CClaude Code +9
Cite this page
release skill. Agent Mart. https://agentmart.dev/skills/fallguyconsulting-release (last updated 2026-10-24)