CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

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".

Quality

72%

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

56%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 core commit workflow is excellent — concrete commands, explicit prompts, extensive validation, and error-recovery loops — but the skill is packaged as a 24KB monolith with substantial duplicated instruction across its mode-handling sections. Consolidating the repeated task-bound and skill-context rules into one place (or into a reference file) would cut significant tokens without losing capability.

Suggestions

State the skill-context precedence rules once and reference them: the 'Shared project skill-context' section and the 'How to apply skill-context rules' block cover the same ground; merge them into a single short paragraph plus the conflict-priority rule.

Extract the /aif-implement task-bound and classic-group contracts (Step 3's mode descriptions plus their repetition in Behavior steps 6-9 and 'Important') into a references/task-bound-mode.md file, leaving SKILL.md with a one-line pointer and the ordinary-mode flow.

Define what 'prove ownership' and 'map changes at hunk level' concretely mean (e.g., the exact git apply --cached patch-per-group sequence or a decision checklist), turning the two remaining judgment-shaped steps into executable ones.

DimensionReasoningScore

Conciseness

The ~400-line body is noticeably verbose for a commit-message skill: the skill-context precedence rules are stated twice in full (the 'Shared project skill-context' section and again under 'How to apply skill-context rules'), the classic-group task-bound contract is spelled out three times (Step 3, Behavior steps 6-9, and 'Important'), and it explains concepts Claude already knows (nested-CLAUDE.md precedence principles, why a spec exists). This fits 'noticeably verbose; several unnecessary explanations or padded sections'; a 3 would require the content to be mostly efficient with only incidental trimming opportunities, but the repetition here is structural.

2 / 5

Actionability

Guidance is highly executable: exact commands (`git diff --cached`, `git add -p`, `git apply --cached`, `git status --porcelain -uall`), concrete glob patterns for plan lookup, fully specified AskUserQuestion prompts with options, and three complete commit-message examples. It falls short of 5 because some steps remain judgment-shaped rather than executable — 'inspect each candidate's content and prove its ownership' and 'map changes at hunk level' describe outcomes without the procedure to reach them.

4 / 5

Workflow Clarity

The 10-step workflow is clearly sequenced with strong validation checkpoints (verify the staged diff equals the captured group set, stop-before-staging ambiguity gates, post-commit diff equality checks) and a genuine feedback loop for failed hooks (inspect HEAD/index, re-analyze, re-confirm). Validation is present, so the destructive/batch cap does not apply. It misses 5 because the ordinary vs. task-bound vs. classic-group mode logic is interleaved across three different sections rather than one coherent path, leaving minor gaps in which rules apply when.

4 / 5

Progressive Disclosure

There are no bundle files at all, so all content lives in this single SKILL.md, and clearly separable material — the /aif-implement task-bound integration contract, plan-resolution glob rules, and the skill-context precedence policy — is inlined rather than split into reference files. Section headers do provide real structure and the .ai-factory file reads are clearly signaled, matching 'some structure but could be better organized; content that should be separate is inline' rather than the minimal-structure anchor.

3 / 5

Total

13

/

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 well-constructed description: it states what the skill does concretely and gives an explicit, quoted 'Use when' trigger clause, matching the pattern of the rubric's good examples. Its main weakness is that it undersells the skill's actual scope (commit splitting, plan-aware grouping, push handling are all unmentioned), keeping specificity at the mid anchor.

DimensionReasoningScore

Specificity

The description names the domain and 1-2 concrete actions — "Create conventional commit messages by analyzing staged changes" and "Generates semantic commit messages following the Conventional Commits specification" — but these are essentially the same action restated, and it omits capabilities the skill actually has (splitting commits, plan-aware grouping, push handling). This matches the anchor 'Names domain and 1-2 concrete actions, but not comprehensive'; a 4 would require several distinct listed actions with only minor gaps.

3 / 5

Completeness

It explicitly answers both questions: the 'what' is clear ("Create conventional commit messages by analyzing staged changes... following the Conventional Commits specification") and the 'when' is fully explicit with concrete quoted trigger phrases ("Use when user says 'commit', 'save changes', or 'create commit'"). This matches the top anchor exactly; a 4 would apply only if the 'when' were vague or implicit, which it is not.

5 / 5

Trigger Term Quality

It quotes natural phrases users say — "commit", "save changes", "create commit" — giving good keyword coverage. It is not a 5 because common variations like "git commit", "commit message", or "write a commit message" are missing; it is above a 3 because the dominant natural trigger ("commit") plus a genuine synonym ("save changes") are present.

4 / 5

Distinctiveness Conflict Risk

The Conventional Commits framing carves out a clear niche distinct from general git or formatting skills. Minor overlap risk remains: "save changes" is a broad phrase that could also match file-saving or checkpointing skills, and "commit" could collide with other commit-adjacent skills — so it is 'mostly distinct; minor overlap risk' rather than the minimal-conflict top anchor.

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

Path

skills/aif-commit/SKILL.md

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.