faf-go
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseFAF Go — Guided Path to 100% ✪
FAF Go — 通往100% ✪的引导路径
"Just type /faf-go, answer questions till you're done. 100% target."
.fafapplication/vnd.faf+yamlapp_type"只需输入/faf-go,回答问题直至完成。目标:100%。"
.fafapplication/vnd.faf+yamlapp_typeWhen 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 to fill in missing fields
faf init - User says "help me with my .faf"
在以下场景激活:
- 用户想要提升其.faf文件的评分
- 用户提及「黄金代码」或「100%」
- 用户的项目上下文信息不完整
- 执行后需要填充缺失字段
faf init - 用户表示「帮我处理我的.faf文件」
Integration with Claude Code
与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
FAF Go专为Claude Code打造:
- AskUserQuestion - 原生Claude Code提问UI
- multiSelect: true - 支持多选答案(例如:"pytest + WJTTC")
- TodoWrite - 跟踪访谈进度
- 结构化输出 - Claude Code可识别的JSON格式
- 双向同步 - 答案会同步至.faf文件和CLAUDE.md
multiSelect Support
多选支持
Some questions allow multiple selections:
- → "pytest + WJTTC"
stack.testing - → "GitHub Actions + Cloud Build"
stack.cicd - → "React + Tailwind"
stack.frontend - → "Developers + AI agents"
human_context.who
When , user can pick 2+ options. Results are joined with " + ".
multiSelect: true部分问题允许多选:
- → "pytest + WJTTC"
stack.testing - → "GitHub Actions + Cloud Build"
stack.cicd - → "React + Tailwind"
stack.frontend - → "Developers + AI agents"
human_context.who
当时,用户可选择2个及以上选项,结果将用" + "连接。
multiSelect: trueWorkflow
工作流程
Step 1: Check Current State
步骤1:检查当前状态
Run faf score to understand current position:
bash
faf score --verboseOr get it as structured data for programmatic use:
bash
faf score --json--json运行faf score命令了解当前评分:
bash
faf score --verbose或获取结构化数据用于程序化调用:
bash
faf score --json--jsonStep 2: Ask Questions Using AskUserQuestion
步骤2:使用AskUserQuestion提问
For each missing field, use Claude Code's AskUserQuestion tool:
Priority Order (most impactful first):
- - What does this project do?
project.goal - - Why does this exist?
human_context.why - - Who uses this?
human_context.who - - What problem does it solve?
human_context.what - - Primary language
project.main_language - - Database choice
stack.database - - Where is it deployed?
stack.hosting - - Frontend framework
stack.frontend - - Backend framework
stack.backend - - Environment
human_context.where - - Timeline/phase
human_context.when - - How the project is built (sourced from the stack)
human_context.how
针对每个缺失字段,使用Claude Code的AskUserQuestion工具:
优先级顺序(影响从高到低):
- - 该项目的功能是什么?
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 - - 项目构建方式(从技术栈中获取)
human_context.how
Step 3: Apply Answers
步骤3:应用答案
After collecting answers, update the .faf file:
bash
undefined收集答案后,更新.faf文件:
bash
undefinedRead current .faf
读取当前.faf文件
cat project.faf
cat project.faf
Update fields (use Edit tool)
更新字段(使用编辑工具)
Then verify:
然后验证:
faf score
undefinedfaf score
undefinedStep 4: Celebrate or Continue
步骤4:庆祝或继续
If score >= 100: Celebrate Gold Code achievement
If score < 100: Continue with remaining questions
如果评分≥100:庆祝达成黄金代码成就
如果评分<100:继续完成剩余问题
Question Templates for AskUserQuestion
AskUserQuestion的问题模板
Single-Select Questions (pick one)
单选问题(选一个)
project.goal
project.goal
json
{
"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"}
]
}json
{
"question": "该项目的功能是什么?(用一句话清晰描述)",
"header": "目标",
"multiSelect": false,
"options": [
{"label": "我自己输入", "description": "我来描述功能"},
{"label": "帮我撰写", "description": "引导我完成描述"}
]
}human_context.why
human_context.why
json
{
"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"}
]
}json
{
"question": "该项目存在的原因是什么?",
"header": "原因",
"multiSelect": false,
"options": [
{"label": "业务需求", "description": "解决业务问题"},
{"label": "个人项目", "description": "学习或爱好"},
{"label": "开源项目", "description": "社区贡献"},
{"label": "我来解释", "description": "自定义原因"}
]
}stack.database
stack.database
json
{
"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"}
]
}json
{
"question": "你使用什么数据库?",
"header": "数据库",
"multiSelect": false,
"options": [
{"label": "PostgreSQL", "description": "关系型数据库"},
{"label": "MongoDB", "description": "文档型数据库"},
{"label": "SQLite", "description": "文件型数据库"},
{"label": "无", "description": "不使用数据库"}
]
}stack.hosting
stack.hosting
json
{
"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"}
]
}json
{
"question": "项目部署在哪里?",
"header": "部署位置",
"multiSelect": false,
"options": [
{"label": "Vercel", "description": "前端/无服务器"},
{"label": "AWS", "description": "亚马逊云服务"},
{"label": "仅本地", "description": "未部署"},
{"label": "其他", "description": "其他平台"}
]
}Multi-Select Questions (pick multiple, joined with " + ")
多选问题(选多个,用" + "连接)
stack.testing
stack.testing
json
{
"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: (industry first, WJTTC follows)
pytest + WJTTCOrdering: When both selected, industry tests come first:
- (not
pytest + WJTTC)WJTTC + pytest - WJTTC can also run standalone
json
{
"question": "你使用什么测试工具/方法论?",
"header": "测试",
"multiSelect": true,
"options": [
{"label": "pytest", "description": "Python测试框架"},
{"label": "Jest", "description": "JavaScript测试"},
{"label": "Vitest", "description": "Vite原生测试"},
{"label": "WJTTC", "description": "冠军级方法论(第二层)"}
]
}结果格式: (行业首创,WJTTC后置)
pytest + WJTTC排序规则: 当同时选中时,行业通用测试工具在前:
- (而非
pytest + WJTTC)WJTTC + pytest - WJTTC也可单独使用
stack.cicd
stack.cicd
json
{
"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 Buildjson
{
"question": "你使用什么CI/CD工具?",
"header": "CI/CD",
"multiSelect": true,
"options": [
{"label": "GitHub Actions", "description": "GitHub原生CI/CD"},
{"label": "Cloud Build", "description": "谷歌云CI/CD"},
{"label": "CircleCI", "description": "CircleCI流水线"},
{"label": "无", "description": "尚未使用CI/CD"}
]
}结果格式:
GitHub Actions + Cloud Buildstack.frontend
stack.frontend
json
{
"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"}
]
}json
{
"question": "你使用什么前端技术?",
"header": "前端",
"multiSelect": true,
"options": [
{"label": "React", "description": "React框架"},
{"label": "Next.js", "description": "React元框架"},
{"label": "Svelte", "description": "Svelte框架"},
{"label": "无/仅API", "description": "无前端"}
]
}human_context.who
human_context.who
json
{
"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 agentsjson
{
"question": "谁会使用这个项目?",
"header": "用户",
"multiSelect": true,
"options": [
{"label": "开发者", "description": "软件开发者"},
{"label": "终端用户", "description": "非技术用户"},
{"label": "AI agents", "description": "Claude、Gemini等"},
{"label": "内部团队", "description": "仅你的团队使用"}
]
}结果格式:
Developers + AI agentsProcessing Multi-Select Answers
处理多选答案
When user selects multiple options, join them with " + ":
python
undefined当用户选择多个选项时,用" + "连接:
python
undefinedExample: User selects ["pytest", "WJTTC"]
示例:用户选择["pytest", "WJTTC"]
selected = ["pytest", "WJTTC"]
value = " + ".join(selected) # "pytest + WJTTC"
This creates readable, scannable values in the .faf file:
```yaml
stack:
testing: pytest + WJTTC
cicd: GitHub Actions + Cloud Buildselected = ["pytest", "WJTTC"]
value = " + ".join(selected) # "pytest + WJTTC"
这会在.faf文件中生成易读、易扫描的值:
```yaml
stack:
testing: pytest + WJTTC
cicd: GitHub Actions + Cloud BuildExample 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.用户: /faf-go
Claude: 让我检查你当前的.faf文件状态。
[执行: faf score --verbose]
你的当前评分是45%。让我们一起达成黄金代码!
[使用AskUserQuestion询问project.goal]
用户: [选择选项或输入自定义内容]
Claude: 很棒!现在让我们记录这个项目存在的原因。
[使用AskUserQuestion询问human_context.why]
... 持续提问直至评分达100% ...
Claude: ✪ 达成黄金代码!
你的AI现在拥有完整的项目上下文,可实现冠军级性能。TodoWrite Integration
TodoWrite集成
Track progress with todos:
javascript
[
{"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"}
]通过待办事项跟踪进度:
javascript
[
{"content": "回答project.goal问题", "status": "completed"},
{"content": "回答human_context.why问题", "status": "in_progress"},
{"content": "回答stack.database问题", "status": "pending"},
{"content": "验证是否达成黄金代码", "status": "pending"}
]CLI Fallback
CLI备选方案
Outside Claude Code, the same destination is reached with the CLI's own interactive interview:
bash
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在Claude Code之外,你也可以通过CLI自带的交互式访谈达成目标:
bash
faf go # 交互式终端访谈(--resume可继续未完成的会话)本技能是该访谈的Claude原生版本——用AskUserQuestion替代终端提示。如需结构化的程序化数据,可使用。
faf score --jsonSuccess 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
- 用户评分达到100%
- 所有必填字段均填写有意义的内容
- 无占位符值(如TBD、Unknown、不恰当的None)
- 用户理解每个字段的用途
On Completion
完成后
When 100% ✪ is achieved:
✪ 100% — Gold Code
project.faf: complete
CLAUDE.md: synced from .fafOptionally run to emit CLAUDE.md / AGENTS.md from the .faf. Your AI now starts every session with complete project context.
faf sync当达成100% ✪时:
✪ 100% — 黄金代码
project.faf: 已完成
CLAUDE.md: 已从.faf同步可选择执行从.faf文件生成CLAUDE.md / AGENTS.md。此后你的AI在每次会话开始时都会拥有完整的项目上下文。
faf syncRelated 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.
- faf-context — 开发者快速入门:快速向AI提供达成100%所需的信息
- faf-wizard — 一键生成任何项目的.faf文件
- faf-expert — 精通该格式:评分机制、MCP配置、双向同步、完整的21维度模型
.faf是格式,project.faf是文件。 100% ✪ AI就绪是最终结果。
MIT许可证 · 属于FAF技能家族(faf-context · faf-wizard · faf-expert)。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.
- 仅当任务与上游源和本地项目上下文明确匹配时使用本技能。
- 在应用更改前,请验证命令、生成的代码、依赖项、凭据和外部服务行为。
- 请勿将示例替代为特定环境的测试、安全审查或用户对破坏性/高成本操作的批准。