FAST CAMPUS · CHAPTER 05 · KEYNOTE
2026
CHAPTER 05 · HARNESS ENGINEERING
5장. MCP형 하네스 프로젝트: 순서를 코드로 강제하는 법
순서를 코드로 강제하는 법
Fast Campus Harness Engineering
Chapter Deck · decks/chapter-05.html
COVER01 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
PART 5-1
MODULE · 5-1
5-1. 코드형 통제 도입
목표:
문서형·분업형으로 충분한 업무는 남기고,
순서·상태·재시도가 필요한 흐름만 MCP 후보로 올립니다.
SECTION BREAK02 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-1-1
도입 목표: MCP로 올릴 업무만 남긴다
5-1. 코드형 통제 도입03 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-1 · RUNTIME LOCK-IN
한 런타임에 종속되면 정책 변화를 그대로 떠안는다. 그래서 런타임 독립으로 간다
2026-06-15 변화
headless / SDK가 별도 크레딧으로 분리
Claude Code의 -p 옵션(headless) 사용과 SDK를 통한 호출이 추가 $200 크레딧 한도에서만 처리된다. 한 세션 안 대화형 사용은 기존 Max Plan을 유지.
의미: 짚을 건 비용 액수가 아니라, Claude 한 곳에 자동화를 다 맡기면 이런 정책·요금 변화에 그대로 노출된다는 점이다.
결과
한 벤더에 종속되면 위험하다
지금까지 만든 하네스는 메인·보조를 나눴어도 모두 Claude 한 런타임 위에서 돌았다. 한 벤더의 정책·요금이 바뀌면 전체가 그 영향 아래 놓인다.
의미: 그래서 5장은 특정 런타임에 묶이지 않는 설계로 간다. capability를 런타임 독립 단위로 두고, adapter로 Claude·Codex 등을 갈아끼운다.
5-1. 코드형 통제 도입04 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-1-2
핵심개념: 기억이 아니라 강제해야 하는 신호
01
순서 강제
다음 단계 진입 조건을 코드가 확인한다.
02
상태 관리
현재 단계, 결정, 남은 질문을 다음 입력으로 남긴다.
03
재시도
실패 유형마다 가까운 체크포인트로 돌아간다.
04
Ouroboros 앵커
Seed, AC Tree, event store, rewind를 관찰 언어로 쓴다.
5-1. 코드형 통제 도입05 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-1 · STRUCTURE
판단 구조: 필요한 통제 강도만 올린다
| 하네스 형태 | 유지 기준 | MCP 전환 신호 |
| md형 | 규칙과 출력 형식을 문서로 고정하면 반복 가능하다. | 규칙을 읽어도 선행 단계를 건너뛰면 품질이 무너진다. |
| 분업형 | 작업 분해와 handoff로 메인 맥락을 지킬 수 있다. | handoff 뒤 현재 단계, 결정, 실패 이력이 계속 사라진다. |
| MCP형 | 진입 조건, 상태 기록, 재시도 분기가 실행 구조 안에 있어야 한다. | 순서·상태·재시도가 반복 업무의 품질 조건이 된다. |
5-1. 코드형 통제 도입06 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-1 · SCENARIO
예시: 검수 전에 실행으로 건너뛴 업무
01
요구 확인 생략
선행 질문 없이 실행해 산출물은 빠르지만 기준이 비어 있다.
02
명세 없는 실행
어떤 결정이 끝났고 어떤 질문이 남았는지 다음 단계가 모른다.
03
검수 실패 반복
기준 미달 때 돌아갈 지점이 없어 같은 수정을 반복한다.
04
잠글 지점
질문 완료, 명세 확정, 검수 통과를 진입 조건으로 둔다.
5-1. 코드형 통제 도입07 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-1 · OUROBOROS WALKTHROUGH
적용 워크스루: Ouroboros를 판단 언어로 읽기
| Ouroboros 흐름 | 5-1 통제 신호 | 내 업무 판단 질문 |
| Interview → Seed | gate · 질문과 명세 없이는 실행 금지 | 선행 입력이 비면 다음 단계를 막아야 하는가? |
| Seed → AC Tree | memory · 목표, 제약, 성공기준 보존 | 결정과 기준이 다음 단계 입력으로 남는가? |
| Execute → Evaluate | gate · 검수 전 완료 처리 금지 | 평가 없이 완료로 넘어가 품질이 어긋나는가? |
| Event store → Rewind | branch · 실패 유형별 복귀 지점 | 처음부터가 아니라 돌아갈 체크포인트가 있는가? |
5-1. 코드형 통제 도입08 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-1 · APPLICATION QUESTION
적용 질문: 어디를 코드로 잠글까
02
상태
다음 단계가 반드시 알아야 할 결정과 실패 이력은 무엇인가?
03
재시도
검수 실패 시 처음부터가 아니라 어디로 돌아가야 하는가?
04
사람 판단
코드가 대신 결정하면 안 되는 업무 맥락
5-1. 코드형 통제 도입09 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-1-3
[실습] 4-4 분업형 하네스에서 MCP로 바꿀 부분 가리기
01
실습 목표
4-4에서 만든 분업형 하네스의 어느 부분을 MCP로 잠글지 가린다.
02
수행 과제
각 단계의 순서·상태·재시도 신호를 보고 MCP 전환 부분을 표시하고, 묶을 스킬을 분류한다.
04
완료 기준
분업형 하네스의 어느 부분이 MCP형으로 가고, 어떤 스킬로 묶이는지 설명할 수 있다.
MCP Candidate Flow
| 신호 | 확인 질문 | 표시 | 판단 |
| 순서 강제 | 인터뷰 → 명세 → 실행 순서를 어기면 품질이 무너지는가? | 예 / 아니오 | 예면 MCP 후보 |
| 상태 관리 | 현재 단계, 결정, 실패 이력을 남겨야 하는가? | 예 / 아니오 | 예면 MCP 후보 |
| 재시도 | 실패했을 때 돌아갈 체크포인트가 필요한가? | 예 / 아니오 | 예면 MCP 후보 |
| 오케스트레이션 | 여러 단계와 도구 호출을 실행 구조가 묶어야 하는가? | 예 / 아니오 | 상태·재시도와 함께 있으면 MCP형 |
5-1. 코드형 통제 도입10 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-1 · SUMMARY
5-1 정리: MCP 후보만 다음 단계로 보낸다
5-1. 코드형 통제 도입11 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
PART 5-2
MODULE · 5-2
5-2. Capability Graph와 MCP 아키텍처
런타임(Claude / Codex / OpenCode / Hermes / Kiro / Copilot, Gemini 등 추가 adapter 포함)을 갈아끼워도 같은 workflow가 도는 추상화를
Capability Matrix와 Capability Graph로 묶는다.
MCP는 그 graph를 코드형 orchestration boundary로 강제하는 실행 지점이다.
SECTION BREAK12 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · MCP INVERSION
5-2의 출발
MCP를 새로운 시각으로 본다. 툴이 LLM을 쓴다
5-2. Capability Graph와 MCP 아키텍처13 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · INSIDE ooo run
ooo run 한 번이면 바깥엔 툴 콜 하나, 안엔 에이전트가 돈다
5-2. Capability Graph와 MCP 아키텍처14 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · WHY IT MATTERS
방향을 뒤집으니 셋이 동시에 풀렸다
01
런타임 독립
AgentRuntime + LLMAdapter 두 층을 두니 Claude Code든 Codex든 같은 워크플로우가 돈다. 설계 하나로 여러 플랫폼.
02
Hook 대체
이제 Codex에도 Hook이 생겼지만 훅 방식은 런타임마다 다르다. MCP 자체의 이벤트로 훅 역할을 대체하면 프로바이더 모두에서 같은 방식으로 순서를 강제할 수 있다. 런타임이 달라도 방식은 같다.
03
호출 구조 확정
LLM 출력은 비결정이다. 그래도 언제·무엇이·어떤 순서로 호출되는지는 코드가 정한다. 안에서 뭐라 답하든 파이프라인은 동일하게 흐른다.
5-2. Capability Graph와 MCP 아키텍처15 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · CONTEXT
MCP는 도구 통신 표준이다. 7/28부터 stateless 방식으로 바뀐다
MCP의 본질
headless 시대의 도구 통신 규약
모델이 외부 도구를 호출하는 표준. "어떤 모델"이 아니라 "어떤 도구를 어떻게 부르나"의 규약이다.
7/28의 본질
stateful → stateless 전환
sticky session + store + LB로 운영하던 구조가 사라지고 요청마다 완결된다. 일반 HTTP 인프라 위에서 돈다. 최종 2026-07-28.
5-2. Capability Graph와 MCP 아키텍처16 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2026-07-28 · CORE 3
stateless 전환의 핵심 3가지
01
initialize / initialized handshake 삭제
두 단계 핸드셰이크가 사라지고 프로토콜 버전·client info는 매 요청 _meta에 함께 보낸다. "쓸 때마다 capability를 묻는다"가 기본.
02
Mcp-Session-Id 삭제
세션 ID가 없어 요청이 어느 인스턴스에 떨어져도 처리된다. sticky session 없이 round-robin LB 하나면 충분.
03
explicit handle 패턴
stateful 흐름은 서버가 basket_id 같은 handle을 발급하고 모델이 다음 호출 인자로 넘긴다. 상태가 payload 인자로 나와 capability가 분명해진다.
5-2. Capability Graph와 MCP 아키텍처17 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2026-07-28 · OPS REF
MCP를 사용하면서 알아야 할 것들
| 번호 | 변화 | 의미 |
| ④ | Mcp-Method / Mcp-Name 필수 헤더 + ttlMs / cacheScope | LB / gateway가 body 안 열고 라우팅. tools/list 캐싱 가능. |
| ⑤ | Extensions 독립 프레임워크 (MCP Apps + Tasks) | extension마다 독립 ID·버저닝. Tasks lifecycle 재설계 → 마이그레이션 필요. |
| ⑥ | Roots / Sampling / Logging deprecated | Roots→param/URI, Sampling→provider API, Logging→stderr/OTel. 12개월 유예. |
| ⑦ | OAuth/OIDC 강화 | iss 검증 필수. CLI가 web으로 분류돼 localhost redirect 거부되던 문제 해결. |
| ⑧ | 일정 + 에러 코드 변경 | RC 2026-05-21 · 최종 07-28. 에러 -32002 → -32602. |
5-2. Capability Graph와 MCP 아키텍처18 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · INSIGHT
5-2의 한 줄
stateless가 강제하는 건 결국 "이 도구가 무엇을 할 수 있나"를 매번 분명히 알리는 일이다.
WHY
세션 없음→
매 호출 독립→
capability가 호출 단위→
도구 카탈로그가 자산
5-2. Capability Graph와 MCP 아키텍처19 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · RUNTIMES
런타임은 이미 6개 + 추가 adapter다. 하나에 종속되면 안 된다
01
Claude Code
Claude(Anthropic) · Max Plan · 기본 파일·Bash 도구
02
Codex CLI
GPT-5.4+ · OpenAI API key · per-token
03
OpenCode
provider 의존 · 기본 파일·Bash 도구
04
Hermes
NousResearch·로컬 · MCP 기반 custom skills
05
Kiro CLI
Claude(AWS) · Kiro AWS sign-in
06
Copilot CLI
live-discovered(Claude·GPT-5) · Copilot 구독
+
추가 adapter
providers/의 Gemini · Goose · LiteLLM · Anthropic SDK
∞
커스텀 런타임
AgentRuntime 구현 → runtime_factory.py 등록
5-2. Capability Graph와 MCP 아키텍처20 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · MATRIX
무엇이 같고 무엇이 런타임마다 다른가? 3 레이어로 나눠 본다
5-2. Capability Graph와 MCP 아키텍처21 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · CAPABILITIES
런타임이 선언하는 capability: 누가 무엇을 지원하나
호출하는 쪽은 추측하지 않는다. 런타임이 선언한 capability에 맞춰 호출 방식을 정한다.
5-2. Capability Graph와 MCP 아키텍처22 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · ADAPTER
Adapter 패턴: 런타임을 갈아끼우는 한 층
5-2. Capability Graph와 MCP 아키텍처23 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · SKILL
SKILL.md 한 장, 호출만 런타임마다 다르다
5-2. Capability Graph와 MCP 아키텍처24 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · CONNECT
4장 하네스 v1이 5장 Capability Graph가 된다
5-2. Capability Graph와 MCP 아키텍처25 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · OUROBOROS
Capability Graph: 스킬·도구·런타임이 한 구조로
5-2. Capability Graph와 MCP 아키텍처26 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · APPLY
본인 업무에 적용: 두 가지 질문
Q1
본인 업무는 지금 어느 런타임에서 도는가
다른 런타임으로 바꾸면 어디가 깨지는가? 모델·도구·인증·세션 중에서. 한 런타임에 묶여 있으면 정책 변화 한 번에 무너진다.
Q2
무엇은 같고 무엇은 다른가
같아야 할 것(workflow)과 달라도 될 것(runtime)을 나눈다. 같은 건 capability node로, 다른 건 adapter로.
도메인별 적용 예시
| 도메인 | Workflow · 고정 | Runtime · 교체 | Integration |
| 백엔드 운영 | 검증·롤백 규칙 | Claude vs Codex | ooo skill vs subprocess |
| PM·기획 | PRD 양식·검수 기준 | ChatGPT·Notion AI | 복붙 vs API |
| 데이터 분석 | 쿼리·검수·알림 양식 | BigQuery vs Snowflake | Jupyter vs dbt vs Slack |
| 개인 사이드 | 요약·퀴즈 기준 | Claude | ooo skill vs vscode |
5-2. Capability Graph와 MCP 아키텍처27 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-2-3
[실습] 런타임 독립 하네스 그래프 설계하기
핵심
4-4 분업형 하네스 → 런타임 독립 그래프
기존 안/밖·단계·상태·재시도에 capability matrix(3 레이어)와 skill bundle을 더해 런타임 독립으로 올린다.
산출물
Runtime-independent Harness Graph
- Candidate Workflow
- Outside
- Inside
- State
- Retry
- Output Contract
- Capability Matrix
- Skill Bundle
시간
35분
1~6은 기존 흐름 25분, 7~8은 신규 10분. 5-1의 MCP Candidate Flow를 입력으로 가져온다.
준비물
- 입력: 5-1에서 MCP형 후보로 고른 업무 1개와 후보 flow 결과
- 도구: Markdown 편집기 (워크스페이스 폴더 안에
2005-2-3-mcp-design-draft.md로 저장)
- 참고: ouroboros
docs/runtime-capability-matrix.md (세 레이어 구분 방식)
- 주의: 모든 판단을 자동화하지 않는다. 사람이 책임질 영역은 §2 Outside에 남긴다.
5-2. Capability Graph와 MCP 아키텍처28 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-2-3 · TEMPLATE
실습 산출물: 8 섹션 한눈에
| § | 섹션 | 핵심 질문 |
| 1 | Candidate Workflow | 업무 · 입력 · 산출물 · 사람 판단 |
| 2 | Outside | 사람이 책임질 것 |
| 3 | Inside | 입력 정리 → 명세 → 실행 → 검수 |
| 4 | State & Checkpoints | 단계 · 결정 · 실패 · 검수 기록 |
| § | 섹션 | 핵심 질문 |
| 5 | Retry & Re-question | 재시도 vs 재질문 · 복귀 지점 |
| 6 | Output Contract | 산출물 · 근거 · 남은 질문 · 요약 |
| 7 | Capability Matrix NEW | Workflow / Runtime / Integration |
| 8 | Skill Bundle NEW | SKILL.md 묶음 · capability 선언 |
5-2. Capability Graph와 MCP 아키텍처29 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-2 · RECAP
5-2 회고
capability matrix + skill bundle로 런타임을 갈아끼울 수 있게 만든다
5-2. Capability Graph와 MCP 아키텍처30 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
PART 5-3
MODULE · 5-3
5-3. Satisfice 멈춤 기준
계속 좋아질 수 있다는 이유만으로 계속 돌리지 않게 만듭니다.
충분하면 exit, 부족하면 retry, 입력이 모호하면 ask-back으로 나눕니다.
SECTION BREAK31 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-3 · PROBLEM
문제상황: 루프가 계속 돌기만 할 때
01
끝없는 개선
더 나은 수정안이 가능하다는 이유로 완료가 미뤄진다.
02
검수 피로
매번 사람이 다시 보고 판단해야 해 하네스 운영 비용이 커진다.
03
실패 반복
입력이 부족한데도 같은 재시도를 반복해 수렴하지 않는다.
04
필요한 기준
종료, 재시도, 재질문을 먼저 정의해야 반복이 통제된다.
5-3. Satisfice 멈춤 기준32 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-3-1
핵심개념: 완벽보다 중요한 멈출 기준
5-3. Satisfice 멈춤 기준33 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-3-2
구조: 충분히 괜찮으면 끝내는 stop rule
| Rule | 끝내는 조건 | 다음 행동 |
| 종료 | 목표와 성공기준을 만족하고, 남은 개선이 업무 가치에 비해 작다. | 결과, 판단 근거, 남은 불확실성을 남긴다. |
| 재시도 | 형식, 검증, 실행 중 하나가 실패했지만 입력은 충분하다. | 체크포인트로 돌아간다. |
| 재질문 | 요구사항이나 route signal이 비어 있어 반복해도 수렴하지 않는다. | 사람에게 묻고 명세를 갱신한다. |
5-3. Satisfice 멈춤 기준34 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-3 · DECISION CONTRACT
프레임워크: stop rule은 네 칸 계약이다
01
완료 신호
어떤 성공기준을 만족하면 충분한가?
02
실패 유형
형식, 검증, 기준 누락 중 무엇이 실패했는가?
03
다음 행동
종료, 재시도, 재질문 중 하나로 고른다.
04
운영 기록
판단 근거와 남은 불확실성을 남긴다.
5-3. Satisfice 멈춤 기준35 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-3 · OUROBOROS ANCHOR
Ouroboros 앵커: 평가 뒤에는 판단이 남아야 한다
| 관찰 흐름 | 남겨야 할 것 | 5-3 번역 |
| Seed · AC Tree | 목표, 제약, 성공기준 | 종료 조건의 근거 |
| Evaluate | 어떤 기준을 통과하거나 실패했는지 | 종료 또는 재시도 판단 |
| Event store | 결정, 실패 사유, 남은 질문 | 운영 기록과 재질문 근거 |
| Rewind | 처음이 아닌 가까운 복귀 지점 | 재시도 체크포인트 |
5-3. Satisfice 멈춤 기준36 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-3 · SCENARIO
예시: 1page 초안 하나를 두고 끝낼지·다시 돌릴지·물어볼지 정한다
종료 · exit
결정권자가 바로 쓴다
1page가 결정·배경·성공기준을 담아 다음 결정으로 넘어간다. 더 다듬을 여지는 남은 불확실성으로만 적는다.
재시도 · retry
형식이 틀어졌다
제목 누락·표 깨짐처럼 형식이 실패했다. 회의록 입력은 충분하니 작업 체크포인트로 돌아간다.
재질문 · ask-back
기준이 비어 있다
회의록에 성공 기준도, 누가 읽을지도 없다. 몇 번을 돌려도 톤이 안 정해지면 사람에게 묻는다.
기록 · operate
판단을 남긴다
어떤 판단으로 끝냈는지, 복귀 지점, 남은 질문을 운영 기록에 남긴다.
5-3. Satisfice 멈춤 기준37 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-3 · APPLICATION QUESTION
적용 질문: 무엇을 보면 멈출 수 있나
01
exit condition
마무리해도 되는 output 신호. 목표·성공 신호에 연결한다
02
retry route
어떤 실패는 같은 입력으로 checkpoint에서 다시 실행해도 되는가?
03
ask-back route
어떤 불확실성은 사람이 답하기 전까지 진행하면 안 되는가?
04
checkpoint
retry가 돌아갈 node. 처음이 아니라 가까운 지점
5-3. Satisfice 멈춤 기준38 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-3-3
[실습] 내 하네스의 exit·retry·ask-back loop 만들기
01
실습 목표
언제 끝내고 언제 다시 돌릴지 정한다.
02
수행 과제
exit·retry·ask-back route를 업무 graph에 붙인다.
03
산출물
Loop Protocol · ask-back route 포함
04
완료 신호
하네스가 계속 돌지 않고 다음 action을 선택할 수 있다.
5-3. Satisfice 멈춤 기준39 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-3 · SUMMARY
5-3 정리: 반복보다 멈춤 기준을 먼저 둔다
5-3. Satisfice 멈춤 기준40 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
CHAPTER 05
CHAPTER 05 · SYNTHESIS
5장 통합. MCP형 하네스 만들기
5-1 필요성 판단 → 5-2 안/밖 경계 설계 → 5-3 종료·재시도 기준으로
코드형 통제 흐름을 완성합니다.
CHAPTER 05 BREAK41 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
CHAPTER 05 FLOW
5장 통합 흐름: 판단하고, 경계를 긋고, 멈춤을 정한다
5-1
MCP Candidate Flow
순서 강제, 상태 관리, 재시도 신호가 있는 업무만 코드형 후보로 올린다.
5-2
Runtime-independent Harness Graph
안쪽 책임과 바깥 책임을 나누고 저장할 상태와 복귀 지점을 정한다.
5-3
Loop Protocol
충분하면 끝내고, 실패 유형에 따라 재시도와 재질문을 분리한다.
OUTPUT
최종 산출물
Final Harness Graph
런타임 독립 하네스 실행 데모
CHAPTER 05 FLOW42 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
PART 5-4 · PROJECT
MODULE · 5-4
5-4. 최종 프로젝트 및 케이스 스터디
PROJECT · Ouroboros를 관찰하고,
4C → Capability Graph → MCP 하네스로 연결해
내 업무용 런타임 독립 하네스 실행 데모까지 완성합니다.
SECTION BREAK43 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · PROBLEM
문제상황: 최종 프로젝트가 프롬프트 모음으로 끝날 때
01
흐름 단절
인터뷰, 명세, 작업, 검수가 서로의 입력이 되지 않는다.
02
상태 부재
결정, 실패 사유, 복귀 지점이 운영 가이드에 남지 않는다.
03
검수 약화
완료 기준이 결과물 옆에 붙지 않아 데모가 설명으로만 끝난다.
04
프로젝트 목표
각 산출물을 하나의 실행 가능한 하네스와 운영 가이드로 연결한다.
5-4. 최종 프로젝트 및 케이스 스터디44 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-4-1
[Case Study] Ouroboros: 끝없는 루프를 통제하는 프레임워크
01
레퍼런스 역할
인터뷰, Seed, 실행, 평가, 진화를 하나의 관측 가능한 루프로 묶는 사례
02
핵심 메시지
순서, 상태, 재시도를 코드로 강제해 폭주를 막는 구현 사례
03
실습 목표
Ouroboros 구조를 MCP형 하네스 설계 기준으로 읽는다.
04
수행 과제
인터뷰, Seed, 실행, 평가, 진화에서 순서, 상태, 재시도 지점을 표시한다.
Ouroboros 핵심 로직 분석
- 순서interview → seed → execute → evaluate → evolve 순서가 어디서 강제되는지 표시
- 상태event store, checkpoints, rewind가 상태와 복귀 지점을 어떻게 남기는지 표시
- 검수검수 단계별 평가가 종료·재시도 판단을 어떻게 가르는지 표시
- 경계MCP와 orchestrator가 도구 호출과 런타임 차이를 어디서 제한하는지 표시
5-4. 최종 프로젝트 및 케이스 스터디45 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · OUROBOROS
5-4. 최종 프로젝트 및 케이스 스터디46 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · 4C 분업 경계
① 4C × Ouroboros: 4장에서 만든 네 경계가 코드 안에 그대로 있다
C₁ Contract · 계약
Seed · AC Tree
실행 전에 무엇을 할지 못 바꾸게 고정한다. 4장에서 만든 리프(목적·입력·범위·완료)와 같은 칸이다.
C₂ Context · 맥락
event store
세션이 끝나도 결정·실패 이력이 남아 다음 입력이 된다. 4장 handoff 양식이 하던 일이다.
C₃ Control · 통제
execute → evaluate
만드는 단계와 판정하는 단계를 섞지 않는다. 4장 3단 검수(형식·증거·보정)와 같다.
C₄ Confidence · 신뢰
consensus · drift
평가가 한 방향인지, 원래 목적에서 벗어났는지 보고 맡겨도 될지 정한다. 4장 verdict(통과·재작업·재질문·종료)와 같다.
5-4. 최종 프로젝트 및 케이스 스터디47 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · Capability 레이어
② Capability Matrix × Ouroboros: 같은 워크플로우, 6 native 런타임
Workflow Layer
모두 같다 · core/
Seed · AC tree · event store · 평가 원칙. 6 native 런타임이 같은 코드를 쓴다.
Runtime Layer
런타임마다 다르다 · providers/
각 adapter가 인증·도구·권한을 한 인터페이스로 정리한다. Native 6 + 추가 4.
Integration
진입점만 다르다 · mcp/·cli/·tui/
같은 워크플로우가 세 진입점으로 노출된다. 안쪽은 같다.
Declared capability
능력을 명시 선언
skill_dispatch · targeted_resume · structured_output. 호출 측이 추측하지 않는다.
5-4. 최종 프로젝트 및 케이스 스터디48 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · SKILL.md 묶음
③ 스킬 추상화 × Ouroboros: 묶음 단위로 런타임 독립
묶음 위치
skills/*/SKILL.md
SKILL.md + hooks + references가 한 폴더로 묶여 있다. 3장 워크스페이스와 같은 구조다.
호출 진입점
commands/ · plugin/skills/
같은 SKILL.md가 Claude는 ooo <skill>, Codex는 ~/.codex/skills/로 배치.
capability 매칭
skill_dispatch
선언했으면 dispatcher로 라우팅, 아니면 SKILL.md를 인라인 prompt로 흡수.
재사용 자산
3장 워크스페이스는 그대로
3장 SKILL.md+hooks가 그대로 재사용된다. 변하는 건 호출 통로(adapter)뿐이다.
5-4. 최종 프로젝트 및 케이스 스터디49 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · Stop rule 멈춤
④ Stop rule × Ouroboros: 무한 루프를 막는 네 곳
exit conditions
core/ 종료 로직
AC가 모두 passed면 종료. 본인: 단계별 통과 조건 명시.
consensus gating
evaluation/
3단 평가가 같은 방향이면 통과, 어긋나면 재시도·재질문. 본인: 통과·재작업·재질문·종료.
drift detection
observability/
Seed 의도에서 벗어나면 stop. 본인: "목적에서 벗어났나" 점검.
regression detection
evolution/
이전 단계보다 나빠지면 stop. 본인: "지난 단계보다 좋아졌나" 비교.
5-4. 최종 프로젝트 및 케이스 스터디50 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · 4C × OUROBOROS
5-4. 최종 프로젝트 및 케이스 스터디51 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · NEXT PRACTICE
다음 실습: Ouroboros 코드를 직접 뜯어본다
무엇을 하나
repo를 직접 읽는다
Ouroboros repo를 열고 4-4 분업형 하네스를 옆에 둔다. 설치·실행 없이 README와 디렉토리 구조만 본다.
무엇을 찾나
코드에서 네 가지를 한 줄씩
① 분업 네 경계: Contract·Context·Control·Confidence
② workflow / runtime / integration 분리
③ SKILL.md 묶음 위치
④ 멈춤 로직 네 곳: exit·consensus·drift·regression
입력
4-4 + 5-2 산출물
4장 분업형 하네스 v1 + 5-2 런타임 독립 하네스 그래프. 이게 분석의 출발점이다.
출력 → 빌드 재료
providers/ 의 Claude·Codex 어댑터 한 쌍
두 어댑터가 공통 complete() 하나를 공유한다 — 같은 인터페이스, 런타임만 다름. 네 항목 분석은 4-2 설계도로, 이 어댑터 한 쌍은 4-3 review_parallel 빌드 재료로 넘어간다.
5-4. 최종 프로젝트 및 케이스 스터디52 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · APPLIED WALKTHROUGH
적용 워크스루: Ouroboros 흐름을 내 하네스로 번역하기
| 관찰 단계 | Ouroboros 참조 | 내 하네스 번역 |
| 인터뷰 · gate | Socratic Interview → Seed | 실행 전 비어 있으면 안 되는 입력을 막아 둔다. |
| 명세 · spec | Seed → AC Tree | 목표, 제약, 성공기준을 작업 단위 옆에 붙인다. |
| 작업·검수 · review | Execute → Evaluate | 만드는 단계와 판정하는 단계를 섞지 않는다. |
| 운영 · operate | Event store → Rewind | 실패 사유, 결정, 복귀 지점을 다음 실행 입력으로 남긴다. |
5-4. 최종 프로젝트 및 케이스 스터디53 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · LIVE EXAMPLE
라이브 예시: 요청이 새 과제로 발산할 때
01
원래 요청
런타임 확장 흐름을 문서에 반영하는 리브랜딩 과제
02
발산 신호
검토 중 자동 감사 시스템이라는 새 작업이 등장한다.
03
통제 질문
이 제안은 현재 Seed와 AC Tree 안에 있는가?
04
운영 판단
기록하고, 재질문하고, 필요하면 체크포인트로 돌아간다.
5-4. 최종 프로젝트 및 케이스 스터디54 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · CORE CONCEPT
한 단계가 끊기면 그 다음이 무너진다
인터뷰(gate) 누락
추측이 시작된다
다음 단계가 쓸 질문·결정이 없어 빈자리를 임의로 채운다.
명세(spec) 누락
목표가 흐려진다
제약·성공기준이 비어 작업 단계가 알아서 추측한다.
검수(review) 누락
검수가 사라진다
판정 없이 완료 처리돼 오류가 그대로 나간다.
운영(operate) 누락
같은 실패 반복
결정·복귀 지점 기록이 없어 다음 실행이 처음부터 시작한다.
5-4. 최종 프로젝트 및 케이스 스터디55 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-4-2
구조: 2~5장에서 만든 하네스를 회의록 → 1page 한 줄로 잇는다
01
실습 목표
하네스를 단순 프롬프트 묶음이 아닌 파이프라인으로 엮기
02
수행 과제
2~5장의 인터뷰·명세·작업·검수·운영을 한 파이프라인으로 잇는다.
04
완료 기준
각 단계의 입력, 출력, 실패 시 복귀 지점이 보인다.
Final Harness Graph 구성 — 회의록 → 1page
- 인터뷰 · 2장"이 1page를 누가, 어떤 결정을 위해 읽는가"를 인터뷰 하네스로 물어 요구사항·Define을 만든다.
- 명세 · 3장그 Define을 회의록→1page 변환 규칙(고정·남김·질문)으로 옮겨 매번 같은 형식으로 잠근다.
- 작업 · 4장ask·build·review sub agent로 회의록을 1page 초안까지 끌고 간다.
- 검수 · 4→5장인용 검사(Claude)·사실 검사(Codex)를 MCP로 병렬 실행(review_parallel)→merge해 통과·재작업·재질문을 나눈다.
- 운영 · 5장순서·상태·재시도·멈춤(exit·retry·ask-back)을 코드로 강제한다. ask-back이면 2장 인터뷰 하네스로 돌아가 spec을 갱신한다.
5-4. 최종 프로젝트 및 케이스 스터디56 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · APPLICATION QUESTION
적용 질문: 내 업무용 하네스는 어디서 마무리되나
01
시작 입력
실행 전 반드시 있어야 할 문제 정의·성공기준
02
상태 저장
다음 실행자가 이어받을 결정·실패 사유·체크포인트를 어디에 남기나?
03
검수 기준
결과가 목적에 맞는지 어떤 기준으로 판정할 것인가?
04
운영 가이드
종료·재시도·재질문을 선택하는 사람과 시점
5-4. 최종 프로젝트 및 케이스 스터디57 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
2005-4-3
[최종 프로젝트] 내 업무용 런타임 독립 하네스 실행 데모
01
실습 목표
수강 후 바로 가져갈 실무용 최종 결과물 완성
02
수행 과제
내 업무용 하네스를 완성하고, 검수를 MCP로 병렬 실행하는 흐름까지 데모한다.
04
완료 신호
사용 조건, 실행 순서, 실패 대응, exit/retry/ask-back route가 설명된다.
Loop Protocol · route section
| route | condition | next action | operation log |
| exit | 목표와 success signal을 만족하고 남은 개선이 업무 가치에 비해 작다. | 결과를 확정한다. | verdict 근거와 남은 uncertainty |
| retry | 형식, 검증, 실행 중 하나가 실패했지만 입력은 충분하다. | checkpoint로 돌아가 실패한 검사만 다시 돌린다(통과 결과 보존). | 실패 사유와 복귀 node |
| ask-back | 요구사항이나 판단 신호가 비어 반복해도 수렴하지 않는다. | 2장 인터뷰 하네스를 다시 돌려 spec을 갱신한다. | 질문과 갱신된 condition |
5-4. 최종 프로젝트 및 케이스 스터디58 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
5-4 · SUMMARY
1장에서 5장까지
하네스 엔지니어링은 비결정적인 AI를 deterministic하게 묶어 원하는 결과를 얻어낸다
markdown으로 규칙을 잠그고, sub agent로 일을 나누고, MCP로 순서를 코드로 강제했다. 도구는 매 장 단단해졌지만 목표는 하나였다 — 매번 달라지는 모델에서 매번 같은 결과를 뽑아낸다.
5-4. 최종 프로젝트 및 케이스 스터디59 / 60
FAST CAMPUS · CHAPTER 05 · KEYNOTE
END
CLOSING · CHAPTER 05
MCP형 하네스 프로젝트 정리
문서와 분업으로 만든 흐름을, 순서와 상태와 멈춤 기준이 있는 코드형 하네스로 확장했습니다.
완료: decks/chapter-05.html
Cover · Dividers · Clip slides · Speaker notes
WRAP-UP60 / 60