SUMMARY
์์ฝ ๋ฐ ํต์ฌ ๊ฐ์น
1. INTRO
- Situation : [ํ์ฌ ์์ ์ ์ธ ์ํฉ ๋๋ ๋ฐฐ๊ฒฝ]
- Complication : [๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ๋ณํ๊ฐ ํ์ํ ์ง์ ]
- Question : [์ด ํ์ผ์ด ํด๊ฒฐํด์ผ ํ ํต์ฌ ์ง๋ฌธ]
- Answer : [์ด ํ์ผ์ด ์ ์ํ๋ ์ต์ข ๊ฒฐ๋ก ๋ฐ ์คํ ๋ฐฉํฅ]
2. Key Q&A (์ด ํ์ผ์ด ๋ต๋ณํ ์ ์๋ ๊ฒ๋ค)
- Q: [์ฌ์ฉ์๊ฐ ์ด ๋ ธํธ๋ฅผ ๋ค์ ์ฐพ์ ๋ ๋์ง ๋ฒํ ์ง๋ฌธ 1]
- A: [์์ฝ๋ ๋ต๋ณ]
- Q: [์ง๋ฌธ 2]
- A: [์์ฝ๋ ๋ต๋ณ]
INTRO
SITUATIONCOMPLICATIONQUESTIONANSWER
Claude ์ดํดํ๊ธฐ
Claude ์ํคํ ์ฒ
- ๋ฌด๋ ์ด๊ด: Harness = Claude Code ํ๋ก๊ทธ๋จ ๋ณธ์ฒด. ์
๋ ฅ ๋ฐ์ โ ๋ชจ๋ธ(Claude)์ ๋ณด๋ด๊ณ โ ๋ชจ๋ธ์ด ๋ฑ์ tool ํธ์ถ์ ์ค์ ์คํ โ hook ๋๋ฆผ.
- ์ฃผ์ฐ ๋ฐฐ์ฐ: Claude
- ๊ด๊ฐ: User
1. Claude๊ฐ ์๊ธฐ ํด์ ์ง์ ํธ์ถ โ "tool" (ReadยทEditยทBashยทAgentยทWorkflow + MCP ๋๊ตฌ)
โ ๐ ๏ธ Read ยท Edit ยท Bash ยท Write ๋ด๊ฐ ์ง์ ํ๋ ์
โ ๐ ๏ธ Agent(subagent type) โ subagent ์์ฑ = Claude 1๋ช
์๋ก ๋ถ๋ฌ ์ํค๊ธฐ
โ ๐ ๏ธ Workflow ์๋ธ ์ฌ๋ฌ ๋ช
์ '์ฝ๋'๋ก ์งํ
โ ๐ ๏ธ Skills skill(= ํจํค์ง๋ ์ง์ยท์ํฌํ๋ก.) ๋ฐ๋
โ ๐ ๏ธ MCP = tool์ ์ถ์ฒ(์ธ๋ถ ์๋ฒ) (MCP ๋๊ตฌ๋ ๊ฒฐ๊ตญ ๊ทธ๋ฅ tool)
2. ์ฌ์ฉ์๊ฐ ๋ช
์ ํธ๋ฆฌ๊ฑฐ โ "command" (/foo) โ ๋ณดํต skill๊ณผ 1:1 ๋งค์นญ
3. ์ด๋ฒคํธ๊ฐ ํธ๋ฆฌ๊ฑฐ โ "hook" Claudeยท์ฌ์ฉ์ ํธ์ถ X. skill์ ์คํ ๊ฐ๋ฅ.
โ Trigger: SessionStartยทUserPromptSubmitยทPreToolUseยทPostToolUseยทStopโฆ
โ ์: caveman ๋ชจ๋ = hook (ํ๋กฌํํธ๋ง๋ค ์๋ ์ฃผ์
)
ํธ์ถ์ฃผ์ฒด
- ๐โโ๏ธ Command
- ๐ค Tool
DEF๋ฉ์ธ Claude๊ฐ ํธ์ถํ๋ ๊ธฐ๋ฅ ํ ๊ฐ. ๋๊ตฌ ๋ชฉ๋ก์ ๋ฐํ ์ค๋ฌผ. ์ด๋ฆ+์ ๋ ฅ ์๊ณ , ํธ์ถํ๋ฉด ์ฑ์ด ์คํํด ๊ฒฐ๊ณผ ๋ฐํ.LISTRead,Edit,BashAgent( )DEF๋ ๋ค๋ฅธ Claude ์ฆ, ์๋ธ์์ด์ ํธ(subagent)๋ฅผ ๋ถ๋ฅด๋ ๋๊ตฌ(Workflow์์๋ ์ฌ์ฉ)- ์๊ธฐ๋ง์ ๊นจ๋ํ ๋ฌธ๋งฅ โ ์ผ ๋๋ด๊ณ ๊ฒฐ๊ณผ ํ ๋ฉ์ด๋ง ๋ฉ์ธ์ ๋ณด๊ณ . โ์์ญ ์์ด์ ํธโ์ ๊ทธ ์์ด์ ํธ.
subagent_typeDEFAgent๋๊ตฌ ์ ๋ ฅ๊ฐ. ์๋ธ ์ข ๋ฅ ๊ณ ๋ฅด๊ธฐ. ์ข ๋ฅ๋ง๋ค ์ฑ๊ฒฉ(์์คํ ํ๋กฌํํธ)+์ธ ๋๊ตฌ๊ฐ ๋ฏธ๋ฆฌ ์ ํด์ง.LISTgeneral-purposeDEF๋ด์ฅ. ๋ฒ์ฉ. ๊ธฐ๋ณธ๊ฐ.ExploreDEF๋ด์ฅ. ์ฝ๊ธฐ์ ์ฉ ๊ฒ์ ํนํ. ํ๊ธฐ๋ง, ์์ Xcavecrew-*DEFcaveman ํ๋ฌ๊ทธ์ธ. ์ถ๋ ฅ ~60% ์์ถ.investigator: ์ฝ๋ ์์น, ์ฝ๊ธฐ์ ์ฉbuilder: 1~2ํ์ผ ์์ ํธ์งreviewer: diff ๋ฆฌ๋ทฐ
Workflow+agent()DEFWorkflow=๋ด์ฅ ๋๊ตฌ. JS ์คํฌ๋ฆฝํธ๋ก ์๋ธ ์ฌ๋ฌ ๋ช ์ fan-outํ์ฌ ๋ฃจํยท๋ณ๋ ฌ ์งํ.WHY์ ์ดํ๋ฆ์ ๋ชจ๋ธ ํ๋จ ์๋ ์ฝ๋๋ก ๊ณ ์ โ ์ฌํ (Rule 5 ๋ํ)- ๋จ, Workflow๋ ๋ฌด์ํ ์์ง์.
- ๋ฌด์ํ
DEF์ธ๋ยท์ ํฉ๋ ๊ฐ์ ๋์ ์ญ์ฌ ๊ฐ๋ ์ด ์์. ํ ๋ฒ ๋๊ณ ๊ฒฐ๊ณผ๋ง ๋ฐํ. ๋ค์ ์คํ์ ๋ฐฑ์ง. ์คํ์ค๋จ ๋ณต๊ตฌ์ฉ ๋ฉ๋ชจ๋ง ์ ์ฅ.
- ๋ฌด์ํ
- ๋จ, Workflow๋ ๋ฌด์ํ ์์ง์.
- ๋ถํ:
agent("...")์คํฐ /parallelยทpipeline๋ถ๋ฐฐ /schema์ถ๋ ฅ ๊ฐ์ / ์ฃฝ์ด๋ resume
MCP (Model Context Protocol)DEFAI โ ์ธ๋ถ ๋๊ตฌ์๋ฒ๋ฅผ ์๋ ํ์ค ๊ท์ฝ. Anthropic ๊ณต๊ฐ ์คํ ํ์ค.WHYClaude๊ฐ ๊นํยท์ฌ๋ยทDBยท๋ธ๋ผ์ฐ์ ๋ ๋ํํ๋ ค๋ฉด ๋งค๋ฒ ์ ์ฉ ์ฐ๊ฒฐ์ฝ๋ ํ์ โ ํ๋์ ํ์ค ์ญ์ผ๋ก ํต์ผ. (USB-C ๋น์ : ๊ธฐ๊ธฐ๋ง๋ค ๋ค๋ฅธ ๋จ์ โ ํ์ค ํ๋)๊ตฌ์กฐMCP ์๋ฒ(๋๊ตฌ ์ ๊ณต์) โ MCP ํด๋ผ์ด์ธํธ(Claude Code ์ฑ). ํด๋ผ๊ฐ ์๋ฒ์ โ๋๊ตฌ ๋ญ ์๋โ ๋ฌป๊ณ โ ํธ์ถ โ ๊ฒฐ๊ณผ ๋ฐ์.๋ด์ฉ๋ฌผ์๋ฒ๊ฐ 3์ข ๋ ธ์ถ: tools(ํธ์ถ ํจ์) / resources(์ฝ์ ๋ฐ์ดํฐยทํ์ผ) / prompts(ํ๋กฌํํธ ํ ํ๋ฆฟ). ๋๋ถ๋ถ tools.
์ด๋์ ๋๋๋ณ๋ ํ๋ก์ธ์ค. ๋ก์ปฌ(๋ค ๋งฅ์ ํ๋ก๊ทธ๋จ) ๋๋ ์๊ฒฉ(URL). ์ฑ ์ค์ ํ์ผ์ ๋ฑ๋ก.์ด๋ฆ ์ฝ๋ ๋ฒmcp__<์๋ฒ>__<๋๊ตฌ>. ์:mcp__plugin_ouroboros_ouroboros__ouroboros_evolve_step= ์๋ฒouroboros+ ๋๊ตฌevolve_step.ํจ์ ์๋ฒ = ์ธ๋ถ ์ฝ๋ = ์ ๋ขฐ ๊ฒฝ๊ณ. ๊ถํยท์ํฌ๋ฆฟ ์กฐ์ฌ. ์ธ์ฆํ MCP๋ headless/cron์์ ๋น ์ง ์ ์์.
- ๐งจ Hook
DEF์ด๋ฒคํธ ๊ธฐ๋ฐ ๋๊ตฌ
ํธ์ถ๋์
- ๐ Skills
DEF์์ ์ง์์LIST์ปค์คํ ์คํฌ/code-reviewโ ์ ๋์ ๊ฒ์ฆ(ํจํด3)์ ๊ตณํ ์ ํ. (๋ด์ฅ skill)- ๋จ๊ณ: effort
low~max(๋ก์ปฌ) /ultra(ํด๋ผ์ฐ๋ ๋ค์ค) /--comment(PR ์ฝ๋ฉํธ) /--fix(์์ ํธ๋ฆฌ ์ ์ฉ) - ํจ์ : git repo ํ์.
ultra๋ ๋๋ง ํธ๋ฆฌ๊ฑฐยท๊ณผ๊ธ, AI ์๋ X
- ๋จ๊ณ: effort
/ouroboros:evaluateยท/ouroboros:ralphโ plugin ouroboros๊ฐ ์ ๊ณตํ๋ skill.
ํจํค์ง
- ๐ฆ ํ๋ฌ๊ทธ์ธ (plugin)
DEFClaude Code์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๋ฌถ์ด ๊น๋ ์ค์น ํจํค์ง. (marketplaceยทgit์์ ์ค์น)๋ด๋ ๊ฒ (ํ ๋ฒ์ ์ฌ๋ฌ ๊ฐ): skills(์ฌ๋์ยท์๋ ์ํฌํ๋ก), subagent types(cavecrew-*), hooks(์ด๋ฒคํธ ์๋๋์), MCP ์๋ฒ(์ ํ) ๋ฑListcavemanDEF์์ถยท์๋ธ์์ด์ ํธ ํ๋ฌ๊ทธ์ธ. cavecrew 3์ข + ์ถ๋ ฅ caveman ์์ถ ์ ๊ณต.- ๋ถํ
- skills, subagents(cavecrew), hooks.
- MCP ์๋ฒ ์์ โ cavecrew ๋๊ตฌ๊ฐ
mcp__์๋ ์ด์ .
ouroborosDEF์งํ ์ ์ฉ ํ๋ฌ๊ทธ์ธWHY์ ์ํ(event-sourcing์ผ๋ก ๊ณ๋ณดยท์ ํฉ๋ยทgoal-drift ์ถ์ ). ๋ฌด์ํ toolWorkflow๋ก ์ ๋จ.- ๋จ, ์๋ fitness ์์ผ๋ฉด ๋ฌด์๋ฏธ โ oracle๋ถํฐ
- ์ ์ํ
DEF์ด๋ฒคํธ ๋ก๊ทธ ์ ์ฅ โ ์ด๋ฒคํธ ์คํ ์ด~/.ouroboros/ouroboros.db- db schema:
eventsone table: 7,591ํ, append ์ ์ฉ(๋ฎ์ด์ฐ๊ธฐ X, ์ฌ๊ฑด ๊ณ์ ์ถ๊ฐ)- ํ 1๊ฐ = ์ฌ๊ฑด 1๊ฐ:
{id, ๋ฌด์์ ๋ํ(aggregate), ์ฌ๊ฑด์ข ๋ฅ(event_type), ๋ด์ฉ(payload JSON), ์๊ฐ} - ์ค์ event_type ์:
orchestrator.progress.updated(2868),execution.tool.started(1348),mcp.job.failedโฆ
- ํ 1๊ฐ = ์ฌ๊ฑด 1๊ฐ:
- ํ์ฉ
query_events(์ด๋ฒคํธ ์กฐํ)query_projection(์ฌ์ํด ๋ง๋ ํ์ฌ ๋ทฐ)lineage_statusevolve_rewind(๊ณผ๊ฑฐ๋ก ๋๊ฐ๊ธฐ) ์กด์ฌ
- db schema:
- ๋ถํ
- skill(
/ouroboros:* ;/ouroboros:evolveยท:ralphยท:evaluate) - MCP tool(
ouroboros_evolve_stepยท_autoโฆ)
- skill(
context-mode= MCP ์๋ฒ + skills + hooks.
ํ๋ณ๋๊ตฌ ์ด๋ฆ์mcp__์์ผ๋ฉด ๊ทธ ํ๋ฌ๊ทธ์ธ์ด MCP ์๋ฒ ํฌํจ. ์์ผ๋ฉด skillยทsubagent๋ก๋ง ๋์.
๋ถ๊ฐ ์ฉ์ด
- barrier (์ง๊ฒฐ์ )
DEF๋ณ๋ ฌ ์์ ์ด ์ ๋ถ ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋๊ธฐํ ์ง์ . โ์ฌ๊ธฐ ๋ค ๋ชจ์ฌโ.WHY๋ค์ ๋จ๊ณ๊ฐ ๋ชจ๋ ์ ๊ฒฐ๊ณผ๋ฅผ ํ๊บผ๋ฒ์ ํ์๋ก ํ ๋ (์ ์ฒด dedupยทํฉ์ฐยทโ0๊ฑด์ด๋ฉด ์ค๋จโ).๋น์๋จ์ฒด๊ด๊ด ๋ฒ์ค โ ์ ์ ํ์นํด์ผ ์ถ๋ฐ. ํ ๋ช ๋ฆ์ผ๋ฉด ์ ์ฒด ๋๊ธฐ.๋น์ฉ์ ์ผ ๋๋ฆฐ ๋์ด ์ ์ฒด ์๋ ๊ฒฐ์ (๊ผฌ๋ฆฌ ์ง์ฐ) โ ๊ผญ ํ์ํ ๋๋ง.๋งคํparallel()= barrier ์์ /pipeline()= ์์(๋จผ์ ๋๋ ์กฐ๊ฐ ๋ฐ๋ก ๋ค์ ๋จ๊ณ).
- event-sourcing (์ด๋ฒคํธ ์์ฑ)
DEFํ์ฌ ์ํ๋ง ์ ์ฅ ๋์ , ์ผ์ด๋ ๋ชจ๋ ์ฌ๊ฑด(event)์ ์์๋๋ก ๊ธฐ๋กํ๊ณ ์ํ๋ ์ฌ์(replay)ํด ๋์ถ.๋์กฐ์ํ ํต์ฅ: ๋ณดํต DB = ์ต์ ์์ก๋ง ๋ฎ์ด์ / ์ด๋ฒคํธ์์ฑ = ๋ชจ๋ ๊ฑฐ๋(+100,โ30โฆ) ๊ธฐ๋ก โ ์์ก์ ํฉ์ฐ.WHY ouroboros๊ฐ์งํ๋ ๊ณ๋ณดยท์ ํฉ๋ ์ด๋ ฅ์ด ํ์ โ ์ต์ ์ํ๋ง์ด๋ฉด ์ญ์ฌ ์์. ์ด๋ฒคํธ ์์ผ๋ฉด ๊ณ๋ณดยทdriftยท๋๊ฐ๊ธฐ(evolve_rewind) ๊ฐ๋ฅ.์ด๋์์ ํ ๊ฐ์ฌ์ถ์ ยท๊ณผ๊ฑฐ ์์์์ ์ฌ๊ตฌ์ฑยท๋๋๋ฆฌ๊ธฐ.ํจ์ ์ ์ฅ๋โยท์ฝ์ ๋ ์ฌ์๋น์ฉ. ๋จ์ ์์ ์ ๊ณผํจ.
fan-outDEF์์ ์ ์์กด์ฑ ์๋ N์กฐ๊ฐ์ผ๋ก ์ชผ๊ฐ ๋์ ์คํฐ.- ์ด์ : ๋ฒฝ์๊ณ ์์ถ (์์ฐจ 100๋ถ โ ๋ณ๋ ฌ ~10๋ถ)
TYPEparallel()= barrier (N๊ฐ ๋ค ๋๋์ผ ๋ค์)pipeline()= barrier ์์ (์กฐ๊ฐ๋ณ ๋ ๋ฆฝ ํ๋ฆ, ๊ธฐ๋ณธ๊ฐ)
- ํจ์ : ์กฐ๊ฐ๋ผ๋ฆฌ ์์กด ์์ผ๋ฉด ๋ถ๊ฐ. ํฉ๋ฅ ๋น์ฉ(ํตํฉ ๋ถ์ฑ).
worktreeDEFgit ๊ธฐ๋ฅ. ํ repo๋ฅผ ์ฌ๋ฌ ์์ ๋๋ ํ ๋ฆฌ๋ก ๋์์ ํผ์นจ..gitํ์คํ ๋ฆฌ ๊ณต์ + ์์ ํด๋๋ง ๋ฐ๋ก โ full clone๋ณด๋ค ๊ฐ๋ฒผ์.- ์ฐ๋ฆฌ ๋งฅ๋ฝ:
Workflow์isolation:'worktree'์ต์ = ๋ณ๋ ฌ ์์ปค๋ง๋ค ๊ฒฉ๋ฆฌ ์ฌ๋ณธ โ ๋์ํธ์ง ์ถฉ๋(clobber) ๋ฐฉ์ง. ๋๋๋ฉด ์ ๋ฆฌ, ์ ๋ฐ๋๋ฉด ์๋ ์ญ์ .
Claude ์ ์ฐ๊ธฐ
INTRO
- โ์์ด์ ํธ ์ โ ์์ฐ์ฑโ
- ๋ณ๋ชฉ: ์์ฑ(generation)์ด ์๋๋ผ ๊ฒ์ฆ(verification)
- Regime
- ๋จ ์์ด์ ํธ
๊น์ trace- ์ธ์ : ์์ฐจ์ ยท๋งฅ๋ฝ์์กดยทํตํฉ ๋ฌด๊ฑฐ์ (๋๋ถ๋ถ ์ค์ ๊ธฐ๋ฅ ๊ฐ๋ฐ)
- ๊ฒ์ฆ: ์ธ๊ฐ
- ๋ค ์์ด์ ํธ
fan-out- ์ธ์ : ๋ถํด ๊ฐ๋ฅ + ์ถ๋ ฅ์ด ์ธ๊ฒ ๊ฒ์ฆ๋จ
- ๊ฒ์ฆ: ํ ์คํธ/์ปดํ์ผ/์ ์/ํ์ ์์ด์ ํธ
- ๋จ ์์ด์ ํธ
- AI๋ฅผ ์ ์ด๋ค๋ ๊ฒ: ํผ์งํ goal์ [๊ฒ์ฆ๊ฐ๋ฅํ ์ฒ์ถ + ๋ด๊ฐ ์์ ํ๋ ํ๋จ์ธต]์ผ๋ก ๋ถํดํ๊ณ , oracle์ ๋จผ์ ์ง๋ ๋ฅ๋ ฅ
- ์์ ์ด ์ด๋ regime์ธ์ง ๋ถ๋ฅํ๋ ์ต๊ด (์์ฐจ ํตํฉ vs ๋ณ๋ ฌ+๊ฒ์ฆ๊ฐ๋ฅ).
- ์์ ๊ฒ๋ถํฐ:
Workflow๋ก ์๋ธ์์ด์ ํธ 2-3๊ธฐ + verify ๋จ๊ณ ํ ๋ฒ ์ง๋ณด๊ณ , ๋จ์ผ trace๋ณด๋ค ์ค์ ๋ก ๋์์ง ์ธก์ . - oracle ๋จผ์ : ํ ์คํธ/๋ฉํธ๋ฆญ/๋ฆฐํฐ๊ฐ ์ค๋ฒ๋์ ๋ฐ์ ์๋ฏธ์๊ฒ ๋ง๋๋ ์ ๋ถ. army ์ ์ oracle.
BODY
Structure โ ํจํด ๊ตด๋ฆฌ๋ ๋ฒ (์นดํ ๊ณ ๋ฆฌ ๊ท์จ)
THEOREMโ๋ณ๋ ฌํ ๊ฐ๋ฅ โบ ์์กด์ฑ ์์ + ๊ฒ์ฆ ๊ฐ๋ฅโ.- ์์ ์๋ฆฌ: ๋ถ์ฐ map-reduce + ML search-with-fitness/loss.
Pattern
- assetPattern-AI-BestOfN โ N๊ฐ ์๋ โ judge ์ฑ์ โ ์ต๊ณ ์ฑํ
- assetPattern-AI-EmbarrassinglyParallel โ ๋ ๋ฆฝ ํ์ผ N๊ฐ ๋ณ๋ ฌ ์์
- assetPattern-AI-Adversarial โ ํ์๋ก ์ N ๋ฐ๋ฐ โ ๊ณผ๋ฐ์ด๋ฉด ํ๊ธฐ
- assetPattern-AI-LoopUntilDry โ ์ ๋์ฌ ๋๊น์ง finder ๋ฐ๋ณต
- assetPattern-AI-Evolve โ ์์ฑโํ๊ฐโ์ ํโ๋ณ์ด (์ ์ํ)
Projects
- ๋ฉํ ํ์ดํ๋ผ์ธ:
- ๐โโ๏ธ ORACLE ํ๋ค์ค: ํ ์คํธ/๋ฆฐํฐ/๋ฉํธ๋ฆญ
- ๐โโ๏ธ SPEC/TAXONOMY/SCOPE
- ๐ค Fan Out
- INVENTORY โ fan-out. ๊ฒ์ฆ: ์นด์ดํธ/์ปค๋ฒ๋ฆฌ์ง
- EXTRACT โ fan-out. ๊ฒ์ฆ: ๋ชจ๋ ์ถ์ถ์ source note ์ธ์ฉ
- DEDUP/MERGE โ barrier (์ ์ฒด ํ์)
- ๐โโ๏ธ +๐ค SYNTHESIZE โ ๋จ์ผ trace. ๊ฒ์ฆ: ์ฌ๋ + ์ธ์ฉ ๋ฌด๊ฒฐ์ฑ