release-rules
Skill93 starsChanged 8 days agoMITView on GitHub
Release rules, commit conventions, and issue etiquette for rails_error_dashboard
- Commits and pushes
In this repository11 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- add-breadcrumb-pageSkill
- chaosSkill
- cqrs-patternsSkill
- demo-updateSkill
- host-app-safetySkill
- new-featureSkill
- releaseSkill
- roadmap-statusSkill
- safety-checkSkill
- testSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 7 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Verify everything (full suite, RuboCop, chaos tests, CI on the release PR), then STOP and ask: "Ready to publish vX.Y.Z to RubyGems?"
- Distinctive: line 19
STOP and ask: "Ready to publish vX.Y.Z to RubyGems?"
- Distinctive: line 25
Always let the issue reporter verify the fix and close it themselves.
- Distinctive: line 29
Ask them to reopen if the issue persists
- Distinctive: line 30
Do NOT close the issue
- Distinctive: line 37
If an issue does auto-close, reopen it and say why:
- Distinctive: line 44
Use conventional commits style:
≈ “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
Release & Contribution Rules
CRITICAL: Never Release Without Approval
NEVER execute any of these without explicit user approval:
- Merging the release PR (
chore(main): release …) — this IS the publish action. release-please tags, creates the GitHub Release, and pushes the gem to RubyGems on merge. Irreversible for that version number. gem push,git tag,git push origin <tag>,gh release create— all handled by the automation. Running them by hand risks a state the workflow cannot then publish.
Verify everything (full suite, RuboCop, chaos tests, CI on the release PR), then STOP and ask: "Ready to publish vX.Y.Z to RubyGems?"
See release for the full workflow.
CRITICAL: Never Close GitHub Issues
Always let the issue reporter verify the fix and close it themselves. When a fix is merged:
- Comment on the issue with thanks
- Explain the root cause
- Describe the fix and which version includes it
- Ask them to reopen if the issue persists
- Do NOT close the issue
Watch for auto-close. GitHub closes an issue automatically when a merged
commit or PR body contains a closing keyword — Fixes #NNN, Closes #NNN,
Resolves #NNN. That silently violates this rule even though you never ran
gh issue close. Write Refs #NNN or See #NNN instead.
If an issue does auto-close, reopen it and say why:
gh issue reopen <N> --comment "Reopening so you can verify the fix yourself — it auto-closed from the commit reference."Commit Message Conventions
Use conventional commits style:
feat:— new featurefix:— bug fixchore:— maintenance, deps, version bumpsdocs:— documentation onlyrefactor:— code restructuring without behavior changetest:— adding or fixing testsperf:— performance improvement
Examples:
feat: add N+1 query detection breadcrumb page
fix: resolve SQLite BRIN index migration error
chore: bump version to 0.3.0
docs: add flexible authentication to changelog and README
test: add system specs for deprecation warnings page
refactor: extract notification throttling to serviceVersion Numbering
Follows semantic versioning (SemVer):
- Major (1.0.0) — breaking changes, public API changes
- Minor (0.3.0) — new features, backwards-compatible
- Patch (0.3.1) — bug fixes only
Current version: defined in lib/rails_error_dashboard/version.rb
The bump is derived from commit types, not chosen by hand — fix: gives a
patch, feat: a minor, ! or BREAKING CHANGE a major. To change what version
ships, change the commits. Editing version.rb directly will be overwritten by
release-please.
Release Artifacts
A complete release produces:
- Version bump + changelog commit on
main(the merged release PR) - RubyGems package, pushed via OIDC trusted publishing — no credentials involved
- Two git tags:
vX.Y.Zandrails_error_dashboard/vX.Y.Z - GitHub Release with changelog notes, marked Latest
- Updated demo app lockfile (see
demo-update)
Items 1-4 are produced by the automation on merging the release PR. Only item 5 is manual.
Git Tags vs GitHub Releases
These are separate entities — pushing a tag does not by itself create a GitHub Release, and the "Latest" badge only appears on Releases. release-please creates both, so neither should be made by hand.
Because releases carry a component prefix, gh release view vX.Y.Z reports
"release not found" even when the release exists. Use gh release list, or the
full name rails_error_dashboard/vX.Y.Z.
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.

