FAF 上下文——把 AI 需要的东西交给它
何时使用
当你需要让项目快速达到 100% ✪ AI 就绪度时使用此技能——AI 自动检测你的技术栈,只询问它无法知道的内容(你的目标和人类层面的"为什么")。最少输入,最大上下文。面向珍惜时间的开发者;可作为 faf-expert 的深度入口。
AI 写出最好的代码,前提是它掌握你项目的上下文。本技能帮助你快速、完整地把上下文交出去。
.faf 是一种 IANA 注册的上下文格式(application/vnd.faf+yaml)——一个由你拥有的、类型化的可移植文件,任何 AI 都可读取(无需专属清单,无供应商锁定)。整个格式的核心是一个数字:AI 就绪度,0–100%。 在 100% ✪ 时,AI 开启每次会话都已了解你的项目——无需重复解释,无需猜测。本技能是面向开发者的达成路径:以最少输入,获得最大上下文。
如果你想要一键完成的全自动路径,请使用 faf-wizard。想要精通此格式,请使用 faf-expert。本技能是介于两者之间的快速入门。
工作原理:应用类型 → AI 填满最大可填项 → 你补齐缺口
faf-cli 共有 21 个槽位。 它分三步运作——而只有最后一步需要你参与:
- 你的应用类型决定了哪些槽位是必需的。 CLI 需要的槽位不同于全栈 Web 应用——faf-cli 精准匹配所需集合,其余槽位标记为
slotignored(永远不计入你的扣分)。 - AI 尽可能多地填充槽位。
faf auto检测你的技术栈与语言,并通过一条精准的 目标语句 种子化 who/what/where。你的目标越好,AI 帮你填的越多。 - 剩余的空白由 AI 向你询问。 这些是只有你知道的部分——通常是 6W 中的两三个(往往是 why 与 when)。回答它们 → 100% ✪。
所以你的任务不是"填 21 个格子"。而是:写一句好的目标,然后回答 AI 自己无法填上的少数问题。
*(团队 / 企业版增加更多槽位——monorepo、缓存、版本管理——但那不是 faf-cli。faf-cli 就是这 21 个。)*
你很少需要手动填写全部 6W——原因如下
6W 是"无法推导的一半"——但你几乎不需要从零写全所有六项:
- who / what / where → 由你的目标语句种子化(AI 提取你目标字面陈述的事实)
- how → 源自你的技术栈(检测机制了解它是如何构建的)
- why / when → 唯二完全属于你的部分
因此快速路径是:写一句精准的目标,确认种子项,填写 why + when。→ 100%。
"有时 3 个 W 就够了。有时仅靠目标就够了。" 一句优秀的目标语句 + 自动检测可以独立承载 who/what/where/how——只留下两个小问题要你回答。你的目标越好,你要输入的就越少。
通往 100% ✪ 的最快路径
faf auto # 1. AI 检测你的整个技术栈 + 从 README 种子化上下文
faf score # 2. 查看分数 + 精准定位仍为空的槽位
faf go # 3. 引导式填写:确认已种子的 W,回答剩下的 1–2 个问题
faf score # 4. 100% ✪
faf sync # 5. 将上下文推送到 CLAUDE.md / AGENTS.md(可选)
大多数项目距离奖杯只差一句好目标和两个回答。
写出那一句目标(它承担了大部分工作)
目标是生成式输入——它自动种子化 who/what/where。把它写成一句真实、具体的句子(它也是你的用例):
- ✅ "一个 CLI,对任意仓库的 AI 就绪度打分,并将上下文同步给 Claude、Cursor 和 Gemini——面向独立开发者。" → 种子化 what(打分 AI 就绪度的 CLI)、where(Claude、Cursor、Gemini)、who(独立开发者)。你只需补 why + when。
- ❌ "一个改进开发的工具。" → 笼统;无法种子化。(笼统短语会被故意忽略——留空胜过写错。)
6W——精炼标签,而非散文
每个 W 是一句3–4 字的标签(硬性上限 < 6)——一张可扫读的需求卡,而非一段文字:
| W | 询问内容 | 示例 |
|---|---|---|
| Who | 给谁用? | solo developers |
| What | 在构建什么? | AI-readiness scorer |
| Why | 为什么存在? | eliminate context re-explaining |
| Where | 运行/发布到哪里? | npm, Homebrew |
| When | 时间线 / 阶段? | production, since 2025 |
| How | 如何构建/使用? | Bun CLI + WASM |
不适用的槽位 → slotignored
CLI 没有前端;API 没有 UI 库。把这些标记为 slotignored,它们就会从分母中剔除——你只在对你应用类型真正重要的槽位上计分。100% 意味着"所有适用的槽位都已填写,"而非"每个格子都打钩。"(faf auto 与 faf go 会替你处理大部分此类工作。)
诚实规则(它为何有效)
AI 只会种子化你的目标/README 字面陈述的事实——绝不编造,绝不使用模板。它无法溯源的内容,会留空给你。留空胜过写错。 这就是为什么生成的上下文值得信任:每个槽位要么被检测到,要么由你声明,要么诚实地留白。
当你完成本技能时
- 想一键完成? → faf-wizard
- 想精通此格式(评分原理、MCP 配置、双向同步)? → faf-expert
- 想用智能体驱动整个仓库? →
faf go/ faf-loop
目标: AI 的能力取决于你给它的上下文。回答那些只有你知道的事——AI 自己填不上的缺口——它就能优化为你服务,达到 100% ✪。
MIT · FAF 技能家族成员(faf-context · faf-wizard · faf-expert)
局限性
- 仅当任务明确匹配其上游来源与本地项目上下文时,才使用本技能。
- 在应用变更前,验证命令、生成的代码、依赖、凭证以及外部服务的行为。
- 不要把示例当作环境专属测试、安全审查或用户对破坏性/高成本操作的批准的替代品。