# 코드베이스 설계 (codebase-design)

> 깊은 모듈 설계를 위한 공통 용어와 원칙을 제공합니다. 작은 인터페이스 뒤에 많은 동작을 두고 그 인터페이스로 테스트합니다.

- 카테고리: [아키텍처 설계](https://www.myskills.tools/ko/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. **두 번 설계하기** — 서브에이전트 셋 이상을 병렬로 띄워 서로 다른 제약으로 확연히 다른 인터페이스를 만들게 하고, 깊이, 지역성, 이음매 위치로 비교해 추천합니다.

## 권한 설명 (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/ko/ · URL: https://www.myskills.tools/ko/skills/codebase-design/
