CtrlK
BlogDocsLog inGet started
Tessl Logo

content-hash-cache-pattern

Cache expensive file processing results using SHA-256 content hashes — path-independent, auto-invalidating, with service layer separation. Use when repeated file processing is slow and results should be cached and invalidated by content rather than path.

63

Quality

75%

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/content-hash-cache-pattern/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

A solid, actionable pattern skill: executable code for every component, a clearly sequenced cache workflow with graceful corruption handling, and good section structure. Its main cost is redundancy — three sections (When to Activate/When to Use, design table, best practices) restate the same few points, and a few referenced functions are left undefined.

Suggestions

Merge 'When to Activate' and 'When to Use' into one section — they repeat nearly the same bullets (file processing pipelines, --cache/--no-cache CLI, adding caching to pure functions).

Collapse either the 'Key Design Decisions' table or the 'Best Practices' list — both restate the same rationale (path-independence, chunked hashing, purity, graceful corruption handling) already given inline.

Add a minimal signature for the undefined seams (extract_text, serialize_entry/deserialize_entry) so the cache code is copy-paste runnable against any processing function.

DimensionReasoningScore

Conciseness

The code and anti-patterns earn their place, but there is structural repetition: "When to Activate" and "When to Use" list nearly identical bullets (file processing pipelines, --cache/--no-cache CLI, caching pure functions), and the "Key Design Decisions" table plus "Best Practices" restate rationale already given inline ("Path-independent, auto-invalidates on content change", "Handle corruption gracefully", "Keep processing functions pure"). Not 2 because nothing explains concepts Claude already knows and the code sections are tight; not 4 because two whole sections plus a table are padding that could be consolidated.

3 / 5

Actionability

Concrete, executable Python for hashing (compute_file_hash), storage (write_cache/read_cache), and the service wrapper (extract_with_cache) with hit/miss logging and corruption handling. Not 5 because serialize_entry/deserialize_entry, extract_text, and ExtractedDocument are referenced but undefined, so the code is not fully copy-paste runnable; not 3 because those placeholders are domain-specific seams rather than pseudocode, and everything shown is real executable code.

4 / 5

Workflow Clarity

The pattern is clearly sequenced in four numbered subsections, and extract_with_cache shows the full check-hit/miss-extract-store flow with corruption treated as a miss and re-processed (a recovery checkpoint: "Treat corruption as cache miss"). Not 5 because there is no explicit validation of cache writes (e.g., verifying the written entry round-trips) and no stated post-write check; not 3 because the sequence is explicit and error/corruption handling is built in rather than absent.

4 / 5

Progressive Disclosure

No bundle files exist, and the body is well organized into clear sections (Core Pattern, Key Design Decisions, Best Practices, Anti-Patterns, When to Use / When NOT to Use) that keep the single pattern easy to navigate. Not 5 because at ~155 lines it exceeds the under-50-line simple-skill case, and the duplicated When to Activate/When to Use sections show minor organization gaps; not 3 because nothing that clearly belongs in a separate reference file is inlined and navigation is easy.

4 / 5

Total

15

/

20

Passed

Description

83%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 is strong: it states a concrete mechanism (SHA-256 content-hash cache keys), key properties (path-independent, auto-invalidating, service layer separation), and an explicit 'Use when' clause with natural trigger phrasing. Its only weakness is modest trigger-term breadth — no synonyms like memoization or the specific file formats (PDF, image) the body covers.

DimensionReasoningScore

Specificity

"Cache expensive file processing results using SHA-256 content hashes — path-independent, auto-invalidating, with service layer separation" names the domain and several concrete actions (hash-keyed caching, invalidation on content change, service layer separation), with minor gaps (no mention of specific file types like PDFs/images that it handles). Not 5 because coverage of capabilities is narrower than the comprehensive multi-action anchor; not 3 because it lists several specific mechanisms rather than just 1-2 generic actions.

4 / 5

Completeness

Explicitly answers both: what — "Cache expensive file processing results using SHA-256 content hashes"; when — "Use when repeated file processing is slow and results should be cached and invalidated by content rather than path". This matches the anchor for a clear 'what' plus a concrete, explicit 'Use when' trigger clause.

5 / 5

Trigger Term Quality

Natural phrases a user would say are present: "repeated file processing is slow", "results should be cached", "invalidated by content rather than path", plus "SHA-256" and "cache". Not 5 because common synonyms like "memoize/memoization", "speed up", or specific file-format terms (PDF, image) are missing; not 3 because keyword coverage goes well beyond a single generic term.

4 / 5

Distinctiveness Conflict Risk

The content-hash-keyed caching niche ("path-independent, auto-invalidating", "invalidated by content rather than path") is a clear, distinct trigger surface. Not 5 because it could still be pulled in by broader performance/caching requests that aren't file-processing-specific; not 3 because the content-hash framing strongly distinguishes it from generic caching skills.

4 / 5

Total

17

/

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

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
affaan-m/ECC
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.