faf_version: "3.0" project: name: faf-cli version: "7.6.0" goal: "CLI for IANA-registered `.faf` + `.fafm` — context DNA and portable agent memory. TypeScript, Bun-native since v6. package faf-cli v7.6.0 The Ruby Edition." main_language: TypeScript type: cli # found: package.json bin # Commands + key_files feed `faf export --agents` (hand values win over detection). commands: install: bun install build: bun run build dev: bun run dev test: bun run test lint: bun run lint key_files: - src/cli.ts - src/index.ts - src/commands/ - src/commands/memory.ts - src/core/ - src/detect/ - src/fafm/ - src/interop/ - src/wasm/ - package.json - project.faf instant_context: what_building: CLI for IANA-registered .faf context + .fafm memory tech_stack: TypeScript · Bun-native since v6 key_files: - src/cli.ts - src/commands/ - src/fafm/ - src/core/ - src/interop/agents.ts stack: frontend: slotignored css_framework: slotignored ui_library: slotignored state_management: slotignored backend: slotignored api_type: slotignored runtime: slotignored database: slotignored connection: slotignored hosting: slotignored build: slotignored cicd: slotignored monorepo_tool: slotignored package_manager: slotignored workspaces: slotignored admin: slotignored cache: slotignored search: slotignored storage: slotignored human_context: who: Developers and teams using AI coding assistants what: Persistent AI Context Standard — project DNA for AI. IANA-registered. Anthropic-merged. why: Eliminates 91% context re-discovery tax — define once, AI remembers forever where: npm registry, Homebrew, GitHub when: Production since September 2025; Bun-native since v6; current package 7.6.0 how: bunx faf-cli auto, then project.faf versions with your code — faf show renders it human-visible monorepo: packages_count: slotignored build_orchestrator: slotignored versioning_strategy: slotignored shared_configs: slotignored remote_cache: slotignored surfaces: # Distribution map — the machine-checkable form of human_context.where. Score-neutral. auto: # derived from manifests; regenerate with `faf surface --sync` - { type: npm, id: faf-cli, source: "package.json#name" } - { type: github, id: Wolfe-Jam/faf-cli, source: "package.json#repository" } declared: # hand-authored: surfaces the manifests don't carry + targets - { type: npm, id: faf, status: live } # dual-publish alias (faf-cli ⇄ faf) - { type: homebrew, id: faf-cli, status: live } ai_instructions: # faf-cli's own custom rules — dogfooding ai_instructions.warnings. # These land at the top of AGENTS.md Guardrails on `faf export --agents`. warnings: - "Use bun, not npm — this repo is Bun-native since v6." - "TypeScript strict; zero type errors, zero test failures — always." - "Scoring is a Rust→WASM kernel — compose it, never reimplement scoring in TS." - "FAF authors — never 'generates'. And 'never guessed', not 'not guessed'." - "Never write 'Guaranteed' (any form) — it's banned; it's free software." - "Publish only via /pubpro — never hand-run npm publish." working_style: architecture: Domain-model first; single-source engines composed, never reimplemented. testing: WJTTC — zero errors always; bun test green before any ship. runtime: Bun-native since v6, TypeScript strict, Rust→WASM scoring kernel. releases: Atomic via /pubpro — bump, verify, tag, publish in one motion.