faf-go

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

FAF Go — Guided Path to 100% ✪

FAF Go — 通往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.
"只需输入/faf-go,回答问题直至完成。目标:100%。"
.faf
是一种IANA注册的上下文格式
application/vnd.faf+yaml
)——一种由你拥有的类型化可移植文件,可被任何AI读取。faf-cli会对21个维度进行评分;你的
app_type
会选择哪些维度处于「激活」状态,而100% ✪意味着所有激活维度均已填写完整。本技能就是帮你达成这一目标的引导式访谈:AI会自动填充它能检测到的内容,然后通过Claude Code的AskUserQuestion工具,仅向你询问它无法获取的缺失信息。

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 init
    to fill in missing fields
  • 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:
  • 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 " + ".
部分问题允许多选:
  • stack.testing
    → "pytest + WJTTC"
  • stack.cicd
    → "GitHub Actions + Cloud Build"
  • stack.frontend
    → "React + Tailwind"
  • human_context.who
    → "Developers + AI agents"
multiSelect: true
时,用户可选择2个及以上选项,结果将用" + "连接。

Workflow

工作流程

Step 1: Check Current State

步骤1:检查当前状态

Run faf score to understand current position:
bash
faf score --verbose
Or get it as structured data for programmatic use:
bash
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).
运行faf score命令了解当前评分:
bash
faf score --verbose
或获取结构化数据用于程序化调用:
bash
faf score --json
--json
参数会返回评分及各维度的详细情况——空维度就是需要访谈补充的内容(优先级顺序见步骤2)。

Step 2: Ask Questions Using AskUserQuestion

步骤2:使用AskUserQuestion提问

For each missing field, use Claude Code's AskUserQuestion tool:
Priority Order (most impactful first):
  1. project.goal
    - What does this project do?
  2. human_context.why
    - Why does this exist?
  3. human_context.who
    - Who uses this?
  4. human_context.what
    - What problem does it solve?
  5. project.main_language
    - Primary language
  6. stack.database
    - Database choice
  7. stack.hosting
    - Where is it deployed?
  8. stack.frontend
    - Frontend framework
  9. stack.backend
    - Backend framework
  10. human_context.where
    - Environment
  11. human_context.when
    - Timeline/phase
  12. human_context.how
    - How the project is built (sourced from the stack)
针对每个缺失字段,使用Claude Code的AskUserQuestion工具:
优先级顺序(影响从高到低):
  1. project.goal
    - 该项目的功能是什么?
  2. human_context.why
    - 该项目存在的原因是什么?
  3. human_context.who
    - 谁会使用这个项目?
  4. human_context.what
    - 它解决了什么问题?
  5. project.main_language
    - 主要开发语言
  6. stack.database
    - 数据库选择
  7. stack.hosting
    - 部署位置
  8. stack.frontend
    - 前端框架
  9. stack.backend
    - 后端框架
  10. human_context.where
    - 运行环境
  11. human_context.when
    - 时间线/阶段
  12. human_context.how
    - 项目构建方式(从技术栈中获取)

Step 3: Apply Answers

步骤3:应用答案

After collecting answers, update the .faf file:
bash
undefined
收集答案后,更新.faf文件:
bash
undefined

Read current .faf

读取当前.faf文件

cat project.faf
cat project.faf

Update fields (use Edit tool)

更新字段(使用编辑工具)

Then verify:

然后验证:

faf score
undefined
faf score
undefined

Step 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:
pytest + WJTTC
(industry first, WJTTC follows)
Ordering: When both selected, industry tests come first:
  • pytest + WJTTC
    (not
    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": "冠军级方法论(第二层)"}
  ]
}
结果格式:
pytest + WJTTC
(行业首创,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 Build
json
{
  "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 Build

stack.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 agents
json
{
  "question": "谁会使用这个项目?",
  "header": "用户",
  "multiSelect": true,
  "options": [
    {"label": "开发者", "description": "软件开发者"},
    {"label": "终端用户", "description": "非技术用户"},
    {"label": "AI agents", "description": "Claude、Gemini等"},
    {"label": "内部团队", "description": "仅你的团队使用"}
  ]
}
结果格式:
Developers + AI agents

Processing Multi-Select Answers

处理多选答案

When user selects multiple options, join them with " + ":
python
undefined
当用户选择多个选项时,用" + "连接:
python
undefined

Example: 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 Build
selected = ["pytest", "WJTTC"] value = " + ".join(selected) # "pytest + WJTTC"

这会在.faf文件中生成易读、易扫描的值:
```yaml
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.
用户: /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 --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
  • 用户评分达到100%
  • 所有必填字段均填写有意义的内容
  • 无占位符值(如TBD、Unknown、不恰当的None)
  • 用户理解每个字段的用途

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.
当达成100% ✪时:
✪ 100% — 黄金代码

project.faf: 已完成
CLAUDE.md:   已从.faf同步
可选择执行
faf sync
从.faf文件生成CLAUDE.md / AGENTS.md。此后你的AI在每次会话开始时都会拥有完整的项目上下文。

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.
  • 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.
  • 仅当任务与上游源和本地项目上下文明确匹配时使用本技能。
  • 在应用更改前,请验证命令、生成的代码、依赖项、凭据和外部服务行为。
  • 请勿将示例替代为特定环境的测试、安全审查或用户对破坏性/高成本操作的批准。