๊ธฐ๋ฅ ์์ธ ๋ณด๊ณ
12. ํ๋ค์ค ์ด๋ํ ์ด์ (Harness Adaptation) ๊ธฐ๋ฅ ๋ถ์ ๋ณด๊ณ ์
๋์: ํ๋ค์ค ์ด๋ํ ์ด์ ๋ฉํ ์ธํ๋ผ (Stage 0~9, VR-cycle ์๊ฐ๊ฒ์ฆ, 6-ํจํด ์์ ํธ๋ฆฌ) ๋ฃจํธ:
[LOCAL_PATH]๊ท์น: ๋ชจ๋ ์ฌ์ค ์ฃผ์ฅ์file_path:line๋๋ ์ง์ ์ธ์ฉ ์ฒจ๋ถ. ๋ฏธํ์ธ ํญ๋ชฉ์ ยง๊ฒ์ฆ ํ์์ ๊ธฐ๋ก. ์ฝ๊ธฐ ์ ์ฉ ๋ถ์. ์์ฑ: 2026-06-17
0. ํ ์ค ์ ์
ํ๋ค์ค ์ด๋ํ ์ด์ ์ ๋ฐ๊ตด ์ ํ๋๋ฅผ ์ง์ ์ฌ๋ฆฌ๋ ๊ธฐ๋ฅ์ด ์๋๋ผ, ๋ฐ๊ตด ํ์ดํ๋ผ์ธ์ ๊ตด๋ฆฌ๋ "ํ ์ด์ ๋ฐฉ์"์ ํ์คํยท๊ฒ์ฆ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๋ฉํ ์ธํ๋ผ๋ค. ํต์ฌ ๊ฐ์น๋ (1) 6๊ฐ ์ค์ผ์คํธ๋ ์ด์ ํจํด์ผ๋ก ์์ ์์์ ๋ช ์์ ยท์ฌํ ๊ฐ์ฌ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ณ , (2) VR-cycle ์๊ฐ๊ฒ์ฆ ๋ฃจํ๋ก ์์คํ ์ด ์๊ธฐ ๊ฒฐํจ์ ์ ์งํ๊ฒ ๋ ธ์ถํ๋ฉฐ, (3) ํ๊ฐ ๊ฐ๋(Stage 5)๋ก ๋๋ฉ์ธ ํ๊ณ๋ฅผ ์จ๊ธฐ์ง ์๊ณ disclaimer๋ก ๋๋ฌ๋ด๋ ๋ฐ ์๋ค.
์๋ณธ์ revfactory/harness (v1.2.0, Apache-2.0)์ด๋ฉฐ, ๋ณธ ํ๋ก์ ํธ๋ CLI ์ข
์(L1)์ ํ๊ธฐํ๊ณ CLI-agnostic ํต์ฌ IP(L2)๋ง ์ถ์ถํ๋ค (tools/harness-adaptation/ANALYSIS.md:283-292).
1. ๋์ ์๋ฆฌ
1.1 6๊ฐ ์ค์ผ์คํธ๋ ์ด์ ํจํด
๊ถ์ ์๋ ๋ช
์นญ ์ถ์ฒ๋ ์๋ณธ plugin.json:3 ์๋ฌธ ์ด๊ฑฐ, ์์ธ ์ ์๋ reference/harness/.../agent-design-patterns.md:83-161 (๋ถ์ ์ ๋ฆฌ: tools/harness-adaptation/ANALYSIS.md:109-141).
| # | ํจํด | ์ ์ฉ ์กฐ๊ฑด | ๋ณธ ํ๋ก์ ํธ ๋งคํ | ๊ทผ๊ฑฐ |
|---|---|---|---|---|
| 1 | Pipeline | ์์ฐจ ์์กด ์์ , ๊ฐ ๋จ๊ณ๊ฐ ์ง์ ์ฐ์ถ๋ฌผ์ ๊ฐํ๊ฒ ์์กด | ์ํ์ค ๊ฒ์ฆ โ ๋ณ์ด ์ ์ฉ โ ๋ํน โ ์ฑ์ | ANALYSIS.md:113-116 / CLAUDE.md:42 |
| 2 | Fan-out/Fan-in | ๋์ผ ์ ๋ ฅ์ ์ฌ๋ฌ ๊ด์ ยท์์ญ ๋ถ์ ํ ํตํฉ. "๋ฐ๋์ ํ์ผ๋ก ๊ตฌ์ฑ" | 4 reviewer ๋ณ๋ ฌ ๊ฒํ โ reviewer-science ํตํฉ | ANALYSIS.md:118-122 / CLAUDE.md:44,9 |
| 3 | Expert Pool | ์ ๋ ฅ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ ๋ฌธ๊ฐ ํธ์ถ. ์๋ธ์์ด์ ํธ๊ฐ ๋ ์ ํฉ | codex=์ฝ๋, cursor-agent=๋ถ์ ๋ผ์ฐํ | ANALYSIS.md:123-126 / CLAUDE.md:22 |
| 4 | Producer-Reviewer | ํ์ง ๋ณด์ฅ ํ์ + ๊ฐ๊ด์ ๊ฒ์ฆ ๊ธฐ์ค ์กด์ฌ. ์ฌ์๋ โค2~3 | engineer-backend ์์ฑ โ reviewer ๊ฒ์ฆ ๋ฃจํ | ANALYSIS.md:128-131 / CLAUDE.md:43 |
| 5 | Supervisor | ์์ ๋ ๊ฐ๋ณยท๋ฐํ์ ๋์ ๋ถ๋ฐฐ | orchestrator๊ฐ ํ์์ ๋์ ๋ถ๋ฐฐ | ANALYSIS.md:133-136 / CLAUDE.md:9 |
| 6 | Hierarchical Delegation | ๋ฌธ์ ๊ฐ ์์ฐ์ค๋ฝ๊ฒ ๊ณ์ธต์ ๋ถํด. ๊น์ด 3๋จ๊ณ ์ด์ ๊ธ์ง | 1๋จ๊ณ ์ถฉ๋ถ ์ 4์์ "์ง์ "์ผ๋ก ํํํ | ANALYSIS.md:138-141 / CLAUDE.md:57 |
์ด 6ํจํด์ CLAUDE.md์ 4๋จ๊ณ ์์ ํธ๋ฆฌ์ 1:1๋ก ๋ช
์ ๋งคํ๋์ด ์๋ค (Stage 3 ์์
). ์ฆ ์ด๋ ์์ ๊ฒฐ์ ์ด ์ด๋ ํจํด์ ์ค๊ตฌํ์ธ์ง ์ถ์ ๊ฐ๋ฅํ๋ค (CLAUDE.md:9-10, 22-23, 41-46, 56-57).
1.2 Stage 0~9 โ ๋ฌด์์ ํ๋
CLAUDE.md์ "Stage ์ ์ฉ ์ด๋ ฅ" ํ(CLAUDE.md:148-166)์ ํ๊ณ (_workspace/release/retro-2026-Q2.md:21-39)๊ฐ ์ถ์ฒ๋ค. ๊ฐ Stage๋ ๋
๋ฆฝ์ ์ผ๋ก ๊ฐ์น๋ฅผ ๋ด๋ ๋จ์๋ก ์ค๊ณ๋์๋ค (INTEGRATION_PLAN.md:4).
| Stage | ํ ์ผ | ์ฌ์ | ๊ทผ๊ฑฐ |
|---|---|---|---|
| 0 | tools/harness-adaptation/ ๋๋ ํ ๋ฆฌ + ์๋ณธ submodule ์ ์ค |
์ด๋ํ ์ด์ ๊ณจ๊ฒฉ + ์๋ณธ ๋ผ์ด์ ์ค ๋ณด์กด | INTEGRATION_PLAN.md:8-16 |
| 1 | _workspace/ ๋๋ ํ ๋ฆฌ + {NN}_{agent}_{artifact}.{ext} ํ์ผ๋ช
์ปจ๋ฒค์
|
๋ค๋จ๊ณ ์ฐ์ถ๋ฌผ ์ถ์ ์ฑ | INTEGRATION_PLAN.md:19-33 |
| 2 | CLAUDE.md Harness Pointer ๋ธ๋ก + ํธ๋ฆฌ๊ฑฐ ํค์๋ |
๋ฐ๊ฒฌ ๊ฐ๋ฅ์ฑ ํฅ์ | INTEGRATION_PLAN.md:36-53 |
| 3 | ์์ ํธ๋ฆฌ 4๋ถ๊ธฐ์ 6ํจํด ๋ช ์นญ ๋งคํ | ์ฌํ ๊ฐ์ฌ ๊ฐ๋ฅ์ฑ | INTEGRATION_PLAN.md:57-73 |
| 4 | PR ํ ํ๋ฆฟ + ๊ฒ์ฆ ๋ณด๊ณ ์ ์๋ฌดํ (should-trigger/NOT-trigger/A-B) | ์ ๊ท ์์ด์ ํธยท์คํฌ ํ์ง ๊ฒ์ดํธ | INTEGRATION_PLAN.md:77-86 |
| 5 (Critical) | pipeline_local/scripts/pharmacology_guards.py + ํ๊ท ํ
์คํธ(33โ39๊ฐ) |
์ฝ๋ฆฌํ lookup table ํ๊ฐ ์ฐจ๋จ | INTEGRATION_PLAN.md:90-100 / CLAUDE.md:152 |
| 6 | CHANGELOG.md + RETROSPECTIVE_GUIDE.md + PR ํ
ํ๋ฆฟ ๋ณด๊ฐ |
Phase 7 ์งํ ๋ฉ์ปค๋์ฆ ์ด์ํ | INTEGRATION_PLAN.md:104-113 / CLAUDE.md:155 |
| 7 | .claude/agents/*.md 6๊ฐ์ harness ํ์ค 3์น์
(์
๋ ฅ/์ถ๋ ฅ/์๋ฌ) ๋ณด๊ฐ |
๊ฒ์ฆ ๊ฐ๋ฅ ํ์ ์ ๋ฆฝ (์ด๋ฏธ ๋ถ๋ฆฌ๋์ด ์์ด ์ ์ค ๋ถํ์) | CLAUDE.md:156 |
| 8a | researcher ์์ด์ ํธ ์ ์ค |
์ธ๋ถ ์๋ฃ ์์ง ๋ถ๋ด์ reviewer-science์์ ๋ถ๋ฆฌ | CLAUDE.md:158 |
| 8b | reviewer-science โ pharma/biology/chemistry/math 4๋ถ๋ฆฌ, ๊ธฐ์กด reviewer-science๋ ๋ผ์ฐํฐ ์ฌ์ ์ | ๋๋ฉ์ธ ๊ฒฝ๊ณ ๋ช ํํ + ์ฝ๋ฆฌํ ๊ฐ๋ ์ง๊ฒฐ | CLAUDE.md:159 |
| 8c | scripts/auto_dispatch.sh + orchestrator ์ธ๋ถ CLI ์๋ dispatch |
Codex/Cursor ์๋ ๋ผ์ฐํ (Expert Pool) | CLAUDE.md:160 |
| 8d | End-to-End ์ฌ์ดํด dogfooding (modification_conflict checker, 71/71 tests) | ๊ตฌํโ๊ฒ์ฆโ์คํโ๊ฐญโ์์ โ์์ฑ 6๋จ๊ณ ์๋ ์ ์ฆ | CLAUDE.md:161 |
| 8e/8f/8g | VR-cycle-04/07/01 closure (๋ผ์ฐํ ํ๊ท + ์๊ธฐ ์ผ๊ด์ฑ pytest + C-07 DOTA, 89/89) | ยง๊ฒ์ฆ 8๊ฑด ์ค 4๊ฑด ์์ฒด closure | CLAUDE.md:162 |
| 8h | VR-cycle-09 (H-06 "๊ณ์ฐ ๋ถ๊ฐ๋ฅ์ ๊ณ์ฐ ๊ฐ๋ฅํ ์ฒ") ์๋ณยทclosure (93/93) | 3-layer closure, "๋๋ฉ์ธ ํ๊ณ์ ์ ์งํ ๋ ธ์ถ" ๋ณธ์ง ํ๋ฆฝ | CLAUDE.md:163 |
| 8i | VR-cycle-05/06/08 + VR-S5-01 partial closure (95/95) | GATE-F/GATE-G + disclaimer ์ถ๊ฐ. 10๊ฑด ์ค 10๊ฑด ์ฒ๋ฆฌ ์๋ฃ | CLAUDE.md:164 |
| 9 | Rosetta Flow End-to-End Dogfood (3 iter, 9.5๋ถ, patience early stop) | BE/FE/PyRosetta/Boltz ์ค ์ด์ + 6 critical ๊ฒฐํจ ์๊ฐ ๋ ธ์ถ + R1~R7 + VR-cycle-10~14 | CLAUDE.md:166 / scenario-rosetta-flow-2026-05-11.md |
์ถ๊ฐ๋ก ๋ถ๊ธฐ ํ๊ณ 1์ฐจ(Retro 2026-Q2)๊ฐ Stage 9์ 8i ์ฌ์ด์ ์คํ๋์ด 8๊ฐ Action Item์ ์๋ณํ๋ค (CLAUDE.md:165).
1.3 VR-cycle ์๊ฐ๊ฒ์ฆ ๋ฃจํ
VR-cycle(Verification Required cycle)์ ์ด๋ํ ์ด์ ์ด ์ค์ค๋ก ๋ฐ๊ฒฌํ ๋ฏธ๊ฒ์ฆยท๊ฒฐํจ ํญ๋ชฉ์ ๋ฑ๋กํ๊ณ , ํ์ Stage์์ ๋ซ๋ ๋ฉ์ปค๋์ฆ์ด๋ค. ๋ณธ์ง์ ์์คํ ์ด ์๊ธฐ ํ๊ณ๋ฅผ ์จ๊ธฐ์ง ์๊ณ ์ถ์ ๋์์ผ๋ก ๋ช ์ํ๋ ๊ฒ.
- ์ฒ๋ฆฌ ํํฉ: 10๊ฐ ํญ๋ชฉ 100% ์ฒ๋ฆฌ โ FULL closed 5๊ฑด(50%), ABSORBED 1๊ฑด(VR-02โ09), PARTIAL 4๊ฑด(40%) (
retro-2026-Q2.md:68-75). - ์ฐจ๋จ๋ ์ค ํ๊ท ๊ฒฐํจ:
RW_TRANSFER[S]=1.15(์ ๋ต 3.40),NEND_HALFLIFE[P]=20.0yeast(์ ๋ต 30.0 mammalian), Boman ๋ถํธ ์ญ์ โ ๋ชจ๋pharmacology_guards๊ฐ ์ฐจ๋จ (retro-2026-Q2.md:79-86). - ์์ฒด ๋ฐ๊ฒฌ 1๊ฑด:
boman_index_kcal_per_mol๋ฒ์[-5,+5]๊ฐ all-K=5.55์์ ๋๋ฌด ์ข์ โ[-5,+15]๋ก ์๊ฐ ์์ . GATE-C๊ฐ ์์ฒด ๊ฐ์ค์ ๋ถ์ ํ์ฑ์ catch (retro-2026-Q2.md:86). - ์ด์ ์ ์ฉ ์ฌ๋ก (Stage 9): ddG=0.00์ด๋ผ๋ ๋นํ์ค์ ๊ฒฐ๊ณผ๋ฅผ "์์ binding ๊ฐ"์ด ์๋ "๋๋ฉ์ธ fail ์ ํธ"๋ก ์ ์งํ ๋ณด๊ณ โ VR-cycle-09(H-06) ๊ฐ๋๊ฐ ์๋๋๋ก ์๋ (
scenario-rosetta-flow-2026-05-11.md:223, 271). Stage 9์์ ์ ๊ท VR-cycle-10~14 ๋ฑ๋ก (scenario-rosetta-flow-2026-05-11.md:208-213).
ํต์ฌ ๋ฐ๊ฒฌ(CLAUDE.md:163): "ํ๋ค์ค ๋ณธ์ง = ๋๋ฉ์ธ ํ๊ณ์ ์ ์งํ ๋
ธ์ถ, ์ ํ๋ ๋ณด์ฅ X."
2. ์ํฅ โ ์์คํ ํ์งยท์๊ฐ๊ฒ์ฆ์ ์ด๋ป๊ฒ ๊ธฐ์ฌํ๋
- ์์์ ์ฌํ ๊ฐ์ฌ ๊ฐ๋ฅ์ฑ: 6ํจํด โ 4์์ ํธ๋ฆฌ ๋งคํ์ผ๋ก "์ด๋ ์์
์ ์ ๊ทธ ๋ฐฉ์์ผ๋ก ์์ํ๋"๋ฅผ ์ถ์ ๊ฐ๋ฅ. Stage 3 ์ด์ ์ ํจํด ๋ช
์นญ ๊ธฐ๋ก์ด ์์ด ์ฌํ ๊ฐ์ฌ ๋ถ๊ฐ์์ (
ANALYSIS.md:221-225ํ๊ฐ ์ํ ์ง์ ยงPhase 2). - ํ๊ฐ ์ฌ๊ณ ์๋ฐฉ (Critical): Stage 5 ํ๊ฐ ๊ฐ๋๊ฐ ์ฝ๋ฆฌํ lookup table 4๊ฑด ์ด์์ ์ค ํ๊ท๋ฅผ ์ฝ๋ ๋ ๋ฒจ์์ ์ฐจ๋จ (
retro-2026-Q2.md:79-86). ์ด๋ NSGA-II ์์ ์ญ์ (Boman ๋ถํธ) ๊ฐ์ ๋ฐ๊ตด ๊ฒฐ๊ณผ ์๊ณก์ ๋ง๋๋ค. - ๋ฉํธ๋ฆญ์ผ๋ก ์
์ฆ๋๋ ํ์ง ํฅ์: pytest 0โ95/95, auto_dispatch routing 0โ16/16, ์์ด์ ํธ ์ ์ 6โ11(+83%), CLAUDE.md ํธ๋ฆฌ๊ฑฐ ํ 8โ18(+125%), Conflict rules 0โ10, LITERATURE_VALUES 0โ5 (
retro-2026-Q2.md:58-66). - Producer-Reviewer cross-validation ์ ํธ: Stage 9์์ 6๊ฐ ๋ฐ๊ฒฌ ์ค 5๊ฑด์ 2๋ช
์ด์ reviewer๊ฐ ๋
๋ฆฝ ์๋ณ โ ๋จ์ผ ์๊ฐ ํ๊ฐ์ cross-check๋ก ๊ฑธ๋ฌ๋ (
scenario-rosetta-flow-2026-05-11.md:137, 224). - ์ฌํ ๊ฐ๋ฅํ ์ธ์ฉ ๊ท์ฝ:
file_path:line์ธ์ฉ์ ๊ฐ์ ํ์ฌ ๊ฒ์ฆ์๊ฐ ์ฃผ์ฅ์ ์ฌํ ๊ฐ๋ฅ (ANALYSIS.md:5,post-m0-audit๋ผ์ธ ๋ฒํธ ์ธ์ฉ ํจํด ์ฐจ์ฉANALYSIS.md:212).
3. ๊ด๋ จ Action Item โ Stage ์ด๋ ฅ ์์ฒด๊ฐ ๋ฉํ
Stage ์ ์ฉ ์ด๋ ฅ ํ ์์ฒด๊ฐ ๋ฉํ ์์
์ ์ฐ๋ฌผ์ด๋ค. ํ๊ณ ์์ "๋ฉํ ์์
์ ํจํด ๋ถ์ฌ"๊ฐ ํต์ฌ ๋ฐ๊ฒฌ์ผ๋ก ๊ธฐ๋ก๋์๋ค: ๋ณธ ๋ถ๊ธฐ ์์
์ ์ ๋ฐ ์ด์์ด ์ด๋ํ
์ด์
์์ฒด์ ๋จ๊ณ์ ๊ตฌ์ถ(Stage 1~8 ๋ฑ)์ธ๋ฐ, ์ด๋ค์ด ์์ ํธ๋ฆฌ 4์์ "์ง์ ๊ตฌํ"์ผ๋ก ํก์๋์์ ๋ฟ ๊ณ ์ ํจํด ๋ช
์ธ๊ฐ ์๋ค (retro-2026-Q2.md:101-107, 200).
Q3 Action Items 8๊ฑด ์ค ๋ฉํ ์ธํ๋ผ์ ์ง๊ฒฐ๋๋ ๊ฒ (retro-2026-Q2.md:160-169):
| ID | ์ก์ | ๋ฉํ ๊ด๊ณ |
|---|---|---|
| Q-2026-Q3-1 (Critical) | CI์ pytest + routing test ๋ฑ๋ก | ํ๊ท ์๋ ์ฐจ๋จ โ ์ด์ ๋จ๊ณ ์ง์
์ ์ (retro-2026-Q2.md:162, 171) |
| Q-2026-Q3-2 | tmux team-mate 1ํ ์ค ์ด์ (Stage 9) | 1์์ ์์ ํธ๋ฆฌ๊ฐ ๋ณธ ๋ถ๊ธฐ 0ํ ์ฌ์ฉ โ ํจํด ์ ํฉ์ฑ ๊ฒ์ฆ ๋ถ์์ (retro-2026-Q2.md:96, 199) |
| Q-2026-Q3-7 | Meta-Pipeline ํจํด ์ ์ + ์์ ํธ๋ฆฌ 4์์ ๋ณด๊ฐ | "๋ฉํ ์์
ํจํด ๋ถ์ฌ" ์ง์ ํด์ (retro-2026-Q2.md:153, 168) |
| Q-2026-Q3-3/4 | VR-cycle-05/06 full closure (echoยทํ ํฐ ๋น์ฉ ์ค์ธก) | partialโfull, ์ค ํธ๋ํฝ ํ์ (retro-2026-Q2.md:164-165) |
Stage 9๊ฐ Q-2026-Q3-2๋ฅผ ์ฌ์ ๋ถ๋ถ ์คํํ๋ฉด์ ๋ค์ Q-2026-Q3-9~14๋ฅผ ์ถ๊ฐ ๋ฑ๋ก (scenario-rosetta-flow-2026-05-11.md:251-260) โ Action Item์ด ์๊ธฐ ์ฆ์ํ๋ ์๊ฐ ๋ฐ์ ๋ฃจํ๊ฐ ๊ด์ฐฐ๋๋ค.
4. ์์ฑ๋
| ๊ตฌ๋ถ | ์ํ | ๊ทผ๊ฑฐ |
|---|---|---|
| Stage 0~9 (8a~8i ํฌํจ) | 17/17 ์๋ฃ | retro-2026-Q2.md:144-145 "Stage 0/1/2/3/4/5/6/7 + 8a~8i ๋ชจ๋ ์ ์ฉ" + Stage 9 ์ถ๊ฐ (CLAUDE.md:166) |
| ยง๊ฒ์ฆ ํ์ ์ฒ๋ฆฌ | 10/10 (100%) โ 5 full + 1 ํก์ + 4 partial | retro-2026-Q2.md:68-75 |
| INTEGRATION_PLAN ๋ฏธ์ ์ฉ Stage | ์์ (์ ๋ถ ์ ์ฉ ์๋ฃ) | CLAUDE.md:168-169 |
์์ฑ๋ ์ถ์ : ์ฝ 90%. Stage ๊ณจ๊ฒฉยท๊ฒ์ฆ ๊ฒ์ดํธยทํ๊ฐ ๊ฐ๋ยท์งํ ๋ฉ์ปค๋์ฆ์ ์ ๋ถ ๊ฐ๋(17/17). ๋จ์ 10%๋ ์ค ํธ๋ํฝ ๊ฒ์ฆ์ ๊ณต๋ฐฑ์ด๋ค:
- 1์์ tmux team-mate ๋ณธ ๋ถ๊ธฐ 0ํ ์ด์ (retro-2026-Q2.md:96, 199)
- VR-cycle-05/06์ด ์ค ํธ๋ํฝ ๋ถ์ฌ๋ก partial์ ๋จธ๋ฌพ (retro-2026-Q2.md:198)
- CI ๋ฑ๋ก ๋ฏธ์๋ฃ โ ํ๊ท ํ
์คํธ๊ฐ ๋ก์ปฌ์์๋ง ์๋ (retro-2026-Q2.md:201)
- Stage 9 dogfood์์ ์ค์ reviewer-* Agent ํธ์ถ ๋์ ๋ฉ์ธ thread๊ฐ ์์ ์ํ (scenario-rosetta-flow-2026-05-11.md:229)
์ฆ ์ธํ๋ผ๋ ์์ฑ, ์ค ์ด์ ๋ฐ์ดํฐ ๋์ ์ ์งํ ์ค.
5. ํ์ ๊ฐ์น
- ์ฌํ์ฑ IP์ CLI ๋น์ข
์ ์ถ์ถ: ์๋ณธ์ L1(Claude Code ์ข
์)์ ํ๊ธฐํ๊ณ L2(6ํจํดยทPhase ์ํฌํ๋ก์ฐยท
_workspace์ปจ๋ฒค์ ยท๊ฒ์ฆ ๊ฒ์ดํธ)๋ง ์ถ์ถํด Codex/Cursor๋ก ํฌํ ๊ฐ๋ฅ (ANALYSIS.md:145-198, 287). ํน์ ๋ฒค๋ ๋๊ตฌ์ ๋ฌถ์ด์ง ์๋ ๋ฉํฐ-์์ด์ ํธ ์ด์ ๋ฐฉ๋ฒ๋ก . - "์ ์งํ ํ๊ณ ๋
ธ์ถ" ๋ฐฉ๋ฒ๋ก : ํด๋ฆฌ์คํฑยทdegraded-mode ๊ฒฐ๊ณผ๋ฅผ ์ ๋ขฐ๊ฐ์ฒ๋ผ ๋ณด๊ณ ํ์ง ์๋ ๊ฐ๋(H-06/VR-cycle-09)๋, ๊ณ์ฐ ๊ณผํ AI ํ์ดํ๋ผ์ธ์ ํ๊ฐ ๋ณด๊ณ ๋ฌธ์ ์ ๋ํ ์ผ๋ฐํ ๊ฐ๋ฅํ ํจํด (
CLAUDE.md:163,scenario-rosetta-flow-2026-05-11.md:271). - ์๊ฐ๊ฒ์ฆ dogfooding ์ฌ๋ก: Stage 8dยท9 ๋ ์ฐจ๋ก End-to-End dogfood๊ฐ "์์คํ
์ด ์๊ธฐ ๊ฒฐํจ์ ๋
ธ์ถ"ํ๋ ๋ฉ์ปค๋์ฆ์ ์
์ฆ (Stage 9: 6 critical ๊ฒฐํจ ์๊ฐ ๋
ธ์ถ
scenario-rosetta-flow-2026-05-11.md:266-273). - ๋ถ๊ธฐ ํ๊ณ ์ ์ ๋ ๋ฉํธ๋ฆญ ์ถ์ด: SemVer 15 minor + 1 patch, ๋ฉํธ๋ฆญ before/after ํ (
retro-2026-Q2.md:43, 58-66)๊ฐ ๋ฉํ ์ธํ๋ผ ์งํ์ ์ ๋์ ์ถ์ ์ฌ๋ก. - ํ๊ณ (์ ์ง์ฑ ์์ฒด์ ์ ์ฉ): ์๋ณธ์ "+60% ํ์ง ํฅ์" ์ฃผ์ฅ์ n=15 author-measured ์ํํธ์จ์ด ํ์คํฌ๋ก ์ฝ๋ฆฌํ ์ ํ๋์ ์ผ๋ฐํ ๋ถ๊ฐํ๋ค๊ณ ๋ณธ ์ด๋ํ
์ด์
์ด ๋ช
์ (
ANALYSIS.md:241, 272). ์ฆ ์ด๋ํ ์ด์ ์ค์ค๋ก ์๊ธฐ ํจ๊ณผ๋ฅผ ๊ณผ๋ ์ฃผ์ฅํ์ง ์๋๋ค.
6. ์ฌ์ฉ๋ฒ (์์ ์ธํฐํ์ด์ค)
CLAUDE.md ์์ ํธ๋ฆฌ(CLAUDE.md:3-59)์ ํธ๋ฆฌ๊ฑฐ ํค์๋ ํ(CLAUDE.md:74-90)๊ฐ ์ง์
์ .
| ์์ ๋ฐฉ์ | ํธ์ถ | ํจํด | ํธ๋ฆฌ๊ฑฐ ํค์๋ |
|---|---|---|---|
tmux team-mate (/team) |
tmux ํ์ธ โ ./scripts/launch_agent_team.sh |
Fan-out/Fan-in ๋๋ Supervisor | "ํ", "ํ ๋ก ", "๋ฆฌ๋ทฐ", "๊ฒํ ํ์" (CLAUDE.md:15, 76) |
| codex | ./scripts/agent-wrapper.sh codex <args> |
Expert Pool (์ฝ๋) | "๊ตฌํํด/์ฝ๋ ์์ฑ/์์ ํด"(๋จ์), "๋ฆฌ๋ทฐํด"(์ฝ๋) (CLAUDE.md:77-78) |
| cursor-agent | ./scripts/agent-wrapper.sh cursor-agent <args>; ๋จ๊ณ๋ณ Pipeline์ ./scripts/cursor/harness_invoke.sh (list/run/chain, ๊ธฐ๋ณธ dry-run) |
Expert Pool (๋ถ์) | "EOD/์ผ์ /์ํ ๋ณด๊ณ ", "๋ถ์ํด/์กฐ์ฌํด"(๊ตฌ์กฐ) (CLAUDE.md:79-80, 37) |
| ๋ด์ฅ ์๋ธ์์ด์ ํธ (Agent tool) | Agent / /subagent-dev |
Pipeline / Producer-Reviewer / Fan-outยทFan-in | "๊ตฌํํด"(๋ณต์ก, ์ฌ๋ฌ ํ์ผ) (CLAUDE.md:81) |
| ์ง์ ๊ตฌํ | (์์ ์์) | Hierarchical ํํํ | ํ์ผ 1~2๊ฐ๋ก ๋๋๋ ์์
(CLAUDE.md:59) |
์์ ์ ํ์ ํ๋(CLAUDE.md:63-68): (1) ํ ๋น ์ ๋์ยท๋ด์ฉยท์์ ๊ฒฐ๊ณผ CLI ์ถ๋ ฅ, (2) ๊ฒฐ๊ณผ ์์ ์ ์์ฝยท๋ณ๊ฒฝ ํ์ผยทํ
์คํธ ๊ฒฐ๊ณผ ์ถ๋ ฅ, (3) logs/external_agents/์ ์ธ๋ถ ํธ์ถ ๊ธฐ๋ก, (4) ์คํจ ์ ๋ณด๊ณ + ๋์. ๋๋ฉ์ธ ๋ฆฌ๋ทฐ์ด๋ ํค์๋๋ก ์๋ ๋ผ์ฐํ
๋๋ค (์: "์ฝ๋ฆฌํ/Boman/GRAVY"โreviewer-pharma, "DOTA/๋ผ๋ฒจ๋ง"โreviewer-chemistry, CLAUDE.md:87-90).
7. ํต์ฌ โ ์ ํ์ํ๊ฐ (๋ฐ๊ตด ์ ํ๋ ๋ฉํ ์ธํ๋ผ)
ํ๋ค์ค ์ด๋ํ ์ด์ ์ ํ๋ณด ํฉํ์ด๋ ๋ฐ๊ตด์ ์ ์๋ฅผ ์ง์ 1์ ๋ ์ฌ๋ฆฌ์ง ์๋๋ค. ฮmargin ๊ณ์ฐ์๋, ๋ํน ์ฑ์ ํจ์๋, ์ ํ์ฑ ๋ง์ง๋ ๊ฑด๋๋ฆฌ์ง ์๋๋ค. ๊ทธ๋ผ์๋ ํ์ํ ์ด์ ๋, ๋ฐ๊ตด ๊ฒฐ๊ณผ์ ์ ๋ขฐ์ฑยท์ฌํ์ฑยท์ ์ง์ฑ์ ๋ ๋ฐ์น๋ ๋ฉํ ์ธํ๋ผ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
-
๋๋ฉ์ธ ํ๊ณ์ ์ ์งํ ๋ ธ์ถ: ์ด๋ํ ์ด์ ์ ๋ณธ์ง์ "์ ํ๋ ๋ณด์ฅ X, ๋๋ฉ์ธ ํ๊ณ์ ์ ์งํ ๋ ธ์ถ"๋ก ๋ช ๋ฌธํ๋ผ ์๋ค (
CLAUDE.md:163). ddG=0.00 ๊ฐ์ degraded-mode ๊ฒฐ๊ณผ๋ฅผ ์์ ๊ฒฐํฉ ์นํ๋์ธ ์ฒ ๋ณด๊ณ ํ์ง ์๊ณ fail ์ ํธ๋ก ๋ถ๋ฅํ ๊ฒ์ด ๋ํ ์ด์ ์ฌ๋ก (scenario-rosetta-flow-2026-05-11.md:223, 271). ๋ฐ๊ตด์ด ํ๋ฆด ์ ์์์ ์์คํ ์ด ์ค์ค๋ก ๋๋ฌ๋ธ๋ค. -
ํ๊ฐ ์ฐจ๋จ: ์ฝ๋ฆฌํ lookup table ํ๊ฐ(Radzicka-Wolfenden S=1.15, Pro half-life=20 yeast, Boman ๋ถํธ ์ญ์ )์ ๊ทธ ์์ฒด๊ฐ NSGA-II ์์์ ํ๋ณด ์ ์ ์ ์๊ณกํ๋ค. Stage 5 ๊ฐ๋๊ฐ ์ด๋ฅผ ์ฝ๋ ๋ ๋ฒจ์์ ์ฐจ๋จํด ์๋ชป๋ ์์น๋ก ์ธํ ์๋ชป๋ ๋ฐ๊ตด์ ์๋ฐฉ (
retro-2026-Q2.md:79-86,ANALYSIS.md:246-251H-01~H-05). -
์ฌํ์ฑ:
_workspace/์ฐ์ถ๋ฌผ ์ปจ๋ฒค์ +file_path:line์ธ์ฉ ๊ฐ์ + SemVer CHANGELOG + ๋ถ๊ธฐ ํ๊ณ ๋ก, ์ด๋ค ๋ฐ๊ตด ์คํ์ด ์ด๋ค ์ฝ๋ยท์์ด์ ํธยทํ๋ผ๋ฏธํฐ์์ ๋์๋์ง ์ถ์ ๊ฐ๋ฅ (retro-2026-Q2.md:46-54, 58-66). ๋ฐ๊ตด ๊ฒฐ๊ณผ๊ฐ ์ฐ์ฐ์ด ์๋๋ผ ์ฌํ ๊ฐ๋ฅํ ์ ์ฐจ์ ์ฐ๋ฌผ์์ ๋ณด์ฅ. -
์๊ฐ๊ฒ์ฆ์ ๋ฉํ ๋ฃจํ: VR-cycle์ด ์์คํ ๊ฒฐํจ์ ๋ฑ๋กยทclosureํ๊ณ , dogfooding์ด ๊ฒฐํจ์ ์๊ฐ ๋ ธ์ถํ๋ฉฐ, ํ๊ณ ๊ฐ Action Item์ ์๋ณํ๋ค. ์ด ๋ฃจํ๊ฐ ๋ฐ๊ตด ํ์ดํ๋ผ์ธ ์์ฒด์ ๋ฒ๊ทธ(Stage 9์ PyRosetta cache key ์ถฉ๋, ddG silent fallback 0.0 โ
scenario-rosetta-flow-2026-05-11.md:70-98)๋ฅผ ์ก์๋ด, ์ ํ๋์ ๊ฐ์ ์ ์ผ๋ก ๊ธฐ์ฌํ๋ค.
์์ฝ: ๋ฐ๊ตด ์ ํ๋๋ฅผ ์ฌ๋ฆฌ๋ ๊ฒ์ ์ค์ฝ์ด๋งยท๋ํนยท์ ํ์ฑ ์์ง์ ๋ชซ์ด๊ณ , ํ๋ค์ค ์ด๋ํ ์ด์ ์ ๊ทธ ์์ง์ด ๊ฑฐ์ง๋งํ์ง ์๊ณ , ์ถ์ ๊ฐ๋ฅํ๋ฉฐ, ์๊ธฐ ๊ฒฐํจ์ ๋ ธ์ถํ๋๋ก ๊ฐ์ ํ๋ ์ด์ ์ฒด๊ณ๋ค. ์ ํ๋์ ์ํ์ด ์๋๋ผ ์ ๋ขฐ์ ํํ์ ์ฑ ์์ง๋ค.
๊ฒ์ฆ ์ธ์ฉ ๋ชฉ๋ก
| # | ์ฃผ์ฅ | ์ถ์ฒ |
|---|---|---|
| 1 | 6ํจํด ๋ช ์นญยท์ ์ฉ ์กฐ๊ฑด | tools/harness-adaptation/ANALYSIS.md:109-141 (์๋ณธ agent-design-patterns.md:83-161) |
| 2 | 6ํจํด โ ์์ ํธ๋ฆฌ ๋งคํ | CLAUDE.md:9-10, 22-23, 41-46, 56-57 |
| 3 | Stage ์ ์ฉ ์ด๋ ฅ ํ | CLAUDE.md:148-166 |
| 4 | Stage 0~7 ํตํฉ ๋ก๋๋งตยท์ฌ์ | tools/harness-adaptation/INTEGRATION_PLAN.md:8-126 |
| 5 | Stage 5 Criticalยทํ๊ฐ ๊ฐ๋ | INTEGRATION_PLAN.md:90-100 / CLAUDE.md:152 |
| 6 | VR-cycle ์ฒ๋ฆฌ ํํฉ 10/10 | _workspace/release/retro-2026-Q2.md:68-75 |
| 7 | ์ฐจ๋จ๋ ์ค ํ๊ท ๊ฒฐํจ 4๊ฑด + ์์ฒด ๋ฐ๊ฒฌ 1๊ฑด | retro-2026-Q2.md:79-86 |
| 8 | ๋ฉํธ๋ฆญ before/after ์ถ์ด | retro-2026-Q2.md:58-66 |
| 9 | "๋ฉํ ์์ ํจํด ๋ถ์ฌ" ๋ฐ๊ฒฌ | retro-2026-Q2.md:101-107, 200 |
| 10 | Q3 Action Items 8๊ฑด | retro-2026-Q2.md:160-169 |
| 11 | Stage 0~8 ๋ชจ๋ ์ ์ฉ ์๋ฃ | retro-2026-Q2.md:144-145 |
| 12 | Stage 9 dogfood โ 6 critical ๊ฒฐํจ ์๊ฐ ๋ ธ์ถ + R1~R7 | _workspace/release/scenario-rosetta-flow-2026-05-11.md:53-201, 266-273 |
| 13 | ddG=0.00 ์ ์งํ ๋ณด๊ณ (H-06 ์ด์ ์ฌ๋ก) | scenario-rosetta-flow-2026-05-11.md:223, 271 |
| 14 | "๋ณธ์ง = ๋๋ฉ์ธ ํ๊ณ์ ์ ์งํ ๋ ธ์ถ, ์ ํ๋ ๋ณด์ฅ X" | CLAUDE.md:163 |
| 15 | L1/L2/L3 ๋ ์ด์ด ๋ถ๋ฆฌยทCLI ์ถ์ํ | ANALYSIS.md:145-198, 283-292 |
| 16 | "+60% ์ผ๋ฐํ ๋ถ๊ฐ" ์๊ธฐ ํ๊ณ ๋ช ์ | ANALYSIS.md:241, 272 |
| 17 | ์์ ๋ฐฉ์ยทํธ๋ฆฌ๊ฑฐ ํค์๋ยทํ์ ํ๋ | CLAUDE.md:3-90 |
ยง๊ฒ์ฆ ํ์ (๋ณธ ๋ณด๊ณ ์): (a) ์์ฑ๋ 90%๋ ํ๊ณ ์ ์ ์ฑ ํ๊ฐ(
retro-2026-Q2.md:196-201)์ ๊ทผ๊ฑฐํ ์ถ์ ์น โ ์ ๋ ์ฐ์ ์์. (b)agent-design-patterns.md์๋ณธ ๋ผ์ธ ๋ฒํธ๋ANALYSIS.md์ธ์ฉ์ ์ ๋ขฐํ ๊ฒ์ผ๋ก, submodulereference/harness/์คํ์ผ์ ๋ณธ ๋ถ์ ์์ ๋๋ ํ ๋ฆฌ์์ ๋ฏธํ์ธ(ls๊ฒฐ๊ณผ ๋น์ด ์์ โgit submodule update --initํ์). (c) CI ๋ฑ๋กยทtmux ์ค ์ด์์ Q3 ๋ฏธ์๋ฃ ํญ๋ชฉ์ผ๋ก, ๋ณธ ๋ณด๊ณ ์ ์์ฑ ์์ (2026-06-17) ์ถ๊ฐ ์ง์ฒ์ ๋ฏธํ์ธ.