Method
A number you cannot defend
is worse than no number.
This is a measuring tool, so the measurements are the product and the method is the warranty. Four commitments, and the receipts for them will live in the repo.
- reproduce
weigh does not guess from a schema. It reproduces the way a host actually serializes definitions into the prompt, then counts what comes out. The command that produced a number ships next to the number.
- label
OpenAI's tokenizer runs exactly, locally. Anthropic's is exact through the count-tokens API and approximate without a key. Every other host's is approximate. The output says which one it used, every time, and the word estimated appears wherever it is earned.
- cite
Every check rule names the SEP or the published rubric behind it, like the 12 on the July 28 page. If a rule cannot be cited it is not a rule, it is an opinion, and it ships as a note rather than a failure.
- dogfood
The repo carries its own SKILL.md, and it has to pass efaimo check before it ships. Anything that grades other people's work should survive its own grader first. It does not get to hide its homework either: efaimo's own MCP server goes through the same check --mcp, migration diff and all, and that run is printed on the commands page.
npx -y some-server https://host/mcp ./skill-folder --client claude-code
<function> blocks tools array raw JSON
not guessed from a schema: written the way each host actually writes them, which is why one quoted number for "an MCP server" is never worth much
Claude-style 1,120 o200k, estimated
the command that produced the number ships next to the number, so the reader can get it back without trusting this page
The method, applied to this site efaimo v0.1.0 · 2026-07-18 00:00 UTC
Every number printed here comes out of one machine-readable run of
efaimo weigh, committed next to the pages that read
it. The dots in the hero, the 13 bars, the totals and
the 58 token gap are all computed from that file at build time;
none of them is typed anywhere in the source.
The gap even has a gate: the cost page recomputes its own explanation (13 tag pairs plus the block wrapper) against 1,120 minus the bar sum on every build, and a mismatch kills the build instead of shipping a caption that no longer explains its number. A site about defensible numbers should be one.
npx efaimo weigh "npx -y @modelcontextprotocol/