每次开新会话都要重新教 Claude 这个项目用什么栈?这群人把这件事做成了 IANA 国际标准

当每个 AI 编码 Agent 都在重新发明「怎么告诉模型我是谁」这件事时,我们好像都忘了最基本的一个问题:上下文是会漂移的。

今天要聊的 faf-cli,正是冲着这个烂摊子去的。它不是又一个新的 Skill 包,而是一份「Persistent Project Context for AI」的标准 —— 一个 IANA 注册的媒体类型 application/vnd.faf+yaml,被 Anthropic 官方合并到 MCP 服务器列表(PR #2759,2025 年 10 月 17 日合并),下载量已经超过 11.5 万次。它的作者 Wolfe-Jam 把这件事说得很克制:「FAF defines. MD instructs. AI codes.」

它到底解决了一个什么问题?

Claude Code、Cursor、Gemini CLI、Codex……每个工具都在用一套自己的上下文格式(CLAUDE.md / .cursorrules / GEMINI.md / AGENTS.md)。你的项目里到底应该放哪个?人手写一遍还是 GitHub Copilot 帮你猜一遍?

faf-cli 的解法是:搞一个 project.faf,作为「单一真相源」,再由它自动生成上面所有格式。本质上这是给 AI 工程化做了一个 package.json —— 你不需要每次告诉每个 Agent 你用什么技术栈、什么规范、什么约束,写一次,全场景生效。

亮点功能速览

  • Stack 自动探测:跑 faf auto,CLI 自动识别你的框架、语言、Claude Code 子代理、技能、命令,填满所有它能填的槽。
  • Trophy 100% 评分体系:从 White(0%)到 Trophy(100%)一共九档,作者在 v6.6.0 起明确「只推荐 Trophy」—— 因为低于 100% AI 就要开始瞎猜。
  • 双向同步faf syncproject.faf 和 CLAUDE.md 之间跑 bi-sync,8ms 延迟。如果你已经有一个手写的 CLAUDE.md,faf recover 还能反向重建 .faf。
  • Git 原生project.faf 就放在仓库里,跟着代码版本走 —— 每一个 clone、每一个 fork、每一个 checkout 都自带完整 AI 上下文。
  • .fafm 灵魂记忆:v7.2.0 新增的便携式 agent 记忆格式,可以把 Claude Code 的 memory 文件夹转换成 soul.fafm,实现 recall / etch / ls / show 一条命令的灵魂操作。

为什么这件事值得关注?

把视角拉远一点看 —— 2026 年 AI 编码工具的真正瓶颈早就不是模型智商,而是「上下文怎么持续让模型理解你」。

每个团队都经历过这种痛:onboard 一个新项目,前两周要写三次 CLAUDE.md、给 Cursor 配一遍 rules、给 Codex 写一份 AGENTS.md,然后每次技术栈升级又得全部重做一遍。faf-cli 第一次给这件事定了一个标准格式 + 一个评分体系 + 一个生态级工具链。当 Anthropic 愿意把它 merge 进官方 MCP 列表时,本质上是在表态:上下文工程该有自己的版本管理了。

尤其值得玩味的是 v7.9.0 的「Git-Flow Edition」——faf export 现在会读 project.default_branch 来决定 AGENTS.md 的 PR base,不再硬编码 main。AI 工具开始尊重你的 git workflow,这件事本身就是一种成熟。

上手只需要 30 秒

  • 零安装试用:bunx faf-cli git https://github.com/facebook/react —— 给任何 GitHub 仓库生成 .faf,不用 clone。
  • 自己项目里:npx faf initnpx faf autonpx faf go(引导式补全只能人来填的槽)。
  • 追求深度:faf hooks --install 装上 pre-commit 钩子,提交前自动检查上下文是否回退。

如果你已经受够了「每次开新会话都要重新教 Claude 这个项目用什么栈」,faf-cli 是目前社区里最接近「一次性解决」的工具之一。给它一颗 Star,让这件事真正成为标准。

→ GitHub:Wolfe-Jam/faf-cli


GitHub: https://github.com/Wolfe-Jam/faf-cli

评论区

0 条评论

登录后可评论。

沈星河 14 阅读