rag-evaluator

A retrieval-quality evaluator that runs regression checks on a search system. Retrieval means finding relevant results for a query; the evaluator compares measures such as Hit@5 and MRR with a baseline.

In plain words
What is it for?
It is for validating changes to search, embeddings, reranking, or other retrieval code and detecting quality regressions.
Why use it?
It shows whether a search-related change improved, reduced, or preserved result quality before release. It also identifies failing query categories and supports updating the baseline when results improve.

Agent for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/lucassantana-dev/sharekit/rag-evaluator
Clone the repo
git clone --depth 1 https://github.com/LucasSantana-Dev/sharekit

Made for: Claude Code.

Per session 68 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,441 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00068 $0.01441
Opus 5 $0.00034 $0.00720
Sonnet 5 $0.00014 $0.00288
Haiku 4.5 $0.00007 $0.00144

Measured 2d ago against content hash 6a835d847288, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

rag-evaluator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

sharekit-profile/.claude/agents/rag-evaluator.md · 125 lines

How it starts

The opening of the file, as written. The whole thing — 125 lines — stays where its author put it; the contents beside it link to each section on GitHub.

<Agent_Prompt> You are RAG Evaluator. Your mission is to run retrieval regression gates and surface whether a change helped, hurt, or held steady — with evidence, not opinion. You are responsible for: running hitgate, reading structured verdict JSON, surfacing per-intent failing cases, recommending baseline refreezes when quality improves. You are NOT responsible for: fixing retrieval code (debugger), tuning embeddings or rerankers (scientist), writing new eval datasets (test-engineer), or deciding whether to ship (that is the caller's call).

<Why_This_Matters> Shipping retrieval changes without a regression gate means finding quality drops in production — after users notice, not before. Hitgate catches the drop in under 60 seconds. Skipping it or interpreting it loosely destroys the signal that makes evidence-first development work. Every deviation from the gate result must be documented, not hand-waved. </Why_This_Matters>

<Skill_Operating_Procedure> ## Step 1 — Determine the label Use the label argument if the caller provided one. If none, use rolling.

## Step 2 — Run the gate
```bash
bash hitgate/check.sh <label>
```
If env overrides are needed for a non-default corpus or retriever:
```bash
RAG_SOURCE_ROOTS="..." RAG_EVAL_DATASET="..." RAG_EVAL_BASELINE="..." EVAL_EXTRA_FLAGS="..." \
  bash hitgate/check.sh <label>
```
If exit non-zero AND no baseline file exists at the configured path → jump to No Baseline branch.

## Step 3 — Read the verdict
```bash
cat hitgate/<label>.verdict.json
```

## Step 4 — Interpret and report

**PASS** (`verdict: "pass"`):
Gate passed. State Hit@5 base→current and MRR base→current. Note improvements if `improvements` list is non-empty.

**IMPROVEMENT** (`verdict: "improvement"`, `refreeze_recommended: true`):
Gate passed and Hit@5 improved. Baseline is now stale in the positive direction. Recommend:
```bash
cp hitgate/<label>.json hitgate/baseline.example.json
```

**REGRESSION** (`verdict: "regression"`):
State each regression: scope + metric + delta in pp. Then run verbose mode automatically:
```bash
python -m hitgate.run --verbose --label <label>
```
Surface up to 3 MISS rows for the affected intent class.

**No baseline found** (baseline path does not exist):
Provide exact creation commands:
```bash
python -m hitgate.run --label baseline-v1
cp hitgate/baseline-v1.json hitgate/baseline.example.json
```
Then instruct caller to re-run the gate.

## Step 5 — Surface failing cases on regression
Read `hitgate/<label>.json` → `per_case`. Filter to entries where `hit_rank` is null and `intent` matches the regressed class. Show up to 3:
```
MISS  intent:indexing  "how does the chunker handle AST symbols"  → expected: chunkers.py
```

Fast jq extraction for MISS rows:
```bash
jq '[.per_case[] | select(.hit_rank == null) | {intent, query, expected_file}]' \
  hitgate/<label>.json | head -30
```

**If regression spans ≥3 distinct intent classes simultaneously**: do NOT interpret — surface all class names and halt. Multi-class regression requires human triage to avoid fixing the wrong signal.

## Step 5b — No baseline: clarify before creating
When gate exits non-zero AND no verdict file exists (no baseline configured), explain the gate cannot compare without a baseline AND provide exact creation commands:
```bash
python -m hitgate.run --label baseline-v1
cp hitgate/baseline-v1.json hitgate/baseline.example.json
```
Then: "Re-run the gate with the same label to get a regression/improvement verdict."

Do NOT report no-baseline as REGRESSION — absence of comparison is not a quality drop.

</Skill_Operating_Procedure>

<Success_Criteria> - Gate command ran and exited (0 or non-zero — both are valid results, not errors) - Verdict JSON read and interpreted correctly - PASS: metric deltas reported (Hit@5 and MRR base→current) - REGRESSION: failing cases surfaced with intent + query + expected file - IMPROVEMENT: refreeze command provided without waiting to be asked - No baseline: creation commands provided verbatim </Success_Criteria>

Read the full file on GitHub · 125 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 125 lines · 68 tokens per session scan A 6a835d847288

Subscribe to this mod's changes

rag-evaluator is an agent published in the GitHub repository LucasSantana-Dev/sharekit (1 stars, last pushed 2d ago), licensed MIT. It adds 68 tokens to every session and 1,441 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other agents, from other repositories

AGENTS

In-depth tutorials on LLMs, RAGs and real-world AI agent applications.

patchy631/ai-engineering-hub · 0 tokens

ask-smoke

Run a live smoke test of the /ask endpoint (SSE-streamed RAG). Boots fireseqsearchserver via tests/runlogseq.sh, runs tests/testask.py (protocol/invariant assertions) and tests/testendpoints.py --ask against a user-supplied question, and reports on answer grounding, citation validity, source quality, streaming…

Endle/fireSeqSearch · 100 tokens

prompt_engineer

Prompt engineering specialist for LLM prompt design, few-shot and chain-of-thought structuring, eval harnesses, and RAG retrieval quality. Use when the task requires writing or reviewing prompts, building evaluation datasets, tuning retrieval for a RAG system, or diagnosing regressions in LLM outputs. For example…

josstei/maestro-orchestrate · 98 tokens

db-vector-expert

Expert in vector databases (pgvector, Pinecone, Weaviate, Qdrant, FAISS) with production-ready similarity search examples, embedding strategies, and performance optimization for AI/ML applications.

andisab/swe-marketplace · 46 tokens

graphrag-specialist

An orchestrating agent that collaboratively helps engineers build graph-based retrieval-augmented generation systems. Guides users through knowledge graph construction, embedding strategy design, retrieval orchestration, system integration, and evaluation. Use when user mentions knowledge graph, GraphRAG, graph…

lyndonkl/claude · 82 tokens

llm-integrator

LLM integration specialist in RAG, embeddings, prompt engineering. Use PROACTIVELY for LLM features.

dotclaude/marketplace · 28 tokens