TL;DR: faf bench --submit posts your cold-vs-grounded receipt to the public ledger — the context bench goes public, one command.

The Bench Goes Public

faf bench grades a model twice: cold (no project context) and grounded (with your .faf). Your .faf is the answer key, so the grading is mechanical — no judge, no rubric drift. The gap between the two scores is the whole point: it's how much context was worth.

Until now that number lived on your machine. --submit changes that — it posts the full cold-vs-grounded pair, as a re-derivable receipt, to the public bench ledger:

$ faf bench --submit
  cold       — the model alone, no context
  grounded   — the model + your .faf (the answer key)
  ✪ receipt submitted → mcpaas.live/bench/submit

It's opt-in and fire-and-forget: the benchmark runs and prints locally whether or not you submit; --submit simply also posts the receipt (override the target with --endpoint). A private number becomes a shared, verifiable one — the first brick in a public record of how models perform with context versus without it.

Also in 6.11.0

Two engine-surface additions ride along, both in service of single-sourcing:

  • relentlessContext + assembleFreshFaf — exported from the public API, so consumers compose the seed/build path instead of reimplementing it.
  • buildTableOf8 — the interview keystone: Name + Goal + 6Ws, with the goal seeding the 6W slots, shown as the Table-of-8 for approval before anything is built.

Try It

Or bunx faf, or brew install faf-cli — then faf bench --submit. Both npx faf-cli and bunx faf serve 6.11.0.

The Numbers

  • v6.11.0 — Released June 14, 2026
  • 871 tests, 0 fail — 2,920 assertions
  • 🏆 100% — Trophy score
  • faf-cli + faf — both at v6.11.0 (npx faf-cli · bunx faf parity)