Safe-by-default git workflow and Conventional Commits. Use for git operations (diffs, staging, commits, branches, merges, conflict resolution, rebase/cherry-pick), PR review, and releases (tagging)...
git status, git diff, git log, git show, git blame before making changescommit --amend, interactive rebase, or force push (especially if anything may be shared)git clean -n (no deletion); do not run git clean -fd without consentgit reset --hard or git restore . without consentgit switch (branches) and git restore (undo) when appropriategit restore --staged <path> is usually safe; discarding worktree changes (e.g., git restore .) requires explicit consentFormat: <type>[optional scope][optional !]: <description>
| Type | Use for |
|---|---|
feat |
New features |
fix |
Bug fixes |
docs |
Documentation only |
style |
Formatting, whitespace (no code change) |
refactor |
Code change that neither fixes nor adds |
perf |
Performance improvements |
test |
Adding or correcting tests |
build |
Build system or dependencies |
ci |
CI configuration |
chore |
Other changes (tooling, config) |
revert |
Reverting a previous commit |
feat(auth):, fix(api):, docs(readme):Mark with ! before the colon OR add a BREAKING CHANGE: footer:
feat(api)!: remove deprecated endpoints
BREAKING CHANGE: /v1/users endpoint removed, use /v2/users
Token: valueBREAKING CHANGE:, Fixes:, Refs:, Co-authored-by:feat(auth): add OAuth2 login flow
fix: prevent race condition in queue processing
docs: update API authentication examples
refactor(db)!: migrate from MySQL to PostgreSQL
BREAKING CHANGE: database connection config format changed
git statusgit diff and git diff --stagedgit add -p when changes are mixedAfter reviewing changes, end with:
If anything is ambiguous, ask short, direct questions with options.