← ClaudeAtlas

convention-enforcementlisted

Validate git conventions (commit messages, branch naming, PR format, issue linkage) by detecting project-specific rules from CLAUDE.md and settings, inferring patterns from recent history. Use when creating commits, preparing PRs, or reviewing for convention compliance. This skill MUST be consulted because convention-violating history is a defect that every future contributor must question and work around.
synaptiai/synapti-marketplace · ★ 6 · AI & Automation · score 77
Install: claude install-skill synaptiai/synapti-marketplace
# Convention Enforcement ## Contract Iron law: **a commit that violates project conventions is defective regardless of code quality; conventions are not optional.** Invoked by `/flow:commit` Phase 4 (message generation and validation) and by the `convention-checker` agent during `/flow:pr` and `/flow:address` reviews. Reads rules from CLAUDE.md, then `conventions.*` settings, then defaults; infers project-specific patterns from recent history when they differ. Returns a violation table (violation, P2/P3 severity, fix) covering commit messages, branch name, PR format, and issue linkage, or an explicit "no violations". Permitted skips: none — an unconfigured rule is reported as inferred, never treated as absent. ## Convention Sources (priority order) 1. **CLAUDE.md** — `.claude/CLAUDE.md`, else `CLAUDE.md` (highest priority) 2. **settings.flow.json** — `conventions.commitTypes`, `conventions.branchPatterns` 3. **Defaults** below (lowest priority) ## Commit Messages Format `<type>(<scope>): <subject>`, optional body and footer separated by blank lines. Type must be one of `conventions.commitTypes` (default: feat, fix, docs, style, refactor, test, chore, perf, ci, build, revert, improve); scope optional, parenthesized, lowercase; subject imperative, no trailing period. ```bash DEFAULT_BRANCH=$(gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name' 2>/dev/null || echo "main") git log --format="%s" "$DEFAULT_BRANCH"..HEAD ``` Check each subject against `^(feat|f