shelfmark CLAUDE.md

shelfmark CLAUDE.md is an instructions file for coding agents from Dankaro-projects/shelfmark. It costs 2,844 tokens per session, scanned A, original, MIT.

Project instructions for developing and releasing Shelfmark, a private document catalogue and server for accessing documents.

In plain words
What is it for?
Use them when changing, testing, or releasing the Shelfmark codebase.
Why use it?
They give an agent the project’s working rules, design decisions, and required workflow in one place.

Instructions file

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/dankaro-projects/shelfmark/claude-md
Clone the repo
git clone --depth 1 https://github.com/Dankaro-projects/shelfmark

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

README.md
[![agentmods](https://agentmods.dev/badge/instructions/dankaro-projects/shelfmark/claude-md.svg)](https://agentmods.dev/instructions/dankaro-projects/shelfmark/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/dankaro-projects/shelfmark/claude-md"><img src="https://agentmods.dev/badge/instructions/dankaro-projects/shelfmark/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 2,844 This file is loaded in full into every session.
When invoked 2,844 The same file — it is already loaded in full.
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.02844 $0.02844
Opus 5 $0.01422 $0.01422
Sonnet 5 $0.00569 $0.00569
Haiku 4.5 $0.00284 $0.00284

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

Security

Grade A, and why

shelfmark 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 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.

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.md · 215 lines

How it starts

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

shelfmark

Product repo for shelfmark — a local, privacy-first document catalogue + MCP server. README.md is the operator-facing document; this file is for working on the code.

The bet

Every incumbent sells access to complexity. The retrieval stacks sell knobs — chunk size, overlap, embedding model, top-k, a reranker to repair what the retriever got wrong. The document-management systems sell an administration console: taxonomy editors, permission matrices, workflow builders. Desktop search sells a query syntax and calls it power. All of it hands the user machinery and lets that count as capability.

Radical simplicity on top of genuine sophistication is the harder engineering problem, and the one nobody in this category has solved.

Here that reads: corpus_stats(), then browse_folder(). Nothing to chunk, no embedding model to pick, no index server to run, no query language to learn, no tuning pass that decides whether the answers are any good. Underneath it: a walk kept incremental on (size, mtime, cloud residency), prune guards that refuse rather than guess, governance invariants re-asserted after every run, and an FTS layer that survives the hyphenated identifiers real corpora are full of. The user should never meet any of that.

A constraint on the code, not a slogan:

  • The sophistication goes in the engine; the surface stays small. Five MCP tools, one config file, one command to stay current. A caller should never need to know how any of it works, or be handed a flag to compensate for something the engine could have decided.
  • A new option is a failure to decide. Before adding a flag, a filter, or a config key, establish that the right answer genuinely varies by operator. If it does not, pick it and defend the choice in a comment. Corpus vocabulary varies — that is what config is for. Correct behaviour does not. --force earns its place only because the engine provably cannot tell an unreadable root from a real deletion.
  • Answer the question, do not expose the machinery. browse_folder answers "what do I have here"; it does not hand back a query builder. A cut list says it was cut, an unknown filter says it is a bad filter, and corpus_stats() volunteers its own freshness — none of that is a status field left for the caller to interpret. An index answering confidently from a frozen snapshot is the failure this whole design exists to prevent.
  • Simple is not thin. Dropping a feature is not simplicity if it moves the work onto the operator. Both fixes in this repo's recent history added engine complexity to remove operator burden — detecting placeholder slide titles is more code than storing whatever OOXML hands you, and explaining a refused prune is more code than exit 1. That is the trade this project accepts, every time.
  • The refusals are the shape of the bet, not a backlog. "No embeddings" and "no content extraction" are decisions. Revisit them when real misses cluster into evidence — never because a competitor lists the feature. misses.py is what supplies that evidence, and the load-bearing part is the reachable/unreachable split: a raw count of misses only proves people search. Function words are stopped for the same reason — "said" can never be in a filename, so leaving it in votes for content extraction on the strength of grammar.

Read the full file on GitHub · 215 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 · 215 lines · 2,844 tokens per session scan A 931af5120de0

Subscribe to this mod's changes

shelfmark CLAUDE.md is an instructions file published in the GitHub repository Dankaro-projects/shelfmark (0 stars, last pushed 19d ago), licensed MIT. It adds 2,844 tokens to every session, about $0.0142 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.