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