Error
Using feat(ci), fix(ci), feat(test), or similar combinations where a user-facing type is paired with an infrastructure scope.
Why this matters
feat and fix describe user-facing changes. Infrastructure changes (CI, tests, docs) have their own types. Mixing them muddies changelogs and breaks semantic versioning.
How to fix
Use the infrastructure type as the primary type:
# Wrong:
git commit -sS -m "fix(ci): update workflow"
git commit -sS -m "feat(test): add helper function"
# Correct:
git commit -sS -m "ci(workflow): update deployment pipeline"
git commit -sS -m "test(helpers): add authentication mock"
Type reference
| Type | Use for |
|---|---|
ci |
CI/CD configuration changes |
test |
Adding or modifying tests |
docs |
Documentation only |
build |
Build system or dependencies |
chore |
Maintenance tasks |
refactor |
Code changes without feature/fix |
Configuration
Disable this check in config.toml:
[validators.git.commit.message]
block_infra_scope_misuse = false
Hook output
When this error is triggered, klaudiush writes JSON to stdout:
permissionDecisionReason (shown to Claude):
[GIT006] Using feat(ci) or fix(ci) with infrastructure scope. Use ci(...) instead of feat(ci) or fix(ci)
systemMessage (shown to user): Formatted error with fix hint and reference URL.
additionalContext (behavioral guidance):
Automated klaudiush validation check. Fix the reported errors and retry the same command.