Every AI coding tool invented its own context file:
Four prose files. Four places to keep in sync. Update one, forget another. Context rot
starts day one.
What if there was one source of truth?
project.faf is ~35 lines of structured YAML. IANA-registered as application/vnd.faf+yaml. It
defines your project once — stack, goals, conventions, architecture — and generates all
four formats:
npm i -g faf-cli
faf bi-sync --all
That's it. CLAUDE.md + AGENTS.md + .cursorrules + GEMINI.md from one file.
Three layers, three jobs:
- .faf defines — structured YAML, machine-readable, single source of truth
- .md files instruct — prose for each tool, generated from .faf
- AI interprets — each tool reads its native format, no translation needed
What shipped in v4.5.0:
- faf agents import/export/sync — full AGENTS.md interop
- faf cursor import/export/sync — full .cursorrules interop
- faf bi-sync --all — every format in one pass
- 87 new tests caught 3 cross-platform bugs (Windows \r\n, UTF-8 BOM, old Mac \r) before any user ever would
- 1,051 tests passing total
MIT licensed. Free forever. 23,000+ npm downloads across the ecosystem.
Blog post with diagrams: https://faf.one/blog/agents-md-edition


Top comments (0)