Prevent semantic code duplication with capability index and check-before-write
33
30%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/code-deduplication/SKILL.mdQuality
Discovery
32%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 is too terse and implementation-focused, reading more like an internal feature name than a skill description. It lacks a 'Use when...' clause, concrete action verbs, and natural user-facing trigger terms. While the concept of preventing semantic duplication is somewhat distinctive, the description doesn't provide enough detail for Claude to reliably select this skill at the right time.
Suggestions
Add an explicit 'Use when...' clause with natural triggers, e.g., 'Use when writing new functions, adding features, or when the user asks about existing capabilities, duplicate code, or DRY principles.'
List concrete actions the skill performs, e.g., 'Checks existing codebase for similar functionality before writing new code, maintains a capability index of existing functions, and suggests reusing or extending existing implementations instead of creating duplicates.'
Include natural user-facing keywords like 'duplicate code', 'DRY', 'reuse', 'existing function', 'already implemented' to improve trigger term coverage.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names a domain (semantic code duplication) and mentions two mechanisms ('capability index' and 'check-before-write'), but doesn't list concrete actions like 'scan codebase', 'update index', or 'suggest existing functions'. | 2 / 3 |
Completeness | Provides a partial 'what' (prevent semantic code duplication) but has no 'when' clause or explicit trigger guidance. The rubric caps completeness at 2 for missing 'Use when...' and this also has a weak 'what', so it scores 1. | 1 / 3 |
Trigger Term Quality | Includes some relevant terms like 'code duplication' and 'semantic', but misses natural user phrases like 'duplicate code', 'DRY', 'refactor', 'already exists', or 'reuse'. 'Capability index' and 'check-before-write' are implementation jargon rather than user-facing trigger terms. | 2 / 3 |
Distinctiveness Conflict Risk | The concept of 'semantic code duplication' with a 'capability index' is somewhat distinctive, but could overlap with general refactoring, code review, or code quality skills. The lack of explicit triggers increases conflict risk. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
27%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill is well-intentioned but severely bloated—it explains concepts Claude already understands (what code duplication is, how to write docstrings, how imports work) and provides exhaustive hypothetical examples that inflate token cost without proportional value. The core idea (maintain a capability index, check before writing) could be conveyed in under 80 lines. The slash commands referenced are undefined, and the monolithic structure undermines the very organizational principles the skill advocates.
Suggestions
Reduce content to ~60-80 lines: keep only the CODE_INDEX.md format template (with 1-2 category examples, not 8), the check-before-write decision tree, and the Claude Instructions section. Remove all anti-pattern examples, file header templates, and function docstring guidance that Claude already knows.
Split the vector DB integration, audit checklist/output format, and detailed CODE_INDEX.md example into separate referenced files (e.g., VECTOR_DB.md, AUDIT.md, INDEX_TEMPLATE.md).
Define or remove the slash commands (/update-code-index, /audit-duplicates)—either provide actual scripts/tool definitions or replace with concrete manual steps.
Add a validation step: how does Claude verify the index is accurate and up-to-date? Include a concrete check like comparing index entries against actual exports in the codebase.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~350+ lines. The massive CODE_INDEX.md example with dozens of hypothetical functions (Button, Modal, Toast, etc.) is illustrative padding that doesn't teach Claude anything new. The ASCII art boxes, decision trees, and extensive anti-pattern examples could be condensed to a fraction of the size. Claude already knows how to write docstrings, file headers, and how to search codebases. | 1 / 3 |
Actionability | Provides concrete examples of CODE_INDEX.md format, file headers, and function documentation templates, which are useful. However, the core workflow relies on slash commands (/update-code-index, /audit-duplicates) that are never defined or implemented—they're referenced as if they exist but no actual scripts or tool definitions are provided. The vector DB setup code is executable but is an optional tangent. | 2 / 3 |
Workflow Clarity | The check-before-write process and decision tree are clearly sequenced, and the 'Claude Instructions' section provides session-level workflow. However, there are no validation checkpoints—no way to verify the index is accurate or complete, no feedback loop for when the index is stale, and the audit process is a manual checklist with no automated verification step. | 2 / 3 |
Progressive Disclosure | Everything is in one monolithic file with no references to external files, yet the content is far too long for a single SKILL.md. The CODE_INDEX.md template, vector DB setup, audit output format, and extensive anti-pattern examples should be split into separate referenced files. No bundle files are provided to support this massive document. | 1 / 3 |
Total | 6 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (544 lines); consider splitting into references/ and linking | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
7e5f7a2
Table of Contents
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.