feat(#22): commit_types project-config override for validate-commit-format#29
Conversation
…ormat
validate-commit-format.sh now reads a `commit_types` field from
.claude/project-config.json before falling back to the hardcoded
default list. When set, ONLY those types are accepted — the override
replaces the defaults entirely, giving teams full control over their
commit vocabulary.
Example config:
{ "commit_types": ["wip", "feat", "fix"] }
→ accepts `wip: scratch`, rejects `refactor: cleanup`
Remove the field or the file to restore the default 11-type list.
Supporting changes:
- hooks/README.md documents the override with an example
- /onboard SKILL.md adds an optional follow-up in Q3 about
non-standard commit types
Smoke tested with all 4 states: default allow, default block,
custom allow, custom block → all pass.
Closes #22
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
atlas-apex
left a comment
There was a problem hiding this comment.
Code Review: PR #29
Commit: 5da0c75712a65324e737b04b786146a63e5c1fb2
Summary
Adds commit_types override in project-config.json so teams can replace the default 11-type commit list. Clean, small change with proper fallback.
Checklist Results
- ✅ Architecture & DDD: N/A (shell script)
- ✅ Code Quality: Pass
- ✅ Testing: Pass (smoke tests documented)
- ✅ Security: Pass
- ✅ Performance: Pass
- ✅ PR Description & Glossary: Pass
- ✅ Technical Decisions (AgDR): N/A — no new library/framework/pattern choices
Issues Found
None blocking.
Suggestions
- Minor:
jqis assumed available — if a project lacks it, the fallback still works (the2>/dev/nullhandles it), but a missing-jqwarning could be friendlier. Non-blocking.
Verdict
COMMENT — Looks good. Clean fallback logic, docs updated, smoke tests cover all four cases.
🤖 Reviewed by Rex (Code Reviewer Agent)
📌 Reviewed commit: 5da0c75712a65324e737b04b786146a63e5c1fb2
iamfarghali
left a comment
There was a problem hiding this comment.
Code Review PR 29
Reviewed commit: 5da0c75
Summary: Large cleanup PR removing hooks, simplifying settings, updating branding ApexYard to ApexStack, adding commit_types project-config override.
CHECKLIST:
- Architecture: PASS - Hook simplification, no new deps
- Code Quality: PASS - Clean shell scripts
- Error Handling: PARTIAL - See issues
- Secrets: PASS - No secrets
- Input Validation: PASS
- PR Description: FAIL - No PR body, missing Glossary (REQUIRED)
- AgDR: N/A - No arch decisions
ISSUES:
-
BLOCKING: validate-commit-format.sh removed breaking-change support (the ! before : in TYPE_REGEX). feat!: add feature will now be rejected. Either re-add !? or document with AgDR that breaking changes are intentionally unsupported.
-
BLOCKING: settings.json removes gh api merge hooks while docs reference incident #47 fix. Please confirm if gh api merge path is still gated.
-
BLOCKING: No PR description with Glossary section - required per pr-quality.md. Add description explaining changes, linking #22, with Glossary of technical terms.
-
NOTE: validate-branch-name.sh and validate-pr-create.sh demoted from blocking to warning - acceptable if CI catches these, but should be documented.
VERDICT: CHANGES REQUESTED - Address the 3 blocking items above.
…roadmap Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
validate-commit-format.shnow reads acommit_typesfield from.claude/project-config.jsonbefore falling back to the hardcoded default list. When set, ONLY those types are accepted — the override replaces the defaults entirely, giving teams full control over their commit vocabulary without touching framework code.Closes #22
Example
{ "commit_types": ["wip", "feat", "fix"] }With this config:
wip: scratch workis accepted (in the custom list)refactor: cleanupis rejected (not in the custom list —refactoris only in the defaults)Remove the field or the file to restore the default 11-type list.
Changes
.claude/hooks/validate-commit-format.sh— reads.commit_typesfrom project-config viajq, joins with|, uses as the regex type group. Falls back to defaultfeat|fix|refactor|test|docs|chore|style|perf|build|ci|revertwhen no override is present..claude/hooks/README.md— documents the override in the commit-format hook section with an example..claude/skills/onboard/SKILL.md— adds an optional follow-up note in Q3 (Required CI Checks) aboutcommit_typesfor teams with non-standard conventions.Smoke tests (all 4 pass)
Glossary
.claude/project-config.jsonthat overrides the default commit-type list forvalidate-commit-format.sh. Replaces (does not merge with) the defaults..claude/project-config.json. Gitignored. Written by/onboard. Also used byvalidate-pr-create.sh(tracker_repo),require-agdr-for-arch-changes.sh(architecture_paths), andrequire-design-review-for-ui.sh(ui_paths).Test plan
commit_typesin a test project-config, confirm custom types accepted and non-listed types rejected🤖 Generated with Claude Code