4-Layer Model¶
Bonie의 4-Layer Model은 범용(L1) → 팀 규칙(L2) → 스택 지식(L3) → 페르소나(L4) 순서로 구체성이 증가하며, 상위 레이어가 하위를 보완/수정한다.
Why this structure¶
단일 레이어에 모든 규칙, 지식, 판단을 넣으면 관심사가 섞이고 유지보수가 어려워진다. 범용성 축으로 4개 레이어를 분리하면 각 레이어를 독립적으로 발전시킬 수 있고, 우선순위 기반 충돌 해결이 자연스럽다.
System view¶
graph BT
L1["L1: Primitives\n'어떤 프로젝트든 이렇게 해'"] --> L2["L2: Team Rules\n'우리 팀은 이렇게 해'"]
L2 --> L3["L3: Stack Skills\n'TypeScript에서는 이렇게 해'"]
L3 --> L4["L4: Lead Persona\n'내가 너라면 이렇게 하겠어'"]
style L1 fill:#e3f2fd
style L2 fill:#fff3e0
style L3 fill:#e8f5e9
style L4 fill:#f3e5f5
우선순위: L4 > L3 > L2 > L1
Components¶
L1: Primitives¶
- Responsibility — 프로젝트/스택 무관 공통 워크플로우
- Claude Code mechanism — skills (
/bonie:init,/todo:plan) + hooks (SessionStart,PostToolUse) - Plugins —
bonie,todo - Dependencies — 없음
L2: Team Rules¶
- Responsibility — luxtra 공통 컨벤션, 코드 스타일, 의사결정 패턴
- Claude Code mechanism —
.claude/rules/(세션 시작 시 로드 또는 path glob 매칭) - Subdivisions:
guides/— 코딩 가이드라인, path-specific rules 지원project/— 프로젝트별 동적 규칙
- Dependencies — L1 (
.claude/구조)
L3: Stack Skills¶
- Responsibility — 언어/프레임워크/인프라별 전문 지식
- Claude Code mechanism — plugin skills (
user-invocable: false,pathsglob) - Categories —
lang/,devops/,git/,design/,security/ - Dependencies — L1 (primitives), 카테고리 간 교차 의존 금지
L4: Lead Persona¶
- Responsibility — 테크리드의 판단 기준, 리뷰 스타일, 멘토링 방식
- Claude Code mechanism — custom agent (
bonie-lead) withmemory: project - Modes — Code Reviewer, Decision Advisor, Team Mentor
- Dependencies — L1~L3 정보를 종합
Interactions¶
레이어 간 보완 예시¶
sequenceDiagram
participant L1 as L1: Primitives
participant L2 as L2: Team Rules
participant L3 as L3: Stack Skills
participant L4 as L4: Lead Persona
Note over L1: "TODO.md에 task를 작성하라"
Note over L2: "task 설명은 한국어로 작성"
Note over L3: "TypeScript 프로젝트는 type 정의 task를 먼저 배치"
Note over L4: "이 task는 오버엔지니어링이야, 더 간단하게"
L1->>L2: 워크플로우 구조 제공
L2->>L3: 팀 규칙 위에 스택 지식 적용
L3->>L4: 기술 맥락 위에 판단 적용
충돌 해결 정책¶
| Conflict | Resolution |
|---|---|
| L2 규칙 vs L3 skill 지식 | L3 우선 (스택 특화 > 팀 범용) |
| L3 스택 A vs L3 스택 B | path glob으로 분리 (충돌 자체 방지) |
| L4 판단 vs L2 규칙 | L4 우선 (의도적 override 가능) |
| L1 워크플로우 구조 | override 불가 (TODO.md 포맷, .claude/ 구조 고정) |
| L1 동작 세부사항 | 상위 레이어가 확장 가능 |
Trade-offs¶
| Benefit | Cost |
|---|---|
| 각 레이어 독립 발전 가능 | 4개 레이어의 관계를 이해해야 함 |
| 우선순위 기반 충돌 해결이 명확 | 어느 레이어에 넣을지 판단 필요 |
| path glob으로 자연스러운 스코핑 | glob 설계가 정밀해야 함 |
Constraints¶
- L1 워크플로우 구조 (TODO.md 포맷, .claude/ 디렉토리 구조)는 다른 레이어가 override 불가
- L3 카테고리 플러그인은 다른 카테고리에 의존 불가
- L4 페르소나 agent는 plugin agent 제약 적용 (
hooks,mcpServers,permissionMode미지원)
See also¶
- ADR-0001: Auto-Load First
- Component Model — 레이어별 컴포넌트 매핑
- Lead Persona — L4 상세
- Primitives — L1 상세