ADR-0002: Main-Bundle Structure¶
We will use a single marketplace containing multiple independent plugins, installed and activated as a bundle.
Status¶
Accepted
- Decided at — 2026-04-15
- Decided by — pabloism0x
Context¶
Bonie는 20+ 플러그인으로 구성된다. 사용자가 각각을 개별 설치/관리하면 번거롭고, 하나의 거대한 플러그인에 모든 것을 합치면 관심사 분리가 어렵다. 두 극단 사이의 균형이 필요하다.
Decision¶
Main-bundle 구조를 채택한다.
boniemarketplace 하나를 설치하면 marketplace.json의 모든 plugins가 함께 활성화- 각 플러그인은 독립
plugin.json을 가짐 (관심사 분리) primitives/플러그인은 항상 활성화 (core)- 카테고리 플러그인(
lang/,devops/등)은 개별 비활성화 가능 - 카테고리 간 교차 의존 금지 (primitives에만 의존 가능)
Consequences¶
Positive¶
- 설치 한 번으로 전체 스위트 사용 가능
- 각 플러그인의 독립성 유지
- 불필요한 플러그인은 비활성화 가능
Negative¶
- 사용하지 않는 플러그인도 함께 설치됨
- 플러그인 간 의존성이 암묵적 (명시적 의존성 선언 없음)
Neutral¶
- marketplace 단위로만 버전 관리 (개별 플러그인 버전은 내부용)
Alternatives considered¶
Alternative 1: 개별 플러그인 설치¶
Pros - 필요한 것만 설치 가능 - 각 플러그인 독립 버전 관리
Cons - 20+ 플러그인 개별 설치/업데이트 관리 부담 - 팀 간 설치 구성 불일치 가능
Why rejected — 관리 오버헤드가 번들의 약간의 불필요 포함보다 크다.
Alternative 2: 단일 거대 플러그인¶
Pros - 구조가 단순 - 네임스페이싱 불필요
Cons - 관심사 분리 불가능 - 특정 카테고리만 비활성화 불가 - plugin.json이 비대
Why rejected — 스택별 skill이 수십 개로 늘어나면 유지보수가 불가능해진다.
Compliance¶
- marketplace.json에 새 플러그인 추가 시
category필드 필수 - 카테고리 간 교차 의존 코드 리뷰에서 확인
Revisit triggers¶
- 플러그인 수가 50개를 넘어 설치 시간이 문제될 때
- Claude Code가 플러그인 간 명시적 의존성 선언을 지원할 때
References¶
Related ADRs¶
ADR-0001— Auto-Load First (auto-load와 번들이 결합하여 "설치만 하면 동작" 달성)