faf-cli 3.0.6 β 3.1.1
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 +275 -25
- package/dist/big-orange/compare.d.ts.map +1 -1
- package/dist/big-orange/compare.js +14 -16
- package/dist/big-orange/compare.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +137 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/auto.d.ts.map +1 -1
- package/dist/commands/auto.js +69 -12
- package/dist/commands/auto.js.map +1 -1
- package/dist/commands/bi-sync.d.ts.map +1 -1
- package/dist/commands/bi-sync.js +10 -3
- package/dist/commands/bi-sync.js.map +1 -1
- package/dist/commands/drift.d.ts +16 -0
- package/dist/commands/drift.d.ts.map +1 -0
- package/dist/commands/drift.js +517 -0
- package/dist/commands/drift.js.map +1 -0
- package/dist/commands/git.d.ts +25 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +355 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +5 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts +11 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +85 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/rename.d.ts +18 -0
- package/dist/commands/rename.d.ts.map +1 -0
- package/dist/commands/rename.js +211 -0
- package/dist/commands/rename.js.map +1 -0
- package/dist/commands/taf-init.d.ts +14 -0
- package/dist/commands/taf-init.d.ts.map +1 -0
- package/dist/commands/taf-init.js +138 -0
- package/dist/commands/taf-init.js.map +1 -0
- package/dist/commands/taf-log.d.ts +30 -0
- package/dist/commands/taf-log.d.ts.map +1 -0
- package/dist/commands/taf-log.js +303 -0
- package/dist/commands/taf-log.js.map +1 -0
- package/dist/commands/taf-stats.d.ts +8 -0
- package/dist/commands/taf-stats.d.ts.map +1 -0
- package/dist/commands/taf-stats.js +133 -0
- package/dist/commands/taf-stats.js.map +1 -0
- package/dist/commands/taf-validate.d.ts +8 -0
- package/dist/commands/taf-validate.d.ts.map +1 -0
- package/dist/commands/taf-validate.js +108 -0
- package/dist/commands/taf-validate.js.map +1 -0
- package/dist/commands/taf.d.ts +13 -0
- package/dist/commands/taf.d.ts.map +1 -0
- package/dist/commands/taf.js +97 -0
- package/dist/commands/taf.js.map +1 -0
- package/dist/compiler/faf-compiler.d.ts.map +1 -1
- package/dist/compiler/faf-compiler.js +18 -0
- package/dist/compiler/faf-compiler.js.map +1 -1
- package/dist/generators/faf-generator-championship.d.ts.map +1 -1
- package/dist/generators/faf-generator-championship.js +1 -0
- package/dist/generators/faf-generator-championship.js.map +1 -1
- package/dist/github/github-extractor.d.ts +56 -0
- package/dist/github/github-extractor.d.ts.map +1 -0
- package/dist/github/github-extractor.js +328 -0
- package/dist/github/github-extractor.js.map +1 -0
- package/dist/github/popular-repos.d.ts +43 -0
- package/dist/github/popular-repos.d.ts.map +1 -0
- package/dist/github/popular-repos.js +205 -0
- package/dist/github/popular-repos.js.map +1 -0
- package/dist/github/repo-selector.d.ts +48 -0
- package/dist/github/repo-selector.d.ts.map +1 -0
- package/dist/github/repo-selector.js +277 -0
- package/dist/github/repo-selector.js.map +1 -0
- package/dist/taf/index.d.ts +17 -0
- package/dist/taf/index.d.ts.map +1 -0
- package/dist/taf/index.js +57 -0
- package/dist/taf/index.js.map +1 -0
- package/dist/taf/logger.d.ts +88 -0
- package/dist/taf/logger.d.ts.map +1 -0
- package/dist/taf/logger.js +137 -0
- package/dist/taf/logger.js.map +1 -0
- package/dist/taf/parser.d.ts +32 -0
- package/dist/taf/parser.d.ts.map +1 -0
- package/dist/taf/parser.js +161 -0
- package/dist/taf/parser.js.map +1 -0
- package/dist/taf/stats.d.ts +31 -0
- package/dist/taf/stats.d.ts.map +1 -0
- package/dist/taf/stats.js +182 -0
- package/dist/taf/stats.js.map +1 -0
- package/dist/taf/types.d.ts +77 -0
- package/dist/taf/types.d.ts.map +1 -0
- package/dist/taf/types.js +9 -0
- package/dist/taf/types.js.map +1 -0
- package/dist/taf/validator.d.ts +18 -0
- package/dist/taf/validator.d.ts.map +1 -0
- package/dist/taf/validator.js +148 -0
- package/dist/taf/validator.js.map +1 -0
- package/dist/utils/file-utils.d.ts +10 -0
- package/dist/utils/file-utils.d.ts.map +1 -1
- package/dist/utils/file-utils.js +196 -33
- package/dist/utils/file-utils.js.map +1 -1
- package/dist/utils/native-file-finder.js +1 -1
- package/dist/utils/native-file-finder.js.map +1 -1
- package/dist/utils/yaml-generator.d.ts +1 -0
- package/dist/utils/yaml-generator.d.ts.map +1 -1
- package/dist/utils/yaml-generator.js +1 -0
- package/dist/utils/yaml-generator.js.map +1 -1
- package/package.json +9 -4
package/README.md
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
# faf-cli
|
|
2
2
|
|
|
3
|
+
> **π IANA-Registered Format** - .FAF is now an Internet-standard format.
|
|
4
|
+
> Create official `application/vnd.faf+yaml` files from any codebase
|
|
5
|
+
> Universal CLI for FAF (Foundational AI-context Format) using project.faf -
|
|
6
|
+
> sits with package.json and README.md in every repo to provide AI context
|
|
3
7
|
## TL;DR
|
|
4
8
|
|
|
5
9
|
**Problem:** AI needs persistent project context to work at its best.
|
|
6
10
|
|
|
7
|
-
**Solution:** The .faf format provides that context. This CLI creates, scores, and improves .faf files from your codebase.
|
|
11
|
+
**Solution:** The .faf format provides that context. This CLI creates, scores, and improves .faf files from your codebase in the IANA-registered format.
|
|
8
12
|
|
|
9
13
|
**How it works:** Run `faf init` to create your .faf file. Get a score (0-100%) showing context quality. Higher scores = AI more in-tune with your project. Use `faf auto` and other commands to improve your score quickly. Align your .faf file with CLAUDE.md to maintain context persistently with bi-sync.
|
|
10
14
|
|
|
@@ -25,15 +29,29 @@ faf score # Check AI-readiness (0-100%)
|
|
|
25
29
|
```
|
|
26
30
|
|
|
27
31
|
**CLI vs MCP clarity**
|
|
28
|
-
- **faf-cli** (this):
|
|
29
|
-
- **claude-faf-mcp** ([npm](https://www.npmjs.com/package/claude-faf-mcp)):
|
|
32
|
+
- **faf-cli** (this): Runs on your machine locally in a terminal
|
|
33
|
+
- **claude-faf-mcp** ([npm](https://www.npmjs.com/package/claude-faf-mcp)): Runs through Claude Desktop as a tool
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
Same .faf, different way to use. Same Project DNA and scoring. Same capabilities (create, score, improve). Different execution layer.
|
|
36
|
+
|
|
37
|
+
Use CLI for raw speed and local development; use MCP for AI-integrated workflows. No feature gaps between them - pick based on your flow.
|
|
32
38
|
|
|
33
39
|
[Website](https://faf.one) | [GitHub](https://github.com/Wolfe-Jam/faf-cli) | [Discussions](https://github.com/Wolfe-Jam/faf-cli/discussions)
|
|
34
40
|
|
|
35
41
|
---
|
|
36
42
|
|
|
43
|
+
### πΈ See It In Action
|
|
44
|
+
|
|
45
|
+
<div align="center">
|
|
46
|
+
<img src="./assets/screenshots/package-json+project-faf.png" alt="project.faf sits between package.json and README.md" width="500" />
|
|
47
|
+
|
|
48
|
+
**`project.faf` sits right between `package.json` and `README.md`** - exactly where it belongs.
|
|
49
|
+
|
|
50
|
+
Visible. Discoverable. Universal.
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
37
55
|
## π Complete Documentation
|
|
38
56
|
|
|
39
57
|
**For developers who want the full story**, here's everything about FAF's architecture, testing, and championship engineering standards.
|
|
@@ -46,6 +64,8 @@ Most users want both: faf-cli creates .faf files, claude-faf-mcp lets Claude rea
|
|
|
46
64
|
|
|
47
65
|
[](https://www.npmjs.com/package/faf-cli)
|
|
48
66
|
[](https://www.npmjs.com/package/faf-cli)
|
|
67
|
+
[](https://faf.one/blog/iana-registration)
|
|
68
|
+
[](https://github.com/Wolfe-Jam/homebrew-faf)
|
|
49
69
|
[](https://opensource.org/licenses/MIT)
|
|
50
70
|
|
|
51
71
|
**[Website](https://faf.one)** β’ **[GitHub](https://github.com/Wolfe-Jam/faf-cli)** β’ **[Community](https://github.com/Wolfe-Jam/faf-cli/discussions)**
|
|
@@ -68,13 +88,198 @@ npm install -g faf-cli
|
|
|
68
88
|
brew install faf-cli
|
|
69
89
|
```
|
|
70
90
|
|
|
71
|
-
**One line. Zero config.
|
|
91
|
+
**One line. Zero config. Podium context.** π
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## π What's New in v3.1.1 - IANA Registration
|
|
96
|
+
|
|
97
|
+
**v3.1.1 updates documentation with IANA registration achievement.**
|
|
98
|
+
|
|
99
|
+
On **October 31, 2025**, the Internet Assigned Numbers Authority (IANA) officially registered `.faf` as `application/vnd.faf+yaml` - making it an Internet-standard format alongside PDF, JSON, and XML.
|
|
100
|
+
|
|
101
|
+
**What this means:**
|
|
102
|
+
- faf-cli now creates official Internet-standard files
|
|
103
|
+
- Proper HTTP Content-Type headers (`application/vnd.faf+yaml`)
|
|
104
|
+
- Browser and email client support for `.faf` files
|
|
105
|
+
- API standardization across platforms
|
|
106
|
+
- Infrastructure-level legitimacy
|
|
107
|
+
|
|
108
|
+
This documentation update adds IANA information throughout the README to reflect this major achievement for the format.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## π What's New in v3.1.0
|
|
113
|
+
|
|
114
|
+
### π₯ THE VISIBILITY REVOLUTION π₯
|
|
115
|
+
|
|
116
|
+
**AI context just became UNIVERSAL. project.faf is here.**
|
|
117
|
+
|
|
118
|
+
For too long, `.faf` lived in the shadows - hidden, invisible, forgotten. **NOT ANYMORE.**
|
|
119
|
+
|
|
120
|
+
### π Introducing: `project.faf`
|
|
121
|
+
|
|
122
|
+
## **`package.json` for AI**
|
|
123
|
+
|
|
124
|
+
**Just like `package.json` tells npm what your project needs...**
|
|
125
|
+
**`project.faf` tells AI what your project IS.**
|
|
126
|
+
|
|
127
|
+
| File | Purpose | Who Reads It |
|
|
128
|
+
|------|---------|--------------|
|
|
129
|
+
| `package.json` | Dependencies, scripts, metadata | npm, Node.js, developers |
|
|
130
|
+
| `project.faf` | **Context, architecture, purpose** | **AI, Claude, Cursor, any AI tool** |
|
|
131
|
+
|
|
132
|
+
**Same pattern. Same universality. Same necessity.**
|
|
133
|
+
|
|
134
|
+
**VISIBLE. DISCOVERABLE. UNIVERSAL.**
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# The old way (hidden like .env)
|
|
138
|
+
ls -la
|
|
139
|
+
.env # π Hidden (secrets - SHOULD be hidden)
|
|
140
|
+
.faf # π» Hidden (AI context - SHOULD be visible!)
|
|
141
|
+
|
|
142
|
+
# The NEW WAY (visible like package.json)
|
|
143
|
+
ls
|
|
144
|
+
package.json # β
Visible (dependencies - everyone needs to see)
|
|
145
|
+
project.faf # β
Visible (AI context - AI needs to find this!)
|
|
146
|
+
.env # π Still hidden (secrets stay secret)
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**`.env` hides secrets. `project.faf` shares context.**
|
|
150
|
+
|
|
151
|
+
**`.faf` was hiding in the wrong category. `project.faf` fixes that.**
|
|
152
|
+
|
|
153
|
+
### π Why This Changes Everything
|
|
154
|
+
|
|
155
|
+
**Before:**
|
|
156
|
+
- Hidden `.faf` files easily forgotten
|
|
157
|
+
- Hard to discover in new projects
|
|
158
|
+
- "Wait, does this project have AI context?"
|
|
159
|
+
- Invisible to Git UIs, IDEs, file managers
|
|
160
|
+
|
|
161
|
+
**After:**
|
|
162
|
+
- `project.faf` sits next to `package.json`
|
|
163
|
+
- **IMPOSSIBLE TO MISS**
|
|
164
|
+
- Universal pattern developers already know
|
|
165
|
+
- Every project SHOWS its AI-readiness
|
|
166
|
+
|
|
167
|
+
### πΊ The Golden Triangle
|
|
168
|
+
|
|
169
|
+
**Three sides. Closed loop. Complete accountability.**
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
project.faf
|
|
173
|
+
(WHAT IT IS)
|
|
174
|
+
/ \
|
|
175
|
+
/ \
|
|
176
|
+
/ \
|
|
177
|
+
repo ββ .taf
|
|
178
|
+
(CODE) (PROOF IT WORKS)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Every project needs three things:
|
|
182
|
+
- **Code that works** (repo)
|
|
183
|
+
- **Context for AI** (project.faf)
|
|
184
|
+
- **Proof it works** (.taf - git-tracked testing timeline)
|
|
185
|
+
|
|
186
|
+
**TAF** (Testing Audit File) format tracks every test run in git. On-the-fly CI/CD updates. Permanent audit trail. Unheard of in CI/CD.
|
|
187
|
+
|
|
188
|
+
**Traditional CI/CD:** Tests run β Results disappear β No permanent record
|
|
189
|
+
**TAF:** Tests run β .taf updates β Git commits β Permanent timeline
|
|
190
|
+
|
|
191
|
+
Format defined in **faf-taf-git** (GitHub Actions native support).
|
|
192
|
+
|
|
193
|
+
### β¨ The Essential Trio
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
your-project/
|
|
197
|
+
βββ package.json # What your project NEEDS (dependencies)
|
|
198
|
+
βββ project.faf # What your project IS (context for AI)
|
|
199
|
+
βββ tsconfig.json # How your project BUILDS (TypeScript config)
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**`package.json`** β Tells npm: "Install these dependencies"
|
|
203
|
+
**`project.faf`** β Tells AI: "This is what I am, this is my purpose"
|
|
204
|
+
**`tsconfig.json`** β Tells TypeScript: "Compile with these settings"
|
|
205
|
+
|
|
206
|
+
**All visible. All universal. All essential.**
|
|
207
|
+
|
|
208
|
+
**You wouldn't skip `package.json`. Don't skip `project.faf`.**
|
|
209
|
+
|
|
210
|
+
### π₯ New Commands
|
|
211
|
+
|
|
212
|
+
**1. `faf migrate` - Instant Upgrade**
|
|
213
|
+
```bash
|
|
214
|
+
faf migrate
|
|
215
|
+
# .faf β project.faf (27ms)
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**2. `faf rename` - Bulk Power**
|
|
219
|
+
```bash
|
|
220
|
+
faf rename
|
|
221
|
+
# Recursively migrates ENTIRE monorepo tree
|
|
222
|
+
# Found 147 .faf files? β
Migrated in 420ms
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**3. Auto-Magic for New Projects**
|
|
226
|
+
```bash
|
|
227
|
+
faf init # Creates project.faf (not .faf)
|
|
228
|
+
faf auto # Creates project.faf
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### π― Championship Detection Upgrade
|
|
232
|
+
|
|
233
|
+
**TSA Engine Integration** - "We're INSPECTORS, not trash collectors"
|
|
234
|
+
|
|
235
|
+
**Before (naive):**
|
|
236
|
+
```
|
|
237
|
+
Has 'commander' in package.json? β Maybe CLI
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
**After (championship):**
|
|
241
|
+
```
|
|
242
|
+
'commander' imported 10+ times? β DEFINITELY CLI
|
|
243
|
+
Analyzes CORE dependencies (actual usage)
|
|
244
|
+
95% accuracy vs 70% accuracy
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### β‘ Performance
|
|
248
|
+
|
|
249
|
+
- **migrate:** 27ms (54% faster than 50ms target)
|
|
250
|
+
- **rename:** 27ms for 3 files (73% faster than target)
|
|
251
|
+
- **championship grade** across all operations
|
|
252
|
+
|
|
253
|
+
### π WJTTC GOLD Certification
|
|
254
|
+
|
|
255
|
+
**97/100 Championship Score**
|
|
256
|
+
- Project Understanding: 20/20
|
|
257
|
+
- TURBO-CAT Knowledge: 20/20
|
|
258
|
+
- Architecture Understanding: 20/20
|
|
259
|
+
|
|
260
|
+
Full report: 194KB comprehensive test suite
|
|
261
|
+
|
|
262
|
+
### π 100% Backward Compatible
|
|
263
|
+
|
|
264
|
+
**Still works with `.faf` files** - graceful transition, no breaking changes.
|
|
265
|
+
|
|
266
|
+
Your old `.faf` files keep working. Migrate when ready.
|
|
267
|
+
|
|
268
|
+
### π The Vision
|
|
269
|
+
|
|
270
|
+
**Every project with a `package.json` should have a `project.faf`**
|
|
271
|
+
|
|
272
|
+
Just like every TypeScript project has `tsconfig.json`, every Rust project has `Cargo.toml`, every Python project has `requirements.txt`...
|
|
273
|
+
|
|
274
|
+
**Every AI-augmented project has `project.faf`**
|
|
275
|
+
|
|
276
|
+
**This is the new universal standard for AI context.**
|
|
72
277
|
|
|
73
278
|
---
|
|
74
279
|
|
|
75
280
|
## π What's New in v3.0.0
|
|
76
281
|
|
|
77
|
-
### The
|
|
282
|
+
### The Podium Release
|
|
78
283
|
|
|
79
284
|
**The biggest release yet:**
|
|
80
285
|
|
|
@@ -82,10 +287,10 @@ brew install faf-cli
|
|
|
82
287
|
- π¨ **TURBO Model Introduced** - Like VS Code + Copilot, Spotify Free + Premium, Zoom Basic + Pro
|
|
83
288
|
- π½ **TURBO-CATβ’ Format Discovery** - Introduced in v2.0.0, now purring at full power in v3.0.0 - 153 validated formats organized in a perfect pyramid
|
|
84
289
|
- 𧬠**Birth DNA Lifecycle** - Track your project's evolution from birth to championship
|
|
85
|
-
- π **7-Tier
|
|
290
|
+
- π **7-Tier Podium Scoring** - π π₯ π₯ π₯ π’ π‘ π΄ π€ - From Lonely Heart to Podium Champion
|
|
86
291
|
- βοΈ **AI | HUMAN Balance** - 50|50 system = Optimal Context for championship performance
|
|
87
292
|
- π **Context-Mirroring w/Bi-Sync** - Bidirectional .faf β CLAUDE.md synchronization
|
|
88
|
-
- β‘ **
|
|
293
|
+
- β‘ **Podium Speed** - 8ms bi-sync, <50ms all commands, 18ms avg, 0ms operations achieved
|
|
89
294
|
- π **WJTTC GOLD Certified** - 1,000+ comprehensive tests, unique test suite
|
|
90
295
|
- π€ **BIG-3 AI Validation** - Verified by Google Gemini, Anthropic Claude, OpenAI Codex
|
|
91
296
|
- π **Universal AI Support** - Claude Code, OpenAI Codex CLI, Gemini CLI, Cursor, Warp, Copilot, Windsurf, ALL AI coding assistants
|
|
@@ -187,7 +392,7 @@ faf formats
|
|
|
187
392
|
|
|
188
393
|
### **FAF v3.0.3 (FREE FOR ALL DEVS)** π
|
|
189
394
|
|
|
190
|
-
β
**41
|
|
395
|
+
β
**41 Podium Commands**
|
|
191
396
|
- Project initialization & auto-detection
|
|
192
397
|
- TURBO-CAT format discovery (153 formats)
|
|
193
398
|
- Birth DNA lifecycle tracking
|
|
@@ -256,19 +461,37 @@ Learn more: faf.one/turbo
|
|
|
256
461
|
|
|
257
462
|
---
|
|
258
463
|
|
|
259
|
-
## π Quick Start
|
|
464
|
+
## π Quick Start - Create IANA-Registered Files
|
|
465
|
+
|
|
466
|
+
### Installation
|
|
260
467
|
|
|
261
468
|
```bash
|
|
262
|
-
#
|
|
469
|
+
# npm (creates official .faf files)
|
|
263
470
|
npm install -g faf-cli
|
|
264
471
|
|
|
265
|
-
#
|
|
472
|
+
# Homebrew (macOS/Linux)
|
|
266
473
|
brew install faf-cli
|
|
474
|
+
```
|
|
267
475
|
|
|
268
|
-
|
|
269
|
-
|
|
476
|
+
### Generate Your First .faf File
|
|
477
|
+
|
|
478
|
+
```bash
|
|
479
|
+
# Initialize with IANA-registered format
|
|
270
480
|
faf init
|
|
271
481
|
|
|
482
|
+
# Output: project.faf with official media type
|
|
483
|
+
# Content-Type: application/vnd.faf+yaml
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
**What just happened:**
|
|
487
|
+
- β
Created `.faf` file (IANA-registered format)
|
|
488
|
+
- β
Generated project DNA (architecture, dependencies, quality score)
|
|
489
|
+
- β
Ready for any AI (Claude, Cursor, Gemini, etc.)
|
|
490
|
+
- β
Official Internet standard format
|
|
491
|
+
|
|
492
|
+
### More Commands
|
|
493
|
+
|
|
494
|
+
```bash
|
|
272
495
|
# Auto-detect and enhance
|
|
273
496
|
faf auto
|
|
274
497
|
|
|
@@ -327,6 +550,29 @@ We created this tool together across thousands of conversations. Yet without pro
|
|
|
327
550
|
|
|
328
551
|
Universal, shareable AI context that works with **Claude Code, OpenAI Codex CLI, Gemini CLI, Cursor** - regardless of your stack, size, or setup.
|
|
329
552
|
|
|
553
|
+
## Why IANA Registration Matters
|
|
554
|
+
|
|
555
|
+
On **October 31, 2025**, the Internet Assigned Numbers Authority (IANA) officially registered `.faf` as `application/vnd.faf+yaml`.
|
|
556
|
+
|
|
557
|
+
This means `.faf` is now:
|
|
558
|
+
|
|
559
|
+
β
**Recognized at Internet scale** - Same legitimacy as PDF, JSON, XML
|
|
560
|
+
β
**Properly handled by browsers** - Correct MIME type detection
|
|
561
|
+
β
**Supported in HTTP headers** - `Content-Type: application/vnd.faf+yaml`
|
|
562
|
+
β
**Email client compatible** - Attachments handled correctly
|
|
563
|
+
β
**API standardized** - Universal format for AI context exchange
|
|
564
|
+
|
|
565
|
+
**faf-cli creates these official IANA-registered files.**
|
|
566
|
+
|
|
567
|
+
### The Journey to IANA
|
|
568
|
+
|
|
569
|
+
- **Aug 8, 2024** - Format specification created
|
|
570
|
+
- **Sep 2025** - Google Chrome approvals (2x)
|
|
571
|
+
- **Oct 17, 2025** - Anthropic MCP Registry merger
|
|
572
|
+
- **Oct 31, 2025** - **IANA Registration** π
|
|
573
|
+
|
|
574
|
+
From concept to Internet standard in 15 months.
|
|
575
|
+
|
|
330
576
|
### Why Context Quality Matters
|
|
331
577
|
|
|
332
578
|
**At 99% context quality**, AI knows exactly what you're building and helps at optimal levelsβtrusted decisions, accurate suggestions, championship performance.
|
|
@@ -356,7 +602,7 @@ You're gonna end up with a **CAVITY**.
|
|
|
356
602
|
|
|
357
603
|
### The Solution: Project DNA
|
|
358
604
|
|
|
359
|
-
- β
**
|
|
605
|
+
- β
**Podium context** (85-99% quality scores)
|
|
360
606
|
- β
**Persistent intelligence** - AI remembers your project perfectly
|
|
361
607
|
- β
**Seamless collaboration** - Human + AI working together optimally
|
|
362
608
|
- β
**Project health monitoring** - Track context quality over time
|
|
@@ -369,7 +615,7 @@ You're gonna end up with a **CAVITY**.
|
|
|
369
615
|
|
|
370
616
|
### ποΈ Power Commands
|
|
371
617
|
```bash
|
|
372
|
-
faf auto # ONE COMMAND TO RULE THEM ALL - Zero to
|
|
618
|
+
faf auto # ONE COMMAND TO RULE THEM ALL - Zero to Podium
|
|
373
619
|
faf init # Create .faf from your project
|
|
374
620
|
faf enhance # Real AI analysis & improvements
|
|
375
621
|
faf analyze # Claude-first intelligence
|
|
@@ -485,12 +731,12 @@ faf # Interactive menu (use faf auto instead)
|
|
|
485
731
|
|
|
486
732
|
---
|
|
487
733
|
|
|
488
|
-
## π
|
|
734
|
+
## π Podium Scoring
|
|
489
735
|
|
|
490
736
|
Track your project's AI-readiness with F1-inspired tiers:
|
|
491
737
|
|
|
492
738
|
```
|
|
493
|
-
π Trophy (100%) -
|
|
739
|
+
π Trophy (100%) - Podium - Perfect 50|50 AI|HUMAN balance
|
|
494
740
|
π₯ Gold (99%) - Gold standard
|
|
495
741
|
π₯ Silver (95-98%) - Excellence
|
|
496
742
|
π₯ Bronze (85-94%) - Production ready
|
|
@@ -513,7 +759,7 @@ Status: Bronze - Production Ready
|
|
|
513
759
|
|
|
514
760
|
Next milestone: 95% π₯ Silver (6 points to go!)
|
|
515
761
|
|
|
516
|
-
ποΈ FAF
|
|
762
|
+
ποΈ FAF Podium Status
|
|
517
763
|
ββββββββββββββββββββββββββββββββββββββ
|
|
518
764
|
Initial DNA: 12% (born 2025-10-03)
|
|
519
765
|
Growth: +77% over 4 days
|
|
@@ -522,7 +768,7 @@ Next Milestone: 95% π₯ Silver (6% to go!)
|
|
|
522
768
|
|
|
523
769
|
---
|
|
524
770
|
|
|
525
|
-
## βοΈ AI | HUMAN Balance - The 50|50
|
|
771
|
+
## βοΈ AI | HUMAN Balance - The 50|50 Podium System
|
|
526
772
|
|
|
527
773
|
**NEW in v3.0.0:** Track the perfect balance between AI-readable and human-readable content.
|
|
528
774
|
|
|
@@ -613,7 +859,7 @@ Automation: n8n workflows, OpenAI Builder, Google Opal, Make.com - AI-Automat
|
|
|
613
859
|
| **Cost** | Per-query fees | Zero runtime cost |
|
|
614
860
|
| **Versioning** | Difficult | Git-friendly YAML |
|
|
615
861
|
|
|
616
|
-
**.faf is RAG's outputβcaptured once, reused infinitely.**
|
|
862
|
+
**.faf is RAG's outputβcaptured once, reused infinitely.** Podium efficiency.
|
|
617
863
|
|
|
618
864
|
### Universal Pattern
|
|
619
865
|
|
|
@@ -631,7 +877,7 @@ Same pattern. Same output. Universal by design.
|
|
|
631
877
|
|
|
632
878
|
---
|
|
633
879
|
|
|
634
|
-
## π WJTTC
|
|
880
|
+
## π WJTTC Podium Testing
|
|
635
881
|
|
|
636
882
|
**FAF CLI v3.0.3 is WJTTC GOLD Certified** - tested to F1-grade standards.
|
|
637
883
|
|
|
@@ -642,7 +888,7 @@ Same pattern. Same output. Universal by design.
|
|
|
642
888
|
|
|
643
889
|
**Battle-tested with 12,500+ test iterations across 5 testing tiers:**
|
|
644
890
|
- β
**BIG-3 AI Validation** (11,200 iterations - Claude, ChatGPT/Codex, Gemini)
|
|
645
|
-
- β
**287 Automated Tests** (191 Jest unit + 66
|
|
891
|
+
- β
**287 Automated Tests** (191 Jest unit + 66 Podium Safety + 30 YOLO torture)
|
|
646
892
|
- β
**730 Empirical C.O.R.E Tests** (100% MCP protocol compliance)
|
|
647
893
|
- β
**301 Context-On-Demand Tests** (Torture testing, edge cases, stress scenarios)
|
|
648
894
|
- β
**35+ Test Documents** (Comprehensive validation reports)
|
|
@@ -810,9 +1056,13 @@ Copy cats? Why bother.
|
|
|
810
1056
|
|
|
811
1057
|
<div align="center">
|
|
812
1058
|
|
|
813
|
-
## π
|
|
1059
|
+
## π Powered by Anthropic-Approved MCP Claude Desktop code
|
|
1060
|
+
|
|
1061
|
+
Developed for you, with love, for free.
|
|
1062
|
+
|
|
1063
|
+
The new **project.faf** file provides persistent project context session after session. It optimizes AI, which in-turn reduces errors, and improves code, safely, securely and swiftly.
|
|
814
1064
|
|
|
815
|
-
|
|
1065
|
+
We hope you reap the benefits of using the **project.faf** format and write some beautiful apps!
|
|
816
1066
|
|
|
817
1067
|
Made with π§‘ by **[wolfejam](https://github.com/Wolfe-Jam)**
|
|
818
1068
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/big-orange/compare.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAiB,MAAM,SAAS,CAAC;AAOnF;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/big-orange/compare.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAiB,MAAM,SAAS,CAAC;AAOnF;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAuC5B"}
|
|
@@ -30,14 +30,12 @@ async function compareContexts(request) {
|
|
|
30
30
|
console.log(`Generated .faf instances:`);
|
|
31
31
|
console.log(` Left: ${request.leftScore}% (${leftFaf.content.length} chars)`);
|
|
32
32
|
console.log(` Right: ${request.rightScore}% (${rightFaf.content.length} chars)\n`);
|
|
33
|
-
// 2. Call Claude API
|
|
34
|
-
const anthropic = new sdk_1.default({
|
|
35
|
-
apiKey: process.env.ANTHROPIC_API_KEY
|
|
36
|
-
});
|
|
33
|
+
// 2. Call Claude API with both contexts
|
|
37
34
|
console.log('Calling Claude API...');
|
|
35
|
+
const client = new sdk_1.default({ apiKey: process.env.ANTHROPIC_API_KEY });
|
|
38
36
|
const [leftResponse, rightResponse] = await Promise.all([
|
|
39
|
-
callClaudeWithContext(
|
|
40
|
-
callClaudeWithContext(
|
|
37
|
+
callClaudeWithContext(client, request.prompt, leftFaf.content, request.leftScore),
|
|
38
|
+
callClaudeWithContext(client, request.prompt, rightFaf.content, request.rightScore)
|
|
41
39
|
]);
|
|
42
40
|
console.log('β Both responses received\n');
|
|
43
41
|
// 3. Calculate delta metrics
|
|
@@ -129,20 +127,20 @@ async function scoreFafContent(fafContent, expectedScore) {
|
|
|
129
127
|
* Uses FAF CLI's standard scoring tiers
|
|
130
128
|
*/
|
|
131
129
|
function getChampionshipEmoji(score) {
|
|
132
|
-
if (score >=
|
|
130
|
+
if (score >= 100)
|
|
133
131
|
return 'π'; // Trophy (championship)
|
|
132
|
+
if (score >= 99)
|
|
133
|
+
return 'π₯'; // Gold
|
|
134
|
+
if (score >= 95)
|
|
135
|
+
return 'π₯'; // Silver (Target 2)
|
|
136
|
+
if (score >= 85)
|
|
137
|
+
return 'π₯'; // Bronze (Target 1)
|
|
134
138
|
if (score >= 70)
|
|
135
|
-
return '
|
|
139
|
+
return 'π’'; // Green (GO!)
|
|
136
140
|
if (score >= 55)
|
|
137
|
-
return '
|
|
138
|
-
if (score >= 40)
|
|
139
|
-
return 'π₯'; // Bronze medal
|
|
140
|
-
if (score >= 35)
|
|
141
|
-
return 'π’'; // Green (good)
|
|
142
|
-
if (score >= 20)
|
|
143
|
-
return 'π‘'; // Yellow (warning)
|
|
141
|
+
return 'π‘'; // Yellow (Caution)
|
|
144
142
|
if (score >= 10)
|
|
145
|
-
return 'π΄'; // Red (
|
|
143
|
+
return 'π΄'; // Red (Pit Stop)
|
|
146
144
|
return 'π€'; // White (empty)
|
|
147
145
|
}
|
|
148
146
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/big-orange/compare.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAeH,
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/big-orange/compare.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AA89C/C,OAAO,EAAE,OAAO,EAAE,CAAC"}
|