TL;DR: We studied how Boris Cherny (creator of Claude Code) structures his projects - subagents, slash commands, MCP servers, Bun runtime - and built a 12-test integration suite that validates all of it. Now .faf detects and preserves the complete Claude Code ecosystem. Every publish passes Boris-Flow or it doesn't ship.
The Problem
Claude Code has evolved. It's not just CLAUDE.md anymore. Modern Claude Code projects have:
.claude/agents/*.md- Specialized subagents for different tasks.claude/commands/*.md- Custom slash commands.claude/settings.json- Permissions and configuration.mcp.json- MCP server integrations (Slack, BigQuery, Sentry)- Bun runtime detection (
bun.lockb)
If your AI context format doesn't understand this structure, you're working with half a blueprint. Context drift is inevitable.
The Inspiration
Boris Cherny created Claude Code. His setup is the reference implementation:
- 5 subagents for specialized tasks
- Custom slash commands for workflows
- MCP servers for external services
- Bun as the runtime
- Everything wired together
We asked: what if .faf could detect all of this automatically? What if we could validate that detection with real tests?
The Insight
Don't guess what a Claude Code project looks like. Model it on the creator's actual setup. Then test against that model.
Boris-Flow: The Test Suite
12 integration tests that must pass before any faf-cli publish:

View full test output
$ ./tests/boris-flow.test.sh
๐๏ธBORIS-FLOW INTEGRATION TEST
๐๏ธ Using local build: /Users/wolfejam/FAF/cli/dist/cli.js
1๏ธโฃ Testing --version...
โ
faf --version (got: 3.4.4)
2๏ธโฃ Creating Claude Code project...
โ
Created Claude Code structure
3๏ธโฃ Testing faf init...
โ
faf init created project.faf
4๏ธโฃ Checking type detection...
โ
Detected CLI type (got: cli-ts)
5๏ธโฃ Checking language detection...
โ
Language detected (got: TypeScript)
6๏ธโฃ Checking Claude Code detection...
โ
claude_code section exists
โ
Claude Code detected: true
โ
Subagents detected (got: 2)
7๏ธโฃ Testing faf auto...
โ
faf auto maintained score (67 โ 67)
8๏ธโฃ Filling human context...
โ
human-set commands succeeded
9๏ธโฃ Testing final score...
โ
Final score is 100% (got: 100%)
๐ Testing non-TTY safety...
โ
faf enhance safe in non-TTY (100 โ 100)
๐ BORIS-FLOW: ALL 12 TESTS PASSED
โ
Demo ready
โ
Safe to publish
Final score: 100%If any test fails, the publish stops. No exceptions.
What .faf Now Detects
Run faf init on a Claude Code project and the output includes:
claude_code:
detected: true
claude_md: true
subagents:
- code-reviewer
- test-runner
- docs-writer
commands:
- pubpro
- deploy
permissions:
- Bash(npm:*)
- Read(**)
mcp_servers:
- slack
- bigquery Complete metadata. Ready for any AI to understand your Claude Code setup instantly.
Live Bi-Sync Demo
We also shipped faf demo sync - a live demonstration of bidirectional sync:
$ faf demo sync
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FAF BI-SYNC DEMO โ
โ Live demonstration of .faf <-> CLAUDE.md syncโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Starting demo...
โโ Files detected:
โ ๐ project.faf
โ CLAUDE.md
T=39.589s ๐ CLAUDE.md -> editing...
T=40.092s ๐ Change detected: "DEMO rule added"
T=40.602s โก project.faf synced (9ms)
T=41.603s ๐ project.faf -> editing...
T=42.108s ๐ Change detected: "demo_marker updated"
T=42.610s โก CLAUDE.md synced (1ms)
T=43.611s ๐ CLAUDE.md -> editing...
T=44.111s ๐ Change detected: "context update"
T=44.612s โก project.faf synced (1ms)
3 changes ยท 3 syncs ยท avg 4ms ยท 0 conflicts
Demo complete - no files changed.
โจ Try: faf bi-sync - Set up real bi-sync for your project Every faf-cli user can now demo bi-sync to their team. Built-in evangelism.
Why This Matters
Context drift happens when your AI doesn't know your project structure. With Boris-Flow:
| Before | After |
|---|---|
| AI guesses your setup | AI knows your exact Claude Code structure |
| Subagents invisible | Subagents listed by name |
| MCP servers unknown | MCP servers detected |
| Runtime assumed | Bun/Node detected from lockfile |
| Permissions unclear | Permissions extracted from settings.json |
One format. Complete AI context. Zero drift.
Try It
brew install faf-cli faf init && faf autoThat's it. Your Claude Code structure is now captured in project.faf.
For the brave:
cd your-project npx faf-cli yoloDownloads faf-cli via npx and runs yolo โ init + auto + aggressive extraction in one command. May take a minute on first run.
The FAF Tier System
At FAF-Score 100% AI is optimized. No more guessing, peak AI performance is activated ๐ Gold Code mode enabled
| Score | Tier | Meaning |
|---|---|---|
| ๐ 100% | Gold Code | AI Optimized |
| ๐ฅ 99%+ | Gold | Exceptional |
| ๐ฅ 95%+ | Silver | Excellent |
| ๐ฅ 85%+ | Bronze | Production ready |
| ๐ข 70%+ | Green | Good foundation |
| ๐ก 55%+ | Yellow | Needs work |
| ๐ด <55% | Red | Critical gaps |
The Numbers
- v3.4.4 - Released January 7, 2026
- 12/12 - Boris-Flow tests pass
- 609/629 - Full test suite (20 intentionally skipped)
- 100% - FAF score on faf-cli itself
- 4ms - Average bi-sync time
- 20,000+ - npm downloads