Create a clean, validated commit for the current changes.
Step 1 — Pre-commit Validation
Run the test and type-check commands (see project config). If either fails: STOP. Fix the issues first — never commit broken code.
Step 2 — Review Changes
git status
git diff --staged
git diff
Understand what changed, which files are affected, and which layer (core/service/api/tests).
Step 3 — Stage Files
- Stage only relevant files — never
git add .blindly - NEVER stage
.env, credentials, or secrets - NEVER stage build artifacts (see stack concepts in project config for list)
- Verify
.gitignorecovers sensitive files
Step 4 — Generate Commit Message
Use conventional commit format:
<type>(<scope>): <short description>
<optional body explaining why, not what>
Types:
feat— New feature or endpointfix— Bug fixrefactor— Code restructuring without behavior changetest— Adding or updating testsdocs— Documentation changeschore— Config, dependencies, toolingsecurity— Security-related changes
Scopes: api, core, service, auth, config, middleware, tests, docker
Step 5 — Commit
git commit -m "<conventional message>"
Step 6 — Verify
git log --oneline -1
git status
Confirm the commit was created and working tree is clean.