Guide AI to 100% Context Readiness Through Structured Interview
A skill guiding a Claude Code interview to fill a .faf context file's empty slots and reach 100%.
archive/skills-28-prAdd to Favorites
Why it matters
Help developers achieve 100% AI-readiness by guiding them through a structured interview that captures all underivable context (goals, constraints, and the 6 Ws) that AI cannot source independently, then generate a complete FAF context file.
Outcomes
What it gets done
Interview user with guided questions to extract project goals and constraints
Capture the 6 Ws (who, what, when, where, why, how) that AI cannot derive
Generate structured FAF YAML context file from interview responses
Score and validate context completeness to reach Trophy tier (100%)
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-faf-go | bash Overview
FAF Go - Guided Path to 100% ✪
This skill runs a guided Claude Code interview via AskUserQuestion to fill a .faf context file's empty slots in priority order, updating and re-scoring until 100%. Activate when a user wants to improve their .faf score, mentions Gold Code or 100%, or just ran faf init and needs remaining fields filled.
What it does
A skill that guides a user through a structured interview to reach 100% on their .faf context file (the IANA-registered application/vnd.faf+yaml format) using Claude Code's native AskUserQuestion tool. faf-cli scores 21 slots, with app_type determining which are active; 100% means every active slot is filled. The workflow runs faf score --verbose or faf score --json to see current standing and the empty slots, then asks about missing fields in a fixed priority order (most impactful first): project.goal, human_context.why, human_context.who, human_context.what, project.main_language, stack.database, stack.hosting, stack.frontend, stack.backend, human_context.where, human_context.when, and human_context.how. Each question has a documented AskUserQuestion template - project.goal offers "Let me type it" versus "Help me write it"; human_context.why offers Business need, Personal project, Open source, or Let me explain; stack.database offers PostgreSQL, MongoDB, SQLite, or None; stack.hosting offers Vercel, AWS, Local only, or Other. It uses AskUserQuestion for both single-select questions and multiSelect questions where multiple answers are joined with " + " in a fixed order - industry-standard tools first, so stack.testing renders "pytest + WJTTC" (WJTTC labeled "Championship methodology (Layer 2)" in the option list) never the reverse; stack.cicd can combine "GitHub Actions + Cloud Build"; human_context.who can combine "Developers + AI agents". After collecting answers it updates the .faf file directly and re-runs faf score to verify, celebrating Gold Code if the score reaches 100% or continuing with remaining questions if not - completion prints the literal message " 100% - Gold Code". Progress through the interview is tracked with TodoWrite entries per question (e.g. "Answer project.goal question": completed, "Answer human_context.why question": in_progress). Outside Claude Code, the same destination is reached via the CLI's own interactive interview, faf go (with --resume to continue a session) - this skill is described as the Claude-native version of that same interview, substituting AskUserQuestion for terminal prompts. Success is measured by reaching 100%, every required field holding meaningful content with no placeholder values like TBD, Unknown, or None where inappropriate, and the user understanding what each field is for.
When to use - and when NOT to
Activate this skill when a user wants to improve their .faf score, mentions "Gold Code" or "100%", has incomplete project context, just ran faf init and needs to fill remaining fields, or asks for help with their .faf file. Outside Claude Code, point the user to the CLI's own faf go interactive interview instead.
Inputs and outputs
Input is the current .faf score/slot breakdown from faf score --json plus the user's answers to AskUserQuestion prompts. Output is an updated .faf file with previously-empty slots filled in priority order, re-scored after each answer, ending in the " 100% - Gold Code" completion message once every active slot is filled.
Integrations
faf score --verbose
faf score --json
Built specifically for Claude Code: AskUserQuestion for the interview UI (with multiSelect support), TodoWrite for per-question progress tracking, structured JSON scoring output, and bi-sync so answers propagate to both the .faf file and CLAUDE.md. The CLI's own faf go --resume interview is the non-Claude-Code fallback path to the same 100% destination.
Who it's for
Users working through Claude Code who want a guided, question-by-question path to a fully-scored .faf context file rather than editing the file by hand - particularly right after faf init, when most slots are still empty and need a structured interview to fill, or after making significant changes to the stack that leave previously-filled slots stale.
Source README
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)
Ordering: When both selected, industry tests come first:
pytest + WJTTC(notWJTTC + pytest)- WJTTC can also run standalone
stack.cicd
{
"question": "What CI/CD tools do you use?",
"header": "CI/CD",
"multiSelect": true,
"options": [
{"label": "GitHub Actions", "description": "GitHub-native CI/CD"},
{"label": "Cloud Build", "description": "Google Cloud CI/CD"},
{"label": "CircleCI", "description": "CircleCI pipelines"},
{"label": "None", "description": "No CI/CD yet"}
]
}
Result format: GitHub Actions + Cloud Build
stack.frontend
{
"question": "What frontend technologies do you use?",
"header": "Frontend",
"multiSelect": true,
"options": [
{"label": "React", "description": "React framework"},
{"label": "Next.js", "description": "React meta-framework"},
{"label": "Svelte", "description": "Svelte framework"},
{"label": "None/API-only", "description": "No frontend"}
]
}
human_context.who
{
"question": "Who uses this project?",
"header": "Users",
"multiSelect": true,
"options": [
{"label": "Developers", "description": "Software developers"},
{"label": "End users", "description": "Non-technical users"},
{"label": "AI agents", "description": "Claude, Gemini, etc."},
{"label": "Internal team", "description": "Your team only"}
]
}
Result format: Developers + AI agents
Processing Multi-Select Answers
When user selects multiple options, join them with " + ":
### Example: User selects ["pytest", "WJTTC"]
selected = ["pytest", "WJTTC"]
value = " + ".join(selected) # "pytest + WJTTC"
This creates readable, scannable values in the .faf file:
stack:
testing: pytest + WJTTC
cicd: GitHub Actions + Cloud Build
Example Session
User: /faf-go
Claude: Let me check your current .faf status.
[Runs: faf score --verbose]
Your score is 45%. Let's get you to Gold Code!
[Uses AskUserQuestion for project.goal]
User: [Selects option or types custom]
Claude: Great! Now let's capture why this project exists.
[Uses AskUserQuestion for human_context.why]
... continues until 100% ...
Claude: ✪ GOLD CODE ACHIEVED!
Your AI now has complete context for championship performance.
TodoWrite Integration
Track progress with todos:
[
{"content": "Answer project.goal question", "status": "completed"},
{"content": "Answer human_context.why question", "status": "in_progress"},
{"content": "Answer stack.database question", "status": "pending"},
{"content": "Verify Gold Code achieved", "status": "pending"}
]
CLI Fallback
Outside Claude Code, the same destination is reached with the CLI's own interactive interview:
faf go # interactive terminal interview (--resume continues a session)
This skill is the Claude-native version of that interview - AskUserQuestion instead of terminal prompts. For structured, programmatic data, use faf score --json.
Success Metrics
- User reaches 100% score
- All required fields filled with meaningful content
- No placeholder values (TBD, Unknown, None where inappropriate)
- User understands what each field is for
On Completion
When 100% ✪ is achieved:
✪ 100% — Gold Code
project.faf: complete
CLAUDE.md: synced from .faf
Optionally run faf sync to emit CLAUDE.md / AGENTS.md from the .faf. Your AI now starts every session with complete project context.
Related Skills
- faf-context - the builder's quickstart: hand the AI what it needs to hit 100%, fast
- faf-wizard - done-for-you, one-click .faf for any project
- faf-expert - master the format: scoring internals, MCP config, bi-sync, the full 21-slot model
.faf is the format. project.faf is the file.
100% ✪ AI-Readiness is the result.
MIT · part of the FAF skill family (faf-context · faf-wizard · faf-expert). Native to Claude Code.
Limitations
- Use this skill only when the task clearly matches its upstream source and local project context.
- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.