# Code Arch Optimizer

> 探索代码库，识别架构摩擦点，并通过“加深浅模块”来提升可测试性，最终输出包含多种接口设计方案的详细重构建议与GitHub Issue RFC。当用户希望改进架构、寻找重构机会、合并紧耦合模块，或让代码库更易于AI导航和理解时触发。

- Skill: `rongxinzy/code-arch-optimizer` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add rongxinzy/code-arch-optimizer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rongxinzy/code-arch-optimizer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: rongxinzy (https://skillmd.com/u/rongxinzy)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/rongxinzy/code-arch-optimizer

---


# 代码库架构深度重构

像 AI 一样探索代码库，发现架构摩擦点，挖掘可测试性改进机会，并以 GitHub Issue RFC 的形式提出模块深化重构方案。

**深模块**（John Ousterhout 著《软件设计哲学》）指接口简洁但隐藏了大量实现细节的模块。深模块更易测试、更便于 AI 导航，并且可以在边界处测试，而无需深入内部。

## 流程

### 1. 探索代码库

使用 Agent 工具（subagent_type=Explore）自然地浏览代码库。不要机械地套用规则——以有机的方式探索，留意你遇到摩擦的地方：

- 哪里理解一个概念需要在许多小文件之间来回跳转？
- 哪些模块过于浅薄，接口几乎和实现一样复杂？
- 哪些纯函数只是为了可测试性而被提取出来，但真正的 bug 却藏在调用方式中？
- 哪些紧耦合的模块在它们之间的接缝处产生了集成风险？
- 代码库中哪些部分缺少测试，或者难以测试？

你遇到的摩擦本身就是信号。

### 2. 展示候选项

以编号列表的形式展示深化机会。每个候选项需说明：

- **聚类**：涉及哪些模块/概念
- **耦合原因**：共享类型、调用模式、概念共同归属
- **依赖类别**：参见 [REFERENCE.md](REFERENCE.md) 中的四种分类
- **测试影响**：哪些现有测试将被边界测试替代

此时不要提出接口设计。问用户："你想深入探索哪一个？"

### 3. 用户选择候选项

### 4. 描述问题空间

在启动子代理之前，为用户编写所选候选项的问题空间说明：

- 任何新接口需要满足的约束条件
- 需要依赖的外部依赖
- 一个粗略的示意代码草图，使约束条件更加具体——这不是正式方案，只是用来让约束可感知

向用户展示后，立即进入第 5 步。用户可以在阅读和思考问题的同时，让子代理并行工作。

### 5. 设计多种接口方案

使用 Agent 工具并行启动 3 个以上子代理。每个子代理必须为深化后的模块产出一个**截然不同**的接口方案。

为每个子代理提供独立的技术简报（文件路径、耦合细节、依赖类别、需要隐藏的内容）。该简报独立于第 4 步的用户说明。给每个代理设定不同的设计约束：

- 代理 1："最小化接口——目标是最多 1-3 个入口点"
- 代理 2："最大化灵活性——支持多种用例和扩展"
- 代理 3："针对最常见的调用方优化——让默认场景极简"
- 代理 4（如适用）："围绕端口与适配器模式设计跨边界依赖"

每个子代理输出：

1. 接口签名（类型、方法、参数）
2. 使用示例，展示调用方如何使用
3. 内部隐藏了哪些复杂度
4. 依赖策略（如何处理依赖——参见 [REFERENCE.md](REFERENCE.md)）
5. 权衡取舍

依次展示各方案，然后用文字进行对比分析。

对比完成后，给出你自己的推荐：你认为哪个方案最优，理由是什么。如果不同方案中的元素可以很好地组合，提出一个混合方案。要有立场——用户需要的是有力的判断，而不仅仅是一份菜单。

### 6. 用户选择接口方案（或接受推荐）

### 7. 创建 GitHub Issue

使用 `gh issue create` 创建重构 RFC 的 GitHub Issue。使用 [REFERENCE.md](REFERENCE.md) 中的模板。不要让用户在创建前审阅——直接创建并分享链接。

