Surface Forks 是一个面向实现、设计、重构与调试任务的技能,适用于任意语言和代码库。其核心操作是:在动手实现前先找出改动与系统既有承诺之间的碰撞,再为同一目标列出不同路径。
它强调“搜索而非预测”:不要估算回滚难度,而是在改动任何命名了领域概念的地方之前,定位该概念已被承诺的所有位置,例如定义、构造函数、校验器、对其分支的匹配、序列化、以及陈述规则的测试。当改动会导致重复、拆分、矛盾,或放宽/收紧不变量时,即存在一个 fork。
发现碰撞后,应在实现前用几行报告:碰撞对象的具体名称与位置、可选路径及各自影响、所选路径及其遗留的不一致,然后继续推进,不阻塞。仅当所有路径都与既有断言矛盾,或碰撞揭示请求本身有歧义时才停下询问。
解决后应把结论编码下来,使未来改动会明显撞上它,例如让被矛盾的状态不可表示、编写陈述规则而非行为的属性或不变量测试、在边界调用校验器并附上文字说明。
它同时给出校准与失败模式:若报告的都是用户已知的碰撞,说明搜索太浅;应避免类别式碰撞、事后披露、单路径框架、为显得周全而夸大,以及只把选择交回而不给建议。资料未提供安装命令、平台、收费或价格信息。