stemma CLAUDE.md

A repository guide for humans and coding agents working on stemma-sh/stemma. It explains how to build and test the project and how to handle invalid data or broken assumptions.

In plain words
What is it for?
Use it when changing stemma, especially when deciding how errors, data models, tests, builds, and domain rules should work.
Why use it?
It prevents agents from hiding errors behind empty defaults, catch-all values, or misleading success messages. It also points contributors to the project’s setup, architecture notes, and review expectations.

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/stemma-sh/stemma/claude-md
Clone the repo
git clone --depth 1 https://github.com/stemma-sh/stemma
Per session 518 This file is loaded in full into every session.
When invoked 518 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.00518 $0.00518
Opus 5 $0.00259 $0.00259
Sonnet 5 $0.00104 $0.00104
Haiku 4.5 $0.00052 $0.00052

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

Security

Grade A, and why

stemma 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 · 51 lines

How it starts

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

CLAUDE.md

Working conventions for this repository — for humans and coding agents alike. Source comments throughout the codebase cite these rules by name; this file is what they refer to. CONTRIBUTING.md has the full setup and PR expectations; docs/internals/architecture.md is the codemap.

Build & test

mise install     # rust (>= 1.91), just, python 3.11 — or install them yourself
just gate        # clippy (-D warnings) + full test suite; the merge gate (~8 min)

Prime directive: no silent fallbacks

If input is missing or invalid, decoding fails, or an invariant breaks: return a clear, contextual error (or fail loud at the right place) and stop. Never "best-effort" through an unknown state — continuing in one is the bug.

Ruled out: decode-failure → empty default; unknown enum values mapped to a catch-all; catch { return ok }; log-and-continue where continuing isn't provably safe. A default that is part of a contract must be documented, visibly deliberate, and test-covered. A named isolation boundary that contains a failure and reports it honestly is fine; absorbing a failure into apparent success is not.

Model-first

Start from the data: what are the shapes, the allowed states, the allowed transitions? Parse and validate at the edges (wire, file, CLI); the core operates on already-validated domain types. Make invalid states hard to represent. When something breaks, fix where the data first went wrong — not where the failure became visible — and never add downstream tolerance for bad input our own pipeline produced.

Tests encode the domain, not the implementation

A test's expected value must be justifiable from the domain rule (for this repo, that is usually ECMA-376/ISO-29500 semantics or observed real-Word behavior) — never from what the code currently returns. When fixing a bug: correct the test first, then the code. Characterization tests are allowed but must be labeled as such.

Read the full file on GitHub · 51 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 · 51 lines · 518 tokens per session scan A 82a135b65bbc

Subscribe to this mod's changes

stemma CLAUDE.md is an instructions file published in the GitHub repository stemma-sh/stemma (19 stars, last pushed 20d ago), licensed Apache-2.0. It adds 518 tokens to every session, about $0.0026 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.