CtrlK
BlogDocsLog inGet started
Tessl Logo

openkata/commit-conventions

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

1.03x
Quality

97%

Does it follow best practices?

Impact

97%

1.03x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-2/

{
  "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
    }
  ]
}

RATIONALE.md

SKILL.md

tile.json