CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/elasticsearch-relevance-tests

Author search-engine relevance regression tests for Elasticsearch, OpenSearch, and Apache Solr. Core workflow on the Elasticsearch Ranking Evaluation API (`POST {index}/_rank_eval`) - judgment lists (query + expected docs at ranks), per-query metrics (Precision@K, Recall@K, MRR, DCG, ERR), reproducible test corpora; pair with Quepid + Splainer for interactive judgment authoring. Per-engine references cover the OpenSearch delta (Search Relevance Workbench, neural query DSL, hybrid BM25 + neural pipelines, ES-to-OS migration parity) and the Apache Solr delta (no _rank_eval: debugQuery score explain, LTR feature/model store REST, eDisMax qf/pf/mm tuning, external nDCG harness). Use before changing analyzers, synonyms, boosts, or query templates on an Elasticsearch, OpenSearch, or Solr index that serves user-facing search, so the NDCG / MRR baseline is captured first.

74

Quality

93%

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

86%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, highly actionable skill body with executable code, a clear sequenced workflow, and clean one-level-deep progressive disclosure. The only gaps are minor conciseness trims and an implicit rather than explicit error-recovery feedback loop.

Suggestions

Trim the repeated 'Per the [Elasticsearch Rank Eval API]:' openers to a single provenance note and drop the decorative opening quote to tighten conciseness toward anchor 5.

Add an explicit feedback loop after the Step 4/5 assertions (e.g., 'On assertion failure: inspect per-query details, adjust analyzer/boost/synonym, re-run rank_eval until baseline holds') to lift workflow_clarity toward anchor 5.

Insert a pre-submit validation checkpoint in Steps 1–3 (e.g., confirm judgment CSV parses and ratings are on the 0–3 scale) before invoking _rank_eval.

DimensionReasoningScore

Conciseness

The body is lean — token-efficient tables and focused code that assume Claude's competence — but the repeated 'Per the [Elasticsearch Rank Eval API]:' openers across three sections and the decorative opening quote are minor trim opportunities, placing it at anchor 4 rather than the every-token-earns-its-place anchor 5.

4 / 5

Actionability

Provides copy-paste-ready, fully executable artifacts — a CSV judgment format, a complete _rank_eval HTTP request with response shape, and Python wrappers with imports, real endpoints, and concrete assertions covering the baseline and per-query cases — matching anchor 5.

5 / 5

Workflow Clarity

A clear five-step sequence with assertion checkpoints in Steps 4–5 and an anti-patterns checklist, but there is no explicit fix-and-retry feedback loop and no pre-submit validation of the judgment list, so it sits at anchor 4 rather than anchor 5; the workflow is read-only evaluation, so the destructive/batch cap-at-3 does not apply.

4 / 5

Progressive Disclosure

SKILL.md is a clear overview whose engine-routing table signals one-level-deep references (opensearch.md, solr.md, rank-eval-guide.md — all real, top-level files) and defers advanced config appropriately, matching anchor 5.

5 / 5

Total

18

/

20

Passed

Description

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

An information-dense, well-targeted description that concretely states capabilities, includes explicit 'Use before...' trigger guidance, and carves out a distinct niche with minimal overlap risk. It is detailed rather than padded, so the verbosity guideline does not penalize it.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — authoring relevance regression tests, building judgment lists, defining five named per-query metrics, and building reproducible corpora — with comprehensive coverage, matching the anchor-5 example rather than the minor-gaps anchor 4.

5 / 5

Completeness

Explicitly answers both what ('Author search-engine relevance regression tests... judgment lists... per-query metrics...') and when ('Use before changing analyzers, synonyms, boosts, or query templates... so the NDCG / MRR baseline is captured first') with concrete triggers, matching anchor 5.

5 / 5

Trigger Term Quality

Covers natural domain trigger phrases a search engineer would say — 'relevance regression tests', 'judgment list', 'NDCG / MRR baseline', and 'changing analyzers, synonyms, boosts, or query templates' — comprehensively, so it fits anchor 5 over the few-terms-missing anchor 4.

5 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (term-based relevance testing for Elasticsearch, OpenSearch, Solr) and explicitly distinguishes itself from the vector-search analogue, giving minimal conflict risk per anchor 5.

5 / 5

Total

20

/

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Reviewed

Table of Contents