CtrlK
BlogDocsLog inGet started
Tessl Logo

aif-commit

Create conventional commit messages by analyzing staged changes. Generates semantic commit messages following the Conventional Commits specification. Use when user says "commit", "save changes", or "create commit".

60

Quality

71%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/aif-commit/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is highly actionable with exact git commands, explicit user-confirmation checkpoints, and concrete examples, and its workflow validation is genuinely strong for a destructive operation. However, it suffers from significant redundancy (staging rules stated twice), re-explanation of conventional-commit basics Claude already knows, and a monolithic 280-line structure with intricate plan-resolution detail that should be offloaded to a reference file, plus ambiguous cross-step references across its three overlapping numbering schemes.

Suggestions

Extract the active-plan/ultra-bundle resolution logic (Workflow step 2) and the multi-commit staging rules into a reference file (e.g., references/plan-resolution.md), keeping SKILL.md as a concise overview with a clearly signaled one-level-deep link.

Deduplicate the hunk-level staging and cached-patch preservation rules that appear nearly verbatim in both Workflow step 3 and the 'Important' section, stating them once in the commit-splitting flow.

Collapse the conventional-commit type list (feat/fix/docs/style/refactor/perf/test/build/ci/chore) into a one-line pointer to the Conventional Commits spec, since Claude already knows these types, and unify the three competing step-numbering schemes (Workflow, Behavior, Important) into a single numbered sequence so cross-references are unambiguous.

DimensionReasoningScore

Conciseness

The 280-line body is noticeably verbose for a commit-message generator: the conventional-commit type list ("feat: New feature", "fix: Bug fix"...) restates knowledge Claude already has, and the staging-safety rules for hunk-level staging and cached-patch preservation appear nearly verbatim twice (Workflow step 3 and the "Important" section steps 4-8). Not score 3 because the duplication and known-concept padding exceed 'some unnecessary explanation'; not score 1 because there is no extended tutorial-style explanation of what git or commits are.

2 / 5

Actionability

Guidance is fully executable: exact commands ("git diff --cached --name-only", "git add -p", "git apply --cached", "git push -u origin <branch>"), concrete AskUserQuestion prompts with enumerated options, a precise message format template, and three complete commit-message examples covering the common cases. This matches the top anchor; score 4 would require minor gaps in the concrete commands or examples, which are not present.

5 / 5

Workflow Clarity

The Behavior section lays out a clear 10-step sequence with explicit validation checkpoints (user confirmation before commit, checking unstaged overlap via "git diff --name-only" before changing staging, requiring exactly one ultra marker before plan use) and feedback loops ("Edit message → return to step 7"). Not score 5 because three competing numbering schemes (Workflow 1-7, Behavior 1-10, Important sub-steps 1-9) make cross-references like "proceed to step 4" and "return to step 2" ambiguous; not score 3 because validation checkpoints are explicit and present, not merely implicit.

4 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/ directories), so everything lives in one file: sections are well-labeled (## Workflow, ## Format, ## Examples, ## Behavior, ## Important) but the ~70 lines of intricate active-plan/ultra-bundle resolution logic and the duplicated multi-commit staging rules clearly belong in a separate reference file. Not score 4 because substantial specialized content that should be split out is inlined with no references at all; not score 2 because the section structure is real and navigation within the file is possible.

3 / 5

Total

14

/

20

Passed

Description

78%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description that clearly and explicitly states both capability and trigger conditions with natural, quoted trigger phrases. Its main weakness is limited action coverage — the two sentences restate a single core action rather than enumerating the skill's fuller behavior (confirmation flow, commit splitting, push handling).

DimensionReasoningScore

Specificity

"Create conventional commit messages by analyzing staged changes" and "Generates semantic commit messages following the Conventional Commits specification" name the domain with 1-2 concrete actions, but both sentences describe essentially the same action and coverage is not comprehensive (no mention of message review/confirmation, push, or splitting commits). Not score 4 because there are not several distinct specific actions; not score 2 because the actions named are concrete rather than generic.

3 / 5

Completeness

The description explicitly answers both questions: what it does ("Create conventional commit messages by analyzing staged changes... following the Conventional Commits specification") and when to use it with concrete quoted trigger phrases ("Use when user says \"commit\", \"save changes\", or \"create commit\""). This matches the top anchor exactly; score 4 would require the 'when' to be less explicit than the quoted trigger phrases provided.

5 / 5

Trigger Term Quality

Triggers "commit", "save changes", and "create commit" are natural phrases a user would say, giving good keyword coverage. Not score 5 because common variations like "commit message", "write commit message", "git commit", or "stage/staged changes" are missing; not score 3 because the included terms are genuinely natural rather than merely relevant.

4 / 5

Distinctiveness Conflict Risk

The commit-message-generation niche is clear with distinct triggers, but "commit" and "save changes" are broad enough to overlap with generic git/save skills or built-in commit behavior. Not score 5 because "save changes" in particular could plausibly fire for non-commit file-saving requests; not score 3 because the domain is well-focused rather than merely 'somewhat specific'.

4 / 5

Total

16

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

14

/

16

Passed

Repository
lee-to/ai-factory
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.