| name | commit |
| description | Create a git commit following project conventions. Use when: commit, commit this, make a commit, commit changes, git commit, save changes, commit my work, stage and commit, detailed commit. |
Git Commit
Modes
Quick (default)
Single-line commit message.
<type>: <short description>
Detailed (/commit detailed or /commit -d)
Multi-paragraph commit for significant changes. Review the conversation and staged diff, then write:
<type>: <short summary>
<paragraph explaining what changed and why>
<paragraph on technical approach, trade-offs, or notable decisions>
Use detailed mode for: milestone features, non-obvious fixes, architectural changes, anything where "why" matters more than "what".
Format
Types: feat:, fix:, refactor:, test:, chore:, docs:
Rules
- Concise — short message, present tense ("add" not "added")
- Lowercase after prefix
- No AI mentions — never reference Claude, AI, or assistants
- No Co-Authored-By — never add Co-Authored-By trailers
- No emojis in commit messages
- Specific files —
git add <files>, never git add .
Pre-commit Checklist
mix test
mix format --check-formatted
mix compile --warnings-as-errors
git diff --staged
Examples
Quick
git commit -m "feat: add rss feed generation"
git commit -m "fix: handle empty search pagination"
git commit -m "refactor: extract export context from mix tasks"
Detailed
git commit -m "feat: add article pinning with exclusive constraint
Articles can now be pinned to appear first in the list. Only one article
can be pinned at a time. The pin operation uses a database transaction
to atomically unpin all others before pinning the selected one.
Ordering changed to: pinned DESC, published_at DESC, inserted_at DESC.
This affects both the dynamic LiveView and static site generation."