Enforces Conventional Commits format and branch naming conventions, validating commit message structure (type/scope/description header), suggesting branch name patterns (feature/*, fix/*, hotfix/*), and enforcing breaking change notation. Use when the user is about to commit, creating a branch, reviewing commit history, preparing a pull request, setting up commit linting, or asking about commit message format, branch naming, or Conventional Commits.
97
97%
Does it follow best practices?
Impact
97%
1.03xAverage score across 3 eval scenarios
Passed
No known issues
{
"context": "Tests whether the agent follows branch naming conventions including type prefix, issue number inclusion, kebab-case formatting, and correct creation from main. Also tests that git mv is used for the file rename to preserve history rather than a manual copy-and-delete approach.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Branch type: fix",
"description": "branch-setup.sh or branch-decision.md uses the 'fix/' prefix for the branch (since the task is a bug fix)",
"max_score": 10
},
{
"name": "Issue number in branch name",
"description": "The branch name includes '312' — e.g. fix/312-session-timeout or fix/312-network-session-timeout",
"max_score": 12
},
{
"name": "Kebab-case branch name",
"description": "The description segment of the branch name uses hyphens, not underscores or camelCase (e.g. session-timeout not session_timeout or sessionTimeout)",
"max_score": 10
},
{
"name": "Lowercase branch name",
"description": "The entire branch name is lowercase with no uppercase letters",
"max_score": 8
},
{
"name": "Branch description length",
"description": "The description portion of the branch name (after the slash) is between 2 and 5 words/segments when split by hyphens (excluding the issue number)",
"max_score": 8
},
{
"name": "Branch created from main",
"description": "branch-setup.sh checks out or switches to main before creating the new branch, OR explicitly notes the branch is based on main",
"max_score": 10
},
{
"name": "Uses git mv for rename",
"description": "branch-setup.sh uses 'git mv session.js session-manager.js' (or equivalent git mv command) rather than cp+rm, mv+git add, or any non-git rename",
"max_score": 14
},
{
"name": "No cp/mv without git mv",
"description": "branch-setup.sh does NOT use plain 'mv session.js' or 'cp session.js' followed by 'git add' as the rename strategy",
"max_score": 10
},
{
"name": "History preservation noted",
"description": "branch-decision.md mentions that git mv preserves history or that this is the reason for using git mv",
"max_score": 10
},
{
"name": "Branch name documented",
"description": "branch-decision.md explicitly states the chosen branch name",
"max_score": 8
}
]
}