Primary path: New Project guide · Try it · CLI
.faf
Foundational Context Layer — persistent project DNA
What it is
The home of .faf — the IANA-registered context format — and the Claude Code plugin that brings it to your projects. A .faf captures your project's DNA (stack, goals, the 6 Ws) so Claude never has to ask "what is this project?" twice.
One structured source renders to CLAUDE.md, AGENTS.md, .cursorrules, GEMINI.md. Define once, every AI reads consistent context.
The plugin
/plugin install faf
The plugin wraps claude-faf-mcp — already listed in the official MCP Registry (PR #2759, merged). Auto-detect your stack, score 0–100% (🏆 Trophy at 100%), and bi-sync .faf ↔ CLAUDE.md.
Complementary to Anthropic's own claude-md-management plugin: .faf is the structured source that authors what claude-md-management maintains.
Why it exists
Every AI session starts blank — you re-explain your project. .faf is a plain, structured, versionable file your project's DNA lives in. Read by Claude, Cursor, Grok, and Gemini alike. One format, never a fork.
Receipts
- IANA-registered —
application/vnd.faf+yaml(October 30, 2025) - Companion paper — the .faf Context paper on Zenodo (DOI 10.5281/zenodo.18251362)
- claude-faf-mcp on npm — in the official MCP Registry; PR #2759 merged
- Six FAF servers on the official MCP Registry (claude / grok / gemini / faf-mcp / rust-faf / WJTTC)
- Sibling layer —
.fafmPermanent Memory Layer → /memory
Try it
/plugin install fafView the plugin on GitHub →
The one.faf/context key
FAF's namespaced extension key. one.faf is reverse-DNS for faf.one — the key dereferences here. This page documents it; the payload is machine-described by a JSON Schema.
Wherever a host format offers a namespaced slot, the FAF receipt rides under this key — a thin, falsifiable pointer at the .faf artifact, never a copy of it:
- AI Catalog — on the
.fafentry in faf.one/.well-known/ai-catalog.json - MCP server card —
_metaon context.faf.one/mcp/server-card
"one.faf/context": {
"faf": "https://context.faf.one/.well-known/project.faf",
"mediaType": "application/vnd.faf+yaml",
"deterministic": true
} Fields: faf (URL of the artifact) · mediaType · iana (registration status) · deterministic · scoreEndpoint · generated / generated_at. The .faf stays the single source of truth; the key only points.