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.

The path a number takes weigh, from target to report
a target you already have

npx -y some-server https://host/mcp ./skill-folder --client claude-code

re-serialized, per host

<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

the report, with its receipt

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/server-everything" --json