知识复利:一次教训吃一辈子,这套知识复利系统把我惊到了
一件事情学会之后,后面每次干活都能省点力。这不是鸡汤,是能落地的东西。那些写得好的团队,不是因为他们记性好,是因为他们把东西存对了地方,找得回来,还能保持最新。
每个工作都要让下一步更简单
代码写得好,产品会变好。但这个好只停留在结果上,写代码的过程没变简单。下一次遇到类似的问题,还得从头想一遍。那什么东西能让过程变简单?是知识。每次解决一个问题,把来龙去脉写清楚,放对位置,下次用到的时候一抓就出来。
这句话里最难的不是“写清楚”,是“一抓就出来”。很多团队事故报告写了一堆,往wiki里一丢,再也没人翻过。原因很简单:没人记得去翻。这套系统不一样,它把“翻旧账”做成了五个步骤里自带的一环。做计划之前先搜一搜解决方案文件夹,看以前有没有人踩过同样的坑;做代码评审的时候自动对照旧经验检查;其他步骤也一样,进门前先读记忆。
流程长这样:你干活的时候,任何一步都能把新学会的东西存进去。存完之后,后面任何一步都会自动把它读出来当参考。计划阶段会搜,评审阶段会对照。不是靠自觉,是工具就这么设计的。
一个教训长什么样
能复利的知识,最小单位叫“教训”,其实就是一个markdown文件,记录一次解决了的问题,放在解决方案文件夹下面。给你看一个真东西,这是整个仓库里最值钱的一个教训的开头部分:
title: 交互菜单的路由逻辑必须写在SKILL.md主文件里,不能放在参考资料里
date: 2026-04-28
category: skill-design
module: compound-engineering
problem_type: architecture_pattern
component: ce-plan
severity: medium
applies_when:
- 写一个技能,最后用AskUserQuestion让用户选菜单
- 纠结每个选项的路由逻辑放主文件还是放参考资料
- 评审一个技能,发现菜单渲染完后代理就停了,没执行任何操作
tags: [skill-design, menu-routing, skill-md-vs-references, ce-plan,
extraction-rule, load-bearing-rules]
related_issue: https://github.com/EveryInc/compound-engineering-plugin/issues/714
每个字段都不是凑数的,都是为了搜索服务的:
标题:最直接的搜索目标,第一个被查。
标签:同义词拓展,搜的时候grep一把“menu”或“routing”就能命中,不用打开文件。
模块和组件:快速过滤,“这东西跟我现在碰的区域有没有关系?”
问题类型:走哪条轨道,下面马上讲。
适用场景:未来读到的人看这三行就知道要不要继续往下看。
严重程度:搜出来一堆的时候排个序。
日期:老教训自动带上怀疑滤镜,旧的未必还管用。
问题类型分两条轨道:
Bug轨道记录坏了的东西:运行时错误、测试失败、性能问题、安全漏洞、集成故障、逻辑错误……
知识轨道记录决定或发现的东西:架构模式、设计模式、工具选型、约定规范、工作流问题、最佳实践……
只记bug的记忆系统会漏掉大部分团队学到的经验。这个仓库的记忆主力是知识轨道。现在仓库里存着三十五个教训,分类一看:技能设计占大头,最佳实践也不少,还有集成类、工作流类、约定类、开发者体验类。
教训上面还有一层叫模式文档,是从好几个教训里提炼出来的通用规则,杠杆率更高,但风险也更大,因为过时了更害人。这个仓库目前还没升级过任何一条,那个位置空着等够格的教训出现。
教训怎么出生的
存教训的技能叫“复利命令”,它的核心纪律是时机。必须在修完bug的同一个会话里写,趁那些失败的尝试、真正的根因、恍然大悟的瞬间都还在脑子里。晚一个星期,那些细节就没了,写出来的东西就缩水成概要。
跑一次复利命令,它会派出好几个帮手,主程序保持干净:
一个帮你分析该归哪类、文件名是什么、骨架怎么搭;
一个帮你写正文,问题、调查过程、解决方案、怎么预防;
一个去查有没有重复的,有就合并或交叉引用,不让知识堆成山。
最后只有主程序往文件夹里写一个文件,帮手们不碰任何跟踪的文件。
存教训不止一个入口。修完大坑之后跑完整交互命令是主要方式,但知识也会从别的地方流进来:
调试命令修完根因后也可以顺便存一笔;
视角命令下完判定后说一句“复利一下”,决策就自动变成学习文件存进去;
小教训走轻量模式,跳过查重,后面刷新周期会帮你收尾。
跟踪一个教训的一生最能看清这套循环怎么转。就拿上面那个菜单路由的事来说:
七百一十四号问题里,计划命令渲染了菜单,选了“开始工作”之后代理就傻站着不动了。根因是每个选项的路由逻辑放在参考资料文件里,代理根本没加载那个文件。修完跑复利命令,生成了一个教训文件叫“菜单后路由必须内联”。顺带写了个回归测试,还在团队指南里加了一条教条:“内联触发逻辑,别内联具体内容”。
一次事故,四个永久产物:一个修复、一个教训、一个测试、一条教条。这就是“复利”的实感:不是文档在堆积,是一整类故障被退休了。
知识的地图
系统知道的东西不是全放一个地方。不同层次的区别在于一个轴:耐久度。
能丢的放临时目录,丢了不心疼。不能丢的放git里,有版本、有评审、能追溯。
解决方案文件夹里三十五个教训,是复利记忆的核心。概念文档里放共享词汇表,只定义术语,不定规格。策略文档放方向和当前轨道。计划文档和脑暴记录放决策历史,回答“为什么”。
还有个仓库信息缓存,每次提交重新生成一次,九个技能共用,但它不是真相来源,删了也没事,随时能重新算。
原则就一句话:丢了会心疼的知识放git里,丢了能重算的放临时目录。
地图告诉了你什么东西在哪,但有个细节地图装不下:每一层怎么长。解决方案文件夹回答“之前有人碰过这个吗”,靠复利命令长。概念文档是复利的副产品,某个概念的意思在讨论里定下来之后,当天就写进去,不用等。策略文档被脑暴和计划命令当参考读。计划文档执行完之后就不再编辑,所以几个月后还能看懂当初为什么那么干。
过去的知识怎么找到你
这套系统里没有任何东西会主动推送知识给你。没有摘要邮件,没有“请读wiki”的提醒。五个技能在它们做决定的那个瞬间从记忆里拉东西,走的是同一个检索流程。
检索流程首先是grep,因为记忆的设计目标就是不用打开文件就能搜:
所有教训文件都在硬盘上,并行grep它们的标题、标签、模块、问题类型;
筛出一小撮候选,只读文件头那三十行;
全读赢家,提炼出五条发现,塞进调用者的上下文里;
每次都重新查,不缓存,因为到现在为止什么都没真正读过。
谁在拉这些知识,拿来干什么:
计划命令做计划之前,教训变成约束和关键技术决策。
脑暴命令定需求范围的时候,过去的决策帮它框住边界。
代码评审命令每次都自动开,每个相关的教训都要对照实际改动打一个“遵守了”或“违反了”的标签。
构思命令生成点子的时候,过去的死胡同帮它修剪想法空间。
调试命令猜根因的时候,已知的错误模式排在最前面优先试。
评审的整合是最狠的一环:违反教训会被当成一个带行号的问题,不是建议。这不是客气话,是真这么判。
两个信任原则保证检索不骗人:
现场证据优先。如果教训声称什么,但当前代码跟它矛盾,检索器会标记冲突而不是照搬旧话。教训可以被取代,一条自信但错了的记忆比没有更糟。
日期是信号。每条教训都带着日期,调用者可以掂量掂量世界是不是已经变了。
知识怎么保持新鲜
光长不更新的记忆迟早会撒谎。代码往前跑,教训原地站着。三个反作用力让记忆保真,节奏各不相同。
最便宜的一层是读的时候,上面已经讲过了。
写的时候,往概念文档里加词或改词,必须顺带检查这个词引用的兄弟术语有没有漂移,有证据就修。范围故意限死,只查邻居,不凭直觉审整个文件。
需要的时候跑刷新命令,它最关键的属性是“不是默认后续动作”。有理由才跑:新教训跟老的矛盾了,某个模式文档看着过时了,某个区域的文件全比一次大重构还老。而且要带范围限定,比如“刷新支付模块”,因为全量刷新几乎从来不是正确的投入。
整个循环讲一个真实故事
昨天这个仓库发了一个新技能,叫“解释命令”。从头到尾看知识系统怎么在每个阶段起作用,全是真事:
脑暴阶段从共享缓存里拉仓库信息,缓存没命中就现场生成一份,给后面九个技能留着用,然后扫了一遍有没有前人经验,才问第一个问题。
计划阶段的检索浮出五个教训当输入,三个标了“写代码时必须遵守”:菜单路由内联、参数传递可移植性、脚本目录锚点。计划里的关键技术决策直接引用了它们。
写代码阶段全照着做了,教训里规定要加守卫的地方,新技能都配了自己的镜像回归测试。
评审阶段对照八个教训查了一遍改动,全遵守了。另外,它的校验器用了团队指南里那条教条,直接拒绝了评审人提的一个“修复方案”——那个方案会重新引入原来的故障模式。记忆不只是帮了忙,它还主动挡了枪。
词汇同时复利了:脑暴确定意思的当天,“解释器”和“检查点”就进了概念文档。
残留物变成了未来的知识:有一个评审发现被故意延后,建了个新问题。如果修这个问题能教点长久有用的东西,复利命令就会产出第三十六个教训,循环重新开始。
整个过程中没有任何一步需要谁“记得”去查记忆。
为什么这算复利,以及躲开了哪些坑
金融的比喻不是瞎套的。每个教训是本金,每次检索改变了一个决策是利息,模式文档是再投资,几笔利息合并成收益率更高的工具。前面那个三十五个教训的统计就是资产负债表。
知识系统通常栽在几个坑里:
只写不读的墓地。对策:检索是五个步骤自带的,不是靠人养成习惯。
找不着的记忆。对策:文件头就是为grep设计的,标签、模块、问题类型、适用场景。
自信的过时。对策:读的时候现场证据优先,日期摆出来,发现矛盾才刷新。
重复散落。对策:每次写之前先查重。
延迟衰减。对策:复利是流程的最后一步,趁上下文新鲜的时候跑。
拍脑袋的模式。对策:模式文档是从多个教训里提的,不是凭空写的。
这些防御没一条是英雄主义的大动作。每一招都是小结构设计:一个文件头字段、一个常驻小助手、一条谁写哪个文件的规则。整件事安安静静的核心是:复利不是文档文化,是架构。知识之所以能流动,是因为管道已经铺在大家每天都在用的工具里了。
这场追踪的素材来自真实仓库,二零二六年七月:解决方案文件夹、复利命令、刷新命令、检索助手、昨天刚发的解释命令。
作者单位:Every Inc. 复合工程团队