harness๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

harness = โ€œ๋ชจ๋ธ์„ โ€˜๋งํ•˜๋Š” ๋‡Œโ€™์—์„œ โ€˜์ผํ•˜๋Š” ์‹œ์Šคํ…œโ€™์œผ๋กœ ๋ฐ”๊พธ๋Š” ์‹คํ–‰ ํ”„๋ ˆ์ž„(์Šค์บํด๋”ฉ)โ€

AI ์—์ด์ „ํŠธ ๋ถ„์•ผ์—์„œ harness๋Š” ๋ชจ๋ธ(LLM) ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ, ๋ชจ๋ธ์ด ๋„๊ตฌ๋ฅผ ์“ฐ๊ณ , ์ž‘์—…์„ ์ชผ๊ฐœ๊ณ , ๊ฒ€์ฆํ•˜๊ณ , ์„ธ์…˜์ด ๋Š๊ฒจ๋„ ์ด์–ด์„œ ์ผํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ์ฃผ๋ณ€ ์‹คํ–‰ ํ™˜๊ฒฝ + ์šด์˜ ๊ทœ์œจ์„ ๋ฌถ์–ด์„œ ๋ถ€๋ฅด๋Š” ๋ง์ด๋‹ค. ์ฒ˜์Œ ์ด ๋‹จ์–ด๋ฅผ ๋“ค์œผ๋ฉด ๋ณดํ†ต ์ด๋Ÿฐ ์‹์˜ โ€œํ•ต์‹ฌ ์˜๋ฌธโ€์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ƒ๊ธด๋‹ค:

  • โ€œ์—์ด์ „ํŠธ ์–˜๊ธฐํ•  ๋•Œ harness๊ฐ€ ์™œ ๊ฐ‘์ž๊ธฐ ๋‚˜์˜ค์ง€?โ€
  • โ€œ์ด๊ฒŒ ๊ณต์‹ ์šฉ์–ด์ธ๊ฐ€, ๊ทธ๋ƒฅ ๋ˆ„๊ฐ€ ํŽธํ•˜๊ฒŒ ์“ฐ๋Š” ๋ง์ธ๊ฐ€?โ€ Anthropic ๊ธ€์€ ์ด ํ˜ผ๋ž€์„ ๊ฝค ์ž˜ ์ •๋ฆฌํ•ด์ค€๋‹ค. ๊ทธ๋“ค์ด ๋งํ•˜๋Š” harness๋Š” โ€œํˆด์„ ๋ถ™์ด๋Š” ์ฝ”๋“œโ€ ์ˆ˜์ค€์ด ์•„๋‹ˆ๋ผ ์˜ค๋ž˜ ๋‹ฌ๋ฆฌ๋Š”(long-running) ์ž‘์—…์„ ๋๊นŒ์ง€ ์™„์ฃผํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ž‘์—… ํ”„๋ ˆ์ž„์— ๊ฐ€๊น๋‹ค.

โ€œ๊ทธ๋ฆผ์—์„œ Model์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€โ€๊ฐ€ harness์ผ๊นŒ?

๊ตฌ๊ธ€์˜ agent runtime ๊ทธ๋ฆผ์„ ๋ณด๋ฉด Model ์˜†/์œ„์— Orchestration, Memory, Tools ๊ฐ™์€ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋ถ™์–ด ์žˆ๋‹ค.
์ด ๊ตฌ์กฐ๋ฅผ ๋ณด๋Š” ์ˆœ๊ฐ„ ๋‹ค์Œ ์งˆ๋ฌธ์œผ๋กœ ์ด์–ด์ง„๋‹ค:

๊ทธ๋ ‡๋‹ค๋ฉด ์‹ค๋ฌด์—์„œ ๋งํ•˜๋Š” harness๋Š”, ์ € ๊ทธ๋ฆผ์—์„œ Model์„ ๋นผ๊ณ  ๋‚˜๋จธ์ง€(Agent Runtime) ์ „์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค๊ณ  ์ดํ•ดํ•ด๋„ ๋ ๊นŒ? ๋Œ€๋ถ€๋ถ„์˜ ๋Œ€ํ™”/๋ฌธ๋งฅ์—์„œ ๋‹ต์€ Yes๋‹ค. harness์— ๋ณดํ†ต ํฌํ•จ๋˜๋Š” ๋ฒ”์œ„๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์ •๋ฆฌ๋œ๋‹ค.

  • Orchestration: ๊ณ„ํš โ†’ ์‹คํ–‰ โ†’ ๊ด€์ฐฐ โ†’ ๋‹ค์Œ ํ–‰๋™(๋ฃจํ”„), ์žฌ์‹œ๋„/๋ถ„๊ธฐ, ์ข…๋ฃŒ ์กฐ๊ฑด
  • Memory / State: short/long-term ์ €์žฅ, ์ฒดํฌํฌ์ธํŠธ, ์„ธ์…˜ ๋ธŒ๋ฆฌ์ง•(๋‹ค์Œ ์„ธ์…˜์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ)
  • Tools: ๊ฒ€์ƒ‰/DB/์ฝ”๋“œ/๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” ๋“ฑ ์†๋ฐœ ์—ฐ๊ฒฐ, ํˆด ํ˜ธ์ถœ ์ •์ฑ…
  • Verification: ํ…Œ์ŠคํŠธ/์ˆ˜์šฉ์กฐ๊ฑด ํ™•์ธ, ์‹คํŒจ ์‹œ ๋ณต๊ตฌ ๋ฃจํ”„
  • Artifacts: ์ง„ํ–‰ ๋กœ๊ทธ, git ํžˆ์Šคํ† ๋ฆฌ, ํ™˜๊ฒฝ ์Šคํฌ๋ฆฝํŠธ ๊ฐ™์€ โ€œ์‹คํ–‰ ํ”์ โ€ ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ํ•œ ๋ฒˆ ๋” ๊ฑธ๋ฆฌ๋Š” ํฌ์ธํŠธ๊ฐ€ ์žˆ๋‹ค. โ€œReasoning/Planningโ€์„ ์–ด๋””์— ๋‘๋А๋ƒ์ด๋‹ค.

reasoning/planning๋„ harness์— ํฌํ•จ๋˜๋Š” ๊ฑธ๊นŒ, ์•„๋‹ˆ๋ฉด ๋ชจ๋ธ ์ชฝ์ผ๊นŒ? ์‹ค๋ฌด์ ์œผ๋กœ๋Š” ์ด๋ ‡๊ฒŒ ๋‚˜๋ˆ„๋ฉด ๊ฐ€์žฅ ๋œ ํ—ท๊ฐˆ๋ฆฐ๋‹ค:

  • ์ƒ๊ฐ(์ถ”๋ก /๊ณ„ํš์˜ ์ƒ์„ฑ) ์ž์ฒด๋Š” ๋ชจ๋ธ์˜ ๋Šฅ๋ ฅ
  • harness๋Š” ๊ทธ ์ƒ๊ฐ์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋ ˆ์ž„(๋ฃจํ”„/๊ทœ์œจ)์ด๋‹ค. ์ฆ‰, ์ƒ๊ฐ์„ โ€˜๋งŒ๋“œ๋Š” ๊ฒƒโ€™์€ ๋ชจ๋ธ, ์ƒ๊ฐ์„ โ€˜๊ตด๋ฆฌ๊ณ  ์ง€์†์‹œํ‚ค๋Š” ๊ฒƒโ€™์€ harness. ์ด์ œ ๋‹ค์Œ ์—ฐ๊ฒฐ ์งˆ๋ฌธ์ด ๋‚˜์˜จ๋‹ค. โ€œ๊ทธ๋Ÿผ harness๋ฅผ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช…ํ•œ ์‹ ๋ขฐ ๊ฐ€๋Šฅํ•œ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ์žˆ๋‚˜?โ€

โ€œ๋ฌธ์„œ์— harness๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์—†๋˜๋ฐโ€ฆโ€ โ†’ ์–ด๋””์„œ โ€˜AI ์—์ด์ „ํŠธ harnessโ€™ ๊ฐœ๋…์„ ์žก๋‚˜?

AI ์—์ด์ „ํŠธ ๋ถ„์•ผ์—์„œ harness๋Š” ์•„์ง โ€œํ‘œ์ค€ ์šฉ์–ดโ€์ฒ˜๋Ÿผ ๋”ฑ ๊ณ ์ •๋œ ๋‹จ์–ด๋ผ๊ธฐ๋ณด๋‹จ,

  • runtime
  • orchestration layer
  • scaffolding
  • agent framework ๊ฐ™์€ ํ‘œํ˜„๋“ค๊ณผ ๊ฒน์น˜๋Š” ์˜๋ฏธ๋กœ ์“ฐ์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๊ทธ๋ž˜์„œ ์šฉ์–ด๋งŒ ์ซ“์œผ๋ฉด ํ—ท๊ฐˆ๋ฆฌ๊ณ , โ€œ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ์„ค๊ณ„์ธ๊ฐ€?โ€๋ฅผ ๋ณด๋ฉด ๋น ๋ฅด๊ฒŒ ์ •๋ฆฌ๋œ๋‹ค.
    ์—ฌ๊ธฐ์„œ Anthropic์˜ ๊ธ€(Effective harnesses for long-running agents)์ด ๊ฐ•ํ•œ ์ด์œ ๋Š”:

harness๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€(์‹คํŒจ ๋ชจ๋“œ) โ†’ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ํ•˜๋Š”์ง€(๊ตฌ์„ฑ/๊ทœ์œจ)๊นŒ์ง€ โ€œlong-runningโ€ ๊ด€์ ์—์„œ ๋งค์šฐ ๊ตฌ์ฒด์ ์œผ๋กœ ์ ์–ด๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ. ์ด ๊ธ€์ด ๋˜์ง€๋Š” ๋‹ค์Œ ์—ฐ๊ฒฐ ์งˆ๋ฌธ์€ ๋ช…ํ™•ํ•˜๋‹ค. โ€œlong-runningโ€์—์„œ harness๊ฐ€ ํŠน๋ณ„ํžˆ ์ค‘์š”ํ•œ ์ด์œ ๊ฐ€ ๋ญ˜๊นŒ?


Anthropic์ด ๋งํ•˜๋Š” โ€œlong-running agent harnessโ€์˜ ํ•ต์‹ฌ ๋ฌธ์ œ

ํ•ต์‹ฌ ๋ฌธ์ œ๋Š” ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์š”์•ฝ๋œ๋‹ค:

  • ์—์ด์ „ํŠธ๋Š” ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ ๋•Œ๋ฌธ์— โ€œ์„ธ์…˜โ€ ๋‹จ์œ„๋กœ ๋Š๊ฒจ ์ผํ•˜๊ณ ,
  • ์ƒˆ ์„ธ์…˜์€ ์ด์ „ ๋งฅ๋ฝ์„ โ€œ์ž๋™์œผ๋กœโ€ ๋‹ค ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•ด์„œ,
  • ๋‹ค์Œ ์„ธ์…˜์ด ์ถ”์ธก์œผ๋กœ ์ถœ๋ฐœํ•˜๋ฉด ์ง„ํ–‰์ด ์‰ฝ๊ฒŒ ๋ฌด๋„ˆ์ง„๋‹ค. ์ฆ‰ long-running์—์„œ harness์˜ ๋ชฉํ‘œ๋Š” โ€œํˆด์„ ๋ถ™์ด๊ธฐโ€๋ฅผ ๋„˜์–ด ์ด๋ ‡๊ฒŒ ๋ฐ”๋€๋‹ค:

์„ธ์…˜์ด ๋Š๊ฒจ๋„ ๋‹ค์Œ ์„ธ์…˜์ด ์ถ”์ธกํ•˜์ง€ ์•Š๊ณ  ํ™•์ธํ•˜๋ฉฐ ์ด์–ด์„œ ๋‹ฌ๋ฆฌ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์—ฌ๊ธฐ์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‹ค์Œ ์งˆ๋ฌธ์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ๊ทธ๋Ÿผ โ€œ์ถ”์ธก์„ ์ค„์ด๋ ค๋ฉดโ€ harness๊ฐ€ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ญ˜ ์ œ๊ณตํ•ด์•ผ ํ• ๊นŒ? Anthropic์€ ๊ทธ ๋‹ต์„ โ€œartifact(ํ™˜๊ฒฝ์— ๋‚จ๊ธฐ๋Š” ์‚ฐ์ถœ๋ฌผ) + ์šด์˜ ๊ทœ์œจโ€๋กœ ํ’€์–ด๋‚ธ๋‹ค.


harness๋ฅผ ๊ตฌ์ฒดํ™”ํ•˜๋Š” โ€˜artifactโ€™ 4์ข… ์„ธํŠธ(Anthropic์‹)

1) feature list: โ€œ์™„์„ฑโ€์„ ํŒŒ์ผ๋กœ ๊ณ ์ •

Initializer๊ฐ€ ์‚ฌ์šฉ์ž ์š”๊ตฌ๋ฅผ ํ™•์žฅํ•ด ์ˆ˜๋ฐฑ ๊ฐœ ์ˆ˜์ค€์˜ end-to-end ์š”๊ตฌ์‚ฌํ•ญ ๋ชฉ๋ก์„ ๋งŒ๋“ ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ดํ›„ ์ž‘์—… ์—์ด์ „ํŠธ๋Š” ์ด ํŒŒ์ผ์„ ์‚ญ์ œ/์ˆ˜์ •ํ•˜์ง€ ๋ง๊ณ , ์˜ค์ง passes๋งŒ ๋ฐ”๊พธ๊ฒŒ ์ œํ•œํ•œ๋‹ค.

{
  "category": "functional",
  "description": "New chat button creates a fresh conversation",
  "steps": [
    "Navigate to main interface",
    "Click the 'New Chat' button",
    "Verify a new conversation is created"
  ],
  "passes": false
}

์ด๊ฒŒ ํšจ๊ณผ์ ์ธ ์ด์œ ๋Š” ๊ฐ„๋‹จํ•˜๋‹ค: โ€œ๋๋‹ค/์•ˆ ๋๋‹คโ€๋ฅผ ๋ง๋กœ ํ•ฉ์˜ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ์ˆ˜์šฉ์กฐ๊ฑด์„ ๊ณ ์ •ํ•ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

2) claude-progress.txt: ์„ธ์…˜ ๊ฐ„ ์ด์–ด๋‹ฌ๋ฆฌ๊ธฐ ๋กœ๊ทธ

์„ธ์…˜์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค โ€œ๋ฌด์—‡์„ ํ–ˆ๋Š”์ง€ / ๋ฌด์—‡์„ ๊ฒฐ์ •ํ–ˆ๋Š”์ง€ / ๋‹ค์Œ์— ๋ญ˜ ํ•˜๋ฉด ๋˜๋Š”์ง€โ€๋ฅผ ์งง๊ฒŒ ๋‚จ๊ธด๋‹ค.
๋‹ค์Œ ์„ธ์…˜์€ ์ด ํŒŒ์ผ๋ถ€ํ„ฐ ์ฝ๊ณ  ์ถœ๋ฐœํ•œ๋‹ค.

3) init.sh: ๋งค ์„ธ์…˜์„ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ๋™์‹œํ‚ค๋Š” ์Šค์œ„์น˜

์„œ๋ฒ„ ๋„์šฐ๊ธฐ, ์ดˆ๊ธฐ ์„ค์ •, smoke test ๊ฐ™์€ โ€œ๋งค๋ฒˆ ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ž์ฃผ ๊นŒ๋จน๋Š” ๊ฒƒโ€์„ ์Šคํฌ๋ฆฝํŠธ๋กœ ๊ณ ์ •ํ•œ๋‹ค.

4) git history: ์ƒํƒœ ํŒŒ์•…/๋ณต๊ตฌ์˜ ๊ณต์šฉ ์–ธ์–ด

long-running์—์„œ๋Š” โ€œํ˜„์žฌ ์ƒํƒœ๊ฐ€ ๋ญ”์ง€โ€๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•ฉ์˜ํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•˜๊ณ , git์ด ๊ทธ ์—ญํ• ์„ ํ•œ๋‹ค.
๋‹ค์Œ ์„ธ์…˜์€ git log๋ฅผ ๋ณด๊ณ  โ€œ์–ด๋””๊นŒ์ง€ ํ–ˆ๋Š”์ง€โ€๋ฅผ ๋ฐ”๋กœ ํŒŒ์•…ํ•œ๋‹ค. ์ด์ œ ๋‹ค์Œ ์งˆ๋ฌธ์œผ๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด์–ด์ง„๋‹ค.

artifact๋ฅผ ์ค€๋น„ํ–ˆ์œผ๋ฉด ๋์ผ๊นŒ? ์‹ค์ œ๋กœ๋Š” โ€˜์–ด๋–ป๊ฒŒ ๊ตด๋ฆฌ๋А๋ƒ(๊ทœ์œจ)โ€™๊ฐ€ ๋” ์ค‘์š”ํ•˜์ง€ ์•Š์„๊นŒ? ๋งž๋‹ค. ๊ทธ๋ž˜์„œ Anthropic์€ harness๋ฅผ โ€œ์šด์˜ ๊ทœ์น™โ€์œผ๋กœ๋„ ์ •์˜ํ•œ๋‹ค.


harness ์šด์˜ ๊ทœ์น™ 4๊ฐœ(โ€œ์˜ค๋ž˜ ๋‹ฌ๋ฆฌ๊ธฐโ€์— ๋งž์ถ˜ ๊ทœ์œจ)

๊ทœ์น™ 1) โ€œ์™„์„ฑโ€์€ ์ฃผ์žฅํ•˜์ง€ ๋ง๊ณ , feature list๋กœ ์ฆ๋ช…

โ€˜๋‹ค ๋์Šต๋‹ˆ๋‹คโ€™๊ฐ€ ์•„๋‹ˆ๋ผ passes๊ฐ€ true๊ฐ€ ๋œ ํ•ญ๋ชฉ์˜ ํ•ฉ์œผ๋กœ ์™„์„ฑ์„ ์ •์˜ํ•œ๋‹ค.

๊ทœ์น™ 2) ํ•œ ์„ธ์…˜์— ํ•˜๋‚˜์”ฉ: incremental progress

โ€œํฌ๊ฒŒ ํ•œ ๋ฐฉ์—โ€๋ณด๋‹ค โ€œ์ž‘๊ฒŒ ์™„์ฃผ๋ฅผ ๋ฐ˜๋ณตโ€ํ•˜๋Š” ๋ฐฉ์‹์ด ์„ธ์…˜ ๋‹จ์ ˆ์— ๊ฐ•ํ•˜๋‹ค.
์„ธ์…˜์ด ๋Š๊ฒจ๋„ ๋‹ค์Œ ์„ธ์…˜์ด ๋ฐ”๋กœ ์ด์–ด๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค.

๊ทœ์น™ 3) ์„ธ์…˜ ์ข…๋ฃŒ๋Š” clean state(merge-ready)

์„ธ์…˜์„ ๋๋‚ผ ๋•Œ๋Š” โ€œ๋‹ค์Œ ์„ธ์…˜์ด ์ฒญ์†Œ๋ถ€ํ„ฐ ํ•˜์ง€ ์•Š๋„๋กโ€ ์ •๋ฆฌ๋œ ์ƒํƒœ์—ฌ์•ผ ํ•œ๋‹ค.
(์ฝ”๋“œ ์ •๋ˆ, ํฐ ๋ฒ„๊ทธ ์—†์Œ, ์ตœ์†Œํ•œ์˜ ๋ฌธ์„œํ™” ๋“ฑ)

๊ทœ์น™ 4) passes๋Š” E2E ๊ฒ€์ฆ ํ›„์—๋งŒ ๋ฐ”๊พผ๋‹ค

ํ•ต์‹ฌ์€ โ€œํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ๋Š”๊ฐ€โ€๊ฐ€ ์•„๋‹ˆ๋ผ ํ˜„์‹ค์ ์ธ ๊ฒ€์ฆ ๋ฃจํ”„๊ฐ€ harness์— ๊ณ ์ •๋ผ ์žˆ๋Š”๊ฐ€๋‹ค.
๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ์—ฌ๊ธฐ์— ๋“ค์–ด์˜ค๋ฉด, ์‚ฌ๋žŒ์ด ํ•˜๋“ฏ end-to-end ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค. ์ด์ œ ๋งˆ์ง€๋ง‰ ์—ฐ๊ฒฐ ์งˆ๋ฌธ์ด ๋‚จ๋Š”๋‹ค.

๊ทœ์น™์„ โ€˜์•Œ๊ณ โ€™ ์žˆ๋Š” ๊ฒƒ๊ณผ, ๋งค ์„ธ์…˜๋งˆ๋‹ค โ€˜์‹ค์ œ๋กœโ€™ ์ ์šฉํ•˜๋Š” ๊ฑด ๋‹ค๋ฅด์ง€ ์•Š์„๊นŒ? ๊ทธ๋ž˜์„œ harness๋Š” โ€œ์ฒดํฌ๋ฆฌ์ŠคํŠธ(ํ”„๋กœํ† ์ฝœ)โ€๊นŒ์ง€ ์ œ๊ณตํ•˜๋Š” ์ชฝ์œผ๋กœ ๊ตฌ์ฒดํ™”๋œ๋‹ค.


๋งค ์„ธ์…˜ ์‹œ์ž‘ ๋ฃจํ‹ด(= harness๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ํ”„๋กœํ† ์ฝœ)

์„ธ์…˜์ด ๋ฐ”๋€Œ๋ฉด ์—์ด์ „ํŠธ๋Š” ๊ธฐ์–ต์ด ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์‹œ์ž‘์€ ๋Š˜ โ€œ์ƒํƒœ ๋ณต๊ตฌโ€๋ถ€ํ„ฐ๋‹ค. 1) pwd 2) read claude-progress.txt 3) read feature_list.json 4) git log --oneline -20 5) init.sh ๋กœ ์„œ๋ฒ„ ๊ธฐ๋™ 6) ๊ธฐ๋ณธ E2E smoke test 7) ๋‹ค์Œ์œผ๋กœ ๊ณ ์น  feature 1๊ฐœ ์„ ํƒ โ†’ ๊ตฌํ˜„/๊ฒ€์ฆ 8) git commit + progress ํŒŒ์ผ ์—…๋ฐ์ดํŠธ ์ด ๋ฃจํ‹ด์˜ ๋ชฉ์ ์€ ํ•œ ๊ฐ€์ง€๋‹ค:

์„ธ์…˜์ด ๋Š๊ฒจ๋„ ๋‹ค์Œ ์„ธ์…˜์ด ์ถ”์ธก ๋Œ€์‹  ํ™•์ธ์œผ๋กœ ์ถœ๋ฐœํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ


์ตœ์ข… ์š”์•ฝ(7์ค„)

  1. harness๋Š” ๋ชจ๋ธ์ด ์•„๋‹ˆ๋ผ ๋ชจ๋ธ์„ โ€˜์ผํ•˜๋Š” ์‹œ์Šคํ…œโ€™์œผ๋กœ ๋งŒ๋“œ๋Š” ๋Ÿฐํƒ€์ž„/์Šค์บํด๋”ฉ์ด๋‹ค.
  2. (๊ทธ๋ฆผ ๊ธฐ์ค€) Model์„ ์ œ์™ธํ•œ Orchestration/Memory/Tools ๋ฉ์–ด๋ฆฌ๋ฅผ harness๋กœ ๋ณด๋ฉด ๋Œ€๋ถ€๋ถ„ ๋งž๋‹ค.
  3. long-running์—์„œ๋Š” harness์˜ ๋ชฉํ‘œ๊ฐ€ ์„ธ์…˜ ๊ฐ„ ๋‹จ์ ˆ์„ ๋ฉ”์šฐ๊ธฐ๋กœ ํ™•์žฅ๋œ๋‹ค.
  4. feature_list.json๋กœ ์™„์„ฑ ๊ธฐ์ค€์„ ์„ ๊ณ ์ •ํ•ด ์กฐ๊ธฐ ์™„๋ฃŒ ์„ ์–ธ์„ ๋ง‰๋Š”๋‹ค.
  5. ๋งค ์„ธ์…˜์€ ํ•˜๋‚˜์”ฉ ์™„์ฃผํ•˜๊ณ , ๋ฐ˜์ฏค ๋งŒ๋“  ์ฑ„ ๋„˜๊ธฐ์ง€ ์•Š๋Š”๋‹ค.
  6. ์„ธ์…˜ ์ข…๋ฃŒ๋Š” clean state + git commit + progress ๊ธฐ๋ก์ด ๊ธฐ๋ณธ์ด๋‹ค.
  7. passes๋Š” โ€œํ–ˆ๋‹ค๊ณ  ์ฃผ์žฅโ€์ด ์•„๋‹ˆ๋ผ E2E ๊ฒ€์ฆ ํ›„์—๋งŒ ๋ฐ”๊พผ๋‹ค.

์ฐธ๊ณ  ๋ฌธ์„œ