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 instructions/jarvis-intelligence/jarvis/claude-mdgit clone --depth 1 https://github.com/jarvis-intelligence/jarvisWrote 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/instructions/jarvis-intelligence/jarvis/claude-md)<a href="https://agentmods.dev/instructions/jarvis-intelligence/jarvis/claude-md"><img src="https://agentmods.dev/badge/instructions/jarvis-intelligence/jarvis/claude-md.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.04063 | $0.04063 |
| Opus 5 | $0.02031 | $0.02031 |
| Sonnet 5 | $0.00813 | $0.00813 |
| Haiku 4.5 | $0.00406 | $0.00406 |
Grade A, and why
jarvis CLAUDE.md 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 5d 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 — 224 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project
Personal, local-first code intelligence MCP server. SCIP-backed navigation (go-to-definition, find-references, call/type hierarchy, document symbols) + Zoekt-backed lexical search, exposed as MCP tools over stdio — no HTTP server, no auth, no network.
Commands
uv sync # install deps
uv sync --extra watch # + watchdog, needed for `jarvis watch`
uv sync --extra semantic # + lancedb/sentence-transformers/tree-sitter, needed for semanticSearch
uv run pytest # all tests
uv run pytest -m "not integration" # unit only — no external binaries required
uv run pytest -m integration # integration only — runs real scip-python/scip/zoekt-git-index
uv run pytest tests/test_query.py::test_go_to_definition_returns_location # single test
uv run jarvis index /path/to/repo [--slug name] [--scheme name] [--language name] [--semantic-include path]
uv run jarvis list
uv run jarvis status <slug>
uv run jarvis reindex <slug>
uv run jarvis forget <slug>
uv run jarvis watch /path/to/repo [--debounce 5] [--scheme name] [--language name] [--semantic-include path] # foreground, not a daemon
uv run jarvis-server # MCP stdio entry point
claude mcp add jarvis --scope user -- uv --directory /path/to/jarvis run jarvis-server
Required on PATH for anything beyond unit tests: one language indexer per repo
(scip-typescript / scip-python / scip-java / scip-swift), scip (for scip expt-convert),
and zoekt-git-index / zoekt-webserver. Integration tests are gated on these and skip cleanly if absent.
Architecture
Three engines sit behind the MCP server, each backed by its own storage:
- Query (
query.py+index_reader.py+scip_decoder.py) — SCIP nav ops via raw SQL against thescip expt-convertSQLite schema (documents/chunks/global_symbols/mentions).scip_decoder.pyis the only module importingscip_pb2/zstandard— an isolation seam so future SCIP proto version bumps localize to one file.symbols.pyis the same kind of isolation seam for the SCIP symbol string grammar: it owns parsing (parse_symbol()) and bare-name resolution (resolve(), a two-rung ladder of exact match then dotted-suffix match) end to end, sogoToDefinition/findReferences/callHierarchy/typeHierarchyaccept a bare or qualified name instead of requiring the full, version-pinned SCIP string. Caveat: scip-swift emits clang USR strings (e.g.c:@CM@UIKit@@objc(cs)UIView(im)centerXAnchor) as its symbol names, so bare-name resolution has no practical value in Swift repos — it works for Python/TypeScript/Java/Kotlin. - Search (
search.py) —searchCodevia a realhttpxclient tozoekt-webserver.ZoektLifecyclelazily spawns the webserver on first call (pidfile-tracked, killed at exit); never spawn it elsewhere.base_url_if_running()is the non-spawning variant, used bygetIndexStatus's coverage check so a status call never starts a server as a side effect. - Graph (
graph.py+registry.py) — package dependency graph (packages/edgesinregistry.db) drivingblastRadius(2-hop BFS).populate_graph_for_repo()clears a repo's outgoing edges before recomputing — rebuild-not-accumulate, so retracted dependencies don't linger. - Semantic (
chunker.py+embeddings.py+semantic.py+symbol_search.py) — tree-sitter chunking → sentence-transformers embeddings → a per-repo LanceDB table under~/.jarvis/lancedb/.semanticSearchfuses vector hits with Zoekt hits and SCIP symbol-definition matches (viasymbol_search.py, reusingsymbols.py's name-map machinery) via reciprocal rank fusion. Gated behind the optionalsemanticextra; the indexing stage is non-fatal injarvis index(a failure there never blocks the SCIP/Zoekt publish). A LanceDB table only ever holds vectors from one model+revision — the model-identity rule.
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.
- 5d ago First seen · 224 lines · 4,063 tokens per session scan A 35ba74a6ef35
jarvis CLAUDE.md is an instructions file published in the GitHub repository jarvis-intelligence/jarvis (0 stars, last pushed 14d ago), licensed MIT. It adds 4,063 tokens to every session, about $0.0203 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.
Other instructions, from other repositories
repobrain copilot-instructions.md
Copilot instructions for study8677/repobrain, covering github copilot bootstrap instructions and hard rule — query the repobrain hub first.
repobrain AGENTS.md
AGENTS.md instructions for study8677/repobrain: Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules.…
CodeNib AGENTS.md
AGENTS.md instructions for sysevol-ai/CodeNib, covering agents.md, layered objectives, storage scope guard, dev commands and git, commit, and pr rules.
sourcebot CLAUDE.md
Claude Code instructions for sourcebot-dev/sourcebot, covering claude code guidelines, database migrations, building packages, backend workloads and execution locks.
codesage AGENTS.md
AGENTS.md instructions for iliaal/codesage, covering codesage, build, sanity check before pushing, crate map and search pipeline.
sverklo CLAUDE.md
Instructions for sverklo/sverklo, covering sverklo development, using sverklo tools, project structure and build & test.