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.

71

Quality

89%

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

Overview
Quality
Evals
Security
Files

Quality

Content

78%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, actionable skill body: a five-step workflow with real request/response examples and executable test code, appropriately split across three one-level-deep reference files. The gaps are small — a non-self-contained Step 5 snippet, no inline baseline creation, and some duplicated per-engine summaries between the routing table and References.

Suggestions

Make Step 5 self-contained: define run_rank_eval() (or reuse the Step 4 wrapper), add the missing Path import, and show how to generate tests/baseline.json (run rank_eval, save the details object) so the per-query regression test is copy-paste ready.

Trim the duplicated per-engine delta descriptions — they appear in the engine routing table and again in the References section; keep one (the routing table) and let the References section be bare links.

Reduce the thrice-repeated "Per the [Elasticsearch Rank Eval API]" lead-ins to a single attribution near the request example to save tokens without losing clarity.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence — no padding explaining what Elasticsearch or NDCG is, dense decision tables, compact code. Minor trimmable redundancy remains: the per-engine delta summaries appear in both the engine routing table and the References section, and "Per the [Elasticsearch Rank Eval API]" is repeated before three sections.

4 / 5

Actionability

The _rank_eval request JSON and the Step 4 test wrapper are copy-paste ready, but Step 5 calls an undefined run_rank_eval() and uses Path without importing it, and the creation of tests/baseline.json is never shown — minor gaps that keep it below the fully-executable anchor.

4 / 5

Workflow Clarity

Steps 1-5 are clearly numbered and sequenced with explicit assertion checkpoints and informative failure messages in Steps 4-5, so validation is explicit rather than implicit (above the 3 anchor). However, the baseline snapshot that per-query regression detection depends on is not written out inline (deferred to the reference), fitting "clear sequence with most checkpoints present; minor validation gaps".

4 / 5

Progressive Disclosure

The core Elasticsearch workflow stays in SKILL.md while per-engine deltas split into references/opensearch.md and references/solr.md and advanced config into references/rank-eval-guide.md — all three files exist, are clearly signaled via the engine routing table and Advanced topics section, and are exactly one level deep with no further references inside them.

5 / 5

Total

17

/

20

Passed

Description

96%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 excellent description: concrete, comprehensive, third-person, and dense with natural domain triggers, with an explicit Use-when clause covering the exact pre-change scenarios (analyzers, synonyms, boosts, query templates). The only weakness is slight boundary blur with a vector-search relevance skill via the hybrid BM25 + neural mention.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Author search-engine relevance regression tests", "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" — with no capability area of the domain missing, matching the comprehensive-coverage anchor.

5 / 5

Completeness

Both questions are explicitly answered with concrete trigger phrases: what ("Author search-engine relevance regression tests for Elasticsearch, OpenSearch, and Apache Solr") and when ("Use before changing analyzers, synonyms, boosts, or query templates on an Elasticsearch, OpenSearch, or Solr index that serves user-facing search").

5 / 5

Trigger Term Quality

Natural trigger terms users would say are comprehensively covered: "relevance", "regression tests", "Elasticsearch / OpenSearch / Apache Solr", "NDCG / MRR", "judgment list", "analyzers, synonyms, boosts, or query templates", plus synonyms like "Ranking Evaluation API" for relevance testing.

5 / 5

Distinctiveness Conflict Risk

The niche is clear (term-based relevance testing on three named engines via _rank_eval), but the "hybrid BM25 + neural pipelines" mention and the body's sibling skill "vector-search-recall-tests" create minor overlap risk with a closely related vector-search relevance skill, fitting the "mostly distinct; minor overlap risk" anchor better than the minimal-conflict anchor.

4 / 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

Table of Contents