乐于分享
好东西不私藏

AI驯服70万行代码,实习生才是正确答案

AI驯服70万行代码,实习生才是正确答案
AI编程的喧嚣已经散去,那些"十倍效率"和"终结程序员"的头条,看起来越来越像青春期躁动。
现实世界的挑战从未改变。堆积了十年、二十年的遗留代码库,盘根错节。它们承载着核心业务逻辑,也埋葬了数不清的技术债务。
Skyline项目就是这样一棵古树。
这是华盛顿大学MacCoss实验室维护的核心软件,一套蛋白质组学分析的开源工具。2008年至今,它累积了超过70万行 ,经过无数本科生、研究生和博士后的手。首席开发者Brendan MacLean在其中穿梭了17年。
这样一个系统,引入AI的初步尝试几乎是灾难。每次与Claude.ai的对话都像一次失忆的重启。它不记得项目结构,不理解17年沉淀的领域知识,更看不穿那些不成文的开发规范。
这正是大多数团队在引入AI时碰壁的地方。他们预期一个无所不知的"先知",却得到一个记忆短暂的"过客"。
MacLean的破局点,来自一个简单的视角转换。如果把Claude Code当成一个全能工具,确实令人失望。但如果把它看作一名需要引导和培训的新入职开发者呢?
01
上下文,被遗忘的核心资产
新员工入职第一天,你不会指望他立刻修复核心模块的复杂bug。你会先给他入职文档,介绍项目环境,分配一个范围可控的小任务,让他逐步熟悉代码。
MacLean也是这么做的。AI在大型项目上失效的根源,是上下文的缺失。这种上下文不能依赖易逝的对话历史——它必须是持久化的工程资产。
于是pwiz-ai诞生了,一个独立的代码仓库。
它的精妙之处在于,与Skyline主代码库完全分离。原因很简单:AI的"知识"与项目代码的演进速度不同步。上下文知识需要跨越所有分支和时间点而存在,把它与特定分支的代码耦合,反而是一种限制。一个独立的CLAUDE.md文件,像一份给新人的"入职指南",清晰说明了开发环境设置,指向关键文档和资源。
核心是什么?上下文不再是即用即抛的提示词,而是与源代码同等重要的项目工件。需要被版本化、被维护、被持续迭代。
那个看似无解的"AI无法真正学习我的大型项目"的担忧,就此瓦解。答案不是某种神秘的"学习"能力,而是一个朴素的工程实践:管理上下文。
02
技能库,隐性知识的显性化
有了地图,新人还需要具体的工具和方法论。在软件团队中,这些往往是资深工程师脑中的隐性知识。如何高效调试,代码提交规范是什么,特定的架构约束有哪些。
MacLean的第二步,就是把隐性知识"显性化"。
从技术结构看,每个"技能"是一个独立文件夹,核心是一份SKILL.md文件。YAML frontmatter定义元数据,主体是用自然语言写给Claude的指令。文件夹内可以放辅助脚本和参考文档。
Skyline项目有几个关键技能。一个叫debugging的技能,强行把Claude从"猜测-测试"的低效循环中拉出来。它的指令大致这样:
"调查任何错误时,必须先做根本原因分析,清晰地列出诊断步骤,再尝试修复。"
这条指令编码了一位资深工程师解决问题的思维模式。
另一个是version-control技能,封装了Skyline项目独特的版本控制约定。commit信息格式,Pull Request模板,分支命名规范。任何Claude实例加载后,提交的代码自然符合团队规范。
技能库的本质是知识工程。依赖人的最佳实践,变成了机器可读、可精确执行的指令集。这不仅是AI可靠性的提升,也是团队数字资产的沉淀。
03
MCP,打通数据的感官
上下文和技能库给了AI"大脑"。但它还需要"感官"来与真实世界交互。一个无法读取测试结果、无法查看错误报告、无法访问数据库的AI,终究是纸上谈兵。
MCP在这里登场。Model Context Protocol,一种轻量级协议,让AI模型与外部的工具和服务交互。
MacLean团队用它打通了Claude与项目基础设施的连接。
最典型的例子是每日晨报系统。Claude自己写了一个Python的MCP服务器。它连接三个数据源:科学数据管理的LabKey Server、团队邮件列表、GitHub发布标签。每天早晨自动运行,拉取夜间测试结果,抓取用户支持帖,获取最新发布信息,整合成一份清晰摘要,发给MacLean的收件箱。
另一个例子更有创造力。Skyline有超过2000张教程截图,维护成本极高。团队利用Claude Code实现了截图生成自动化。更进一步,Claude写了一个 ,专门用来"看懂"图像差异。接收两张图片,返回像素级差异图。通过这个接口,Claude获得了"视觉",能自动识别新版界面与旧截图的细微变化。
这些MCP服务器,把原本需要人工执行的数据整合与分析工作,变成了一组可随时调用的工具。AI不再是被动的代码生成器,而是主动感知项目状态、与基础设施互动的智能体。
04
冰山融化
这种系统性方法带来的回报很具体。
一个搁置了一年的文件视图面板项目,前任开发者离职后,代码几乎成了化石。MacLean与Claude Code联手,两周完成开发。最终提交由Claude联名。
一个三年前因开发者流失而停止维护的夜间测试管理模块,MacLean在Claude帮助下,不到一天就加上了多年来一直想要的功能,用他从未掌握过的CSS技术更新了页面布局。
变化也渗透到团队。一位起初对AI编程工具持怀疑态度的实验室成员,独立使用Claude Code构建并发布了一个全新的离子淌度数据可视化扩展。MacLean观察到,几乎每个人都在尝试那些有趣的新功能,而这些功能以前,他们可能觉得根本没时间去碰。
精确衡量这种生产力提升并不容易。Skyline没有发布"提交速度提升XX%"这样的量化指标。但Anthropic内部报告的数据可以参考:引入Claude Code后,工程师的人均PR数量提升了200%。SWE-bench这样的严谨基准也证实了顶级模型在解决真实软件工程问题上的能力。
更重要的不是数字,而是范式的转变。
十七年的开发经验,最终指向一个朴素的结论。你不会把70万行代码丢给一个新人,然后期望他第一天创造奇迹。你会给他引导,给他工具,看着他从一个小项目开始,逐步成长。
对待AI,也是如此。
这一点都不神秘。它真正揭示的,是一种与AI协同进化的工程文化。通过有意识地构建和维护上下文、技能库与MCP集成,一个团队能把最宝贵的领域知识和最佳实践沉淀下来,形成一套活的、可执行的"项目记忆"。
这个记忆系统,由人类的智慧定义,由AI的算力执行。它超越任何个体的生命周期,让庞大而古老的代码库重新变得柔软、易于管理。
AI不是魔法,是新来的实习生。负责不负责,取决于你怎么带它。

相关学习资料