commit
Fix, test, and commit with a conventional commit message
SKILL.md.claude/skills/commit/SKILL.md
GitHubCommit
Context
!git status --short
!git diff --stat
!git diff --cached --stat
Phase 1 — Auto-fix
composer fix # rector + php-cs-fixer- If the fixers changed files, review the diff before staging — rector's dead-code set can be aggressive.
Phase 2 — Gates
composer test # phpstan + phpunit
Fix any failure and re-run. Do not commit on red — githooks/pre-commit runs composer fix && composer test anyway, so a failure here just costs a slower round trip.
Phase 3 — Commit
Stage explicitly by filename. Never
git add -Aorgit add ..Message — use
$ARGUMENTSif given, otherwise derive it from the staged diff:<type>(<scope>): <subject>- Types:
feat,fix,ref(notrefactor),test,docs,chore - Scope: the module in lowercase, when the change is confined to one —
feat(chat): … - Imperative mood, under ~70 chars, no trailing period
- Body only when the why isn't obvious
- Never mention AI tooling. No
Co-Authored-By, no Claude/Anthropic trailer. No emoji in the subject.
- Types:
git commit -m "<message>"Commits are GPG-signed with key
E51B5BF45F85D160aschemaclass@outlook.es. If signing fails, stop and report — do not disable signing.Report the hash, the message, and the files included.
Never
--amendon a pushed commit- Committing
.env,composer.lock, orpackage-lock.jsonunintentionally — check the staged list