git-commit
Commit
Generate commit messages. Adapt to repo style.
Format
type(scope): description
[optional body]
[optional footer]
Workflow
- Run
git diff --stagedto see changes - Run
git log --oneline -10to check repo style - Detect language from recent commits
- Detect footer patterns (Change-Id, tickets)
- Pick commit type from changes
- Infer scope from affected files
- Write short description
Language Detection
Check recent commits:
- Polish: Dodanie, Naprawa, Poprawa, Zmiana, Usunięcie
- English: Add, Fix, Update, Remove, Change
Match dominant language in last 10 commits.
Atomic Commits
One commit = one logical change.
Trigger rule: If changes need different types (feat + fix), split into separate commits.
Ask: Can this be described in one subject line without "and"?
Bad:
feat(ios): Add mTLS support and fix cache tests
Good (split into two):
feat(ios): Add mTLS certificate injection
fix(ios): Fix cache tests for lowercase headers
Style Rules
- Imperative mood: "add" not "added"
- No period at end
- No em dashes in prose
- Under 50 chars for subject
- Match repo language and conventions
Em dash vs hyphen:
- Bad: "add auth - with token support"
- Good: "add auth with token support"
Writing Style
Be laconic:
- Shortest possible subject
- No filler words
- No bullet points in body
- No verbose explanations
- Skip body unless essential
Body is noise unless it adds value.
Subject examples:
- Bad: "Add Error convenience extensions for NetworkError"
- Good: "Add Error NetworkError extensions"
Body examples:
Bad (bullets):
feat(ios): Add mTLS support
- Add certificate fields
- Extract PEM data
Good (subject only):
feat(ios): Add mTLS certificate injection
Good (prose body when needed):
refactor(auth): Extract token service
Separate token logic for unit testing.
Body
Prefer no body. A good subject makes body unnecessary.
Decision tree:
- Subject self-explanatory? Skip body
- Multiple unrelated changes? Split commits
- Need to explain "why"? Add prose body (1-2 sentences)
If body needed:
- Prose only, no bullets
- Explain why, not what
- One sentence per logical change
- Keep short
Breaking Changes
Add exclamation mark after type or scope:
feat!: remove deprecated API
feat(api)!: change response format
Or use footer:
feat: update auth flow
BREAKING CHANGE: token format changed
Footers
Detect from repo history:
- Change-Id (Gerrit): preserve if present
- Ticket IDs (JIRA): include if pattern found
- Signed-off-by: include if repo uses it
Do not add footers the repo does not use.
Safety
- Check
git statusfirst - Never commit secrets
- Verify staged files before commit
See quick-reference.md for type details.
More from molechowski/claude-skills
res-price-compare
Polish market product price comparison: 20+ shops, shipping costs, manufacturer vs seller warranty, B2B/statutory warranty analysis, stock status, distribution chain. Export TXT/XLSX/HTML. Use when: looking for a product to buy, price comparison, where to buy cheapest. Triggers: cena, porównaj, gdzie kupić, najtaniej, sklep, price compare, best price, kup, ile kosztuje.
36doc-vault-project
Manage multi-note research projects in Obsidian vault with phased subdirectory structure (concept, research, design, implementation). Scaffold new projects, add component notes, track status, link existing research, promote topics to projects. Use when: creating a project, adding to a project, checking project status, linking research to a project, promoting a research topic to a full project. Triggers: project init, project add, project status, project link, project promote, create project, new project.
35res-deep
Iterative multi-round deep research with structured analysis frameworks. Use for: deep research on a topic, compare X vs Y, landscape analysis, evaluate options for a decision, deep dive into a technology, comprehensive research with cross-referencing. Triggers: deep research, compare, landscape, evaluate, deep dive, comprehensive research, which is better, should we use.
35doc-daily-digest
Process Obsidian daily notes: classify raw URLs and loose ideas, fetch content (X tweets, GitHub repos, web pages), run deep research on ideas, create structured vault notes, replace raw items with wikilinks. Orchestrates doc-obsidian, res-x, and res-deep skills. Use when: processing daily note links, digesting saved URLs into notes, turning ideas into research, daily note cleanup. Triggers: daily digest, process daily, daily links, triage daily, digest daily note.
35res-x
Fetch X/Twitter tweet content by URL and search X posts. Resolves tweet links that WebFetch cannot scrape. Use for: reading saved X/Twitter links, fetching tweet content from URLs, searching X for posts on a topic, batch-processing X links from notes. Triggers: x.com link, twitter.com link, fetch tweet, read tweet, what does this tweet say, X search, twitter search.
34doc-project
Update all project documentation in one pass: CLAUDE.md, AGENTS.md, README.md, SKILLS.md, CHANGELOG.md. Orchestrates doc-claude-md, doc-readme, doc-skills-md, and doc-changelog skills sequentially. Use when: project docs are stale, after major changes, initial project setup, sync all docs. Triggers: update all docs, update project docs, sync documentation, refresh docs, doc-project.
34