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.
npx agentmods add skills/ggozad/haiku.rag/debug-evalsnpx skills add ggozad/haiku.rag --skill debug-evalsgit clone --depth 1 https://github.com/ggozad/haiku.ragWrote 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.
[](https://agentmods.dev/skills/ggozad/haiku.rag/debug-evals)<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>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.
| Model | Per session | Once 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 |
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.
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.
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
- Confirm the current schema with
mcp__logfire__query_schema_reference(spans and logs share therecordstable). - Run SQL with
mcp__logfire__query_run(query+project: "haiku"+start_timestamp/end_timestamp, max 14 days). The remote MCP is org-scoped, soprojectis required; eval runs land in projecthaiku. The same SQL works pasted into Logfire's Explore UI. - Read span attributes as JSON:
attributes->>'key', nested asattributes->'a'->'b'->>'c'. Cast when needed:(...)::float,(...)::int. - 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_timestampis 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>_...). SameAuthorization: Bearerheader; 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:
- wrong region →
HTTP 401 Invalid read tokenon the other host; - wrong project → auth succeeds,
count(*)over months is 0; - right project →
SELECT service_name, count(*) ... GROUP BY service_nameshowsevals,haiku-rag,haiku-ingester. Eval runs live in projecthaiku. There is an empty project namedevals, which is the natural wrong guess.
- wrong region →
- 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.
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.
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.
- 6d ago First seen · 296 lines · 103 tokens per session scan A c12e3c555cb7
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.
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…
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…
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.
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…
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…
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"…