CtrlK
BlogDocsLog inGet started
Tessl Logo

contact-cache

Track all identified/contacted people across strategies. CSV-backed contact database with dedup by LinkedIn URL or email. Prevents duplicate outreach when running strategies on a recurring cadence.

64

Quality

80%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/lead-generation/capabilities/contact-cache/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

93%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 an exemplary lean CLI skill: fully executable commands for every operation, concrete storage and dedup details, and well-organized short sections with no padding. The only meaningful gap is the absence of the expected CSV column format for bulk import and any explicit error-recovery guidance around that batch operation.

DimensionReasoningScore

Conciseness

The ~48-line body is lean and efficient: every section (Usage, Data, Valid Statuses) adds information Claude would not know — the CLI commands, storage path, contact_id hashing scheme, and valid status values — with no explanation of known concepts. It does not drop to 4 because the only arguable redundancy (the opening line restating the description) is conventional skill structure rather than over-explanation.

5 / 5

Actionability

Every usage example is a fully executable, copy-paste-ready command with realistic arguments covering all common cases: check, single add, bulk CSV import, update, export (multiple flag variations), and stats. The Data section also gives the concrete storage path and dedup/hash rule, matching the 'fully executable; specific examples cover the common cases' anchor. The only nit — the expected CSV column format for bulk import is not stated — is minor enough to keep this at 5 given the script's flexible column mapping.

5 / 5

Workflow Clarity

The check command ('Check if contacts are already cached') is listed first, providing a verification step for the dedup-critical operation, and the automatic contact_id hashing described under Data acts as built-in validation; this matches 'clear sequence with most checkpoints present; minor validation gaps'. It is not 5 because no explicit check-before-add sequence or error-recovery guidance is given, and the bulk CSV import (a batch operation) documents no expected column format or failure handling.

4 / 5

Progressive Disclosure

Per the rubric's simple-skill guidance ('under 50 lines with no need for external references can score 5 with just well-organized sections'), this body qualifies: it is well under 50 lines, organized into clear Usage/Data/Valid Statuses sections, and references only the bundled script (scripts/cache.py exists in the bundle) plus an auto-created data file. There is no content that belongs in a separate reference file.

5 / 5

Total

19

/

20

Passed

Description

58%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 gives a clear, concrete picture of what the skill does, with a specific dedup mechanism that distinguishes it from generic contact managers. Its main weakness is the missing explicit 'Use when...' trigger guidance, which caps completeness at 3, and thin synonym coverage for natural trigger terms in the lead-generation domain.

Suggestions

Add an explicit trigger clause, e.g. 'Use when running lead-generation or outreach strategies, importing lead lists, or before contacting someone to avoid duplicate outreach.'

Broaden natural trigger terms to include synonyms users actually say, such as 'leads', 'prospects', 'outreach list', or 'CRM', alongside 'contacts'.

Consider mentioning one or two operational capabilities (e.g., checking whether a person was already contacted, or exporting the cache) to round out coverage.

DimensionReasoningScore

Specificity

The description lists several concrete capabilities — 'Track all identified/contacted people across strategies', 'CSV-backed contact database with dedup by LinkedIn URL or email', 'Prevents duplicate outreach' — which matches the 'several specific actions; minor gaps in coverage' anchor. It falls short of 5 because coverage is incomplete (no mention of adding, updating, exporting, or checking contacts), and is above 3 because more than 1-2 concrete actions are named with a concrete dedup mechanism.

4 / 5

Completeness

The 'what' is clear (CSV-backed contact database with dedup by LinkedIn URL or email), but there is no 'Use when...' clause or equivalent explicit trigger guidance; 'Prevents duplicate outreach when running strategies on a recurring cadence' describes purpose rather than when Claude should invoke the skill, so completeness is capped at 3 per the judging guidelines. It is not a 2 because the 'what' half is concrete and specific.

3 / 5

Trigger Term Quality

Relevant keywords like 'contact database', 'dedup', 'LinkedIn URL', 'email', and 'duplicate outreach' are present, but common variations a user would naturally say — 'leads', 'prospects', 'CRM', 'outreach tracker' — are missing, matching the 'some relevant keywords but missing common variations or synonyms' anchor. It does not reach 4 because the synonym coverage is thin for the lead-generation domain.

3 / 5

Distinctiveness Conflict Risk

The niche — deduplicating contacted people by LinkedIn URL or email to prevent repeat outreach — is fairly distinct with concrete differentiators, matching 'mostly distinct; minor overlap risk with closely related skills'. It is not a 5 because terms like 'track people' and 'contact database' could overlap with general CRM/lead-tracking skills.

4 / 5

Total

14

/

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
gooseworks-ai/goose-skills
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.