# 深模块设计 (codebase-design)

> 提供设计深模块的统一术语和原则：小接口背后承载大量行为，接缝清晰，并通过接口测试。

- 分类: [架构设计](https://www.myskills.tools/zh/categories/architecture/)
- 来源: 社区 · Matt Pocock
- 代码仓库: https://github.com/mattpocock/skills/tree/main/skills/engineering/codebase-design (commit 7739eae)
- SKILL.md: https://github.com/mattpocock/skills/blob/main/skills/engineering/codebase-design/SKILL.md
- 安装命令: `npx skills add mattpocock/skills --skill codebase-design`
- 许可证: MIT
- 兼容工具: Claude Code, Codex, Copilot, Gemini CLI
- 权限: read-repo ✓, write-files ✗, shell ✗, network ✗
- 状态: 扫描通过
- 规则扫描无法覆盖所有风险，安装前请阅读此技能的 SKILL.md，确认权限后再使用。

## 核心规则

一个适配器只是假想的接缝，两个适配器才是真接缝；没有变化点就不要引入接缝。

## 执行阶段

1. **统一术语** — 严格使用模块、接口、实现、深度、接缝、适配器、杠杆和局部性等术语，不用“组件”“服务”“边界”替代。
2. **评估深度** — 用删除测试判断模块是否只是转发层，并思考能否减少方法、简化参数、隐藏更多复杂度。
3. **依赖分类** — 把依赖分为进程内、可本地替代、远程自有（端口与适配器）和真正外部（mock）四类，据此决定如何跨接缝测试。
4. **设计两次** — 并行启动三个以上子代理，各自在不同约束下给出截然不同的接口，再按深度、局部性和接缝位置比较并给出推荐。

## 权限说明（据 SKILL.md 整理）

| 能力 | 是否需要 | 说明 |
|---|---|---|
| 文件写入 | 不需要 | 提供设计术语与方案比较，技能本身不要求写文件。 |
| 命令执行 | 不需要 | 不运行命令。 |
| 网络外发 | 不需要 | 不访问网络。 |

## SKILL.md 头部信息（YAML）

```yaml
---
name: codebase-design
description: Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
---
```

首页: https://www.myskills.tools/zh/ · URL: https://www.myskills.tools/zh/skills/codebase-design/
