# コードベース設計 (codebase-design)

> 深いモジュール設計の共通語彙と原則を示し、小さなインターフェースの裏に多くの振る舞いを置いてそこからテストします。

- カテゴリ: [アーキテクチャ設計](https://www.myskills.tools/ja/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. **依存を分類** — 依存をプロセス内、ローカル代替可能、自前のリモート（ポートとアダプター）、純粋な外部（モック）に分け、シームをまたぐテスト方法を決めます。
4. **二度設計する** — 3つ以上のサブエージェントを並行して動かし、異なる制約で大きく違うインターフェースを作らせ、深さ、局所性、シーム位置で比べて推奨します。

## 権限の説明（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/ja/ · URL: https://www.myskills.tools/ja/skills/codebase-design/
