用途
该技能用于发现代码库中的架构摩擦,并提出“深化机会”(deepening opportunities):把浅模块重构为深模块,目标是提升可测试性与 AI 可导航性。它由项目的领域模型驱动,并建立在共享的设计词汇之上。
主要能力
- 在扫描前先确定范围,遵循 YAGNI 原则,优先关注近期变更频繁的代码区域。
- 读取项目领域词汇表(GLOSSARY.md)与相关 ADR。
- 派生子代理有机地遍历代码库,记录摩擦点,例如:理解一个概念需要在多个小模块间跳转;模块浅、接口复杂度接近实现;纯函数仅为可测试性而抽取但真实缺陷藏在调用方式中(缺乏局部性);紧耦合模块跨接缝泄漏;未测试或难以通过当前接口测试的部分。
- 对疑似浅模块应用“删除测试”:删除它会集中复杂度,还是只是转移复杂度?“集中”即为目标信号。
- 将候选方案生成为自包含 HTML 报告,写入操作系统临时目录(从 $TMPDIR 解析,回退到 /tmp 或 Windows 的 %TEMP%),文件名为 architecture-review-<timestamp>.html,并自动打开、告知绝对路径。
- 报告使用 CDN 引入的 Tailwind 进行布局与样式,使用 CDN 引入的 Mermaid 绘制图/流/序列图,并混合手工 CSS/SVG 视觉。每个候选方案包含前后对比可视化。
- 每个候选卡片包含:涉及文件/模块、问题、解决方案(平实英文)、收益(以局部性与杠杆说明,以及测试如何改善)、前后对比图、推荐强度徽章(Strong / Worth exploring / Speculative)。
- 报告结尾给出“Top recommendation”部分,说明优先处理哪个候选及原因。
- 使用 GLOSSARY.md 的领域词汇与 /codebase-design 的架构词汇;若候选与现有 ADR 冲突,仅在摩擦足够真实时呈现,并在卡片中明确标注(如警告提示)。
- 写入文件后询问用户想探索哪一个,不提前提出接口。
使用方式
- 探索:若用户指定方向则采用;否则通过 git log --oneline 回溯提交历史寻找热点。先读 GLOSSARY.md 与相关 ADR,再派生子代理遍历代码库。
- 以 HTML 报告呈现候选:写入临时目录并打开,报告含卡片与 Top recommendation。
- Grilling 循环:用户选定候选后,调用 Skill 工具的 "grilling" 走决策树(约束、依赖、深化模块形态、接缝背后内容、哪些测试存活)。副作用内联发生:命名新概念时更新 GLOSSARY.md(文件不存在则惰性创建);对话中锐化模糊术语时即时更新;用户以有分量的理由拒绝候选时,可提议记录为 ADR(仅当未来探索者确实需要该理由以避免重复建议时)。若想探索替代接口,调用 "codebase-design" 并使用其 design-it-twice 并行子代理模式。
适用场景
- 代码库近期变更频繁、存在架构摩擦的区域。
- 需要提升可测试性与 AI 可导航性的模块。
- 希望以可视化报告形式评审重构候选并逐步敲定方案。
限制
- 遵循 YAGNI,不追求理论上的全面重构。
- 不提前提出接口,需用户选定候选后再进入 grilling。
- 与 ADR 冲突的候选仅在摩擦真实时呈现,不列出所有被 ADR 禁止的理论重构。
- 报告写入临时目录,不落入仓库。
- 具体收费、价格、平台支持等信息暂未提供。