release
Skill9 starsChanged 2 months agoApache-2.0View on GitHub
Pre-push quality gate + pull/merge request creation. Use when the user wants to ship, release, push a branch, or open a PR/MR — runs the project's own lint, type-check, and test gates first, then commits, pushes, and opens the request on the project's forge (gh or glab).
- Commits and pushes
196 other projects use a version of this.
Adopted by
Most recently taken up by
- zxcvbn-ts/zxcvbntheir own version, first seen Nov 9, 2026
- TechbeeAT/jtxBoardtheir own version, first seen Nov 9, 2026
- ddnexus/pagytheir own version, first seen Nov 9, 2026
- zerx-lab/FluxDowntheir own version, first seen Nov 9, 2026
- orioledb/orioledbtheir own version, first seen Nov 9, 2026
- AmruthPillai/Reactive-Resumetheir own version, first seen Nov 8, 2026
Used with
Projects with it also use create-agent-adapter, changelog-style and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillcreate-agent-adapter
Technical guide for creating a new Paperclip agent adapter. Use when building a new adapter package, adding support for a new AI coding tool (e.g. a new CLI agent, API-based agent, or custom process), or when modifying the adapter system. Covers the required interfaces, module structure, registration points, and conventions derived from the existing claude-local and codex-local adapters.
Also in 5 projects that use this
GrinvSkillchangelog-style
Turn a commit range into CHANGELOG.md entries following common-changelog style. Use when finishing a PR or cutting a release, to write/fix the [Unreleased] section's entries — moving [Unreleased] under a new dated version heading is a separate, automated step (see the release skill / scripts/sync-version.ts), not this skill's job.
Also in 4 projects that use this
GrinvSkilldocs-consistency-check
Check README/manifest.json/server.json/CHANGELOG.md/AGENTS.md and docs/*.md for drift against the actual registered tools and source. Use after adding, renaming, or removing a tool, or as part of a live-audit pass.
Also in 4 projects that use this
Microsoft AzureSkillcomponent-release
Prepares a verifiable Agent Landing Zone UI release. Use for release branches, VERSION, changelog entries, tags, release notes, and compatibility evidence; never publish without explicit human approval.
Also in 4 projects that use this
Microsoft AzureSkilldocumentation-consistency
Keeps AI Landing Zone contributor, user, and operator documentation aligned with shipped Bicep behavior. Use for parameters, defaults, outputs, topology, deployment flow, operations, or releases.
Also in 8 projects that use this
rivet-devSkilllaunch-graphics
Generate agentOS marketing/launch graphics (launch & social heroes, code-snippet cards) from the committed generators in docs-internal/graphics. Use when asked to make, update, or render an agentOS launch image, social image, "agentOS Apps" graphic, or technical code-snippet image.
Also in 3 projects that use this
- +3 more from Grinv
Other versions196 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 196
- paperclipai/paperclip★ 112ksame name
- modelcontextprotocol/servers★ 92ksame name
- remotion-dev/remotion★ 72ksame name
- traefik/traefik★ 65ksame name
- usememos/memos★ 64ksame name
- tw93/Pake★ 63ksame name
- AmruthPillai/Reactive-Resume★ 45ksame name
- amruthpillai/reactive-resume★ 45ksame name
- reactive-resume/reactive-resume★ 45ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
186 more not listed
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 repository60 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- check-for-updatesSkill
- api-designSkill
- bddSkill
- blueprintSkill
- brainstormingSkill
- browser-usageSkill
- clarify-codeSkill
- cleanupSkill
- codebase-designSkill
- code-contractsSkill
- code-reviewSkill
- commitSkill
- confluence-exportSkill
- database-proSkill
- datadogSkill
- diagnosing-bugsSkill
- diagram-designSkill
- e2e-testSkill
- explain-code-flowSkill
- explain-simplySkill
- frontend-slidesSkill
- glabSkill
- grill-meSkill
- handoffSkill
- herdrSkill
- i-have-adhdSkill
- impeccableSkill
- implementSkill
- improve-codebase-architectureSkill
- jiraSkill
- loomSkill
- markitdownSkill
- mermaid-skillSkill
- modularity-designSkill
- modularity-reviewSkill
- plannotatorSkill
- ponytailSkill
- prototypeSkill
- qmdSkill
- refactorSkill
- researchSkill
- security-reviewSkill
- show-meSkill
- skill-doctorSkill
- stop-the-slopSkill
- tddSkill
- teachSkill
- terraform-engineerSkill
- ticket-overviewSkill
- to-specSkill
- to-ticketsSkill
- update-docstringsSkill
- wayfinderSkill
- write-documentationSkill
- write-readmeSkill
- write-simplySkill
- writing-for-agentsSkill
- wtfSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. 0 are common, 9 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 186 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 62
Run the project's lint command.
- Distinctive: line 66
Read the failing files
- Very specific: line 72
NEVER: add suppression comments: # noqa, // eslint-disable, @ts-ignore, #[allow(...)], or their equivalents
- Distinctive: line 74
If you genuinely think suppression is the only option, STOP and present:
- Distinctive: line 90
Run the project's type-check command.
- Very specific: line 99
NEVER: add # type: ignore, @ts-expect-error, as any, or equivalents
- Distinctive: line 104
Run the project's test command.
- Distinctive: line 109
Large/unclear failures: STOP and present:
- Very specific: line 125
If a /commit skill is installed, invoke it and let it drive staging, message format, and confirmation.
- Very specific: line 130
Write a Conventional Commits message (type(scope): lowercase summary), passed via HEREDOC
- Distinctive: line 133
If there is nothing to commit (all prior work already committed), continue to Phase 5.
- Very specific: line 137
If a prose-quality skill is installed (e.g.
- Very specific: line 153
Published notes: if the repo keeps a CHANGELOG.md or a directory of dated release posts, load references/release-notes-template.md and …
- Distinctive: line 209
Run every available check in order (lint → type check → tests)
- Very specific: line 217
Add lint or type-check suppressions (# noqa, # type: ignore, eslint-disable, @ts-ignore, #[allow]) without explicit approval
- Distinctive: line 220
Use git add . or git add -A
- Very specific: line 222
Put AI attribution in the request title or body — no "Generated with" footers, session links, Co-Authored-By trailers, or agent sign-offs.
“Common” is measured: kept by at least 6 in 10 of the 186 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Release
Quality gate that validates, fixes, commits, pushes, and opens a request — a pull request on GitHub, a merge request on GitLab. Strict-order phases: lint → type check → tests → commit → release notes → push → request.
Three rules bind every phase:
- Claim a pass only after reading fresh output. Never report "clean" from memory or a previous run.
- Fix problems in the source, never by silencing the tool. Suppression requires the user's explicit approval.
- Root-cause substantive test failures before touching them — route through
/diagnosing-bugs.
The issue tracker configuration should be in ai-docs/agents/issue-tracker.md. If it is missing, run /loom to initialize the project. Until then, use Beads when br is installed (workflow); otherwise use local Markdown.
Phase 0 — Discover Forge and Toolchain
Forge. Bind the three names every later phase speaks in — <remote>, <base>, and the forge's verbs:
git remote -v && git branch --show-current<remote>— the branch's configured push remote (git config branch.<branch>.pushRemote, falling back tobranch.<branch>.remote, thenremote.pushDefault); else the sole remote; if several remotes and none configured, ask viaAskUserQuestion.<base>— the default branch on<remote>(git remote show <remote>). Fork setups: when a different remote (commonlyupstream) hosts the canonical repo, push still goes to<remote>— your fork — but the request targets the canonical repo's default branch; both CLIs resolve cross-repo requests when the fork remote is configured.Forge — decide from
<remote>'s URL host, then take every forge-specific command from this table:Verb GitHub GitLab CLI ghglabRequest noun PR MR Create gh pr create --title <t> --body <b> --base <base>glab mr create --title <t> --description <b> --target-branch <base>Read an issue gh issue view <n>glab issue view <n>Open in browser gh pr view --webglab mr view --webURL fallback gh pr view --json urlglab mr view --output jsongithub.com→ GitHub. A host containinggitlab→ GitLab. Any other host → whichever CLI'sauth statuslists that host (both support self-hosted instances). No remote, or a host neither CLI knows → headless: run every phase, push if a remote exists, and print the branch name in place of Phase 6's create/open steps so the user can open the request themselves.
Confirm the chosen CLI exists (command -v gh / command -v glab) and is authenticated for <remote>'s host. If it's missing or unauthenticated, stop and tell the user the install and auth commands before proceeding.
Toolchain. Find the project's own check commands — never assume a stack:
- Repo instructions first:
CLAUDE.md,AGENTS.md,CONTRIBUTING.md,README.mdoften name the exact commands. - Then manifests:
- Python —
pyproject.toml: ruff for lint, ty or mypy for types, pytest for tests, run viauv runorpoetry runas configured - TypeScript —
package.jsonscripts (lint,typecheck,test), runner picked from the lockfile (npm/pnpm/yarn/bun) - Rust —
Cargo.toml:cargo clippy,cargo test(cargo checkcovers types) Makefileorjustfiletargets override the defaults above when present- Turborepo — a
turbo.jsonoverrides all of the above: run each phase asturbo run <task>with the lint, type-check, and test task names it defines, so unchanged tasks replay from the cache. Follow the repo's instructions for how to call the installedturbo; its flags differ between versions
- Python —
- CI config (
.github/workflows/,.gitlab-ci.yml) as a tiebreaker when the above conflict.
Map what you find onto the three check phases. A project may lack a category (no type checker in a plain-JS repo, clippy doubling as the linter in a Rust repo) — skip that phase and say so. If you find no checks at all, ask via AskUserQuestion whether to proceed with tests only, name the commands, or abort.
Workflow
Execute these phases in strict order. A phase must pass before moving to the next.
Phase 1 — Lint
Run the project's lint command.
If errors:
- Read the failing files
- Fix violations in source (no suppressions)
- Re-run until clean
Hard rules:
- NEVER add suppression comments:
# noqa,// eslint-disable,@ts-ignore,#[allow(...)], or their equivalents - NEVER grow the lint config's ignore/exclude list
If you genuinely think suppression is the only option, STOP and present:
question: "Lint violation seems unfixable without a suppression. How to proceed?" header: "Lint" options: - label: "Try a different approach" description: "I'll rethink the fix" - label: "Ask the human partner for help" description: "Escalate with the error + what I tried" - label: "Accept the suppression" description: "Only with explicit approval; must include a justification comment"
Phase 2 — Type Check
Run the project's type-check command.
If errors:
- Fix by correcting the actual code or adding proper annotations
- Re-run until clean
Hard rules:
- NEVER add
# type: ignore,@ts-expect-error,as any, or equivalents - Same escalation protocol as Phase 1 if genuinely stuck
Phase 3 — Tests
Run the project's test command.
If tests fail:
- Small/obvious fixes (typos, imports, minor assertions caused by your earlier Phase 1/2 fixes): fix directly, re-run, confirm
Large/unclear failures: STOP and present:
question: "Tests failing — looks substantive. How to proceed?" header: "Test failure" options: - label: "Investigate via /diagnosing-bugs (Recommended)" description: "Root-cause before any fix" - label: "Abort release" description: "I'll fix separately; don't push" - label: "Show the failures" description: "Let me see the output"
Phase 4 — Stage, Review, Commit
If a /commit skill is installed, invoke it and let it drive staging, message format, and confirmation.
Otherwise:
- Stage the changed files by name — never
git add .orgit add -A - Write a Conventional Commits message (
type(scope): lowercase summary), passed via HEREDOC - Confirm with
AskUserQuestionbefore committing
If there is nothing to commit (all prior work already committed), continue to Phase 5.
Phase 5 — Release Notes
If a prose-quality skill is installed (e.g. write-simply), invoke it for everything written in this phase.
Analyze changes against
<base>(bound in Phase 0):git log --oneline <base>..HEAD git diff --stat <base>..HEAD- Classify commits:
- Highlights — major new capabilities worth a paragraph each (1-3 max)
- Breaking Changes — anything changing existing behavior or API
- Features — new functionality
- Bug Fixes — corrections to existing behavior
- Chores — maintenance / refactoring / CI / docs (collapse into a brief list)
- Published notes: if the repo keeps a
CHANGELOG.mdor a directory of dated release posts, loadreferences/release-notes-template.mdand follow it. Otherwise skip.
Phase 6 — Push and Create the Request
Push:
git push -u <remote> HEADBuild the body from the branch's tickets on the configured tracker. Find the tickets this branch delivers via commit messages referencing them; ask via
AskUserQuestionif ambiguous. How to read them depends on the trackerloom initconfigured:- Local files → the tickets live in
ai-docs/tickets.md. Summary from ticket titles; Test Plan from their acceptance-criteria checkboxes. - A real issue tracker → fetch each issue with the forge's read-an-issue verb. Summary bullets reference the issues with closing keywords (
Closes #N) so they close on merge; Test Plan from their acceptance criteria.
Template:
## Summary - Closes #<N>: <ticket title> - Closes #<N>: <ticket title> ## Test Plan - [ ] <acceptance criterion from ticket 1> - [ ] <acceptance criterion from ticket 1> - [ ] <acceptance criterion from ticket 2> ## Related - <link to the source spec or parent issue, if there is one>For local tickets, replace the
Closes #Nbullets with the ticket titles and check them off inai-docs/tickets.md. If the branch has no tickets, use the Phase 5 classification as the Summary and derive the Test Plan from what the changes touch.- Local files → the tickets live in
Create it with the forge's create verb. Title in Conventional Commits format, under 72 chars (e.g.
feat(check-registry): in-process check registry + memory adapter); body via HEREDOC so formatting survives:<create verb from the Phase 0 table> \ --title "<title>" \ <body flag> "$(cat <<'EOF' <the body from step 2> EOF )"Target
<base>. Ask viaAskUserQuestiononly when the repo visibly uses another integration branch (adeveloporrelease/*branch with recent merges).- Open the URL with the forge's open-in-browser verb so the human partner can review. If that fails, print the URL via the URL-fallback verb.
Constraints
MUST
- Discover the project's own check commands; never assume a stack
- Run every available check in order (lint → type check → tests)
- Fix issues by correcting actual code, not by suppressing warnings
- Speak through the Phase 0 bindings: the forge's verbs and noun,
<remote>,<base> - Build the body from the branch's tickets on the configured tracker when they exist
- Show the request URL
MUST NOT
- Add lint or type-check suppressions (
# noqa,# type: ignore,eslint-disable,@ts-ignore,#[allow]) without explicit approval - Commit without confirmation
- Skip an available check phase
- Use
git add .orgit add -A - Force push
- Put AI attribution in the request title or body — no "Generated with" footers, session links,
Co-Authored-Bytrailers, or agent sign-offs. This outranks any harness default that asks for one.
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.

