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/nolindnaidoo/string-le/claude-mdgit clone --depth 1 https://github.com/nolindnaidoo/string-leWrote 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/nolindnaidoo/string-le/claude-md)<a href="https://agentmods.dev/instructions/nolindnaidoo/string-le/claude-md"><img src="https://agentmods.dev/badge/instructions/nolindnaidoo/string-le/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 | $0.01175 | $0.01175 |
| Opus 5 | $0.00588 | $0.00588 |
| Sonnet 5 | $0.00235 | $0.00235 |
| Haiku 4.5 | $0.00118 | $0.00118 |
Grade A, and why
string-le 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.
This is a copy
97% identical to regex-le CLAUDE.md — 11 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 83 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
AGENTS.md is the technical source of truth for this repo: the engineering standard the code is held to — control flow, error handling, immutability, structure — plus this repo's architecture, invariants, toolchain and release. Read it before writing code. README.md is user-facing and partly generated.
The repo also hosts the Rust CLI in crate/ — read crate/CLAUDE.md and
crate/AGENTS.md for that side; the shared corpus is crate/fixtures/.
Where to look
| Question | File |
|---|---|
| How should this code be written? | AGENTS.md — the standard, plus this repo's architecture and invariants |
| What does the user see? | README.md — Testing and Performance are generated |
| What changed? | CHANGELOG.md |
Gates
bun run typecheck && bun run lint && bun run test
Before a release, also bun run test:integration, bun run package, and
bun run test:e2e-vsix — the last is the only test that exercises the
artifact users actually install.
Things that will bite you
- Two README sections are generated. Testing and Performance sit between
<!-- coverage:start -->/<!-- performance:start -->markers and come fromscripts/coverage-readme.jsandscripts/perf-readme.js. Edit the code and regenerate; do not type numbers in by hand. CI fails if the coverage figures no longer match a real run. - Output changes must update the characterization goldens in the same commit, with a CHANGELOG entry describing the behaviour change.
- Every claim must be provable. No feature, metric or format goes in a README, the manifest, or help text unless the code backs it. That governs behaviour and numbers — not availability. Whether something is published, listed or installable is a fact about a registry at a moment in time, and it is false right up until you make it true. Copy for a release you are about to make is staged, never forbidden: write it, and let the release commit be what makes it true.
- This repo is one of ten identical ones. The shared config files, scripts
and workflows are byte-identical across the family, and
letools-site/scripts/check-fleet.tsis what holds them there rather than memory: runbun run check:fleet ../from a checkout of the site with the ten beside it, or dispatch its Fleet workflow. It names the file and the repos that drifted, so a missed copy is a report rather than something you find months later. Anything undercrate/is outside the check on purpose — the crates stand on their own. - Extraction is shared with the Rust CLI, and the corpus under
crate/is the contract. Changing extraction behaviour means runningbun scripts/check-extraction-parity.tsand updating the corpus — on both sides, in the same commit. CI fails when either drifts. - What the contract holds equal is the shared
extract_stringsMCP tool, which both servers offer and must answer identically; a difference there is a bug. The surfaces are meant to differ. This one is IDE-first — the active buffer, read by a person. The CLI is terminal-first: a tree walk, exit codes and JSON Lines, none of which has an editor equivalent. That is not drift, and nothing holds them equal — seecrate/SPEC.md. - An unrecognised format falls back, it does not fail. That is true here
and in the crate, and it is what lets either be pointed at a source tree.
See
crate/SPEC.md; contract tests on both surfaces enforce it. - Localization is two mechanisms, and they fail separately.
src/i18n/package.nls.*.jsoncovers the manifest;l10n/bundle.l10n.*.jsoncovers runtime strings throughvscode.l10n.t(). Twelve locales each, held in exact key parity by the integration test. Never calll10n.t()at module scope, never compare a translated label against an English literal, and use positional{0}placeholders rather than template literals. - CI narrows itself on a docs-only push. A change touching only
*.mdandLICENSEruns the Linux leg alone and skips the Zed build;ci-crate.ymlruns itspolicygate with every Rust job skipped. Nothing that covers the change is skipped — the README coverage gate, the integration suite and the installed-VSIX end-to-end are Linux-only anyway. Anything unrecognised, and an unreadable diff, counts as code and runs everything. A release commit always touchespackage.json, so a release still sees the full three-OS matrix. - Coverage floors are a backstop, not a target. They sit well below where the code actually is, and they are not raised to track it — a floor that follows real coverage becomes a tax on writing the next module.
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.
- 3d ago First seen · 83 lines · 1,175 tokens per session scan A 8da5735f4b74
string-le CLAUDE.md is an instructions file published in the GitHub repository nolindnaidoo/string-le (1 stars, last pushed 2d ago), licensed MIT. It adds 1,175 tokens to every session, about $0.0059 per session on Opus 5. A static security scan graded it A with 0 findings. It is 97% identical to regex-le CLAUDE.md, differing in 11 lines, and is treated as a copy.
Other instructions, from other repositories
paths-le AGENTS.md
AGENTS.md instructions for nolindnaidoo/paths-le, covering agents.md — paths-le, what this is, architecture, code style and control flow.
dates-le AGENTS.md
AGENTS.md instructions for nolindnaidoo/dates-le, covering agents.md — dates-le, what this is, architecture, code style and control flow.
paths-le CLAUDE.md
Claude Code instructions for nolindnaidoo/paths-le, covering claude.md, where to look, gates and things that will bite you.
dates-le CLAUDE.md
Claude Code instructions for nolindnaidoo/dates-le, covering claude.md, where to look, gates and things that will bite you.
dates-le copilot-instructions.md
Copilot instructions for nolindnaidoo/dates-le, covering contributor and agent instructions, non-negotiables and before you commit.
dates-le GEMINI.md
Gemini CLI instructions for nolindnaidoo/dates-le, covering contributor and agent instructions, non-negotiables and before you commit.