CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

git-cleanup

Delete local branches that have been merged or whose PRs are closed/stale

Quality

76%

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 ./.agents/skills/git-cleanup/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

88%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.

This is a strong, highly actionable skill body: every step is executable, the destructive batch operation is gated by guards, classification rules, and an explicit confirmation, and failure paths are handled. The only weaknesses are minor repetition in the output templates and the absence of any progressive-disclosure split for the longer boilerplate sections.

DimensionReasoningScore

Conciseness

The body is dense with executable commands, tables, and non-obvious gotchas (e.g., "Do NOT use `-d` (lowercase) since squash-merged branches won't be detected as merged by git") with essentially no explanation of concepts Claude already knows. Not score 5 because the summary-table templates repeat identical table headers across sections and a few procedural sentences could be trimmed. Not score 3 — over-explanation is minor, not 'some unnecessary explanation'.

4 / 5

Actionability

Every step gives copy-paste-ready bash: `git for-each-ref --format=...`, the `gh pr view ... --jq` invocation, a concrete regex for worktree classification with a worked example, and exact `git worktree remove` / `git branch -D` commands. Guidance is fully executable and covers the common cases.

5 / 5

Workflow Clarity

Eleven clearly numbered steps with explicit validation checkpoints: a detached-HEAD guard before anything runs, an ancestor/PR-state check before classification, a category table, a mandatory yes/no/pick confirmation before any destructive action, and error-recovery handling ("If removal fails (dirty worktree), warn the user and skip that branch — do not force-remove without explicit approval"). Despite being a destructive batch operation, validation and feedback loops are present throughout.

5 / 5

Progressive Disclosure

The body is organized into well-labeled numbered sections that each map to a phase of the workflow, and no bundle files exist to reference. Not score 5 because the 5 anchor requires well-signaled one-level-deep references to separate files, and at ~220 lines some content (e.g., the full summary-output templates) could arguably live in a reference file. Not score 3 — structure is genuinely good, not merely present.

4 / 5

Total

18

/

20

Passed

Description

53%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.

The description states a specific, correctly-scoped action with concrete criteria, but it omits any 'when to use' trigger guidance and uses only one phrasing of the task. Adding an explicit trigger clause and natural synonyms (e.g., 'clean up', 'prune') would lift completeness and trigger-term quality.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user asks to clean up, prune, or delete local branches that were already merged or whose PRs are closed."

Include natural synonym phrasings users would actually say ("clean up branches", "prune stale branches", "branch cleanup") to improve trigger term coverage.

Optionally name the additional concrete behaviors (classify branches, detect stale review worktrees) so the 'what' covers the skill's full scope.

DimensionReasoningScore

Specificity

"Delete local branches" is a concrete action qualified by "merged or whose PRs are closed/stale", but only one action is named — there is no enumeration of the analysis/classification/summary behaviors the body actually performs. This matches the anchor 'Names domain and 1-2 concrete actions, but not comprehensive' rather than 4, which requires several specific actions listed.

3 / 5

Completeness

The 'what' is clear (delete merged/closed/stale local branches), but there is no 'Use when...' clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. Not score 2 because the 'what' is specific and complete, not vague.

3 / 5

Trigger Term Quality

Relevant keywords like "local branches", "merged", "PRs", "closed/stale" are present, but common natural phrasings users would say ("clean up branches", "prune branches", "git branch cleanup") are missing. Not score 4 because the coverage lacks synonyms and variations beyond the single phrasing.

3 / 5

Distinctiveness Conflict Risk

The scope (deleting local branches based on merge/PR status) is a clear niche distinct from general git or PR-review skills, with minimal conflict risk. Not score 5 because the description lacks distinguishing trigger phrases that would fully separate it from adjacent branch-management skills.

4 / 5

Total

13

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

phatblat/dotfiles

Path

.agents/skills/git-cleanup/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.