Skill v1.0.1
currentAutomated scan100/100+2 new
version: "1.0.1" name: faf-wizard description: 'Detects the stack, reads what already exists (README, docs, an existing CLAUDE.md or .cursorrules), writes project.faf and scores it. Use when someone wants project context set up for them: "set up Claude for this repo", "onboard AI to this codebase", "make me a project.faf". Works on new, legacy or inherited code. Turns the CLAUDE.md you already have into the structured facts behind it: GOOD to BETTER, done for you.' license: MIT
<!-- faf:start -->
v: 1needs:- "faf-cli on Node 22+ for the score (not installed: run `npx faf-cli score`)"reads: [README.md, docs/, "CLAUDE.md or .cursorrules", package manifests, the directory structure]writes: ["project.faf at the project root"]network: ["registry.npmjs.org (read, only when npx fetches faf-cli)"]publishes: falsedone_when: "project.faf exists at the project root and has a score"project: project.faf
<!-- faf:end -->
FAF Wizard - Done For You
The pit crew. Point it at any project, get a scored.faffile back.See also:faf-expert— the mechanic's manual for when you want to understand every bolt.
What This Does
Generates a project.faf file for any codebase. You don't need to know the format — the wizard handles detection, generation, scoring, and reporting.
You: "Set up project context for this repo"Wizard: Detects stack → generates project.faf → scores it → reports gaps
The Problem It Solves
Even famous repos have no AI-context. React. Kubernetes. Rails. Django — none ship a .faf. Detection alone gets React to ~56%; the human half (who / why / where) that grounds an AI is missing. That's the gap.
| What exists | What it answers | |
|---|---|---|
| README.md | "What does this do?" (for humans) | |
| docs/ | "How do I use this?" (for humans) | |
| project.faf | "How should AI help build this?" (for AI) |
Documentation tells humans how to use code. AI-context tells AI how to help you write it. They're not the same thing.
Works on ANY Project
| Project State | What FAF Wizard Does | |
|---|---|---|
| Brand new | Optimized AI context from line one | |
| Legacy codebase | AI finally understands the archaeology | |
| Famous OSS | Even React needs this (it doesn't have one) | |
| Side project | Stop re-explaining every session | |
| Client handoff | Portable context for any AI tool |
Workflow
Step 1: Detect Stack
Look for manifest files:
package.json→ Node.js/TypeScriptCargo.toml→ Rustpyproject.toml→ Pythongo.mod→ Gopom.xml→ JavaGemfile→ Ruby
No manifest? Still generate — ask user for stack info.
Step 2: Mine Existing Context
Pull signals from what exists:
- README.md (description, purpose)
- docs/ (architecture decisions)
- CLAUDE.md or .cursorrules (existing AI context — migrate it)
- Package manifests (dependencies reveal intent)
- Directory structure (architecture patterns)
Step 3: Generate project.faf
Create focused AI context at project root. Every `.faf` is scored against the same 33 slots: faf-cli fills the 21 base slots and marks the 12 enterprise slots slotignored unless your app type uses them. app_type selects which are active; the rest are slotignored (never counted against you). Detection fills the stack; the human supplies the underivable bits (project.name/goal + the 6 Ws). human_context.how is how it's built (sourced from the stack), not AI preferences.
faf_version: "3.0"project:name: my-projectgoal: One-line purposemain_language: typescripthuman_context:who: Solo developerwhat: REST API for task managementwhy: Learning project, portfolio piecewhere: Vercel (serverless)when: Started March 2026how: TypeScript · Express · PostgreSQLstack:frontend: reactbackend: expressapi_type: restruntime: nodedatabase: postgresqlhosting: vercelbuild: vitetesting: vitest # informational — not one of the 33 scored slotscicd: github-actions
Keep under 200 lines. Only what changes AI behavior.
Step 4: Score and Report
Generated: project.fafAI-Readiness: 87% ◇ Bronze — Production readyFilled: 13/15 active slotsslotignored: the slots that don't apply to this app_type (never counted)To reach 100% ✪:- Add deployment details- Document the testing strategy- Fill the last Ws the AI couldn't source
The target is 100% ✪ — Bronze is the floor, not the finish line. At 100% every active slot is filled and the AI starts every session already knowing the project.
Tier System
| Score | Tier | Symbol | Status | |
|---|---|---|---|---|
| 100% | Trophy | ✪ | AI is optimized to code | |
| 99% | Gold | ★ | Exceptional | |
| 95% | Silver | ◆ | Top tier | |
| 85% | Bronze | ◇ | Production ready | |
| 70% | Green | ● | Solid foundation | |
| 55% | Yellow | ● | Needs improvement | |
| 1% | Red | ○ | Major work needed | |
| 0% | White | ♡ | Empty |
Target: 100% ✪. Bronze (◇ 85%) is the floor where AI collaboration becomes productive — Trophy is the goal: every active slot filled, the AI fully grounded from session one.
Migration
When CLAUDE.md or .cursorrules exist:
- Offer to migrate to .faf (portable format)
- .faf works in Cursor, Gemini, WARP, Windsurf — not just Claude
- YAML structure parses better than freeform markdown
Validation
Generated files must:
- Be valid YAML
- Have
faf_versionandproject.name - Contain NO secrets or credentials
- Stay under 200 lines
Credentials
- IANA Media Type:
application/vnd.faf+yaml - Listed in modelcontextprotocol/servers (#2759, merged 2025-10-17)
- Website: https://faf.one