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/datahaskell/sabela/agents-mdgit clone --depth 1 https://github.com/DataHaskell/sabelaWhat 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.01028 | $0.01028 |
| Opus 5 | $0.00514 | $0.00514 |
| Sonnet 5 | $0.00206 | $0.00206 |
| Haiku 4.5 | $0.00103 | $0.00103 |
Grade A, and why
sabela AGENTS.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.
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.
Agent tool surface
Guidance for anyone shaping the tools an agent sees. It applies to the siza
client's tool list, the product chat catalogue, and the JSON those tools
return. Repo-wide coding rules live in CLAUDE.md.
The principle
Parsimony, of the surface and of the returned message. Both spend the same budget: the model's context is the scarcest resource in the loop, and every tool name, parameter and returned field is drawn from it before any work happens.
The lens is the one in what category theory teaches us about dataframes: find the core abstraction, express operations as compositions over it, and resist the urge to add a new primitive for every new use. A surface with a few composable operations beats a surface with one operation per task, for the same reason a small algebra beats a catalogue of special cases.
Rules
-
Fold, do not accrete. Before adding a tool, ask which existing tool should grow a parameter instead. A new name costs every future caller the reading of it.
-
Audit call counts, but read them against the corpus.
grep -ho '^- `[a-z_]*`' docs/discover/live/*_verbose.md | sort | uniq -c | sort -rnZero calls is evidence ONLY when the recorded episodes exercise the capability. A corpus of write-one-cell tasks cannot condemn
read_cell,execute_cellordelete_cell: driving a real notebook needs all three, and their absence measures the tasks, not the tools. Before folding a tool away, name the episode that needed it and did something worse instead. -
A tool the harness itself uses is load-bearing at zero model calls. Deletion and re-execution complete the write algebra (insert, replace, delete, run); the recovery paths depend on them whether or not a model ever types the name.
-
A separate lookup is a lookup that will not happen. If answering one question reliably requires a second call, carry the answer on the first result. A search hit now carries a haddock synopsis, because a type alone does not say which of
describeColumns,summarizeandmeananswers "summary statistics". The full documentation stays available on demand: carrying the synopsis and offering the detail are complements, not alternatives. -
Check a tool is on the surface before concluding it is unwanted.
describe_functionrecorded zero calls across every episode because the siza catalogue never offered it, not because any model declined it. -
The return value is part of the surface. Return what the caller needs in order to decide, not everything that is known. A field nobody acts on is a field that displaced one they would have.
-
Measure the spend. Context cost per call is a design fact. Prefer a bounded synopsis to a full document, a ranked few to an exhaustive list, and say what was omitted rather than silently truncating.
-
Manage the context, not just the message. A tool surface is only half the budget; the conversation carrying it is the other half, and it grows without anyone deciding to grow it. Seeding each prompt with the whole prior transcript took a three-part task from 3K characters before its first prompt to 250K before its third, and the work done per prompt fell away with it (live_test52-54).
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.
- 2d ago First seen · 83 lines · 1,028 tokens per session scan A cfd538c92e20
sabela AGENTS.md is an instructions file published in the GitHub repository DataHaskell/sabela (114 stars, last pushed 9d ago), licensed MIT. It adds 1,028 tokens to every session, about $0.0051 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.
Other instructions, from other repositories
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
buildNext
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
Instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
spec-kit AGENTS.md
Instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.
langchain AGENTS.md
Instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.