rust-faf-mcp 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +32 -19
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -6,9 +6,9 @@
6
6
 
7
7
  **Persistent Project Context for Rust MCP clients. Native. Fast. cargo install**
8
8
 
9
- **The Table-of-8 Edition (v0.7.0)** — `one.faf/rust-faf-mcp` · **rmcp 3.0.1** (MCP Tier 1 foundation) · **faf-rust-sdk 3.1** (the same always-33 kernel `faf-wasm-sdk` uses) · solid cargo-native Rust MCP for Rust devs
9
+ **The Lineage Edition (v0.8.0)** — `one.faf/rust-faf-mcp` · **rmcp 3.0.1** (MCP Tier 1 foundation) · **faf-rust-sdk 3.1** (the same always-33 kernel `faf-wasm-sdk` uses) · solid cargo-native Rust MCP for Rust devs
10
10
 
11
- **v0.7.0** — Setup and Sweep confirm AI's side of the bargain. The Table-of-8 is human approved. See [CHANGELOG](./CHANGELOG.md#070---2026-09-01--the-table-of-8-edition).
11
+ **v0.8.0** — `.faf-dna` lineage, the same file as faf-cli and fafb: `faf_init` births it, `faf_auto` grows it, `faf_dna` shows the journey. fafb scores all 33 slots for monorepos and teams. See [CHANGELOG](./CHANGELOG.md#080---2026-09-13--the-lineage-edition).
12
12
 
13
13
  **FAF defines. MD instructs. AI codes.**
14
14
 
@@ -25,19 +25,18 @@ Rust-native [MCP](https://modelcontextprotocol.io) (Model Context Protocol) serv
25
25
  ## Quickstart
26
26
 
27
27
  ```bash
28
- # Rust toolchain:
29
- cargo install rust-faf-mcp
28
+ # Rust toolchain (install):
29
+ cargo install rust-faf-mcp --version 0.8.0
30
30
 
31
- # No Rust (downloads GH Release binary for darwin/linux x64):
32
- npx rust-faf-mcp
31
+ # No Rust (try — downloads GH Release binary for darwin/linux):
32
+ npx --yes rust-faf-mcp@0.8.0
33
33
  ```
34
34
 
35
-
36
- Then point any MCP client at it:
35
+ Point an MCP client at the **pin**. A bare `rust-faf-mcp` on PATH may be an old Homebrew binary.
37
36
 
38
37
  ```bash
39
38
  # Claude Code
40
- claude mcp add faf rust-faf-mcp
39
+ claude mcp add faf -- npx --yes rust-faf-mcp@0.8.0
41
40
  ```
42
41
 
43
42
  ```jsonc
@@ -45,18 +44,24 @@ claude mcp add faf rust-faf-mcp
45
44
  {
46
45
  "mcpServers": {
47
46
  "faf": {
48
- "command": "rust-faf-mcp"
47
+ "command": "npx",
48
+ "args": ["--yes", "rust-faf-mcp@0.8.0"]
49
49
  }
50
50
  }
51
51
  }
52
52
  ```
53
53
 
54
+ After `cargo install rust-faf-mcp --version 0.8.0`, `"command": "rust-faf-mcp"` is the install. Until you have proven that binary, use the npx pin.
55
+
54
56
  No flags, no config files, no network listener. Pure stdio JSON-RPC.
55
57
 
56
- Or via Homebrew (macOS, pre-built):
58
+ Or via Homebrew (macOS, pre-built). If you already have it, upgrade — an old keg can sit on PATH as `rust-faf-mcp`:
57
59
 
58
60
  ```bash
61
+ brew update
59
62
  brew install Wolfe-Jam/faf/rust-faf-mcp
63
+ # already installed:
64
+ brew upgrade Wolfe-Jam/faf/rust-faf-mcp
60
65
  ```
61
66
 
62
67
  ## One command, done forever
@@ -103,7 +108,7 @@ instant_context:
103
108
  test: cargo test
104
109
  stack:
105
110
  backend: Rust
106
- build_tool: cargo
111
+ build: cargo
107
112
  ```
108
113
 
109
114
  Every AI agent reads this once and knows exactly what you're building. No 20-minute onboarding. No wrong assumptions.
@@ -117,7 +122,7 @@ Every AI agent reads this once and knows exactly what you're building. No 20-min
117
122
  | `faf_auto` | Setup if missing, sync `CLAUDE.md`, score — Confirm setup (sweeps); does not invent 6Ws |
118
123
  | `faf_init` | Setup: first write from the tree. Refuses if the file exists. Confirm setup (sweeps). 6Ws stay empty |
119
124
  | `faf_go` | Table-of-8 + Confirm setup (sweeps). 6Ws score after ☑. Below 100: add Human Context. After 100: courtesy check every 30 days (90 max) |
120
- | `faf_git` | Generate `project.faf` from any GitHub repo URL — no clone needed |
125
+ | `faf_git` | Author `project.faf` from any GitHub repo URL — no clone needed |
121
126
  | `faf_discover` | Walk up the directory tree to find the nearest `project.faf` |
122
127
 
123
128
  ### Score & Validate
@@ -126,7 +131,7 @@ Every AI agent reads this once and knows exactly what you're building. No 20-min
126
131
  |------|-------------|
127
132
  | `faf_score` | Score AI-readiness 0-100% with field-level breakdown |
128
133
  | `faf_sync` | Sync `project.faf` → `CLAUDE.md` (preserves existing content) |
129
- | `faf_agents` | Generate `AGENTS.md` from `project.faf` (non-destructive, preserves hand-written content) |
134
+ | `faf_agents` | Author `AGENTS.md` from `project.faf` (non-destructive, preserves hand-written content) |
130
135
 
131
136
  ### Optimize
132
137
 
@@ -136,6 +141,12 @@ Every AI agent reads this once and knows exactly what you're building. No 20-min
136
141
  | `faf_compress` | Compress `.faf` for token-limited contexts (`minimal` / `standard` / `full`) |
137
142
  | `faf_tokens` | Estimate token count at each compression level |
138
143
 
144
+ ### Lineage
145
+
146
+ | Tool | What it does |
147
+ |------|-------------|
148
+ | `faf_dna` | Your FAF DNA journey from `.faf-dna`: Birth DNA to now, with history. `faf_init` births it, `faf_auto` records growth — the same file as faf-cli |
149
+
139
150
  `faf_init` will not overwrite an existing file. Setup occupies mechanical facts; Confirm setup (sweeps) is the walk. Empty human slots stay empty until `faf_go`.
140
151
 
141
152
  ## Architecture
@@ -150,16 +161,16 @@ src/
150
161
  - **Runtime**: `tokio` single-threaded (`current_thread`)
151
162
  - **HTTP**: `reqwest` async (only used by `faf_git` for GitHub API)
152
163
  - **SDK**: `faf-rust-sdk` **3.1** (Cargo pin — the facade over `faf-kernel`/`faf-fafb` in [faf-rust](https://github.com/Wolfe-Jam/faf-rust); `score()` for the real Mk4 number, `validate()` for structural checks only)
153
- - **Server**: **`rmcp` 3.0.1** with `#[tool_router]` / `#[tool_handler]` — JSON-RPC, schema generation, stdio transport (Tier-1 assessed SDK cut)
164
+ - **Server**: **`rmcp` 3.0.1** with `#[tool_router]` / `#[tool_handler]` — JSON-RPC, JSON Schema from the param types, stdio transport (Tier-1 assessed SDK cut)
154
165
 
155
166
  Tools return `serde_json::Value`. The server adapts them to `Result<String, String>` for rmcp's `IntoCallToolResult`.
156
167
 
157
168
  ## Testing
158
169
 
159
- 171 tests (136 integration + 35 unit):
170
+ 190 tests (143 integration + 47 unit):
160
171
 
161
172
  ```bash
162
- cargo test # runs all 171
173
+ cargo test # runs all 190
163
174
 
164
175
  # Full ship bar (same gates as GitHub CI — run before push)
165
176
  bash scripts/ci.sh
@@ -176,7 +187,8 @@ bash scripts/install-hooks.sh
176
187
  | `tier3_edge_cases.rs` | 10 | Unicode, CJK, score boundaries, unknown fields, GitHub URL parsing |
177
188
  | `tier4_aero.rs` | 22 | Manifest structure, version sync, server.json, context block, manifest-server cross-validation |
178
189
  | `wjttc_setup.rs` | 16 | Setup / Confirm setup (sweeps) — BRAKE · ENGINE · AERO · TYRE · PIT |
179
- | `src` unit | 35 | setup sweep, skills digest, `agents::`, `inject::`, intent, app-type |
190
+ | `wjttc_faf_dna.rs` | 7 | `.faf-dna` lineage `faf_init` birth, `faf_auto` growth, `faf_dna`, faf-cli's lines |
191
+ | `src` unit | 47 | setup sweep, skills digest, `agents::`, `inject::`, intent, app-type, `dna::` lineage + faf-cli fixtures |
180
192
 
181
193
  Tests spawn the compiled binary as a subprocess and communicate via stdin/stdout JSON-RPC — true integration tests against the real server.
182
194
 
@@ -208,7 +220,8 @@ If `rust-faf-mcp` has been useful, consider starring the repo — it helps other
208
220
  ## Links
209
221
 
210
222
  - [crates.io/crates/rust-faf-mcp](https://crates.io/crates/rust-faf-mcp)
211
- - [npmjs.com/package/rust-faf-mcp](https://www.npmjs.com/package/rust-faf-mcp) — `npx rust-faf-mcp` (no Rust toolchain; downloads GH Release binary)
223
+ - [npmjs.com/package/rust-faf-mcp](https://www.npmjs.com/package/rust-faf-mcp) — `npx --yes rust-faf-mcp@0.8.0` (no Rust toolchain; downloads GH Release binary)
224
+
212
225
  - [Dual-package publish guide](https://github.com/Wolfe-Jam/mcp-better/blob/main/docs/DUAL-PACKAGE-RUST-MCP.md) — cargo + npm (this server is the product example)
213
226
  - [docs/DUAL-PACKAGE.md](./docs/DUAL-PACKAGE.md) — pointer + OIDC docs for this repo
214
227
  - [docs/SKILLS-OVER-MCP.md](./docs/SKILLS-OVER-MCP.md) — J1 Agent Skill `faf-context` (skills/list · digests)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rust-faf-mcp",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "mcpName": "one.faf/rust-faf-mcp",
5
5
  "description": "Persistent project context — Rust-native MCP server. IANA-registered .faf format. npm shim downloads the native binary from GitHub Releases.",
6
6
  "license": "MIT",