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.
- package/README.md +62 -529
- package/dist/big-orange/faf-generator.js +6 -6
- package/dist/big-orange/faf-generator.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -24
- package/dist/cli.js.map +1 -1
- package/dist/commands/bi-sync.d.ts.map +1 -1
- package/dist/commands/bi-sync.js +9 -1
- package/dist/commands/bi-sync.js.map +1 -1
- package/dist/commands/compile.d.ts +1 -8
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +21 -84
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/decompile.d.ts +1 -5
- package/dist/commands/decompile.d.ts.map +1 -1
- package/dist/commands/decompile.js +7 -63
- package/dist/commands/decompile.js.map +1 -1
- package/dist/commands/edit-helper.js +2 -2
- package/dist/commands/edit-helper.js.map +1 -1
- package/dist/commands/enhance-real.js +10 -10
- package/dist/commands/enhance-real.js.map +1 -1
- package/dist/commands/go.js +2 -2
- package/dist/commands/go.js.map +1 -1
- package/dist/commands/ram.d.ts.map +1 -1
- package/dist/commands/ram.js +32 -13
- package/dist/commands/ram.js.map +1 -1
- package/dist/commands/sync.js +18 -18
- package/dist/commands/sync.js.map +1 -1
- package/dist/compiler/faf-compiler.d.ts +14 -0
- package/dist/compiler/faf-compiler.d.ts.map +1 -1
- package/dist/compiler/faf-compiler.js +160 -32
- package/dist/compiler/faf-compiler.js.map +1 -1
- package/dist/engines/fab-formats-processor.js +4 -4
- package/dist/engines/fab-formats-processor.js.map +1 -1
- package/dist/family/detectors/next.js +3 -3
- package/dist/family/detectors/next.js.map +1 -1
- package/dist/family/detectors/react.js +3 -3
- package/dist/family/detectors/react.js.map +1 -1
- package/dist/family/detectors/svelte.js +4 -4
- package/dist/family/detectors/svelte.js.map +1 -1
- package/dist/family/detectors/vite.js +2 -2
- package/dist/family/detectors/vite.js.map +1 -1
- package/dist/family/types.d.ts +12 -4
- package/dist/family/types.d.ts.map +1 -1
- package/dist/framework-detector.js +22 -11
- package/dist/framework-detector.js.map +1 -1
- package/dist/generators/faf-generator-championship.js +26 -26
- package/dist/generators/faf-generator-championship.js.map +1 -1
- package/dist/github/faf-git-generator.js +3 -3
- package/dist/github/faf-git-generator.js.map +1 -1
- package/dist/schema/faf-schema.d.ts +8 -3
- package/dist/schema/faf-schema.d.ts.map +1 -1
- package/dist/schema/faf-schema.js.map +1 -1
- package/dist/systems/question-system.js +3 -3
- package/dist/systems/question-system.js.map +1 -1
- package/dist/utils/agents-parser.js +7 -7
- package/dist/utils/agents-parser.js.map +1 -1
- package/dist/utils/balance-visualizer.js +3 -3
- package/dist/utils/balance-visualizer.js.map +1 -1
- package/dist/utils/cursorrules-parser.js +5 -5
- package/dist/utils/cursorrules-parser.js.map +1 -1
- package/dist/utils/fafb-compiler.d.ts +7 -6
- package/dist/utils/fafb-compiler.d.ts.map +1 -1
- package/dist/utils/fafb-compiler.js +62 -97
- package/dist/utils/fafb-compiler.js.map +1 -1
- package/dist/utils/memory-parser.js +7 -7
- package/dist/utils/memory-parser.js.map +1 -1
- package/dist/utils/memory-topic-writer.d.ts +52 -0
- package/dist/utils/memory-topic-writer.d.ts.map +1 -0
- package/dist/utils/memory-topic-writer.js +415 -0
- package/dist/utils/memory-topic-writer.js.map +1 -0
- package/dist/utils/slot-counter.js +5 -5
- package/dist/utils/slot-counter.js.map +1 -1
- package/dist/utils/turbo-cat-knowledge.d.ts +5 -5
- package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -1
- package/dist/utils/turbo-cat-knowledge.js +0 -1
- package/dist/utils/turbo-cat-knowledge.js.map +1 -1
- package/dist/utils/yaml-generator.js +6 -6
- package/dist/utils/yaml-generator.js.map +1 -1
- package/package.json +4 -1
- package/project.faf +1 -1
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
52
|
+
The full story: **[faf.one/blog/compiler-is-the-spec](https://faf.one/blog/compiler-is-the-spec)**
|
|
53
|
+
|
|
54
|
+
---
|
|
64
55
|
|
|
65
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
#
|
|
363
|
-
bunx faf-cli
|
|
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
|
-
|
|
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
|
-
##
|
|
88
|
+
## Core Commands
|
|
464
89
|
|
|
465
90
|
| Command | Purpose |
|
|
466
91
|
|---------|---------|
|
|
467
|
-
| **`faf git <url>`** |
|
|
468
|
-
| `faf go` |
|
|
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` |
|
|
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
|
|
485
|
-
|
|
486
|
-
Run `faf --help` for all 64 commands.
|
|
103
|
+
| `faf formats` | Show 199 detected formats |
|
|
487
104
|
|
|
488
105
|
---
|
|
489
106
|
|
|
490
|
-
##
|
|
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
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
##
|
|
158
|
+
## License
|
|
624
159
|
|
|
625
|
-
MIT
|
|
626
|
-
|
|
627
|
-
---
|
|
160
|
+
MIT — Free and open source
|
|
628
161
|
|
|
629
|
-
|
|
162
|
+
**IANA-registered:** [`application/vnd.faf+yaml`](https://www.iana.org/assignments/media-types/application/vnd.faf+yaml)
|
|
630
163
|
|
|
631
|
-
*
|
|
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(`
|
|
113
|
-
sections.push(`
|
|
112
|
+
sections.push(` framework: React`);
|
|
113
|
+
sections.push(` css: Tailwind CSS`);
|
|
114
114
|
sections.push(` ui_library: Headless UI`);
|
|
115
|
-
sections.push(`
|
|
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(`
|
|
118
|
+
sections.push(` db: None`);
|
|
119
119
|
sections.push(` build: Vite`);
|
|
120
|
-
sections.push(`
|
|
121
|
-
sections.push(`
|
|
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`);
|