skills/ruby-commit-message/SKILL.md
Use when committing code changes in Ruby or Ruby on Rails projects — guides commit message structure, type selection, and body content following Conventional Commits format
npx skillsauth add lucianghinda/superpowers-ruby ruby-commit-messageInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Write structured commit messages following Conventional Commits. The body should help a junior Ruby on Rails developer understand the change during a debugging session.
<type>(<scope>): <subject>
<body>
<footer>
| Type | Purpose |
|------|---------|
| feat | New feature |
| fix | Bug fix |
| refactor | Refactoring (no behavior change) |
| perf | Performance improvement |
| docs | Documentation only |
| test | Test additions or corrections |
| build | Build system or dependencies |
| ci | CI configuration |
| chore | Maintenance tasks |
| style | Code formatting (no logic change) |
| revert | Revert previous commit |
| meta | Repository metadata |
| license | License changes |
(api), (auth)Couple of sentences, wrapped at 72 chars, blank line after subject. Write for a junior Ruby developer: simple language they can understand during debugging. Add any useful information that would help a junior Ruby developer understand the impact of the change, why the change was done.
Call out tradeoffs when supported by context. Do not invent details.
Fixes TICKET-123 # or: Fixes #123, Refs TICKET-123
BREAKING CHANGE: ... # for breaking changes; use ! in type too: feat(api)!:
Co-Authored-By: <AI Name> <email> # when AI generated the change
Do NOT add "Generated by AI" or "Written with Claude" in the subject or body. Use only Co-Authored-By.
fix(api): Scope report access to current user
Report.find allowed any authenticated user to view any report by ID.
Querying through current_user.reports makes Rails raise RecordNotFound
(404) if the report doesn't belong to the requester.
feat(alerts): Add Slack thread replies for alert updates
When an alert is updated or resolved, post a reply to the original
Slack thread. This keeps related notifications grouped together.
Refs GH-1234
feat(api)!: Remove deprecated v1 endpoints
Remove all v1 API endpoints deprecated in version 23.1.
Clients should migrate to v2 endpoints.
BREAKING CHANGE: v1 endpoints no longer available
| Mistake | Fix |
|---------|-----|
| Body explains HOW without context | Only include HOW when it helps debugging |
| Subject describes implementation ("Changed X to Y") | Use imperative: "Fix X", "Add Y" |
| Body repeats what the diff shows | Explain WHY it was changed |
| Subject over 70 characters | Trim scope or rephrase |
| "Generated by AI" in body | Use Co-Authored-By footer only |
tools
--- name: ruby-upgrade description: Use when upgrading the Ruby interpreter version of a Bundler/Rails app — especially "upgrade to Ruby 4", "bump Ruby to 4.0", "audit Ruby 4 compatibility", "what breaks on Ruby 4", or a specific target like "Ruby 4.0.5". Triggers on Ruby-major risk symptoms: CGI.parse/CGI::Cookie removal, Net::HTTP implicit Content-Type dropped, demoted default gems (ostruct/logger/benchmark/irb), SortedSet, Set#inspect changes, native-extension recompile crashes, openssl 4 pin
development
Use when stuck after multiple debug attempts and want to escalate to a stronger one-shot model (GPT-5 Pro, Opus, Gemini Pro) — packages a self-contained "oracle prompt" with Ruby/Rails project briefing, verbatim error, what-was-tried, constraints, and just-enough attached files. Triggers include "ask the oracle", "write a letter to GPT-5", "I'm stuck, draft a prompt for another model", "/tmp/letter.md".
testing
Use when creating new skills, editing existing skills, or verifying skills work before deployment
development
Use when you have a spec or requirements for a multi-step task, before touching code