sabela: Instructions file for Codex

AGENTS.md

sabela AGENTS.md is an instructions file for Codex, OpenCode from DataHaskell/sabela. It costs 1,028 tokens per session, scanned A, original, MIT.

Guidance for designing the tools exposed by Sabela’s client and product catalogue. It treats the model’s context as limited and favors a small set of reusable operations over many task-specific tools.

In plain words
What is it for?
Use it when adding or changing agent tools, deciding whether to extend an existing operation, and reviewing tool usage or response size.
Why use it?
It helps keep the agent’s tool list and returned data compact, consistent, and easier for models to use.

Instructions file for CodexOpenCode

Written for Codex and OpenCode: the file is AGENTS.md. Also seen: mentions CLAUDE.md.

This is DataHaskell/sabela's own configuration. It tells Codex and OpenCode how to work on sabela itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything sabela configures →

Reuse

Borrowing it

Nothing to install: this file belongs to DataHaskell/sabela. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/DataHaskell/sabela/main/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/DataHaskell/sabela

Made for: Codex, OpenCode.

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 sabela AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/datahaskell/sabela/agents-md/github.svg)](https://agentmods.dev/instructions/datahaskell/sabela/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/datahaskell/sabela/agents-md"><img src="https://agentmods.dev/badge/instructions/datahaskell/sabela/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for sabela AGENTS.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/datahaskell/sabela/agents-md"><img src="https://agentmods.dev/badge/instructions/datahaskell/sabela/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 1,028 This file is loaded in full into every session.
When invoked 1,028 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.01028 $0.01028
Opus 5.5 $0.00411 $0.00411
Sonnet 5.5 $0.00206 $0.00206
Haiku 4.5 $0.00103 $0.00103

Measured 2mo ago against content hash cfd538c92e20, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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 2mo 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.

AGENTS.md · 83 lines

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 -rn
    

    Zero calls is evidence ONLY when the recorded episodes exercise the capability. A corpus of write-one-cell tasks cannot condemn read_cell, execute_cell or delete_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, summarize and mean answers "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_function recorded 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).

Read the full file on GitHub · 83 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. 2mo ago First seen · 83 lines · 1,028 tokens per session scan A cfd538c92e20

Subscribe to this mod's changes

sabela AGENTS.md is an instructions file published in the GitHub repository DataHaskell/sabela (117 stars, last pushed 6d ago), licensed MIT. It adds 1,028 tokens to every session, about $0.0041 per session on Opus 5.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.

Related

sabela AGENTS.md compared with instructions from other repositories

sabela AGENTS.md next to 6 instructions from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
sabela AGENTS.mdDataHaskell/sabelaInstructions file1176d agoMITA1,028Codex, OpenCode
vscode buildNext.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA9,719GitHub Copilot
next.js AGENTS.mdvercel/next.jsInstructions file143kyesterdayMITA7,461Codex, OpenCode
langchain AGENTS.mdlangchain-ai/langchainInstructions file149kyesterdayMITA4,680Codex, OpenCode
vscode oss-third-party-notices.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA5,516GitHub Copilot
vscode copilot-instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA3,093GitHub Copilot
deepseek-harness AGENTS.mddeepseek-ai/deepseek-harnessInstructions file274k2d agoMITA4,313Codex, OpenCode