用途:在代码库中揭示架构摩擦,提出“深化机会”候选,即把接口几乎与实现一样复杂的浅层模块,转化为小接口背后承载大量行为的深层模块。适用于想改进架构、找重构切入点、整合紧耦合模块、让代码更可测试与可被 AI 导航的场景。
术语体系:统一使用模块、接口、实现、深度、接缝、适配器、杠杆、局部性等词,避免漂移成“组件/服务/API/边界”。核心判据包括删除测试(删除模块后复杂性是集中还是转移)、接口即测试面、一个适配器是假设接缝、两个适配器才是真接缝。
流程:先读项目领域词汇表与相关 ADR,再用 Agent 工具(subagent_type=Explore)有机遍历代码库,记录理解一个概念需跳转多少小模块、哪些模块浅层、哪些纯函数只被为可测试性提取而真实缺陷藏在调用方式、哪些紧耦合模块在接缝处泄漏、哪些部分无测试或难以测试;对疑似浅层模块应用删除测试。随后输出编号候选列表,每项含文件、问题、方案、收益(以局部性与杠杆表述并说明测试如何改善),使用 CONTEXT.md 词汇描述领域、LANGUAGE.md 词汇描述架构。此阶段不提出接口,只问用户想探索哪些。
用户选定一个候选后进入盘问循环,共同走设计树:约束、依赖、深化模块的形状、接缝之后是什么、哪些测试能存活。副作用内联发生:命名 CONTEXT.md 中没有的概念时把术语补进去(文件不存在则懒创建);对话中精炼模糊术语时立即更新;用户以有分量的理由拒绝候选时,可询问是否记为 ADR 以免未来审查重复提出,临时性或自明理由跳过。想探索替代接口可参考 INTERFACE-DESIGN.md。
限制:候选与现有 ADR 冲突时只在摩擦足够大值得重开时才指出并清晰标记,不罗列 ADR 禁止的所有理论重构。未提供具体安装命令、收费或平台信息。