CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

content-hash-cache-pattern

Cache expensive file processing results using SHA-256 content hashes — path-independent, auto-invalidating, with service layer separation.

1.44x
Quality

70%

Does it follow best practices?

Impact

100%

1.44x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/content-hash-cache-pattern/SKILL.md

The canonical home for this skill is content-hash-cache-pattern in affaan-m/ECC

SKILL.md
Quality
Evals
Security

Quality

Content

75%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 a well-structured, code-first pattern writeup with executable examples, a clear sequence, error-recovery handling, and useful anti-patterns. Its main weaknesses are mild redundancy between the activation/use sections and undefined helper functions (serialization, ExtractedDocument) that keep the examples from being fully self-contained.

Suggestions

Merge the duplicated "When to Activate" and "When to Use" sections into a single section to remove the near-identical bullet lists.

Provide brief stubs or one-line contracts for serialize_entry()/deserialize_entry() and note that extract_text/ExtractedDocument come from the reader's own pipeline, so the examples are self-contained.

DimensionReasoningScore

Conciseness

The body is efficient — code carries the weight with brief rationale tables and no padding explaining known concepts — but "When to Activate" and "When to Use" are near-duplicate lists, and "Best Practices" restates the "Key Design Decisions" table. These are minor trimmable redundancies, matching anchor 4 rather than the fully lean anchor 5.

4 / 5

Actionability

Concrete, executable Python is given for hashing, cache storage, and the service-layer wrapper, including chunked hashing and corruption handling. It falls short of anchor 5 because serialize_entry(), deserialize_entry(), ExtractedDocument, and extract_text are referenced but never defined or stubbed, so the code is not fully copy-paste ready.

4 / 5

Workflow Clarity

The pattern is presented as a clearly sequenced four-part flow (hash → check cache → extract → store) with an explicit error-recovery checkpoint ("Treat corruption as cache miss" with try/except around cache reads). It is not a 5 because there are no broader validation steps (e.g., verifying a written cache entry or handling cache growth) and no explicit retry guidance beyond corruption.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are all absent), and the single SKILL.md is well-organized with clear section headers and a coherent overview-to-details flow. At ~155 inline lines it exceeds the under-50-lines simple-skill exception, and the full code listing could plausibly live in a scripts/ file, which keeps this at anchor 4 rather than 5.

4 / 5

Total

16

/

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 communicates a clear and specific "what" with a distinctive technical mechanism, but omits any "when to use" trigger guidance, which both caps completeness and weakens trigger-term quality. It reads as a design-summary rather than a triggerable skill description.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when building file processing pipelines (PDF parsing, OCR, text extraction) or when adding a --cache/--no-cache option to a CLI.'

Include natural user trigger terms and synonyms such as 'memoize', 'avoid re-parsing', 'cache invalidation', and concrete file types (PDFs, images) that the body already covers.

Trim implementation jargon like 'service layer separation' from the description and save it for the body, so the description stays trigger-focused.

DimensionReasoningScore

Specificity

The description names one concrete action ("Cache expensive file processing results") with a specific mechanism ("using SHA-256 content hashes"), but does not enumerate several specific actions or file types (e.g., PDF, images) as the anchor-4/5 examples do. It sits clearly at "domain and 1-2 concrete actions, but not comprehensive."

3 / 5

Completeness

The "what" is clear and specific, but there is no "Use when..." clause or equivalent trigger guidance, which caps completeness at 3 per the judging guidelines. It is not a 2 because the "what" is concrete, not vague; it is not a 4 because the "when" is entirely missing rather than merely implicit.

3 / 5

Trigger Term Quality

"cache" and "file processing" are natural user terms, but "SHA-256 content hashes", "path-independent", "auto-invalidating", and "service layer separation" are technical jargon, and common variations like "memoize", "speed up reprocessing", or file extensions are absent. This matches "some relevant keywords but missing common variations or synonyms" rather than anchor 4's "good keyword coverage".

3 / 5

Distinctiveness Conflict Risk

Content-hash-based caching is a distinct technical niche ("SHA-256 content hashes", "path-independent, auto-invalidating") with a clear identity, giving minimal conflict risk with unrelated skills. It is not a 5 because the opening phrase "Cache expensive file processing results" could overlap with a more general caching/memoization skill.

4 / 5

Total

13

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository

valeriibeck-star/claude-skills

Path

skills/content-hash-cache-pattern/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.