research

Harness = Complex → Simple 변환 — 메타 인사이트

Harness = Complex → Simple 변환 — 메타 인사이트

"harness는 complex를 어떻게 simple로 변환할 거냐" — 사용자의 종합 명제. 모든 조사 자료(이 프로젝트 14 노트 + stateless-llm-sdk 14 노트)를 한 명제로 압축하면 이 한 줄이 남는다. 이 노트는 synthesis-for-v1 위에 얹는 왜 그 결정인지의 layer.


한 줄

Harness는 복잡도를 흡수해서 사용자에게 simple을 주는 변환기다. 모든 harness 시도는 어떤 complex어떤 simple로 바꿀지의 결정. simple은 공짜가 아니라 strategic 사고의 산출물 (Matt thesis).


추상적 작동 구조

핵심: 복잡도는 사라지지 않는다. 어디로든 간다 (열역학 비유). harness가 흡수하면 사용자에게 simple, harness가 노출하면 사용자에게 complex.


Complex → Simple 변환의 5 mechanism

이 프로젝트의 모든 fundamentals + frontier 노트를 변환 mechanism 단위로 추출:

Mechanism무엇을 흡수사용자에게 simple출처 노트
1. Layer 분리책임 혼재한 layer에 한 관심protocol-theory-lamport-tanenbaum · evolution-function-calling-to-mcp
2. Spec/Contractvague inputimmutable contract 한 번 작성evolution-mcp-to-skills · ouroboros-meta-layer-deep-dive
3. Lazy Loadingcontext 폭발필요할 때만 보임frontier-tool-gateway-and-compression
4. Math Gate"준비됐나?" 주관성수치로 자동 결정ouroboros-meta-layer-deep-dive
5. Event Log = Truthreproducibility 부담replay·rollback 자유research-to-production-gap (12% pattern)

→ 이 5가지가 카테고리 fundamentals의 작동 mechanism. 각 시도들은 5 중 어느 것을 어떻게 채택하는지로 차별화.


Complex 별 Simple 변환 매트릭스

조사한 모든 reference·frontier·fundamentals를 복잡도 → simple 변환 cell로 정리:

Complex (사용자가 안 보고 싶은 것)Simple (사용자가 보는 것)Mechanism
vague human inputSocratic interview → specSpec/Contract + Math Gate
LLM의 stochastic outputmath gate (verification)Math Gate
agent 의도 파악EventStore (replay)Event Log
tool 발견·등록MCP protocol (list_tools)Layer 분리
context 폭발lazy loading + summarizationLazy Loading
multi-agent coordinationsingle agent + isolationLayer 분리
reproducibilityevent sourcing + checkpointEvent Log
vendor 차이runtime abstractionLayer 분리
irreversible failureship-and-roll-back as normalEvent Log
새 tool 추가config 한 줄 (MCP)Layer 분리 + Spec
skill 공유SKILL.md frontmatterSpec/Contract
다른 학내로 복제공유 layer + segment specific layerLayer 분리

약점 / 함정 — Simple을 안 만드는 anti-pattern

복잡도를 사용자에게 노출하는 패턴들:

Anti-pattern 1: vibe coding (사용자 input 안 잡음)

  • Karpathy의 원래 vibe coding: "forget that the code even exists"
  • 사용자 vague input을 그대로 LLM에 던짐 → 1차 ok → 2차 worse → 3차 garbage
  • Mechanism 1·2·4 missing
  • → Karpathy 본인이 retire. 산업 컨센서스 reverse.

Anti-pattern 2: shallow module 양산

  • AI agent의 자연 경향: 작은 파일 100개
  • 사용자가 모든 layer 들여다봐야 사용 가능
  • Ousterhout의 deep module 정반대
  • → Matt 강연 핵심 비판. /improve-codebase-architecture skill로 대응

Anti-pattern 3: product silo

  • VS Code ext는 VS Code만, Cursor rule은 Cursor만
  • 사용자가 각 product마다 학습
  • Mechanism 1 (Layer 분리) missing — protocol 표준 부재
  • → MCP 운동의 출발점

Anti-pattern 4: monolithic AGENTS.md

  • 한 파일에 모든 agent 정의
  • 시간이 지나면 navigate 불가
  • → modular skills/contexts로 분리

Anti-pattern 5: 모든 tool이 같은 비용

  • Goose의 약점 — context rot 직격
  • Mechanism 3 (Lazy Loading) missing
  • → Anthropic Skills 차등 비용 모델

Anti-pattern 6: 모든 결정을 사람이 verify

  • "Looks good"이 verification
  • Mechanism 4 (Math Gate) missing
  • → Ouroboros Ambiguity score, automated eval

Anti-pattern 7: model context = session

  • history dump 그대로 LLM에 전달
  • context rot 직격
  • Mechanism 5 (Event Log = Truth) missing
  • → OpenAI Apr 2026 명시 비판

대안 흐름 — 산업이 simple을 만드는 방법

각 mechanism이 서로 강화. Goose는 1+3, Claude Code는 1+2+3, Ouroboros는 1+2+3+4+5 (전부).

완성도는 5 mechanism 중 몇 개를 어떻게 결합하는가. Ouroboros가 5 모두 채택한 가장 완성된 사례.


인사이트 — 10가지

1. Simple의 방향이 명확

모든 harness 시도가 같은 5 mechanism을 향해 수렴. 우연이 아닌 fundamentals의 자연 압력. Lamport·Tanenbaum의 distributed system fundamentals + Hickey의 Simple Made Easy + Ousterhout deep module이 root.

2. Hickey의 Simple ≠ Easy

사용자가 가리키는 simple = entanglement 없음 (Hickey). easy = 친숙함. 2024-2025 vibe coding은 easy가 simple을 이긴 시기. 2026 fundamentals 회귀 흐름은 simple이 다시 우세.

3. Deep module = simple interface

Ousterhout 명제. AI 시대 결정적 — AI가 shallow module 양산하는 경향 → 사람의 strategic 사고가 simple interface 강제. Matt thesis와 직결.

4. Simple은 strategic 사고의 산출물

공짜가 아님. 사용자가 simple하게 사용할 수 있게 하려면 시스템 design이 strategic이어야. → Matt thesis: 사람=strategic, AI=tactical. simple은 strategic layer의 결과물.

5. 복잡도는 사라지지 않는다

열역학 비유. 어디로든 간다:

  • harness가 흡수 → 사용자 simple
  • harness가 노출 → 사용자 complex (anti-pattern)
  • 일부는 영원히 사라지지 않음 — fundamentals layer

→ harness 설계는 복잡도 흡수의 선택. 어떤 복잡도를 흡수할지가 design.

6. Simple의 layer 의존성

한 layer가 simple하려면 위/아래 layer가 받쳐줘야:

  • Tool 호출이 simple → MCP protocol layer가 받쳐줘야
  • Agent loop가 simple → spec layer가 받쳐줘야
  • Spec이 simple → ambiguity gate가 받쳐줘야

→ Simple은 layer stack 전체의 협력 결과. 한 layer만 simple하게는 불가.

7. Anti-pattern은 simple을 만들지 못하는 패턴

7 anti-pattern 모두 5 mechanism 중 하나라도 missing. mechanism 결합이 simple 완성도. 이게 ouroboros-meta-layer-deep-dive의 6.5/7 cover와 정렬.

8. Simple의 정의는 segment 마다 다름

SegmentSimple의 의미
비개발자 학생config 한 줄, zero-coding
개발자 학생layer 명확, customizable
학내 marketplace표준 protocol, cross-product
다른 학내 복제공유 layer 분리
v1.0 사용자학내 vocabulary + 학내 endpoint zero-config

어느 simple을 우선시할지가 v1.0 결정의 input. ⚠️ 사용자 결정 자리 (paradigm-comparison).

9. Math Gate는 simple의 invisible 형태

Math Gate(Ambiguity 0.2, Convergence 0.95)는 background에서 작동하면 simple, user-facing이면 complex. Ouroboros가 user-facing — 비개발자 segment에서는 invisible 변형 필요. Ousterhout information hiding의 직접 적용.

10. Simple의 진짜 시험 = ship-and-roll-back

12% production 도달 cohort의 공통 패턴 4 (named ownership · scoped success · automated eval · ship-and-roll-back). 이 중 ship-and-roll-backsimple의 가장 깊은 신호:

  • ship이 공포 → simple 미달성
  • ship이 normal operation → simple 달성
  • → Mechanism 5 (Event Log = Truth)가 결정적

학내 segment에서 simple 우선순위 — ⚠️ 가설

⚠️ 모두 AI 추정. 사용자 검토 필요.

학내 segment에서 어떤 simple이 1순위인지 가설:

1순위 (사실상 필수): config 한 줄로 시작 (zero-config)
   → Mechanism 1 (Layer 분리) + Anthropic Skills 패턴

2순위: 학내 vocabulary 그대로 사용 (학번·과목 코드 변환 X)
   → Mechanism 2 (Spec/Contract: ubiquitous language)

3순위: token quota 안에서 충분 (학내 1000 req/day)
   → Mechanism 3 (Lazy Loading)

4순위: ship-and-roll-back 부담 없음 (실수 회복 자유)
   → Mechanism 5 (Event Log = Truth)

5순위 (선택): math gate (background로만, user-facing X)
   → Mechanism 4 (Math Gate)의 invisible 변형

가설: 1·2·3·5순위가 결정적, 4는 production-grade 작업 비율에 따라 결정. 학내 학생 작업의 production 비율 데이터가 부재.


v1.0 결정에 영향 — 사용자 결정 자리

이 메타 명제가 paradigm-comparison·synthesis-for-v1·trade-off-five-options에 input:

결정Complex → Simple lens의 input
가정 4 (Tool/MCP)어떤 tool 발견의 simple을 원하는가 → MCP protocol or 자체
가정 5 (차등 비용)context 폭발의 simple → lazy loading 채택 여부
가정 11 (학내 1순위)학내 사용자의 simple 우선순위 5가지
가정 13 (standalone vs meta-layer)어떤 복잡도를 흡수할지의 layer 위치
Math Gate 채택 여부사용자에게 visible? invisible?

결정은 사용자가. 이 노트는 왜 그 결정인지의 fundamentals 근거.


종합 — 왜 이 명제가 모든 분석을 통합하는가

이게 모든 조사가 수렴하는 자리. 28+ 노트를 한 명제 + 5 mechanism + 10 인사이트로 압축한 이유.


관련


Sources