用途
“tracing knowledge lineages”(追踪知识谱系)用于理解想法和方案是如何随时间演化的,从而为新问题找到过去的解决方案,并避免重复过去的失败。它的核心原则是:在评判当前方案或提出“新”方案之前,先追溯其谱系。
何时追溯谱系
在以下行动之前应当先追溯:提出替换现有方案;否定“旧”模式;实施“新”想法;宣布某事物为“最佳实践”。
触发追溯的红旗信号包括:“这看起来过于复杂”;“为什么我们不直接……”;“这是现代做法”;“我们应该切换到 X”。
主要能力
该技能提供四种追溯技术。
技术一:决策考古。查找当前方案被选定的时间和原因,可检查决策记录(常见位置:docs/decisions/、docs/adr/、.decisions/、architecture decision records)、搜索对话(skills/collaboration/remembering-conversations)、使用 Git 考古(git log --all --full-history -- path/to/file)、询问作者(如可用)。文档格式包含采用时间、采用原因、替代了什么、为何替代、驱动变化的上下文。
技术二:失败尝试分析。当有人说“我们试过 X,但没用”时,不要假定 X 有根本缺陷,而是追溯:当时的上下文是什么;具体失败的是什么;为何当时失败;上下文是否已改变。文档格式包含尝试时间、动机、具体失败模式、根本原因、当时约束、当前差异、是否值得重新考虑。
技术三:复现检测。评估“新”方法时,搜索历史先例、识别真正的新意、理解其消亡原因、检查复活条件是否具备。列举的常见复现模式包括:Microservices ← Service-Oriented Architecture ← Distributed Objects;GraphQL ← SOAP ← RPC;Serverless ← CGI scripts ← Cloud functions;NoSQL ← Flat files ← Document stores。
技术四:范式转移映射。重大架构变化发生时,映射转移前后的思维方式、催化剂、得与失、保留与遗忘的教训。
使用方式
搜索策略方面,可在决策记录、对话历史、Git 历史、Issue/PR 讨论、文档演化、团队知识中查找谱系。提供的搜索模式包括:git log --all --grep="introduce.*caching";git log --diff-filter=D --summary | grep pattern;git log --all --grep="remove.*websocket"。
提出变更时,文档应包含当前方案的谱系、对“新”方案的过往尝试、以及基于历史上下文的决定(继续/推迟/放弃)。
适用场景
适用于工程与架构决策、方案评审、技术选型、重构或替换现有方案之前,以及需要判断某个“新”方法是否为旧方法复现的场合。
限制与注意事项
该技能强调,忽略历史的典型表现包括:“让我们直接重写”“旧方法显然是错的”“没人再用 X 了”、因“旧”而否定、因“新”而采纳;遇到这些应先停下来追溯谱系。同时它说明可以在上下文根本改变、新技术出现、原有约束消失、团队能力变化、学到关键教训、原推理有误等情况下覆盖历史,但必须记录为何覆盖。资料中提供了 Good Lineage Tracing、Bad Lineage Ignorance、Revival with Context 等示例。