nullius CLAUDE.md

Project instructions for nullius, a system that checks claims made by coding agents with deterministic software checks. They define required commands, known local test failures, and evidence references to source files and revisions.

In plain words
What is it for?
Use them when building, type-checking, testing, or reviewing agent-produced claims in the nullius project, including attaching re-checkable references to existing code.
Why use it?
They help distinguish code-based verification from unverified agent suggestions and prevent developers from validating an old build by mistake.

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/armanfatemi/nullius/claude-md
Clone the repo
git clone --depth 1 https://github.com/armanfatemi/nullius
Per session 964 This file is loaded in full into every session.
When invoked 964 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.00964 $0.00964
Opus 5 $0.00482 $0.00482
Sonnet 5 $0.00193 $0.00193
Haiku 4.5 $0.00096 $0.00096

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

Security

Grade A, and why

nullius 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 2d 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 · 91 lines

How it starts

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

nullius

Deterministic checkers for agent-written claims. The thesis is that a model should only ever propose; verification is always code. Keep that boundary — if a change puts a model in the verification path, it is the wrong change.

Commands

pnpm build        # required before any CLI use — dist/ is what the CLIs run
pnpm type-check
pnpm test

pnpm build first, always. The CLIs run from dist/, so an unbuilt tree validates the previous version of the code and reports success on work that does not exist yet.

Known-environmental test failures

src/flagConformance.test.ts fails 6 tests on machines where grep is ugrep (macOS with ugrep installed). This is a real difference between the declared flag table and the local binary, not a regression. Do not chase it, and do not "fix" the table to match — CI runs real GNU grep and ripgrep.

Baseline: everything else passes. If you see 6 failures and they are all in that file, you have not broken anything.

Evidence Anchors — the house rule

Load-bearing claims about existing code carry a citation a checker re-verifies:

**Evidence:** `path/to/file.ts:88@a1b2c3d` — `const result = await retry(...)`

Rev-stamp anchors in openspec/changes/** from the start. Get the hash with git rev-parse --short HEAD when you read the file. A change proposal cites code it is about to modify, so an unstamped anchor there is designed to rot — a design doc quoting a line as the reason to delete it becomes FABRICATED the moment the change lands. With a stamp, the immutable claim stays a hard gate and only the line number goes advisory (STALE).

Never repoint a line number while keeping an old stamp: that turns an advisory STALE into a hard FABRICATED, because the text was not there at that commit.

Squash-merge destroys the commit a stamp names. This repo merges PRs with merge commits for that reason — a squash leaves every anchor stamped against a branch commit unreachable from main, and the checker then fails open with the advisory UNVERIFIABLE-REV: CI stays green while the hard gate silently stops existing. If a PR is squashed anyway, re-pin its anchors to the squash commit.

Read the full file on GitHub · 91 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. 2d ago First seen · 91 lines · 964 tokens per session scan A b7dec1adb317

Subscribe to this mod's changes

nullius CLAUDE.md is an instructions file published in the GitHub repository armanfatemi/nullius (4 stars, last pushed 2d ago), licensed MIT. It adds 964 tokens to every session, about $0.0048 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.