FAF Go — Guided Path to 100% ✪
"Just type /faf-go, answer questions till you're done. 100% target."
.faf is an IANA-registered context format (application/vnd.faf+yaml) — a typed, portable file you own, readable by any AI. faf-cli scores on 21 slots; your app_type selects which are active, and 100% ✪ = every active slot filled. This skill is the guided interview that gets you there: the AI fills what it can detect, then asks you — via Claude Code's AskUserQuestion — only for the gaps it can't source.
When to Use This Skill
Activate when:
- User wants to improve their .faf score
- User mentions "Gold Code" or "100%"
- User has incomplete project context
- After
faf initto fill in missing fields - User says "help me with my .faf"
Integration with Claude Code
FAF Go is built FOR Claude Code:
- AskUserQuestion - Native Claude Code UI for questions
- multiSelect: true - Allow multiple answers (e.g., "pytest + WJTTC")
- TodoWrite - Track progress through the interview
- Structured output - JSON that Claude Code understands
- Bi-sync - Answers flow to .faf AND CLAUDE.md
multiSelect Support
Some questions allow multiple selections:
stack.testing→ "pytest + WJTTC"stack.cicd→ "GitHub Actions + Cloud Build"stack.frontend→ "React + Tailwind"human_context.who→ "Developers + AI agents"
When multiSelect: true, user can pick 2+ options. Results are joined with " + ".
Workflow
Step 1: Check Current State
Run faf score to understand current position:
faf score --verbose
Or get it as structured data for programmatic use:
faf score --json
--json returns the score + per-slot breakdown — the empty slots are what you interview on (the priority order is in Step 2).
Step 2: Ask Questions Using AskUserQuestion
For each missing field, use Claude Code's AskUserQuestion tool:
Priority Order (most impactful first):
project.goal- What does this project do?human_context.why- Why does this exist?human_context.who- Who uses this?human_context.what- What problem does it solve?project.main_language- Primary languagestack.database- Database choicestack.hosting- Where is it deployed?stack.frontend- Frontend frameworkstack.backend- Backend frameworkhuman_context.where- Environmenthuman_context.when- Timeline/phasehuman_context.how- How the project is built (sourced from the stack)
Step 3: Apply Answers
After collecting answers, update the .faf file:
# Read current .faf
cat project.faf
# Update fields (use Edit tool)
# Then verify:
faf score
Step 4: Celebrate or Continue
If score >= 100: Celebrate Gold Code achievement If score < 100: Continue with remaining questions
Question Templates for AskUserQuestion
Single-Select Questions (pick one)
project.goal
{
"question": "What does this project do? (one clear sentence)",
"header": "Goal",
"multiSelect": false,
"options": [
{"label": "Let me type it", "description": "I'll describe it myself"},
{"label": "Help me write it", "description": "Guide me through it"}
]
}
human_context.why
{
"question": "Why does this project exist?",
"header": "Why",
"multiSelect": false,
"options": [
{"label": "Business need", "description": "Solving a business problem"},
{"label": "Personal project", "description": "Learning or hobby"},
{"label": "Open source", "description": "Community contribution"},
{"label": "Let me explain", "description": "Custom reason"}
]
}
stack.database
{
"question": "What database do you use?",
"header": "Database",
"multiSelect": false,
"options": [
{"label": "PostgreSQL", "description": "Relational database"},
{"label": "MongoDB", "description": "Document database"},
{"label": "SQLite", "description": "File-based database"},
{"label": "None", "description": "No database"}
]
}
stack.hosting
{
"question": "Where is this deployed?",
"header": "Hosting",
"multiSelect": false,
"options": [
{"label": "Vercel", "description": "Frontend/serverless"},
{"label": "AWS", "description": "Amazon Web Services"},
{"label": "Local only", "description": "Not deployed"},
{"label": "Other", "description": "Different platform"}
]
}
Multi-Select Questions (pick multiple, joined with " + ")
stack.testing
{
"question": "What testing tools/methodologies do you use?",
"header": "Testing",
"multiSelect": true,
"options": [
{"label": "pytest", "description": "Python testing framework"},
{"label": "Jest", "description": "JavaScript testing"},
{"label": "Vitest", "description": "Vite-native testing"},
{"label": "WJTTC", "description": "Championship methodology (Layer 2)"}
]
}
Result format: pytest + WJTTC (industry first, WJTTC follows)
**O