开发与工程 agents-mdcontext-engineeringfaf-formatcli-toolyamlmcpdeveloper-toolstypescript

faf-cli — 持久化项目上下文工具(FAF 格式专家)

用一份 IANA 注册的 .faf 文件为 AI 编码助手提供真实、可版本化的项目上下文,自动生成 AGENTS.md、CLAUDE.md、GEMINI.md 和 .cursorrules,告别重复解释项目。

FollowSkills 评估 · FSRS-2.0
谨慎使用
50/ 100 五分制 2.5 / 5
1 2 3 4 5 6
1信任安全13 / 25 · 2.6/5

该技能本身为纯文档(SKILL.md),不执行代码、不请求权限;仓库 SECURITY.md 声明本地优先、默认只读、写操作需显式命令、除 opt-in 的 bench --submit 外无网络行为,CI 含 npm audit 与 trufflehog 秘密扫描。扣分项:这些安全声明是仓库层面的自述,静态审查无法验证;技能大量自证性宣传(IANA、Anthropic PR #2759、'One dev'等)无法在文件内核实,发布者身份未经验证。

2可靠稳定10 / 20 · 2.5/5

文档内部一致,命令表清晰,仓库含真实 CI(多平台测试、打包安装冒烟测试、版本一致性断言)和针对性测试文件(如 ai-slop-guard),符合静态上限。扣分项:技能文档钉在 v6.6.0,而 package. 为 7.12.0,命令集与行为可能已漂移;静态审查无法执行关键路径,异常输入的失败反馈质量只能部分从测试推断。

3适用触发8 / 15 · 2.7/5

触发场景明确(创建/编辑/评分 .faf、同步 CLAUDE.md 等),用途清晰。扣分项:能力边界与非适用范围未明确声明;技能版本信息严重过时(v6.6.0 vs 实际 7.12.0),可能造成误触发期望;中文支持未提及;核心依赖 npm/Homebrew 分发在大陆网络可达性存疑。

4规范维护8 / 15 · 2.7/5

结构清晰、分层合理(install、命令表、schema、链接),MIT 许可明确,有 CHANGELOG 和版本化。扣分项:SKILL.md 的版本号(v6.6.0)与仓库实际版本(7.12.0)不一致,属于维护/更新路径缺陷;大量营销化、教条化语言('Trophy doctrine'、'receipts')混入技术文档;单一维护者,长期维护责任不明确。

5有效结果6 / 15 · 2.0/5

技能声称帮助生成/维护项目上下文文件,命令流程(init→auto→go→sync)描述完整,仓库自举(dogfooding)提供一定佐证。扣分项:静态审查无法验证输出可直接使用;宣称的收益('AI never has to guess'、100% 必要性)主要是教条式论断而非对比证据;与手动撰写 AGENTS.md 相比的边际价值缺乏独立评估。

6证据核验5 / 10 · 2.5/5

仓库含真实 CI 工作流与已提交测试套件,覆盖部分关键路径(CLI 冒烟、打包安装、 slop-guard 验证器),达到静态上限。扣分项:外部凭证(IANA 注册、Anthropic PR #2759、下载量、Zenodo 论文)未在文件内可独立核实;技能自身主张与测试覆盖之间的对应关系仅部分可追溯。

证据充分度: 评估于 2026年9月10日 审查版本 41a49c2026c6
使用前请注意
  • 技能文档钉在 v6.6.0,但仓库实际版本为 7.12.0:命令行为、默认值可能已变化,使用前请核对 faf --help 与 CHANGELOG。
  • IANA 注册、Anthropic PR #2759、下载量等'凭证'为外部主张,本审查未独立核实。
  • 仓库声明本地优先且默认只读,但这属于自述;依赖 faf-scoring-kernel 等第三方包的安全性未经独立审计。
  • 安装依赖 npm/Homebrew,中国大陆网络可达性未经验证,可能需要镜像。
  • 大量教条式/营销化语言(Trophy、receipts)混入文档,评估实际功能时请以命令与测试为准。
  • 本评审为纯静态源码审查,未执行任何命令,置信度为低。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

faf-cli 是一个 TypeScript CLI 工具,从你的真实技术栈中检测并生成 .faf 项目上下文文件。.faf 是 IANA 注册的格式(application/vnd.faf+yaml,2025年10月30日),随代码一起进行 Git 版本管理,克隆即得完整 AI 上下文。该技能(faf-expert)指导创建、评分和同步 .faf 文件,目标是 100% Trophy 完整度。作者还维护了配套的 MCP 服务器(Anthropic 官方仓库 PR #2759)。适合希望多个 AI 工具共享同一份事实上下文的开发者。

运行 faf init/auto/go 创建并填充 project.faf,自动检测框架、数据库、包管理器等技术栈;用 faf score 按 0–100% 评分,仅推荐 Trophy(100%);用 faf export/sync 将 .faf 单向渲染为 CLAUDE.md、AGENTS.md、GEMINI.md、.cursorrules;支持 faf compile 将 .faf 编译为 .fafb 二进制;7.2.0 起通过 IANA 注册的 .fafm 格式提供 faf memory 记忆管理;26 个子命令覆盖 diff、hooks、show 等。

  1. 团队开发者:项目同时使用 Claude Code、Cursor 和 Gemini,希望所有工具读到同一份不漂移的上下文
  2. 新项目启动者:在几分钟内从 package. 检测出技术栈并生成 AI 可读的项目说明
  3. 接手旧仓库的工程师:用 faf git <url> 无需克隆即可为任意 GitHub 仓库生成 .faf
  4. 关注 AI 就绪度的维护者:用评分体系确保上下文完整,避免 AI 猜测
  5. 需要持久化 Agent 记忆的用户:用 .fafm 格式迁移 Claude Code 记忆并做确定性召回

这个 Skill 有哪些优点和局限?

优点
  • IANA 注册格式(.faf/.fafm/.fafa),有正式标准和格式论文支撑
  • Git 原生:上下文随代码版本化,克隆即得
  • 工具链完善:bunx/npx/Homebrew 安装,26 个子命令,含编译二进制与 pre-commit hooks
  • 被 Anthropic MCP 服务器目录收录(PR #2759),并列入 Awesome Claude Code
  • 作者自举使用,仓库自带 score=100 的 project.faf
局限
  • 文档声称 v6.6.0 为当前版本,README 却显示 7.12.0,版本信息在 SKILL.md 与 README 之间存在不一致
  • 下载量、'one dev <12 months' 等宣传性指标来自项目自身,未独立验证
  • 反向同步(MD → .faf)在低于 100% 时被锁定,对只想轻量使用的用户较严格
  • 深度依赖 YAML 生态与自身评分体系,已有自定义 CLAUDE.md 工作流的团队需评估迁移成本

如何安装这个 Skill?

无需单独安装即可试用:bunx faf 或 npx faf。全局安装:npm install -g faf-cli 或 brew install wolfe-jam/faf/faf-cli。技能文件位于仓库的 skills/faf-expert/SKILL.md,按 Agent Skills 标准放入你的技能目录即可。

如何使用这个 Skill?

安装后在项目根目录依次运行:faf init 创建 project.faf → faf auto 自动检测并评分 → faf go 引导式访谈补齐人工填写槽位直至 100% → faf export 生成 AGENTS.md/CLAUDE.md 等。也可直接对 AI 助手说:'帮我为这个项目创建并评分一个 .faf 文件,然后同步到 CLAUDE.md'。完整命令集用 faf --help 查看。

这个 Skill 与同类方案有什么区别?

与手写 CLAUDE.md/AGENTS.md 相比,faf-cli 从真实技术栈生成而非人工维护,可减少漂移;README 自述其 dogfooding 模式中 AGENTS.md 为手工维护的'更优简报',说明两者可并存。

常见问题

它是免费的吗?
是。MIT 许可证,开源免费,npm 上已超过 13.3 万次下载。
需要什么运行环境?
需要 Bun 或 Node.js 运行时(bunx/npx 零安装试用),也可通过 Homebrew 安装;编译后的单文件二进制可用于无运行时的 CI/Docker 环境。
如果我的分数达不到 100% 会怎样?
工具仍会给出 Gold/Silver/Bronze 等中间档评分,但 v6.6.0 起官方只推荐以 Trophy(100%)为目标;未达 100% 时 faf sync --pull 会被锁定。
它会修改我已有的 CLAUDE.md 吗?
faf sync 的推送方向始终是从 .faf 单向渲染到 MD 文件;反向回填需达到 100% 才可用,以防止散文漂移覆盖权威数据。

相关 Skills