用途
该技能用于发现代码库中的架构摩擦,并提出“深化机会”——把浅模块重构为深模块,目标是提升可测试性与 AI 可导航性。它强调使用统一的架构词汇(模块、接口、实现、深度、接缝、适配器、杠杆、局部性),避免使用“组件”“服务”“API”“边界”等漂移说法。
主要能力
- 依据项目已有的领域语言与架构决策记录(ADR)来识别好的接缝,不重复推翻已有决策。
- 通过探索型子代理遍历代码库,寻找:理解一个概念需在多个小模块间跳转之处;接口几乎与实现一样复杂的浅模块;仅为可测试性而抽取、真正缺陷却藏在调用方式中的纯函数;跨接缝泄漏的紧耦合模块;未测试或难以通过当前接口测试的部分。
- 应用“删除测试”:若删除模块后复杂度消失,说明它只是直通;若复杂度在 N 个调用方重新出现,说明它确有价值。
- 生成自包含 HTML 报告,写入系统临时目录($TMPDIR,回退 /tmp 或 %TEMP%),文件名形如 architecture-review-<timestamp>.html,并自动打开、告知绝对路径。
- 报告使用 Tailwind 与 Mermaid(均通过 CDN),每个候选以卡片呈现:涉及文件、问题、解决方案、收益(以局部性与杠杆说明,并说明测试如何改善)、前后对比图、推荐强度徽章(Strong、Worth exploring、Speculative),结尾给出首选建议。
- 若候选与现有 ADR 冲突,仅在摩擦足够真实时标注,例如“与 ADR-0007 冲突——但值得重新讨论,因为……”。
使用方式
- 探索:先确定范围(YAGNI)。若用户指定方向则直接采用;否则读取最近约 20 次提交(git log --oneline -20 --name-only)找出热点。先阅读项目领域词汇表与相关 ADR,再用 Agent 工具以 subagent_type=Explore 遍历代码库。
- 呈现候选:生成 HTML 报告到临时目录并打开。此阶段不提出接口,写完文件后询问用户“想深入探索哪一个?”。
- 追问循环:用户选定候选后,围绕约束、依赖、深化模块形态、接缝背后的内容、哪些测试能存留展开讨论。过程中按需内联产生副作用:为深化模块命名的新概念若不在 CONTEXT.md 中则添加;模糊术语被厘清时更新 CONTEXT.md;用户以关键理由拒绝候选时,可提议记录为 ADR,仅当该理由对未来探索者避免重复建议确有必要时才提议。
适用场景
适用于已有一定领域文档与架构决策记录、希望提升可测试性与 AI 可导航性的代码库;尤其适合近期提交集中、存在明显热点的区域。
限制
- 深化机会在无人改动的代码中无法兑现,因此需先确定范围。
- 报告写入临时目录,不落入仓库。
- 不提出接口,接口探索需参考 INTERFACE-DESIGN.md。
- 关于收费、价格、平台支持等具体信息暂未提供。