Absorb——收编前人成果,别重复造轮子
Effort: light — 一次仓库收编(元数据探测 + 浅 clone),外加对移植成果的一次跨家族评审。消除:重新发明前人早已解决的能力——那个从零造出来、每个 bug 都得你自己背的复制品。
能力才是王道。 仓库只是能力的载体。当你需要的东西已经有现成项目做到了,不要从零造一个复制品,也不要 clone 过来直接粘贴。找到最好的前人成果,把能力抽出来,按你自己的 harness(运行框架)改造重写,并注明脚手架出处。引用是事实陈述,不是装饰。
什么时候用
- 有人让你加一个能力(工具、技能、agent、流水线),而开源界大概率已经解决过。
- 你正准备
git clone然后原样复制代码——停,改走这条路。 - 只是一段代码片段、一个配置值、一次查资料?跳过本技能,直接读就行。
步骤
- 先找前人成果。 动手前先搜索。自己发明的复制品比收编来的脚手架更糟:你继承不到任何实战检验,还得独自背下所有 bug。
- 读到 README 之外。 通过平台 API 拉项目元数据(license、活跃度、语言)。浅 clone 到临时目录。读代码,读测试。README 是营销,代码才是真相。
- 过信任关卡。
- *License:*宽松协议(MIT / Apache / BSD / MPL)= 可以放心改造。 Copyleft(GPL / AGPL)= 只学思路——改造它的想法,绝不复制它的代码。 没有 license = 按"保留所有权利"对待,只学思路。 含非商用条款 = 硬阻塞,找你的人类拍板。
- *可疑扫描:*grep 排查 cloak / spam / 刷好评 / 诈骗类模式。发现就大声标出。
- *不装野依赖:*绝不
pip install/npm install未经审查的依赖(typo-squatting 拼写仿冒是真实存在的供应链攻击)。改成在你自己的原语之上写一层薄代码。 - *能力是真的吗?*用独立证据核实宣传。卖家的博客是主张,不是证据。结论四选一: 真实 / 吹嘘 / 骗局 / 无法核实。
- *出口受控:*改造后版本的一切外部请求都必须限流、缓存、可随时叫停。
- 拆解成能力地图。 项目提供的每一项能力都记下:做什么、怎么做、承重的接缝在哪、 哪些是臃肿或风险、你自己的栈里有什么可复用、最终是原生落地还是套一层薄适配器。 每一项能力都要保留,或拿出证据否决。悄悄丢掉一项能力就是缺陷。
- 写改造规格。 要搭的接缝、要砍的臃肿(大声记录,绝不悄悄删),以及每项能力一条 会失败的契约测试——断言真实的副作用:一个文件、一行数据库记录、一份真实输出。 只允许 mock 付费外部 API 的传输层,逻辑绝不 mock。
- 红灯先行地重建。 先提交会失败的测试,再一路构建到整条接缝全绿。由与构建者不同 家族的模型来评分——构建者永远不给自己的活打分。
- 注明出处并归档。 在能力落地的地方写下脚手架致谢:作者、项目、license、哪些是 借来的(脚手架)、哪些是你的(改造设计)。不编造致谢,也不抹掉致谢。
硬规则——踩中任何一条即失败
- 原样复制代码,而不是改造能力本身。
- 从没搜过前人成果就造复制品。
- 信 README 或营销页面,不信代码。
- 装野依赖,而不是改造它的技术思路。
- 复制 copyleft 或无 license 的代码(永远只学思路)。
- 丢掉一项能力却没写下书面否决。
- 能力测试搞 mock 剧场——测试必须触碰真实副作用。
- 没写脚手架致谢就发布。
搭配使用
- red-first——守护每项能力的契约测试。
- sniper-testing——真实副作用,不搞 mock 剧场。
- blind-tribunal——对这次移植做跨家族评审。
- decision-bar——license 阻塞和品味判断找你的人类,其余一律执行。