push-release
Skill3 starsChanged 10 days agoMITView on GitHub
bumps the four version files, then hands over the tag and the promotion (saves report to .construct/)
2 other projects use a version of this.
Adopted by
Most recently taken up by
- liaohch3/claude-taptheir own version, first seen Oct 25, 2026
- Miyamura80/MCP-Templatetheir own version, first seen Jun 29, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- liaohch3/claude-tap★ 3.3ksame name
- Miyamura80/MCP-Template★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- export-readmeSkill
- test-skillsSkill
- validate-skillsSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 4 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 49
IF --quick, STOP after the inline report.
- Very specific: line 64
CREATE the file first if it does not exist, with # <audit_file> as its only line
- Very specific: line 95
RUN bash .claude/skills/export-readme/export-readme.sh --check FIRST.
- Very specific: line 97
RUN bash .claude/skills/push-release/push-release.sh --check before claiming a version
- Distinctive: line 98
READ the preflight aborts rather than working around one.
- Very specific: line 119
every field prints, in this order.
- Distinctive: line 120
every value is COPIED from the source named beside it, never composed fresh
- Distinctive: line 121
ask what they are actually trying to do, and what they have already tried
- Distinctive: line 123
run no step, write no file, and never fall through to step 1
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Instructions
the scheme
MAJOR.MINOR.PATCH, stored in the repo and moved by a person:
mainis the integration trunk and reaches no user, because the marketplace ref isproduction- a merge to
productionis the release, and the bumped version is what fires/plugin update - PATCH is the default, since most releases here are fixes to skills that already shipped
- MINOR is new work a user would notice, and MAJOR is a break in how a skill is invoked
- the commit count is no longer a version field;
git loganswers that question better
the four files
one version said four times, and every one of them ships inside the same install:
plugins/operator/.claude-plugin/plugin.jsonplugins/gitgud/.claude-plugin/plugin.jsonplugins/retardify/.claude-plugin/plugin.json.claude-plugin/marketplace.json, its own top-level field, never a per-plugin entry
plugin.json outranks a marketplace entry's version, so a drifted pair resolves silently to the
manifest. A value read only when it agrees is worse than an absent one, which is why no entry
carries the field. The install a user gets is one directory, so all four move together or none do.
the branches
production has to stay a fast-forward of the trunk, and the sidecar refuses when it is not:
- a commit landing on
productiondirectly ends every latermerge --ff-only - a trunk rule requiring a pull request rejects the bump push, so the sidecar reads that rule first
- under that rule the bump branches before it commits, and the tag waits for the merged sha
- so the bump is authored on the trunk, before the promotion, never by a workflow reacting to it
- nothing is deployed by the push; users pull, so the promotion IS the release
- the release notes generate from the commits, which is why no CHANGELOG is written here
the run
--checkis the read-only gate: the four files agree and every value parses as semver--quickis that same gate under the name every other ci sidecar answers to--strictpromotes the warning tier to a failure; a plugin the marketplace never lists is one- IF
--quick, STOP after the inline report;audit_file: noneconfirms it, and nothing is appended - ci runs that flag and nothing else, since it is pure, reaches no network, and writes nothing
- a bare run means
--patch;--minorand--majordiffer only in the number they compute - the write is a
sedon the version line, so every hand-formatted object survives it - the commit, the tag, both pushes, the ff-merge and the release call are emitted, never run
trunk gatein the telemetry says which sequence you got:directorpull request required
the artifact
append one entry to [audit_file], in the shape under ## the entry below:
- the heading reads
## Release Audit #[next_audit]: [timestamp], both taken from the telemetry stateis the repo, the branches, the version move and the trunk gate, one clause eachfilesis the FILE/WAS/NOW table the sidecar printed, as a markdown tablehandoveris the emitted sequence, fenced as bash and copied verbatim from the terminal- copy the handover rather than retyping it, since a retyped step is a step that can drift
- CREATE the file first if it does not exist, with
# <audit_file>as its only line --checkreturns before the telemetry, so that mode names no artifact and writes none
the entry
the artifact this skill appends to;
/gitgud:auditgrades the shape on its next run
.construct/maintainer/push-release/YYYY-MM-DD.md
one file per day, appended to by every bump:
- an entry captures one bump at a moment in time, so it is never edited after the fact
- lines are hyphen bullets holding a single clause, capped at 100 characters
Release Audit #1: YYYY-MM-DD HH:MM
state
the repo, the trunk and production branches, the release type, the version move, the trunk gate
example:
- repo: owner/name, trunk: main, production: production
- release type: patch, version: 0.12.0 -> 0.12.1
- trunk gate: pull request required, promoting 4 commit(s)
files
the four version files, with the value each held before and after
handover
the emitted sequence, fenced as bash, exactly as the terminal printed it
Verify
not part of the tool; these run after a bump or before any release claim
- RUN
bash .claude/skills/export-readme/export-readme.sh --checkFIRST; a release ships the plugin copies, so a drifted one reaches users as the version that fixed nothing - RUN
bash .claude/skills/push-release/push-release.sh --checkbefore claiming a version - READ the preflight aborts rather than working around one; each names a way a release half-lands
- CONFIRM the telemetry table in chat before pasting, since the four files are already written
- STAGE only those four; a release commit carrying other work buries what the bump was for
- PASTE the handover in order, since the tag has to reach origin before the release call resolves
Help
IF the invocation carries
--helpor-h, this section is the whole turn:
SKILL: /plugin:name
DESCRIPTION: <the `description` frontmatter, verbatim>
POSTURE: <the readme index's keyword for this skill>
FLAGS:
- --flag: <what it changes, in the telemetry bullet's own words>
ARGUMENTS:
- <arg>: <what it names>
ARTIFACT: <the `metadata.artifact` path, or none>
OUTPUT: <what lands in the turn: an audit entry, a handover block, an inline report>
SPEC: <this doc's own path>- every field prints, in this order; one with nothing to say prints
none - every value is COPIED from the source named beside it, never composed fresh
- ask what they are actually trying to do, and what they have already tried
- name the flag or the sibling skill that fits their answer, then STOP
- run no step, write no file, and never fall through to step 1
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

