03
3. 구성요소
Ouroboros는 명령 입구, 관리 엔진, 작업 기준, 실행 계층, 기록 저장소, 평가기로 나뉩니다.

3.1 구성요소별 역할
| 구성요소 | 역할 |
|---|---|
| 사용자 | 아이디어를 입력하고, 질문에 답하고, Seed와 결과를 승인합니다. |
ooo 명령 | Claude Code 세션 안에서 Ouroboros 기능을 부르는 입구입니다. ooo interview, ooo run처럼 사용합니다. |
| Core | Interview 진행, Seed 생성, 실행 순서 관리, 평가 호출을 담당하는 엔진입니다. MCP(runtime과 도구를 잇는 통신 규약) 서버로 runtime과 통신합니다. |
| Seed | 목표, 제약, 완료 기준, 데이터 구조를 담은 YAML 작업 기준입니다. 실행 중에는 바뀌지 않습니다. |
| runtime | 실제 파일과 코드를 다루는 AI 코딩 도구입니다. Claude Code가 기본이고 Codex CLI, OpenCode 등도 지원합니다. |
| EventStore | 모든 실행 이벤트를 저장하는 로컬 SQLite 데이터베이스입니다. 중단된 세션 복구에 사용합니다. |
| Ledger | Interview와 Seed 작성 과정에서 확인한 가정과 제외 범위를 저장한 기록입니다. |
| Evaluator | 실행 결과를 3단계로 검증합니다. 테스트 실행, 완료 기준 대조, 필요 시 여러 모델 교차 확인 순서입니다. |
3.2 데이터 흐름
- 사용자가
ooo명령으로 아이디어를 입력합니다. - Core가 Interview로 빠진 결정을 질문하고, 답을 모아 Seed를 만듭니다.
- Core가 Seed를 runtime에 전달하고, runtime이 코드를 작성합니다.
- Evaluator가 결과를 Seed의 완료 기준과 대조합니다.
- 모든 단계의 이벤트가 EventStore에, 결정 근거가 Ledger에 저장됩니다.
Core와 runtime이 분리되어 있어, 같은 Seed를 다른 runtime에서도 사용할 수 있습니다.
3.3 저장 위치
Ouroboros의 데이터는 홈 폴더의 ~/.ouroboros/에 저장됩니다.
| 파일·폴더 | 내용 |
|---|---|
config.yaml | runtime 선택 등 주 설정 |
seeds/ | 생성된 Seed YAML 파일 |
ouroboros.db | EventStore(SQLite) |
logs/ouroboros.log | 로그 |
data/, worktrees/ | auto 세션 상태와 격리 작업 폴더 |
프로젝트 폴더에는 선택에 따라 CLAUDE.md 명령 요약과 .ouroboros/ 설정이 생길 수 있습니다.
