debug-evals

debug-evals is a skill for Claude Code, Codex from ggozad/haiku.rag. It costs 103 tokens per session (3,281 once invoked), scanned A, original, MIT.

A debugging tool for evaluation runs recorded in Logfire, a system for inspecting application traces and measurements. An evaluation run tests an AI system on cases and scores its answers.

In plain words
What is it for?
Finding runs, comparing metrics, checking citation quality and answer-equivalence scores, opening individual cases, and linking to traces.
Why use it?
It helps locate failing or low-scoring cases and inspect the evidence behind those results.

Skill for Claude CodeCodex

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 skills/ggozad/haiku.rag/debug-evals
Any agent
npx skills add ggozad/haiku.rag --skill debug-evals
Clone the repo
git clone --depth 1 https://github.com/ggozad/haiku.rag

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for debug-evals

README.md
[![agentmods](https://agentmods.dev/badge/skills/ggozad/haiku.rag/debug-evals.svg)](https://agentmods.dev/skills/ggozad/haiku.rag/debug-evals)
Your own site
<a href="https://agentmods.dev/skills/ggozad/haiku.rag/debug-evals"><img src="https://agentmods.dev/badge/skills/ggozad/haiku.rag/debug-evals.svg" alt="Measured on agentmods" height="20"></a>
Per session 103 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,281 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.1 $0.00103 $0.03281
Opus 5 $0.00051 $0.01640
Sonnet 5 $0.00021 $0.00656
Haiku 4.5 $0.00010 $0.00328

Measured 6d ago against content hash c12e3c555cb7, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

debug-evals 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 6d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (lf-query.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

.claude/skills/debug-evals/SKILL.md · 296 lines

How it starts

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

Debug eval runs in Logfire

Eval runs (evaluations/) ship spans to Logfire under service_name = 'evals'. This skill finds a run, surfaces its metrics and failures, and drills into a single case. Read-only.

How to query

  1. Confirm the current schema with mcp__logfire__query_schema_reference (spans and logs share the records table).
  2. Run SQL with mcp__logfire__query_run (query + project: "haiku" + start_timestamp/end_timestamp, max 14 days). The remote MCP is org-scoped, so project is required; eval runs land in project haiku. The same SQL works pasted into Logfire's Explore UI.
  3. Read span attributes as JSON: attributes->>'key', nested as attributes->'a'->'b'->>'c'. Cast when needed: (...)::float, (...)::int.
  4. Hand back a clickable trace with mcp__logfire__project_logfire_link(trace_id, project="haiku").

When the Logfire MCP is not available

The mcp__logfire__* tools are not loaded in every session. The HTTP query API is the fallback and needs no MCP:

POST https://logfire-eu.pydantic.dev/v2/query      # EU projects
POST https://logfire-us.pydantic.dev/v2/query      # US projects
Authorization: Bearer <api-key>
Content-Type: application/json
{"sql": "...", "min_timestamp": "2026-08-23T00:00:00Z"}
  • min_timestamp is mandatory and silently bounds every result. Too recent a value is indistinguishable from "no data".
  • Read tokens are being replaced by API keys (pylf_v2_<region>_...). Same Authorization: Bearer header; the region is in the prefix.
  • Keep the key in ~/.logfire-read-key (mode 600) and read it from there so it never lands in a transcript. Helper next to this skill: .claude/skills/debug-evals/lf-query.sh "<SQL>" [min_ts].
  • The API is project-scoped. A key for the wrong project authenticates fine and returns zero rows — it does not error. Diagnose in this order:
    1. wrong region → HTTP 401 Invalid read token on the other host;
    2. wrong project → auth succeeds, count(*) over months is 0;
    3. right project → SELECT service_name, count(*) ... GROUP BY service_name shows evals, haiku-rag, haiku-ingester. Eval runs live in project haiku. There is an empty project named evals, which is the natural wrong guess.
  • The API caps returned rows and does not say so. Aggregate server-side (count(*), avg(...), sum(CASE WHEN ...)) rather than pulling rows and counting them locally. A pass rate computed from a clipped page is wrong and looks fine.

Read the full file on GitHub · 296 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. 6d ago First seen · 296 lines · 103 tokens per session scan A c12e3c555cb7

Subscribe to this mod's changes

debug-evals is a skill published in the GitHub repository ggozad/haiku.rag (588 stars, last pushed yesterday), licensed MIT. It adds 103 tokens to every session and 3,281 once invoked, about $0.0005 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-30.

Related

Other skills, from other repositories

plex-mcp-roadmap

Master orchestration skill for implementing plex-mcp v2.5+ roadmap projects. Use when the user asks about building deep metadata enrichment, subtitle RAG, taste modelling, mood-based nightly picker, episode intelligence, or cross-library linking for plex-mcp. Directs work to the appropriate per-project SKILL and…

sandraschi/plexmcp · 78 tokens

hybrid-rag

Use when creating, updating, or querying a local Hybrid RAG database from PRISMA JSON metadata or PDF documents in a folder. Triggered by prisma-review (after Fase 4) or educational-pilot-design (to query evidence). Hybrid RAG combines dense vector search (sentence-transformers) and sparse retrieval — native FTS via…

giovannifrontera/academic-research-prisma-wiki-rag · 96 tokens

mcp-local-rag

Searches, saves, and maintains a local document index through a local RAG MCP server. Use when user says "search my docs", "save this page", "read around that chunk", "sync my index", or invokes npx mcp-local-rag.

shinpr/mcp-local-rag · 61 tokens

opik-evaluate

Build an LLM evaluation and run it against your app, returning an experiment with scores. Covers datasets, LLM judges, RAG evaluation, synthetic data, error analysis, and validating evaluators against human labels. Use when the user wants to measure or improve AI product quality, or asks about evals, judges, or…

comet-ml/opik-mcp · 73 tokens

local-rag-search

Efficiently perform web searches using the mcp-local-rag server with semantic similarity ranking. Use this skill when you need to search the web for current information, research topics across multiple sources, or gather context from the internet without using external APIs. This skill teaches effective use of…

nkapila6/mcp-local-rag · 80 tokens

basemind-documents

Semantic + full-text search over documents and the web via basemind's RAG store — PDFs, Office, HTML, email, images (OCR), plus scraped/crawled web pages, with cross-encoder reranking, keyword and named-entity (NER) filters, and per-document summaries. Reach for it whenever the user asks to "search the docs / PDFs"…

Goldziher/basemind · 107 tokens