faf-cli 6.3.0 → 6.4.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 +35 -92
- package/dist/cli.js +223 -306
- package/dist/index.js +2 -2
- package/package.json +19 -22
- package/skills/faf/faf-champion/SKILL.md +0 -78
- package/skills/faf/faf-quickstart/SKILL.md +0 -70
- package/skills/faf/faf-sync-master/SKILL.md +0 -85
- package/skills/faf/skills.json +0 -46
- package/skills/faf-expert/SKILL.md +0 -384
package/README.md
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
<div style="display: flex; align-items: center; gap: 12px;">
|
|
2
2
|
<img src="https://www.faf.one/orange-smiley.svg" alt="FAF" width="40" />
|
|
3
3
|
<div>
|
|
4
|
-
<h1 style="margin: 0; color: #000000;">faf-cli</h1>
|
|
5
|
-
<p style="margin:
|
|
4
|
+
<h1 style="margin: 0; color: #000000;">faf-cli v6.4</h1>
|
|
5
|
+
<p style="margin: 2px 0 0 0; font-size: 0.85em; letter-spacing: 0.12em; opacity: 0.7; text-transform: uppercase;"><strong>The Foundation Edition</strong></p>
|
|
6
|
+
<p style="margin: 6px 0 0 0;"><strong>Persistent Project Context for AI.</strong></p>
|
|
7
|
+
<p style="margin: 0;"><strong>Define once. Run anywhere.</strong></p>
|
|
6
8
|
</div>
|
|
7
9
|
</div>
|
|
8
10
|
|
|
11
|
+
**FAF defines. MD instructs. AI codes.**
|
|
12
|
+
|
|
9
13
|
[](https://github.com/Wolfe-Jam/faf-taf-git)
|
|
10
14
|
[](https://github.com/Wolfe-Jam/faf-cli/actions/workflows/ci.yml)
|
|
11
15
|
[](https://www.npmjs.com/package/faf-cli)
|
|
@@ -16,41 +20,31 @@
|
|
|
16
20
|
[](https://bun.sh)
|
|
17
21
|
[](https://github.com/Wolfe-Jam/faf)
|
|
18
22
|
|
|
19
|
-
**FAF defines. MD instructs. AI codes.**
|
|
20
|
-
|
|
21
|
-
> 🐘 **tri-sync now free for all builders** — `.faf` ↔ `CLAUDE.md` ↔ `MEMORY.md` in one command. Pro feature. Now free.
|
|
22
|
-
|
|
23
|
-
> **51,582+ downloads** | **Claude Code Skills** | **Homebrew AI Tools** | **Championship-grade developer productivity**
|
|
24
|
-
|
|
25
23
|
```
|
|
26
24
|
project/
|
|
27
25
|
├── package.json ← npm reads this
|
|
28
26
|
├── project.faf ← AI reads this
|
|
27
|
+
├── README.md ← humans read this
|
|
29
28
|
└── src/
|
|
30
29
|
```
|
|
31
30
|
|
|
32
|
-
> **Every building requires a foundation.
|
|
31
|
+
> **Every building requires a foundation. FAF is AI's foundational layer.**
|
|
33
32
|
>
|
|
34
|
-
> You have a `package.json`.
|
|
33
|
+
> You have a `package.json`. AI needs you to add a `project.faf`. Done.
|
|
35
34
|
|
|
36
35
|
**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
36
|
|
|
38
|
-
10 lines of structured YAML gives AI more context than 550 lines of prose. [Read why →](https://faf.one/blog/sunset-edition)
|
|
39
|
-
|
|
40
37
|
---
|
|
41
38
|
|
|
42
39
|
## Install
|
|
43
40
|
|
|
44
41
|
```bash
|
|
45
|
-
bunx faf
|
|
46
|
-
npx faf
|
|
47
|
-
brew install faf-cli && faf
|
|
42
|
+
bunx faf # Bun — zero install, fastest path
|
|
43
|
+
npx faf # npm — works everywhere
|
|
44
|
+
brew install faf-cli && faf # Homebrew
|
|
48
45
|
```
|
|
49
46
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
**Before:** `bunx faf-cli auto` — 18 characters, you had to know the command.
|
|
53
|
-
**Now:** `bunx faf` — 8 characters, does everything automatically.
|
|
47
|
+
> `faf` is shorthand for `faf-cli auto` — same behavior, fewer keystrokes.
|
|
54
48
|
|
|
55
49
|
---
|
|
56
50
|
|
|
@@ -74,15 +68,15 @@ v6 is a ground-up rewrite. All-in on Bun — same toolchain as Claude Code.
|
|
|
74
68
|
| **Language** | TypeScript | TypeScript |
|
|
75
69
|
| **Compile** | Bun bytecode | `bun build --compile` |
|
|
76
70
|
|
|
77
|
-
|
|
71
|
+
408 tests in ~13s. 296KB bundle in 2.4s. Single portable binary, 4 platforms. npx backward-compatible.
|
|
78
72
|
|
|
79
|
-
26 commands.
|
|
73
|
+
26 commands. 408 tests. WJTTC-tested. 93% smaller than v5.
|
|
80
74
|
|
|
81
75
|
```
|
|
82
76
|
commands → interop → core → wasm
|
|
83
77
|
```
|
|
84
78
|
|
|
85
|
-
The WASM scoring kernel (`faf-scoring-kernel`) does the math. Bun does the delivery.
|
|
79
|
+
The WASM scoring kernel (`faf-scoring-kernel` 2.0.0) does the math. Bun does the delivery.
|
|
86
80
|
|
|
87
81
|
---
|
|
88
82
|
|
|
@@ -91,9 +85,9 @@ The WASM scoring kernel (`faf-scoring-kernel`) does the math. Bun does the deliv
|
|
|
91
85
|
| # | Command | One-liner |
|
|
92
86
|
|---|---------|-----------|
|
|
93
87
|
| 1 | `faf init` | Create `.faf` from your local project |
|
|
94
|
-
| 2 | `faf git <url>` | Instant `.faf` from any GitHub repo —
|
|
88
|
+
| 2 | `faf git <url>` | Instant `.faf` from any GitHub repo — no clone |
|
|
95
89
|
| 3 | `faf auto` | Zero to 100% in one command |
|
|
96
|
-
| 4 | `faf go` |
|
|
90
|
+
| 4 | `faf go` | Guided interview to gold code |
|
|
97
91
|
| 5 | `faf score` | Check AI-readiness (0-100%) |
|
|
98
92
|
| 6 | `faf sync` | `.faf` ↔ CLAUDE.md (bi-sync, mtime auto-direction) |
|
|
99
93
|
| 7 | `faf compile` | `.faf` → `.fafb` binary — sealed, portable, deterministic |
|
|
@@ -130,7 +124,7 @@ bunx faf-cli git https://github.com/facebook/react
|
|
|
130
124
|
# Your own project
|
|
131
125
|
bunx faf-cli init # Create .faf
|
|
132
126
|
bunx faf-cli auto # Zero to 100% in one command
|
|
133
|
-
bunx faf-cli go #
|
|
127
|
+
bunx faf-cli go # Interactive interview to gold code
|
|
134
128
|
```
|
|
135
129
|
|
|
136
130
|
---
|
|
@@ -139,47 +133,14 @@ bunx faf-cli go # One sentence in. Review. Sign off.
|
|
|
139
133
|
|
|
140
134
|
| Tier | Score | Status |
|
|
141
135
|
|------|-------|--------|
|
|
142
|
-
| 🏆 Trophy | 100% | AI Optimized — Gold Code |
|
|
143
|
-
| ★ Gold | 99%+ | Near-perfect |
|
|
144
|
-
| ◆ Silver | 95%+ | Excellent |
|
|
145
|
-
| ◇ Bronze | 85%+ | Production ready |
|
|
146
|
-
| ● Green | 70%+ | Solid foundation |
|
|
147
|
-
| ● Yellow | 55%+ | AI flipping coins |
|
|
148
|
-
| ○ Red | <55% | AI working blind |
|
|
149
|
-
|
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## Project Types
|
|
154
|
-
|
|
155
|
-
faf-cli auto-detects your project type and activates the right slots:
|
|
156
|
-
|
|
157
|
-
| Type | Detection | Active Slots |
|
|
158
|
-
|------|-----------|-------------|
|
|
159
|
-
| **mcp** | `@modelcontextprotocol/sdk`, `fastmcp`, `mcp`, `rmcp` | project + backend + universal + human |
|
|
160
|
-
| **fullstack** | Next.js, Nuxt, frontend + backend | project + frontend + backend + universal + human |
|
|
161
|
-
| **svelte** | SvelteKit / Svelte | project + frontend + backend + universal + human |
|
|
162
|
-
| **backend** | FastAPI, Express, Django, Flask | project + backend + universal + human |
|
|
163
|
-
| **frontend** | React, Vue, Angular (no backend) | project + frontend + human |
|
|
164
|
-
| **cli** | `bin` field in package.json | project + human |
|
|
165
|
-
| **library** | No framework signals | project + human |
|
|
166
|
-
|
|
167
|
-
### MCP Server Detection
|
|
168
|
-
|
|
169
|
-
10 MCP frameworks supported. Your MCP server gets the right type, backend, and framework sub-type automatically:
|
|
170
|
-
|
|
171
|
-
```yaml
|
|
172
|
-
project:
|
|
173
|
-
type: mcp
|
|
174
|
-
framework: fastmcp # or: mcp-sdk-ts, mcp-sdk-py, rmcp
|
|
175
|
-
stack:
|
|
176
|
-
backend: FastMCP # auto-filled from MCP SDK
|
|
177
|
-
api_type: MCP (stdio/SSE) # auto-filled
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### Python & Rust Support
|
|
181
|
-
|
|
182
|
-
Project name and description read from `pyproject.toml` and `Cargo.toml` — not just `package.json`. Python deps (FastAPI, SQLAlchemy, Django) and Rust deps (rmcp, tokio) detected from manifests.
|
|
136
|
+
| 🏆 **Trophy** | 100% | AI Optimized — Gold Code |
|
|
137
|
+
| ★ **Gold** | 99%+ | Near-perfect |
|
|
138
|
+
| ◆ **Silver** | 95%+ | Excellent |
|
|
139
|
+
| ◇ **Bronze** | 85%+ | Production ready |
|
|
140
|
+
| ● **Green** | 70%+ | Solid foundation |
|
|
141
|
+
| ● **Yellow** | 55%+ | AI flipping coins |
|
|
142
|
+
| ○ **Red** | <55% | AI working blind |
|
|
143
|
+
| **♡** **White** | 0% | No context at all |
|
|
183
144
|
|
|
184
145
|
---
|
|
185
146
|
|
|
@@ -187,11 +148,9 @@ Project name and description read from `pyproject.toml` and `Cargo.toml` — not
|
|
|
187
148
|
|
|
188
149
|
```
|
|
189
150
|
bi-sync: .faf ←── 8ms ──→ CLAUDE.md (free forever)
|
|
190
|
-
tri-sync: .faf ←── 8ms ──→ CLAUDE.md ↔ MEMORY.md (
|
|
151
|
+
tri-sync: .faf ←── 8ms ──→ CLAUDE.md ↔ MEMORY.md (Pro)
|
|
191
152
|
```
|
|
192
153
|
|
|
193
|
-
Nelly never forgets — and now she's free for all builders 🐘 Teams & Enterprise: [faf.one/pro](https://faf.one/pro) (plans)
|
|
194
|
-
|
|
195
154
|
---
|
|
196
155
|
|
|
197
156
|
## Compiled Binaries
|
|
@@ -226,33 +185,17 @@ src/
|
|
|
226
185
|
|
|
227
186
|
## Testing
|
|
228
187
|
|
|
229
|
-
|
|
230
|
-
bun test # 409 tests, 45 files, ~20s
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
Full e2e lifecycle test runs every command in sequence: init → auto → score → edit → sync → export → compile → decompile → taf → recover → check. Test reports in `reports/`.
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## Environment Variables
|
|
238
|
-
|
|
239
|
-
| Variable | Effect |
|
|
240
|
-
|----------|--------|
|
|
241
|
-
| `FAF_NO_NOTIFY=1` | Disable desktop notifications (Trophy unlocks, long-running command completion). |
|
|
242
|
-
| `FAF_PRO=1` | Enable Pro features (reserved for Teams/Enterprise; tri-sync is free for all developers). |
|
|
243
|
-
| `ANTHROPIC_API_KEY` | Used by `faf go` to interpret the project opener via Claude. Falls back to keyword extraction if unset. |
|
|
244
|
-
|
|
245
|
-
### Click-to-dismiss notifications (macOS)
|
|
246
|
-
|
|
247
|
-
Notifications use OSC 9 by default — emitted on Ghostty / iTerm2 / Wezterm / Kitty, silently ignored elsewhere. macOS auto-dismisses these after a few seconds.
|
|
248
|
-
|
|
249
|
-
For sticky **click-to-dismiss** notifications:
|
|
188
|
+
> **Robust. Reliable. Next-level WJTTC tested.** — The Foundation Edition.
|
|
250
189
|
|
|
251
190
|
```bash
|
|
252
|
-
|
|
191
|
+
bun test # 408 tests, 42 files, ~13s
|
|
253
192
|
```
|
|
254
193
|
|
|
255
|
-
|
|
194
|
+
- **WJTTC Build Resilience** (13) — every regression class locked.
|
|
195
|
+
- **WJTTC Kernel Stress** (19) — WASM kernel boundary tests.
|
|
196
|
+
- **e2e lifecycle** — every command in sequence.
|
|
197
|
+
|
|
198
|
+
Test reports in `reports/`.
|
|
256
199
|
|
|
257
200
|
---
|
|
258
201
|
|