TL;DR: Birth DNA on every fresh .faf. The Relentless 6-W extractor reads your manifest and README, fills human_context from sources, never fakes. Turbo-Cat detects 200+ formats — Python, Rust, PHP, all in. faf export --grok closes the Grok interop loop. Browser extensions earn their own App-Type. And init, auto, git now flow through one shared pipeline — they can't drift.
What's Restored
Three capabilities went quiet in v6.0. v6.8 brings them back, sharper.
Birth DNA. Every fresh .faf now ships with a .faf-dna birth certificate — a separate file by design, so the certificate can't drift if the score evolves. New faf dna command renders the birth → growth journey at any point.
Relentless 6-W extractor. faf auto now fills the six W's — who, what, why, where, when, how — from your package.json and README signals. Sourced-or-empty. No fabricated guesses, no hallucinated context. If the README has it, the slot has it. If the README doesn't, the slot stays empty.
Turbo-Cat format-finder. ~200-format manifest detection. Non-npm ecosystems — Python, Rust, PHP, all of them — get real main_language and stack.build values instead of "Unknown". Drop FAF into any repo, it recognizes what you actually built it with.
What's New
faf export --grok — wires the hosted Grok MCP into .grok/config.toml. Opt-in, idempotent, non-destructive: existing mcp_servers entries are preserved. The Grok-side interop loop now closes alongside the existing AGENTS / Cursor / Gemini exporters.
extension App-Type. Browser extensions (Manifest V3, manifest_version) now classify correctly with a 16-slot shape — no backend, no API type. Previously misclassified as Svelte web apps with phantom REST APIs. Detection fires before framework heuristics now, so this can't happen again.
One Shared Pipeline
Three commands used to do their own thing for fresh .faf creation: faf init, faf auto, faf git <url>. Three code paths, three possible drift surfaces. One bug-fix to one would leave the other two behind.
v6.8 unifies them. A new module — src/detect/assemble.ts — exports a single assembleFreshFaf primitive. init, auto, and git all route through it. Drift between them is now structurally impossible.
Same command surfaces, richer output: faf init produces a fully-filled .faf instead of a sparse scaffold. faf git <url> fills slots beyond bare manifest detection. faf auto's the reference behavior; the others match it.
Improved
exportsmap — bun consumers resolvefaf-clicleanly. The downstream FAF MCP servers no longer need a workaround bridge.- Windows CI — real test timeout on every invocation. The recurring red is root-caused, not papered over.
- WJTTC spec-conformance — the shared
@faf/specificationcorpus runs in isolated CI. Real contract drift detection at every push.
Try It
bunx faf auto Or install globally:
npm install -g faf-cli@6.8.0 The Numbers
- v6.8.0 — Released May 30, 2026
- 762/762 — Tests passing (was 716 at v6.7.1)
- 18 commits — Since the last shipped release
- 9/9 slots — project.faf at 🏆 Trophy 100%
- 28,480 + 1,021 —
faf-cli+fafon npm (dual-publish lockstep) - 65,000+ — FAF ecosystem grand total · ~2× faf-cli · 22 packages across npm + PyPI + crates.io