别再把架构靠嘴传了:我用 fcontext 让新同事的 AI 第一天就读懂项目

10 阅读8分钟

别再把架构靠嘴传了:我用 fcontext 让新同事的 AI 第一天就读懂项目

很多团队觉得,新同事 onboarding 慢,是因为项目太复杂、代码太多、业务太绕。

但这两个月我越来越确定,AI 编程时代里更大的问题其实不是这个。

真正拖慢 onboarding 的,是团队没有把项目状态持续沉淀下来。

结果就是:

  • 新同事来了,要重新讲一遍架构
  • 新开一个 AI 会话,要重新讲一遍项目
  • 换一个 AI 工具,又要重新讲一遍边界和坑

表面上是在带新人,实际上是在重复做“项目认知迁移”。

我最近用 fcontext 跑通了一套更顺手的做法:

不是继续优化 prompt,而是把架构原则、需求边界、历史决策直接沉淀进项目,让新同事和他的 AI 一起继承。

这篇不聊概念,直接讲我怎么把这件事做成一套工程实践。

先说结论:onboarding 慢,很多时候不是人不行,而是项目状态没被交付出去

以前我也以为,新同事第一周效率低,是正常现象。

拉代码、配环境、跑项目、熟悉目录、看历史 PR、问老员工,这是传统流程。

问题是,现在大家都在用 Cursor、Copilot、Claude Code 这类 AI 工具。

所以 onboarding 已经不是单纯“教一个人”,而是同时在做两件事:

  1. 让新人理解项目
  2. 让新人的 AI 也理解项目

而第二件事,很多团队其实还没认真面对。

如果团队知识只存在于:

  • 老员工脑子里
  • 群聊记录里
  • 一些没人维护的 wiki 里
  • 几份 PDF 和 DOCX 文档里

那新人就算很努力,他的 AI 也只能从一堆零散信息里瞎猜。

这时候真正的问题不是“模型够不够强”,而是:

项目状态有没有被持续维护,能不能被新人和 AI 一起继承。

以前的 onboarding,为什么总像在重复做口述架构评审

你应该见过这种场景。

新同事第一天问你:

这个项目用户鉴权到底走哪一层?

你开始讲:

  • 为什么这块不能直接改 Redis 缓存
  • 为什么网关层要多一道兼容逻辑
  • 为什么某个老接口虽然丑,但暂时不能删
  • 为什么需求文档里那句话其实不能按字面理解

讲完之后,他转头去问 AI:

帮我给这个模块加个 Google 登录。

然后 AI 一本正经地给出一套看似很对、实际完全不符合现有架构的改法。

于是你又得再来一次。

这就是很多团队真正贵的地方:不是代码写慢,而是认知传递一直在重跑。

以前这个成本只是发生在人和人之间。

现在变成了:

  • 老员工对新人讲一次
  • 新人再对自己的 AI 讲一次
  • 换个 AI,再讲一次

如果每个人的 AI 都是一座信息孤岛,团队规模越大,这个成本只会放大。

问题不在 prompt,而在项目状态没有被持续沉淀

很多人一看到 AI 理解错项目,第一反应是:

  • 是不是 prompt 写得不够完整
  • 是不是模型还不够强
  • 是不是上下文窗口还不够大

这些当然有影响,但我现在更倾向于把问题定义成另一件事:

项目状态默认没有落成一套可继承、可维护、可复用的上下文系统。

这件事可以拆成几类断裂:

  1. 跨会话断裂:新会话一开,项目背景又要重讲
  2. 跨工具断裂:Copilot 里聊过的东西,Claude 不知道
  3. 跨成员断裂:每个人给 AI 喂的是不同版本的项目认知
  4. 跨文档断裂:PRD、方案文档、表格规范根本进不了 IDE 里的 AI
  5. 跨时间断裂:上个月踩过的坑,这个月又得重踩一次

如果问题定义在这里,那解决方向就不该只是“把 prompt 写得更长”,而应该是:

把项目知识变成一种可以随着仓库持续流动的资产。

fcontext 做的事情,不是让 AI 更聪明,而是让项目状态更容易继承

fcontext 的思路其实很朴素。

不是把记忆塞进某个单一模型里,而是把上下文结构化地落到项目目录里。

初始化之后,项目里会有一个 .fcontext/

.fcontext/
  _README.md       # 项目摘要和关键原则
  _workspace.map   # 项目结构映射
  _topics/         # 讨论沉淀下来的关键结论
  _requirements/   # 需求、任务、演化关系
  _cache/          # PDF / DOCX / XLSX 转成的 Markdown 缓存

你可以把它理解成一层给人和 AI 共用的“项目状态面板”。

对于 onboarding 来说,最关键的是这三类信息:

  1. _README.md 让 AI 先知道这个项目是干什么的、结构大致怎样、哪些原则不能碰。

  2. _topics/ 让 AI 读到团队已经讨论过的坑、限制和历史决策。

  3. _cache/ 让 AI 能看懂 PDF、DOCX、XLSX 里的产品和规格资料,而不是靠文件名瞎猜。

如果团队还有一套沉淀好的领域知识,还可以直接做成 experience pack,让新同事导入。

我现在更推荐的一套 onboarding 工作流

这套流程不复杂,核心是不要再把知识传递全靠人口述。

第一步:先把项目上下文落下来

老员工平时开发时,把关键背景和结论沉淀进 .fcontext/

比如:

  • _README.md 里补项目摘要和关键模块关系
  • _topics/ 里保留重要架构讨论和踩坑结论
  • _requirements/ 里把需求变更关系挂起来

第二步:把文档接进 AI 能读的格式

如果项目里有 PRD、设计稿说明、接口文档、Excel 规则表,先跑:

fcontext index docs/

这样这些二进制资料会被转成 Markdown,放进 .fcontext/_cache/

以后新人和 AI 就能直接基于这些文档问问题,而不是靠你手工转述。

第三步:新同事接入时,不再从 0 开始

新同事拉完代码后,先接入 .fcontext/,再打开 AI IDE。

如果团队已经准备好了经验包,还可以直接导入:

fcontext experience import http://team-server/backend-domain.zip

或者从 Git 仓库同步:

fcontext experience import git@github.com:our-org/payment-domain-knowledge.git

第四步:先让 AI 读项目状态,再让它开始干活

这一步非常关键。

不是新人直接问:

帮我写一个 Google 登录。

而是先让 AI 在当前项目上下文里理解:

  • 现在的鉴权链路是什么
  • 哪些模块不能随便动
  • 需求文档里有哪些边界条件
  • 团队之前为什么做过某些取舍

这时候,AI 不再是一个刚进门的陌生人,而更像一个已经读过项目背景材料的新同事。

一张表看 before / after

场景以前的做法现在的做法
新人了解项目结构找老员工口头讲先读 .fcontext/_README.md_workspace.map
新人了解历史坑翻群聊、问人直接看 _topics/ 里的结论沉淀
AI 理解需求边界人工转述 PDF / DOCXfcontext index 后直接读取 _cache/
团队共享知识各自记各自的.fcontext/ 随仓库维护,或导入 experience pack
首个 PR 的稳定性很依赖带教质量更依赖项目状态是否被沉淀完整

对我来说,最大的变化不是“新人突然变天才了”,而是:

团队终于不需要每来一个人,就重新发明一次项目认知。

用一张图看这件事为什么成立

flowchart LR
    A[老员工的架构经验]
    B[需求文档和规格资料]
    C[历史讨论与踩坑结论]
    A --> D[.fcontext]
    B --> D
    C --> D
    D --> E[新同事]
    D --> F[新同事的 AI]
    E --> G[更快理解项目]
    F --> H[更稳定的首个交付]

这里最关键的一点是:

团队传递的不再只是代码,而是项目状态本身。

这套方法的边界也要说清楚

为了避免文章写得像广告,这里把边界直接讲明白。

1. 它不能替代架构设计

fcontext 不能帮你做正确架构,它只能帮你把已经形成的架构认知持续交付出去。

2. 它不能保证 AI 永远正确

如果上下文本身过期、错误、矛盾,再好的模型也会在错误地面上推理。

3. 如果团队不维护上下文,这套东西也会失效

这类工具的前提不是“装一下就完了”,而是团队愿意把关键知识顺手沉淀下来。

4. 更适合有重复解释成本的团队场景

如果你只是单人写 demo,这套方法感知不会特别强。

但如果你有这些场景,它会明显更有价值:

  • 新人 onboarding 频繁
  • 多人一起用 AI 编程
  • 需求和架构经常演进
  • 项目里有大量 PDF / DOCX / Excel 文档

最后一句话总结

很多团队 onboarding 慢,不是因为新人学得慢,也不是因为 AI 不够聪明。

而是因为项目状态没有被当成一项可以持续维护、持续继承、持续交付的资产。

fcontext 对我最有价值的地方,不是让 AI 一次读更多,而是让新人和他的 AI 站在同一块地面上开始工作。

如果你们团队现在最痛的事情,也是每来一个人就得重新讲一遍架构、重新解释一遍需求、重新让 AI 熟悉一遍项目,那这类做法值得你认真试一次。

GitHub:github.com/lijma/agent-skill-fcontext

你们团队现在 onboarding 最耗时间的,是代码结构、需求背景,还是历史决策?