faf-cli 5.0.6 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +62 -529
  2. package/dist/big-orange/faf-generator.js +6 -6
  3. package/dist/big-orange/faf-generator.js.map +1 -1
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +17 -24
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/bi-sync.d.ts.map +1 -1
  8. package/dist/commands/bi-sync.js +9 -1
  9. package/dist/commands/bi-sync.js.map +1 -1
  10. package/dist/commands/compile.d.ts +1 -8
  11. package/dist/commands/compile.d.ts.map +1 -1
  12. package/dist/commands/compile.js +21 -84
  13. package/dist/commands/compile.js.map +1 -1
  14. package/dist/commands/decompile.d.ts +1 -5
  15. package/dist/commands/decompile.d.ts.map +1 -1
  16. package/dist/commands/decompile.js +7 -63
  17. package/dist/commands/decompile.js.map +1 -1
  18. package/dist/commands/edit-helper.js +2 -2
  19. package/dist/commands/edit-helper.js.map +1 -1
  20. package/dist/commands/enhance-real.js +10 -10
  21. package/dist/commands/enhance-real.js.map +1 -1
  22. package/dist/commands/go.js +2 -2
  23. package/dist/commands/go.js.map +1 -1
  24. package/dist/commands/ram.d.ts.map +1 -1
  25. package/dist/commands/ram.js +32 -13
  26. package/dist/commands/ram.js.map +1 -1
  27. package/dist/commands/sync.js +18 -18
  28. package/dist/commands/sync.js.map +1 -1
  29. package/dist/compiler/faf-compiler.d.ts +14 -0
  30. package/dist/compiler/faf-compiler.d.ts.map +1 -1
  31. package/dist/compiler/faf-compiler.js +160 -32
  32. package/dist/compiler/faf-compiler.js.map +1 -1
  33. package/dist/engines/fab-formats-processor.js +4 -4
  34. package/dist/engines/fab-formats-processor.js.map +1 -1
  35. package/dist/family/detectors/next.js +3 -3
  36. package/dist/family/detectors/next.js.map +1 -1
  37. package/dist/family/detectors/react.js +3 -3
  38. package/dist/family/detectors/react.js.map +1 -1
  39. package/dist/family/detectors/svelte.js +4 -4
  40. package/dist/family/detectors/svelte.js.map +1 -1
  41. package/dist/family/detectors/vite.js +2 -2
  42. package/dist/family/detectors/vite.js.map +1 -1
  43. package/dist/family/types.d.ts +12 -4
  44. package/dist/family/types.d.ts.map +1 -1
  45. package/dist/framework-detector.js +22 -11
  46. package/dist/framework-detector.js.map +1 -1
  47. package/dist/generators/faf-generator-championship.js +26 -26
  48. package/dist/generators/faf-generator-championship.js.map +1 -1
  49. package/dist/github/faf-git-generator.js +3 -3
  50. package/dist/github/faf-git-generator.js.map +1 -1
  51. package/dist/schema/faf-schema.d.ts +8 -3
  52. package/dist/schema/faf-schema.d.ts.map +1 -1
  53. package/dist/schema/faf-schema.js.map +1 -1
  54. package/dist/systems/question-system.js +3 -3
  55. package/dist/systems/question-system.js.map +1 -1
  56. package/dist/utils/agents-parser.js +7 -7
  57. package/dist/utils/agents-parser.js.map +1 -1
  58. package/dist/utils/balance-visualizer.js +3 -3
  59. package/dist/utils/balance-visualizer.js.map +1 -1
  60. package/dist/utils/cursorrules-parser.js +5 -5
  61. package/dist/utils/cursorrules-parser.js.map +1 -1
  62. package/dist/utils/fafb-compiler.d.ts +7 -6
  63. package/dist/utils/fafb-compiler.d.ts.map +1 -1
  64. package/dist/utils/fafb-compiler.js +62 -97
  65. package/dist/utils/fafb-compiler.js.map +1 -1
  66. package/dist/utils/memory-parser.js +7 -7
  67. package/dist/utils/memory-parser.js.map +1 -1
  68. package/dist/utils/memory-topic-writer.d.ts +52 -0
  69. package/dist/utils/memory-topic-writer.d.ts.map +1 -0
  70. package/dist/utils/memory-topic-writer.js +415 -0
  71. package/dist/utils/memory-topic-writer.js.map +1 -0
  72. package/dist/utils/slot-counter.js +5 -5
  73. package/dist/utils/slot-counter.js.map +1 -1
  74. package/dist/utils/turbo-cat-knowledge.d.ts +5 -5
  75. package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -1
  76. package/dist/utils/turbo-cat-knowledge.js +0 -1
  77. package/dist/utils/turbo-cat-knowledge.js.map +1 -1
  78. package/dist/utils/yaml-generator.js +6 -6
  79. package/dist/utils/yaml-generator.js.map +1 -1
  80. package/package.json +4 -1
  81. package/project.faf +1 -1
  82. package/scripts/evaluate-family-member.ts +8 -8
package/README.md CHANGED
@@ -23,46 +23,37 @@ project/
23
23
  └── src/
24
24
  ```
25
25
 
26
- <p align="center">
27
- <img src="https://raw.githubusercontent.com/Wolfe-Jam/faf-cli/main/assets/project-faf-screenshot.png" alt="project.faf in file listing" width="600" />
28
- </p>
29
-
30
- <p align="center"><em>Just another file helping you code.</em></p>
31
-
32
26
  > **Every building requires a foundation. `project.faf` is AI's foundation.**
33
27
  >
34
28
  > You have a `package.json`. Add a `project.faf`. Done.
35
29
 
36
30
  **Git-Native.** `project.faf` versions with your code — every clone, every fork, every checkout gets full AI context. No setup, no drift, no re-explaining.
37
31
 
38
- ### `faf auto` — Zero to 100% in One Command
32
+ ---
33
+
34
+ ## Install
39
35
 
40
36
  ```bash
41
- faf auto
37
+ bunx faf-cli auto # Bun (recommended — same toolchain as Claude Code)
38
+ npx faf-cli auto # npm (no install required)
39
+ brew install faf-cli && faf auto # Homebrew
42
40
  ```
43
41
 
44
- One command runs the full pipeline:
42
+ ---
45
43
 
46
- ```
47
- faf auto
48
- ├── 1. Init → Creates project.faf (or enhances existing)
49
- ├── 2. Detect → TURBO-CAT discovers your stack (199 formats)
50
- ├── 3. Extract → Pulls name, goal, version from manifests
51
- ├── 4. Sync → Generates CLAUDE.md (bi-sync)
52
- └── 5. Score → Reports AI-readiness with before/after delta
53
- ```
44
+ ## v5.1.0 — The FAFb Edition
54
45
 
55
- It reads your `package.json`, `Cargo.toml`, or `pyproject.toml`fills in the blanks and scores the result. No questions, no prompts, no manual entry.
46
+ `faf compile` turns your `.faf` into a `.fafb` binary CRC32 sealed, deterministic, portable. Same compiler that runs in the browser (322KB WASM) now runs from the CLI. YAML is source code. FAFb is the compiled output.
56
47
 
57
48
  ```bash
58
- bunx faf-cli auto # Bun (recommended — same toolchain as Claude Code)
59
- npx faf-cli auto # npm (no install required)
60
- faf auto # Or globally installed
49
+ faf compile # project.faf project.fafb
61
50
  ```
62
51
 
63
- **91% token reclaim out the gate.** Relentless pursuit to 100%.
52
+ The full story: **[faf.one/blog/compiler-is-the-spec](https://faf.one/blog/compiler-is-the-spec)**
53
+
54
+ ---
64
55
 
65
- ### Top 6 Commands
56
+ ## Top 7 Commands
66
57
 
67
58
  | # | Command | One-liner |
68
59
  |---|---------|-----------|
@@ -72,560 +63,102 @@ faf auto # Or globally installed
72
63
  | 4 | `faf go` | Guided interview to gold code |
73
64
  | 5 | `faf bi-sync` | `.faf` ↔ CLAUDE.md — free forever |
74
65
  | 6 | `faf tri-sync` | ROM ↔ CLAUDE.md ↔ MEMORY.md — Pro |
66
+ | 7 | `faf compile` | `.faf` → `.fafb` binary — sealed, portable, deterministic |
75
67
 
76
- **Define. Build. Lock. Relax.** Answer the 6Ws. Run the Top 6. AI context at 100% — forever.
77
-
78
- <p align="center">
79
- <a href="#-how-does-it-work">Quick Start</a> · <a href="https://faf.one">Website</a> · <a href="https://faf.one/daaft">DAAFT Analysis</a> · <a href="https://www.npmjs.com/package/faf-cli">npm</a> · <a href="#-core-commands">Commands</a> · <a href="#%EF%B8%8F-tier-system-from-blind-to-optimized">Tiers</a> · <a href="https://www.npmjs.com/package/claude-faf-mcp">MCP Server</a> · <a href="./CHANGELOG.md">Changelog</a>
80
- </p>
81
-
82
- ---
83
-
84
- ## 🧠 v5.0.5 — The RAM Edition
85
-
86
- **TL;DR:** `.faf` is ROM — persistent, portable, yours forever. tri-sync adds RAM: it auto-syncs with Claude's MEMORY.md. For builders, serious coders, and app-makers.
87
-
88
- **v5.0.5** — Smart Metadata Extraction: `faf auto` now pulls project name, goal, and version from your manifest files (package.json, Cargo.toml, pyproject.toml) automatically. Closer to 100% in one command.
89
-
90
- The full story: **[faf.one/blog/ram-edition](https://faf.one/blog/ram-edition)**
91
-
92
- ### The 3Ws — Everyone Can Have an App
93
-
94
- You don't need to be a developer to describe an app idea. You just need 3 answers:
95
-
96
- | | Question | Who answers it? |
97
- |---|----------|----------------|
98
- | **1W** | **WHO** is it for? | Anyone |
99
- | **2W** | **WHAT** does it do? | Anyone |
100
- | **3W** | **WHY** build it? | Anyone |
101
-
102
- A teacher, a chef, a parent with an app idea — they answer WHO, WHAT, WHY. That's the whole idea. Try it: **[faf.one/ideas](https://faf.one/ideas)**
103
-
104
- ### The 6Ws — The Full Picture
105
-
106
- The first 3 describe the idea. The next 3 describe the implementation:
107
-
108
- | | Question | Who answers it? |
109
- |---|----------|----------------|
110
- | **4W** | **WHERE** does it live? | Developer |
111
- | **5W** | **WHEN** is it shipping? | Developer |
112
- | **6W** | **HOW** is it built? | Developer |
113
-
114
- All 6 answers live in one file: `project.faf`. The package.json for AI context. Learn more: **[faf.one/6ws](https://faf.one/6ws)**
115
-
116
- ### tri-sync — ROM meets RAM
117
-
118
- ```
119
- bi-sync = ROM (.faf) ↔ CLAUDE.md ← free forever
120
- tri-sync = ROM ↔ CLAUDE.md ↔ RAM (MEMORY.md) ← Pro
121
- ```
122
-
123
- ```bash
124
- faf tri-sync # .faf ↔ CLAUDE.md ↔ MEMORY.md
125
- faf ram # Sync project context to RAM
126
- faf bi-sync --ram # Include RAM in bi-sync
127
- faf bi-sync --all # Everything: CLAUDE.md + AGENTS.md + .cursorrules + GEMINI.md + RAM
128
- faf pro # Check license status
129
- faf pro activate <key> # Activate license
130
- ```
131
-
132
- | Sync | Target | Status |
133
- |------|--------|--------|
134
- | bi-sync | `.faf` ↔ CLAUDE.md | Free forever |
135
- | bi-sync | `.faf` ↔ AGENTS.md, .cursorrules, GEMINI.md | Free forever |
136
- | **tri-sync** | `.faf` ↔ CLAUDE.md ↔ **MEMORY.md** | **Pro** |
137
-
138
- 14-day free trial, no signup, no credit card. Early-bird: $3/mo · $19/yr (normally $10/mo — 70% off).
139
- **[Purchase at faf.one/pro](https://faf.one/pro)**
140
-
141
- **Release notes:** [CHANGELOG](./CHANGELOG.md)
142
-
143
- ---
144
-
145
- ## 📋 The 6 Ws - Quick Reference
146
-
147
- Every README should answer these questions. Here's ours:
148
-
149
- | Question | Answer |
150
- |----------|--------|
151
- | **👥 WHO** is this for? | Developers using AI coding assistants (Claude, Gemini, Cursor, Grok, ChatGPT) |
152
- | **📦 WHAT** is it? | The package.json for AI context - IANA-registered format |
153
- | **🎯 WHY** do you need it? | 100% context (AI-scored), persists forever, syncs automatically - saves $1000s/developer |
154
- | **🌍 WHERE** does it work? | Everywhere AI needs context (Claude Code, Gemini CLI, Cursor, etc.) |
155
- | **⏰ WHEN** should you use it? | New projects (day one), existing projects (now), exploring repos (instantly) |
156
- | **🚀 HOW** does it work? | `bunx faf-cli git <url>` or `npx faf-cli git <url>` - No install, no clone, 2 seconds |
157
-
158
- **For AI:** Read the detailed sections below for full context.
159
- **For humans:** Use this pattern in YOUR README. Answer these 6 questions clearly.
160
-
161
- ---
162
-
163
- ## 👥 WHO is this for?
164
-
165
- **Built for developers working with AI coding assistants:**
166
-
167
- - Full-stack developers using Claude, Cursor, Gemini CLI, or ChatGPT
168
- - Engineering teams collaborating on AI-augmented projects
169
- - Solo developers tired of re-explaining context every session
170
- - Open source maintainers wanting contributors to onboard instantly
171
- - Anyone building with TypeScript, React, Python, Node.js, or modern frameworks
172
-
173
- If you use AI to code, `project.faf` saves you time and tokens. Every project. Every session.
174
-
175
- ---
176
-
177
- ## 📦 WHAT is project.faf?
178
-
179
- **The package.json for AI context.** Just another file in your project.
180
-
181
- Like `package.json` tells npm about dependencies, `project.faf` tells AI about your project DNA:
182
- - **Your stack:** React + TypeScript + Vite
183
- - **Your goals:** What you're building and why
184
- - **Your conventions:** How your team works
185
- - **Your context:** The information only YOU know
186
-
187
- **IANA-registered format:** `application/vnd.faf+yaml` — An official standard, not just another .md file.
188
-
189
- ### 💎 The Math
190
-
191
- | Without `project.faf` | With `project.faf` |
192
- |-----------------------|-------------------|
193
- | ~1,750 tokens/session verifying context | ~150 tokens once |
194
- | Risk: wrong guess = 7,500+ tokens rework | Zero risk |
195
- | Context drift accumulates | Drift impossible |
196
- | Hope | Trust |
197
-
198
- **91% fewer tokens. Zero risk. No drift.**
199
-
200
- ---
201
-
202
- ## 🎯 WHY do you need it?
203
-
204
- ### What FAF Actually Does
205
-
206
- **1. 100% Context Quality** — AI-scored with facts, not guesswork
207
- Every field in your `project.faf` is validated and scored. No more "I think this is a React app" — AI **knows** it is.
208
-
209
- **2. Context Persists Forever** — Never lost, never re-explained
210
- Your project DNA is written once, read forever. No context drift across sessions, team members, or AI tools.
211
-
212
- **3. Bi-Sync Keeps It Current** — Responds to changes automatically
213
- When your project evolves, `project.faf` ↔ `CLAUDE.md` stays synchronized in 8ms. Always current, never stale.
214
-
215
- ---
216
-
217
- ### What That Actually Costs (Or Saves)
218
-
219
- **The DAAFT Tax** (Discover, Assume, Ask, Forget, Time+Tokens)
220
-
221
- Without `project.faf`, every AI session cycles through rediscovery:
222
- - ❌ AI re-discovers your project (wastes tokens)
223
- - ❌ AI asks questions you've answered before (wastes time)
224
- - ❌ AI makes wrong assumptions → rework (wastes developer hours)
225
- - ❌ Context drifts → compounding errors → project delays
226
-
227
- **The Economics:**
228
- - **Per developer:** $5,460/year + 84 hours lost productivity
229
- - **50-developer team:** $273,000–$507,630 annually
230
- - **91% of tokens** wasted on rediscovery instead of building
231
-
232
- **The Real Cost:**
233
- - Token waste (measurable: 91% wasted)
234
- - Time waste (expensive: $5,460/year per developer)
235
- - **Project failure** (catastrophic: 70% of projects fail, with 39% citing poor requirements and 57% citing communication breakdowns — both rooted in context loss)
236
-
237
- **Full analysis:** [faf.one/daaft](https://faf.one/daaft)
238
-
239
- ---
240
-
241
- ### The Truth People Gloss Over
242
-
243
- Bad context → wrong assumptions → rework → delays → project failure.
244
-
245
- Good context isn't a "nice to have" — it's the foundation of AI-augmented development.
246
-
247
- **`project.faf` fixes this permanently.**
248
-
249
- At 100% AI Readiness:
250
- - AI knows your stack, goals, and conventions (scored with facts)
251
- - Zero clarifying questions needed (context persists)
252
- - Drift is impossible (bi-sync keeps it current)
253
- - Your project ships on time, within budget, with fewer surprises
68
+ Run `faf --help` for all 64+ commands.
254
69
 
255
70
  ---
256
71
 
257
- ## 🌍 WHERE does it work?
258
-
259
- **Everywhere AI needs context:**
260
-
261
- ### Official Integrations
262
- - **[Claude Code](https://claude.ai/download)** (Anthropic) — Bi-sync + tri-sync with CLAUDE.md + MEMORY.md
263
- - **[Gemini CLI](https://github.com/google/generative-ai-cli)** (Google) — Import/export GEMINI.md
264
- - **[Antigravity IDE](https://antigravityide.com)** (Google) — Global config support
265
- - **[Conductor Extension](https://chromewebstore.google.com/detail/conductor)** (Google) — conductor/ directory sync
266
-
267
- ### Works With
268
- - Cursor, Cline, Windsurf, any AI coding assistant
269
- - ChatGPT, Claude Desktop, Gemini chat interfaces
270
- - CI/CD pipelines, automation scripts, build tools
271
-
272
- ### Ecosystem
273
- - **[MCPaaS](https://mcpaas.live)** — MCP as a Service (The Endpoint for Context)
274
- - **[claude-faf-mcp](https://npmjs.com/package/claude-faf-mcp)** — MCP server for Claude (33 tools)
275
- - **[grok-faf-mcp](https://npmjs.com/package/grok-faf-mcp)** — MCP server for Grok / xAI
276
- - **[gemini-faf-mcp](https://pypi.org/project/gemini-faf-mcp/)** — MCP server for Gemini / Google
277
- - **[faf-wasm](https://www.npmjs.com/package/faf-wasm)** — WASM SDK (<5ms scoring)
278
- - **[Chrome Extension](https://chromewebstore.google.com/detail/lnecebepmpjpilldfmndnaofbfjkjlkm)** — Browser integration
279
- - **[faf.one](https://faf.one)** — Official website
280
-
281
- **Universal format. Works everywhere. Write once, use with any AI.**
282
-
283
- ---
284
-
285
- ## ⏰ WHEN should you use it?
286
-
287
- ### New Projects
288
- **Day one.** Initialize with context from the start:
289
- ```bash
290
- npm init -y
291
- faf init
292
- # Your project now has AI-ready context
293
- ```
294
-
295
- ### Existing Projects
296
- **Right now.** Add context to projects already in progress:
297
- ```bash
298
- faf init # Start from your codebase
299
- faf go # Interview to 100%
300
- faf auto # Auto-enhance to Gold Code
301
- ```
72
+ ## Quick Start
302
73
 
303
- ### Exploring Repos
304
- **Instantly.** Generate context for ANY GitHub repo WITHOUT cloning:
305
74
  ```bash
75
+ # ANY GitHub repo — no clone, no install, 2 seconds
306
76
  bunx faf-cli git https://github.com/facebook/react
307
- # 2 seconds → 95% 🥈 Silver score
308
- # No install. No clone. Just instant context.
309
- ```
310
-
311
- ### Daily Workflow
312
- **Always synced.** Keep context fresh automatically:
313
- ```bash
314
- faf bi-sync --watch # Continuous sync with CLAUDE.md
315
- ```
316
-
317
- Add to package.json to see FAF status every dev session:
318
- ```json
319
- {
320
- "scripts": {
321
- "predev": "faf status --oneline"
322
- }
323
- }
324
- ```
325
-
326
- ---
327
-
328
- ## 🚀 HOW does it work?
329
-
330
- ### Quick Start (No Install Required)
331
-
332
- **The revolutionary way — zero install, zero clone:**
333
-
334
- ```bash
335
- # Generate AI context for ANY GitHub repo
336
- bunx faf-cli git https://github.com/facebook/react
337
- # ⏱️ 2 seconds → 95% 🥈 Silver score
338
-
339
- bunx faf-cli git https://github.com/sveltejs/svelte
340
- # ⏱️ 2 seconds → 95% 🥈 Silver score
341
-
342
- bunx faf-cli git https://github.com/your-org/your-repo
343
- # ⏱️ 2 seconds → 90%+ context, ready for AI
344
- ```
345
-
346
- > **Also works with npx:** Replace `bunx` with `npx` if you prefer npm.
347
-
348
- **What just happened?**
349
- - ✅ No install required (`bunx`/`npx` runs latest version)
350
- - ✅ No cloning required (uses GitHub API)
351
- - ✅ 2 seconds → 95% AI-ready context
352
- - ✅ Works on ANY public GitHub repo
353
-
354
- **This changes everything.** You can now generate AI context for repos you don't even own. 🏎️
355
-
356
- ### For Your Own Projects
357
-
358
- ```bash
359
- # Start with your codebase
360
- bunx faf-cli init # or: npx faf-cli init
361
77
 
362
- # Or go interactive (completes the 6 Ws)
363
- bunx faf-cli go # or: npx faf-cli go
78
+ # Your own project
79
+ bunx faf-cli init # Create .faf
80
+ bunx faf-cli auto # Zero to 100% in one command
81
+ bunx faf-cli go # Interactive interview to gold code
364
82
  ```
365
83
 
366
- ### For Pros: Install Globally (Daily Use)
367
-
368
- Once you're hooked, install globally for full power:
369
-
370
- ```bash
371
- # Install once
372
- bun install -g faf-cli # Bun (recommended)
373
- npm install -g faf-cli # or: brew install faf-cli
374
-
375
- # Then use short commands forever
376
- faf git <repo-url> # 1-Click Context (90%+)
377
- faf go # Interactive to 100%
378
- faf auto # Full automation
379
- faf bi-sync # Keep synced
380
- # + 57 more commands
381
- ```
382
-
383
- ### The Killer Combo
384
-
385
- ```bash
386
- bunx faf-cli git <repo-url> # 90%+ context, no install, no clone
387
- bunx faf-cli go # Interactive polish to 100%
388
- ```
389
-
390
- ### Comparison: Traditional vs 1-Click Context
391
-
392
- **Traditional approach:**
393
- ```bash
394
- git clone https://github.com/facebook/react # 10-30 seconds
395
- cd react
396
- npm install -g faf-cli # 10 seconds
397
- faf init # 5 seconds
398
- # Total: ~45 seconds + local files
399
- ```
400
-
401
- **1-Click Context:**
402
- ```bash
403
- bunx faf-cli git https://github.com/facebook/react
404
- # Total: 2 seconds + ZERO local files
405
- ```
406
-
407
- ---
408
-
409
- ## 🎖️ Tier System: From Blind to Optimized
410
-
411
- | Tier | Score | Status |
412
- |------|-------|--------|
413
- | 🏆 **Trophy** | 100% | **AI Optimized** — Gold Code |
414
- | 🥇 **Gold** | 99%+ | Near-perfect context |
415
- | 🥈 **Silver** | 95%+ | Excellent |
416
- | 🥉 **Bronze** | 85%+ | Production ready |
417
- | 🟢 **Green** | 70%+ | Solid foundation |
418
- | 🟡 **Yellow** | 55%+ | AI flipping coins |
419
- | 🔴 **Red** | <55% | AI working blind |
420
- | 🤍 **White** | 0% | No context at all |
421
-
422
- **At 55%, AI is guessing half the time.** At 100%, AI is optimized.
423
-
424
- ---
425
-
426
- ## 🎯 Slot-Ignore: The Perfect Way to Handle App Types
427
-
428
- **Like `.gitignore` for files, slot-ignore for context slots.**
429
-
430
- FAF has 21 slots. Some don't apply to your project type. **Slot-ignore** handles this elegantly:
431
-
432
- ```yaml
433
- # CLI Tool - 21 slots total
434
- stack:
435
- database: None # ✅ Ignored (CLI doesn't need database)
436
- css_framework: None # ✅ Ignored (no web UI)
437
- backend: Node.js # ✅ Filled (has value)
438
- # ... other slots
439
-
440
- Score: (Filled + Ignored) / 21 = 100% 🏆
441
- ```
442
-
443
- **The formula:**
444
- ```
445
- Total Slots: 21 (constant)
446
- ├── Filled: 15 (has values)
447
- ├── Ignored: 6 (set to 'None' - not applicable)
448
- └── Missing: 0 (undefined - needs attention)
449
-
450
- Score: (15 + 6) / 21 = 100%
451
- ```
452
-
453
- **Common patterns:**
454
- - **CLI Tools:** Ignore `database`, `css_framework`, `frontend`
455
- - **Backend APIs:** Ignore `css_framework`, `frontend`, `ui_library`
456
- - **Static Sites:** Ignore `backend`, `database`, `api_type`
457
- - **Libraries:** Ignore `hosting`, `cicd`, `database`
458
-
459
- **Full spec:** [docs/SLOT-IGNORE.md](./docs/SLOT-IGNORE.md)
84
+ **91% token reclaim out the gate.** Relentless pursuit to 100%.
460
85
 
461
86
  ---
462
87
 
463
- ## 🔧 Core Commands
88
+ ## Core Commands
464
89
 
465
90
  | Command | Purpose |
466
91
  |---------|---------|
467
- | **`faf git <url>`** | **🚀 1-Click Context - 90%+ for ANY GitHub repo (no cloning!)** |
468
- | `faf go` | 🎯 Guided interview to 100% (completes the 6 Ws) |
92
+ | **`faf git <url>`** | 1-Click Context 90%+ for ANY GitHub repo (no cloning) |
93
+ | `faf go` | Guided interview to 100% (completes the 6 Ws) |
469
94
  | `faf init` | Create project.faf from your codebase |
470
95
  | `faf auto` | Auto-enhance to Gold Code |
471
96
  | `faf score` | Check AI-readiness (0-100%) |
97
+ | `faf compile` | Compile `.faf` → `.fafb` binary (CRC32 sealed) |
472
98
  | `faf bi-sync` | Sync .faf ↔ CLAUDE.md (8ms) |
473
- | `faf tri-sync` | 🧠 .faf ↔ CLAUDE.md ↔ MEMORY.md (ROM meets RAM) — **Pro** |
474
- | `faf ram` | Sync project context to Claude's MEMORY.md — **Pro** |
475
- | `faf pro` | Check/activate Pro license (14-day free trial) |
476
- | `faf readme` | Extract 6 Ws from README (+25-35% boost) |
477
- | `faf human` | Interactive human context entry |
478
- | `faf human-set` | Non-interactive field setting |
479
- | `faf formats` | Show 153 detected formats |
99
+ | `faf tri-sync` | .faf ↔ CLAUDE.md ↔ MEMORY.md — **Pro** |
480
100
  | `faf agents` | AGENTS.md interop (import/export/sync) |
481
101
  | `faf cursor` | .cursorrules interop (import/export/sync) |
482
- | `faf conductor` | Google Conductor interop (import/export/sync) |
483
102
  | `faf gemini` | Gemini CLI / Antigravity interop |
484
- | `faf demo sync` | Live bi-sync demonstration |
485
-
486
- Run `faf --help` for all 64 commands.
103
+ | `faf formats` | Show 199 detected formats |
487
104
 
488
105
  ---
489
106
 
490
- ## 🔄 Bi-Sync & Tri-Sync
491
-
492
- Your `project.faf` stays synchronized with everything in milliseconds.
493
-
494
- ```
495
- bi-sync: project.faf ←── 8ms ──→ CLAUDE.md (free)
496
- tri-sync: project.faf ←── 8ms ──→ CLAUDE.md ←→ MEMORY.md (Pro)
497
- ```
498
-
499
- ```bash
500
- # bi-sync — free forever
501
- faf bi-sync # Sync once (CLAUDE.md)
502
- faf bi-sync --agents # Also generate AGENTS.md
503
- faf bi-sync --cursor # Also generate .cursorrules
504
- faf bi-sync --all # All formats + RAM
505
- faf bi-sync --watch # Continuous sync
506
-
507
- # tri-sync — Pro (ROM meets RAM)
508
- faf tri-sync # .faf ↔ CLAUDE.md ↔ MEMORY.md
509
- faf ram # Sync project context to RAM
510
- faf ram status # Check RAM path and line count
511
- ```
107
+ ## Scoring
512
108
 
513
- ---
514
-
515
- ## 🧠 Human Context (The 6 Ws)
516
-
517
- Boost your score by 25-35% with human context — the information only YOU know.
518
-
519
- ```bash
520
- # Auto-extract from README
521
- faf readme --apply
109
+ | Tier | Score | Status |
110
+ |------|-------|--------|
111
+ | 🏆 Trophy | 100% | AI Optimized — Gold Code |
112
+ | 🥇 Gold | 99%+ | Near-perfect |
113
+ | 🥈 Silver | 95%+ | Excellent |
114
+ | 🥉 Bronze | 85%+ | Production ready |
115
+ | 🟡 Yellow | 55%+ | AI flipping coins |
116
+ | 🔴 Red | <55% | AI working blind |
522
117
 
523
- # Manual entry
524
- faf human-set who "Frontend team at Acme Corp"
525
- faf human-set what "Customer dashboard with real-time analytics"
526
- faf human-set why "10x faster than previous solution"
527
- ```
118
+ Details: [docs/SCORING.md](./docs/SCORING.md)
528
119
 
529
120
  ---
530
121
 
531
- ## 🧪 Boris-Flow Integration Tests
532
-
533
- **Boris-Flow** is a 12-test validation suite that ensures faf-cli is demo-ready and safe to publish.
534
-
535
- Named after Boris (Claude Code creator at Anthropic), these tests validate:
536
- - Version detection works correctly
537
- - Type and language detection (CLI, TypeScript, etc.)
538
- - Claude Code structure detection (agents, skills, commands)
539
- - Score progression: init → auto → 100%
540
- - Non-TTY safety (no crashes when stdin is piped)
541
-
542
- **When to run:**
122
+ ## Sync
543
123
 
544
- | Scenario | Command |
545
- |----------|---------|
546
- | **Before `faf init`** (on your project) | `./tests/boris-flow.test.sh` validates faf-cli works |
547
- | **After major changes** to your `.faf` | Re-run to ensure structure is valid |
548
- | **Before publishing** faf-cli updates | Required - ensures no regressions |
549
- | **Before WJTTC certification** | Validates `.faf` file for Tier 8 |
550
- | **Team onboarding** | Proves faf-cli installation works |
551
-
552
- **Run Boris-Flow:**
553
- ```bash
554
- # Clone faf-cli repository
555
- git clone https://github.com/Wolfe-Jam/faf-cli
556
- cd faf-cli
557
-
558
- # Run integration tests
559
- ./tests/boris-flow.test.sh
560
-
561
- # Expected output:
562
- # 🏆 BORIS-FLOW: ALL 12 TESTS PASSED
563
- # ✅ Demo ready
564
- # ✅ Safe to publish
565
- # Final score: 100%
566
124
  ```
567
-
568
- **What it tests:**
569
- ```bash
570
- ✅ faf --version
571
- ✅ Created Claude Code 2.1.0 structure
572
- ✅ faf init created project.faf
573
- ✅ Detected CLI type
574
- ✅ Language detected (TypeScript)
575
- ✅ claude_code section exists
576
- ✅ Claude Code detected: true
577
- ✅ Subagents detected (2+)
578
- ✅ Skills detected (1+)
579
- ✅ Commands detected (1+)
580
- ✅ faf auto maintained score
581
- ✅ human-set commands succeeded
582
- ✅ Final score is 100%
125
+ bi-sync: .faf ←── 8ms ──→ CLAUDE.md (free forever)
126
+ tri-sync: .faf ←── 8ms ──→ CLAUDE.md ↔ MEMORY.md (Pro)
583
127
  ```
584
128
 
585
- Boris-Flow validates the FAF file structure that WJTTC Tier 8 tests. Running it before certification helps ensure you'll pass Tier 8.
129
+ 14-day free trial, no signup, no credit card. Early-bird: $3/mo · $19/yr.
130
+ **[faf.one/pro](https://faf.one/pro)** · Details: [docs/SYNC.md](./docs/SYNC.md)
586
131
 
587
132
  ---
588
133
 
589
- ## 🤝 CLI vs MCP
590
-
591
- | Tool | Use Case |
592
- |------|----------|
593
- | **faf-cli** (this) | Terminal, scripts, CI/CD, automation |
594
- | **claude-faf-mcp** | Claude Desktop via MCP protocol |
595
- | **grok-faf-mcp** | Grok / xAI via MCP protocol |
596
- | **gemini-faf-mcp** | Gemini / Google via MCP protocol |
134
+ ## Documentation
597
135
 
598
- Same `project.faf`. Same scoring. Same result. Different execution layer. Three AI platforms, one format.
136
+ | Doc | What |
137
+ |-----|------|
138
+ | [Guide (6Ws)](./docs/GUIDE.md) | WHO / WHAT / WHY / WHERE / WHEN / HOW — deep dive |
139
+ | [Scoring & Tiers](./docs/SCORING.md) | Tier system, slot-ignore patterns |
140
+ | [Sync](./docs/SYNC.md) | bi-sync, tri-sync, human context |
141
+ | [Testing](./docs/TESTING.md) | Boris-Flow integration tests |
142
+ | [Skills](./docs/SKILLS.md) | 16 Claude Code skills |
143
+ | [Ecosystem](./docs/ECOSYSTEM.md) | CLI vs MCP, FAF Family, 3Ws/6Ws |
144
+ | [Slot-Ignore](./docs/SLOT-IGNORE.md) | Full slot-ignore spec |
145
+ | [Pro](./docs/PRO.md) | tri-sync commands, activation, FAQ |
146
+ | [CHANGELOG](./CHANGELOG.md) | Version history |
147
+ | [DAAFT Analysis](https://faf.one/daaft) | The cost of not having context |
599
148
 
600
149
  ---
601
150
 
602
- ## 📚 Documentation & Recommended Reading
603
-
604
- - **[The RAM Edition](https://faf.one/blog/ram-edition)** — Full v5.0.1 release blog post
605
- - **[FAF Pro](https://faf.one/pro)** — tri-sync pricing and activation
606
- - **[Pro Docs](./docs/PRO.md)** — Commands, FAQ, and licensing
607
- - **[The 3Ws](https://faf.one/ideas)** — Describe any app idea in 3 answers
608
- - **[The 6Ws](https://faf.one/6ws)** — The complete project DNA framework
609
- - **[CHANGELOG](./CHANGELOG.md)** — Version history
610
- - **[Website](https://faf.one)** — Complete guide
611
- - **[DAAFT Analysis](https://faf.one/daaft)** — The cost of not having context
612
-
613
- ---
614
-
615
- ## 💬 Support
151
+ ## Support
616
152
 
617
153
  - **[GitHub Discussions](https://github.com/Wolfe-Jam/faf-cli/discussions)** — Questions, ideas, community
618
- - **[Pro Docs](./docs/PRO.md)** — tri-sync commands, activation, FAQ
619
154
  - **Email:** team@faf.one
620
155
 
621
156
  ---
622
157
 
623
- ## 📄 License
158
+ ## License
624
159
 
625
- MIT License — Free and open source
626
-
627
- ---
160
+ MIT — Free and open source
628
161
 
629
- > **.faf is the format. `project.faf` is the file. 100% 🏆 AI Readiness is the result.**
162
+ **IANA-registered:** [`application/vnd.faf+yaml`](https://www.iana.org/assignments/media-types/application/vnd.faf+yaml)
630
163
 
631
- *"package.json gives me a list of dependencies, project.faf shows me how to use them" — Claude*
164
+ *format | driven 🏎️⚡️ [wolfejam.dev](https://wolfejam.dev)*
@@ -109,16 +109,16 @@ async function generateFafInstance(score, _projectPath) {
109
109
  // Score 70%+: Add stack
110
110
  if (score >= 70) {
111
111
  sections.push(`stack:`);
112
- sections.push(` frontend: React`);
113
- sections.push(` css_framework: Tailwind CSS`);
112
+ sections.push(` framework: React`);
113
+ sections.push(` css: Tailwind CSS`);
114
114
  sections.push(` ui_library: Headless UI`);
115
- sections.push(` state_management: React Hooks`);
115
+ sections.push(` state: React Hooks`);
116
116
  sections.push(` backend: None`);
117
117
  sections.push(` runtime: "Node.js >=18.0.0"`);
118
- sections.push(` database: None`);
118
+ sections.push(` db: None`);
119
119
  sections.push(` build: Vite`);
120
- sections.push(` package_manager: npm`);
121
- sections.push(` api_type: Component Library`);
120
+ sections.push(` pkg_manager: npm`);
121
+ sections.push(` api: Component Library`);
122
122
  sections.push(` hosting: Vercel`);
123
123
  if (score >= 85) {
124
124
  sections.push(` cicd: GitHub Actions`);