CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/vector-search-recall-tests

Use when HNSW or IVF parameters are being tuned, an embedding model is swapped, or vector search recall was never measured. Builds brute-force ground truth, measures recall@k against latency and detects embedding drift for Qdrant, Weaviate, pgvector, Pinecone, Elasticsearch k-NN and Milvus.

Quality

91%

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

Overview
Quality
Evals
Security
Files

Quality

Content

85%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 well-structured, expert-level skill: the 8-step workflow is clearly sequenced with explicit validation thresholds, and bundle references are real, well-signaled, and one level deep. The two weaknesses are placeholder functions in the later test steps that the reader must implement, and minor citation repetition in Step 3.

Suggestions

Define or stub the engine-agnostic helpers used in Steps 5, 7, and 8 (baseline_recall_for, embed_with, rebuild_index, retrieve_topk, engine_search, engine.insert), or point from those steps to references/per-engine-clients.md for concrete per-engine implementations.

Cite [Qdrant search docs] once at the top of Step 3 instead of four times within the same section.

Trim the inline Weaviate ef explanation (Step 3) to a single sentence deferring to references/per-engine-clients.md, since the reference file already covers it in depth.

DimensionReasoningScore

Conciseness

The body assumes Claude's intelligence (no explanation of what HNSW or recall is) and uses tables for tradeoffs and anti-patterns efficiently, but has minor trimmable repetition: "Per [Qdrant search docs]" is cited four times in Step 3 alone, and the inline Weaviate ef note partially duplicates references/per-engine-clients.md. Not a 5 because those redundant citations and the duplicated note are tokens that don't earn their place; not a 3 because there is no padded or unnecessary conceptual explanation anywhere.

4 / 5

Actionability

Steps 1-4 are fully executable, copy-paste-ready code using the real Qdrant client API (query_points with SearchParams(hnsw_ef=ef)), but Steps 5, 7, and 8 depend on undefined engine-agnostic placeholders (baseline_recall_for, embed_with, rebuild_index, retrieve_topk, engine_search, engine.insert) with no stub definitions or pointer to implementations. Not a 5 because those placeholders are more than minor gaps; not a 3 because the core measurement path (the headline use case) is concrete and runnable as written.

4 / 5

Workflow Clarity

Eight clearly sequenced steps build on each other (Step 3 reuses Step 2's recall_at_k and notes pairing with Step 4's latency measurement), every test step carries an explicit validation assert with a specific threshold (recall@10 >= 0.95, p95 < 50ms, delta >= -0.05), and the sweep iterates until the recall target is hit. The Anti-patterns table's 'Why it fails / Fix' columns provide error-recovery guidance, satisfying the anchor-5 requirements.

5 / 5

Progressive Disclosure

Both reference files exist, are one level deep, and are clearly signaled in the body with a link plus a one-line description of their contents (per-engine client code; clone-and-run commands); engine-specific and setup detail is appropriately split out while the core procedure stays inline. Easy navigation via per-step section headers; matches the well-signaled one-level-deep reference structure of the anchor-5 example.

5 / 5

Total

18

/

20

Passed

Description

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

A strong description with an explicit 'Use when' clause, concrete third-person actions, and a comprehensive engine list. The only weakness is missing common synonyms (ANN, semantic search, RAG) that a user might naturally say when they need recall testing.

Suggestions

Add natural synonyms such as 'ANN', 'approximate nearest neighbor', or 'semantic search / RAG retrieval quality' to the trigger terms so users who don't name HNSW or IVF explicitly can still surface the skill.

DimensionReasoningScore

Specificity

Lists three concrete actions ("Builds brute-force ground truth", "measures recall@k against latency", "detect embedding drift") plus six named engines, comprehensively covering the vector-search recall-testing niche. Not a 4 because there is no meaningful coverage gap within that niche; the actions are specific rather than generic.

5 / 5

Completeness

Explicitly answers both questions: "Use when HNSW or IVF parameters are being tuned, an embedding model is swapped, or vector search recall was never measured" gives three concrete 'when' triggers, and the build/measure/detect clause states the 'what'. Matches the anchor-5 pattern of concrete trigger phrases paired with a clear capability list.

5 / 5

Trigger Term Quality

Good natural keyword coverage: "HNSW", "IVF", "embedding model", "vector search recall" are phrases users tuning an index would actually say. Not a 5 because common synonyms like "ANN", "approximate nearest neighbor", "semantic search", or "RAG" are absent; not a 3 because the included terms go well beyond one or two generic keywords.

4 / 5

Distinctiveness Conflict Risk

Clear niche (ANN recall measurement) with engine-specific triggers (Qdrant, pgvector, Elasticsearch k-NN, etc.) that are unlikely to fire for unrelated skills. The parameter-tuning and embedding-swap triggers are specific to this domain, giving minimal conflict risk.

5 / 5

Total

19

/

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.

Reviewed

On this page