Primitives Plugins¶
bonie(scaffold/orchestration)과 todo(phase-based task management) — 어떤 프로젝트에서든 동작하는 Layer 1 핵심 플러그인.
Bounded context¶
- Type — Core
- Sibling contexts — 모든 카테고리 플러그인이 이에 의존
- Location in codebase —
plugins/primitives/
Why this domain exists¶
모든 Bonie 플러그인이 전제하는 공통 워크플로우(.claude/ 구조, TODO.md 기반 진행 관리)를 하나의 domain에서 소유한다. 이를 분리하지 않으면 각 카테고리 플러그인이 초기화/진행 관리 로직을 개별 구현해야 하며, 일관성이 깨진다.
bonie 플러그인¶
Core scaffold + orchestration. 단일 진입점 /bonie 에서 서브커맨드로 분기.
Directory structure¶
plugins/primitives/bonie/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ └── bonie/
│ └── SKILL.md # /bonie <subcommand>
└── settings.json # agent: bonie-lead 지정
Subcommands¶
| Command | Description |
|---|---|
/bonie apply [--force] |
.claude/ 스캐폴딩 + 프로젝트 초기화 |
/bonie ps [-w] |
플러그인 상태 조회 (kubectl 스타일) |
/bonie (no args) |
사용법 출력 |
Why 단일 진입점 — 서브커맨드 패턴으로 진입점 하나에서 확장. kubectl처럼 /bonie logs, /bonie config 등 자연스럽게 추가 가능.
Why disable-model-invocation: true — 프로젝트 초기화와 상태 조회는 의도적 행위. Claude가 임의로 실행해서는 안 된다.
/bonie apply¶
프로젝트에 .claude/ 디렉토리를 스캐폴딩:
1. 환경 감지 (package.json, go.mod, Cargo.toml 등)
2. 인터랙티브 설정 (스택 확인, 플러그인 선택)
3. 디렉토리/파일 생성 (기존 파일 보존, 누락분만 추가)
4. .gitignore 업데이트
5. 완료 보고 + /todo:plan 안내
--force: 기존 파일 포함 전체 재생성 (확인 후).
/bonie ps¶
NAME STATUS CATEGORY COMPONENTS
bonie Active primitives 1 skill
todo Active primitives 1 skill, 1 hook
doc Active primitives 1 skill, 1 agent
...
STACK DETECTED typescript, react
TODO PROGRESS P2/4 3/8 tasks
-w: wide 출력, DESCRIPTION 컬럼 추가.
settings.json¶
bonie 플러그인 활성화 시 bonie-lead agent를 메인 세션 agent로 설정.
todo 플러그인¶
Directory structure¶
plugins/primitives/todo/
├── .claude-plugin/
│ └── plugin.json
└── skills/
└── todo/
└── SKILL.md # /todo
/todo 커맨드¶
단일 커맨드. 사용자와 목표 합의 → 페이즈별 TODO.md 작성.
흐름:
1. 목표 확인 (인자 또는 AskUserQuestion)
2. 코드베이스 탐색으로 맥락 파악
3. 페이즈 구성 (의존성 낮은 순 정렬)
4. AskUserQuestion으로 계획 확인/수정
5. .claude/TODO.md에 작성
TODO.md schema¶
# TODO — [프로젝트명]
## Phase 1: [페이즈 제목]
> Goal: [이 페이즈에서 달성할 것]
- [x] task 1 설명
- [ ] task 2 설명
## Phase 2: [페이즈 제목]
> Goal: [이 페이즈에서 달성할 것]
- [ ] task 1 설명
페이즈 완료 처리¶
- 페이즈의 모든 task가
[x]가 되면 AskUserQuestion으로 확인 - 사용자 승인 후 다음 페이즈로 진행
- 자동 갱신 없음 — 항상 사용자 확인 필수
Invariants¶
- Phase는 의존성 낮은 순으로 강제 정렬 — 계획 수립 시점에 검증
- Phase N 미완료 시 Phase N+1 시작 불가
- GFM 호환 checkbox만 사용 (
- [x],- [ ]) - Linear 동기화는
collaboration/linear플러그인이 담당
Statusline¶
statusline UI는 개발 진행하며 조정. 초기에는 단순 텍스트 형태.
Failure modes¶
- TODO.md가 없을 때 → hook이 graceful하게 무시, statusline 비표시
- TODO.md 포맷이 잘못되었을 때 → 파싱 실패 시 stderr 경고만, 블로킹 안 함
- 수동으로 TODO.md를 편집하여 스키마가 깨졌을 때 →
/todo:plan으로 재생성 안내
See also¶
- Scaffold — .claude/ 스캐폴딩 상세
- Lead Persona — bonie-lead agent 상세
- ADR-0004: TODO Phase Model