TL;DR: When faf-cli classifies your project, it tells you why. A single YAML comment next to type: reveals the evidence it used. Read the rationale, agree or disagree. No opaque hood — you can see the engine bay.
What you see
Run bunx faf on a fresh project. Open the generated project.faf:
project:
name: my-tool
type: cli # found: package.json bin
main_language: TypeScript That YAML comment is the receipt. The cli classified this as cli because package.json had a bin field. Nothing invented, nothing editorialised — just the observable evidence.
Other shapes get other receipts:
type: sdk # found: package.json keywords contains "sdk"
type: wasm # found: Cargo.toml has cdylib + wasm-bindgen
type: mcpaas # found: server.json + npm-package/server.json
type: mobile # found: app.json (Expo) + package.json react-native
type: monorepo-root # found: pnpm-workspace.yaml + 18 packages/Why this matters
Most AI tools tell you what they decided. Glass-Hood tells you why. The difference: you can argue with the second one.
If faf-cli says your project is a library but you know it's an sdk, the # found: line tells you exactly which signal misfired. Fix the signal — add an "sdk" keyword to package.json, rename the binary — and the next run reclassifies. Or override the type manually; the rationale becomes a footnote, not a black box.
FAF prints what it sees. No padding, no editorialising, no "I think this might be a..." prose. Either the signal is there or it isn't.
The doctrine, two surfaces
Glass-Hood is a doctrine, not a feature. It shows up in different places across the FAF family:
- faf-cli ships Glass-Hood as the
# found:rationale on type detection. - xai-faf-rust ships Glass-Hood as a weighted score-breakdown view: Completeness × 40%, Clarity × 35%, …
Same idea, different surface: don't hide your reasoning.
Try it
bunx faf Or install:
npm install -g faf-cli@6.5.1 Open the resulting project.faf. Find the # found: line. That's the receipt.
The numbers
- faf-cli v6.5.1 — npm + Homebrew, May 9, 2026
- 658 / 0 / 53 files — tests pass / fail / suites
- FAFB v1.0 byte-parity — cli output is byte-identical to
xai-faf-rustreference impl, gate-tested - 19 project types — each emits its own
# found:rationale
Patch Trail
v6.5.1· May 9, 2026 · Edition metadata correction.v6.5.0· May 8, 2026 · Initial Glass-Hood ship —# found:rationale on type detection.
