routir CLAUDE.md

routir CLAUDE.md is an instructions file for Claude Code from hltcoe/routir. It costs 4,146 tokens per session, scanned A, original, MIT.

Project-specific instructions for RoutIR, an async search and retrieval service that exposes search models through HTTP or gRPC and combines them into multi-step pipelines. It explains how to add retrieval engines such as rerankers and query expanders.

In plain words
What is it for?
Use it when extending RoutIR with a search engine, reranker, query expander, fusion method, or document collection.
Why use it?
It gives a coding agent the repository’s design rules and method contracts before it changes the code. This reduces the risk of adding an engine that does not fit RoutIR’s pipeline model.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: mentions CLAUDE.md.

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 instructions/hltcoe/routir/claude-md
Clone the repo
git clone --depth 1 https://github.com/hltcoe/routir

Made for: Claude Code.

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 routir CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/hltcoe/routir/claude-md.svg)](https://agentmods.dev/instructions/hltcoe/routir/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/hltcoe/routir/claude-md"><img src="https://agentmods.dev/badge/instructions/hltcoe/routir/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 4,146 This file is loaded in full into every session.
When invoked 4,146 The same file — it is already loaded in full.
Security scan A 1 finding. 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.04146 $0.04146
Opus 5 $0.02073 $0.02073
Sonnet 5 $0.00829 $0.00829
Haiku 4.5 $0.00415 $0.00415

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

Security

Grade A, and why

routir CLAUDE.md scanned grade A with 1 finding 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 3d 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

Smoke-test a reranker (`curl` is not Python, so it runs directly):
CLAUDE.md · 294 lines

How it starts

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

RoutIR — src/routir

RoutIR is an async search/retrieval service. It hosts retrieval models (dense, sparse, rerankers, fusion, query expanders) behind a uniform HTTP/gRPC API and lets you compose them into multi-stage pipelines with a small DSL. This file orients an agent who needs to add a new engine (a reranker, search engine, query expander, or fusion method).

For task-oriented walkthroughs — calling the client, standing up a local server that imports a master server, wrapping a bi-encoder or reranker via file_imports, and serving multi-view collections — see SKILL.md.

The one concept that matters: Engine

Everything pluggable is a subclass of Engine (src/routir/models/abstract.py). An engine declares its capabilities simply by which methods it overrides — there is no registration boilerplate, no capability flag to set. The base class auto-detects capabilities by checking whether you overrode the *_batch method:

Override this method Capability (can_*) Pipeline role Service type registered
search_batch can_search search search
score_batch can_score rerank score
decompose_query_batch can_decompose_query expander decompose_query
fuse_batch can_fuse merger fuse

(The role→service-type map lives in src/routir/pipeline/pipeline.py as _role_to_service.)

A single engine may implement several of these. SentenceTransformerEngine implements both search_batch and score_batch, for example. Implement only the methods that apply; the rest raise NotImplementedError and the capability stays off.

*_batch is always the method to override. The singular convenience wrappers (search, score, decompose_query, fuse) just call the batch form with one item — don't override them. The exception is legacy code like MT5Reranker, which overrode score; prefer score_batch in new engines.

Read the full file on GitHub · 294 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. 3d ago First seen · 294 lines · 4,146 tokens per session scan A aa4b38e9bcc7

Subscribe to this mod's changes

routir CLAUDE.md is an instructions file published in the GitHub repository hltcoe/routir (14 stars, last pushed 3mo ago), licensed MIT. It adds 4,146 tokens to every session, about $0.0207 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.