TL;DR: Until now we had 85% as a recommended minimum. It's now 100. All or nothing. AI gets its best shot at assisting you. We can ask this because we can now get you to 100% on virtually any app-type — 20 of them in the ladder, including the new about type that just took the count to a score.
The Shift
From v6.6 onward, faf-cli recommends only 🏆 Trophy.
That's the change in one sentence. At 100%, AI never has to guess. At 99%, it guesses on one slot. There is no halfway — sub-Trophy is just a count of slots from Trophy, an interim state, never an endpoint.
Why now? Because 100% used to be aspirational on certain project shapes — CLI tools that genuinely have no database, libraries that don't ship a build pipeline, documentation repos with no stack at all. The slot-ignore mechanic helped, but the catalogue of app-types was still incomplete. With v6.6's 20-type ladder, that gap closes.
The 20th Type
v6.6 adds about — the first non-app type in the ladder.
An About Repo represents another codebase: a public-facing companion to a private source. Wolfe-Jam/mcpaas-cf represents the private Wolfe-Jam/faf-mcpaas. The pattern lets a private project earn verifiable FAF receipts (badges, scoring, AI context) without exposing the engine.
app_type: about
about:
represents: Wolfe-Jam/faf-mcpaas
source_score: 100 Zero slots, no auto-detection. The owner declares it; the CLI respects it. Scoring short-circuits to about.source_score — the About inherits the source's Trophy via owner attestation.
Adding about brought the app-type ladder to 20. A score, in the old English sense. Fitting, because v6.6 is when that score became the only one we recommend.
The CLI Follows Through
faf go ramps to 100%, not 85%.
The score line celebrates Trophy explicitly — "Trophy. AI never has to guess." Sub-Trophy is framed as "N slots from Trophy", with the empty slot names printed inline so the next move is obvious.
$ faf score
🏆 TROPHY 100% 9/9 slots — project.faf
Trophy. AI never has to guess.
$ faf score # on a sub-Trophy project
◆ SILVER 95% 19/20 slots — project.faf
1 slot from Trophy: human_context.where faf sync --pull (the MD → .faf direction) is now Trophy-gated. Below 100%, the gate refuses the operation with a helpful message:
$ faf sync --pull
× sync --pull blocked: requires 🏆 Trophy (currently 81%)
MD → .faf backfill only runs at 100%. Reach Trophy with 'faf go', then retry. Backfilling from CLAUDE.md into a sub-Trophy .faf would overwrite canonical slots with prose that wasn't derived from .faf in the first place. The gate keeps the foundation honest.
Why All-or-Nothing
The why is architectural, not aspirational:
Layer 4 AI tooling ← AI optimised by complete FCL
Layer 3 Agents ← can act because FCL is complete
Layer 2 MD instructions ← can be regenerated correctly
Layer 1 .faf (FCL) ← 🏆 Trophy = complete = foundation 100% on Layer 1 is what makes Layers 2–4 work. Sub-100% degrades every layer above it — instructions miss context, agents guess, AI optimisation can't happen because the foundation has holes. Halfway is the trap.
"Bronze 85% — ship with note" was retired at v6.6.0. The /pubpro publish gate now requires Trophy. The README language shifted: "Trophy 100% — all or nothing." The tier ladder itself stays intact — the recommendation is what changed, not the math.
Slot Vocabulary — Mk4 Lands in Docs
The Mk4 canonical slot names landed in the code on 2026-03-18 (backward compatible on read). v6.6 flips the user-facing surfaces — READMEs, docs, help text — to match:
| Old name | v6.6 canonical |
|---|---|
frontend | framework |
database | db |
css_framework | css |
state_management | state |
api_type | api |
package_manager | pkg_manager |
36k+ existing .faf files keep scoring correctly — only the vocabulary shifted on user-facing surfaces.
Try It
faf is the verb — same word, every surface:
bunx faf npx faf npm install -g faf-cli brew install faf-cli Bare faf is shorthand for faf auto — same behaviour, fewer keystrokes. The workflow: init → auto → go → 100%.
The Numbers
- v6.6.0 — released May 11, 2026
- 674/674 tests passing (2,238 expect() calls)
- 🏆 Trophy 100% — the only recommended state
- 20 canonical app-types (19 detectable + 1 owner-attested)
- 368.7 kB npm tarball, 1.6 MB unpacked, 8 files
- 26k+ downloads on the path to here
The Receipts
None of this is a brand promise — it's measurement.
- IANA-registered:
application/vnd.faf+yaml— registered 2025-10-30 - Anthropic-listed: claude-faf-mcp shipped as "Persistent Project Context Server" in modelcontextprotocol/servers PR #2759 — merged 2025-10-17
- MCP Registry: FAF Ecosystem #2759 (Five Fingers)
- xAI commission: ZEPH project, active this week
- 100+ repos under FAF discipline, ~80% with current
project.faf
FAF defines. MD instructs. AI codes. FAF don't lie.
Patch Trail
- Plugin v6.6.0 · May 11, 2026 · Claude Code plugin rebuild lands — sharp + elegant discovery surface for faf-cli. Install:
/plugin marketplace add Wolfe-Jam/faf-cli, then/faf.
