# Lesson 15 Build Your Own Harness

> AI 에이전트 강의 패키지의 캡스톤 15강 — 학습자가 1~14강에서 만든 모든 요소(AGENTS.md, skills, MCP, hooks, subagents, 워크플로우, 비용 규칙, 라우팅 규칙, 멀티에이전트 설계)를 본인의 진짜 작업 환경에 통합한 하네스를 완성할 때 사용하는 강의. 강의 패키지 전체의 종착점이며, 학습자가 끝나면 매일 사용할 수 있는 본인만의 운영 환경이 만들어진다. 사용자가 "캡스톤", "15강", "하네스 만들기", "지금까지 배운 거 통합", "내 환경 정비", "운영 루틴", "build my own harness" 같은 표현을 쓰거나, 14강을 마친 후 캡스톤 진입을 시도할 때 반드시 이 스킬을 사용한다. 단순 마무리 강의가 아니라, 14강의 모든 결과물을 한 곳에 모아 운영 가능한 환경으로 합치는 통합 작업이라는 점이 핵심이다.

- Skill: `matthewoong/lesson-15-build-your-own-harness` (Agent Skill, multi-file: 11 files)
- Install (CLI): `npx skillmds@latest add matthewoong/lesson-15-build-your-own-harness`
- Raw SKILL.md: https://api.skillmd.com/api/skills/matthewoong/lesson-15-build-your-own-harness/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: Matthewoong (https://skillmd.com/u/matthewoong)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/matthewoong/lesson-15-build-your-own-harness

---


# Lesson 15 — 🎯 본인만의 하네스 구축 (캡스톤)

> 학습자가 끝나면 1~14강에서 만든 모든 요소를 *본인의 진짜 작업 환경*에 통합한 하네스를 완성한다.

이 강의는 강의 패키지의 **종착점**입니다. 새 개념을 배우는 게 아니라, *이미 만든 것들을 한 곳에 모아 운영 가능한 환경으로 합치는* 통합 작업입니다.

---

## 0. 시작하기 전에
공통 5개 문서 참조.

---

## 1. 진입 시 행동

1. 학습자 프로필 확인.
2. `progress["15-build-your-own-harness"].status` 분기.
3. **선행 점검** — 1~14강 진도를 *체크리스트*로 보여줌:
   ```
   캡스톤은 1~14강에서 만든 산출물을 *통합*하는 강의예요.
   {{name}}님의 진도를 점검해볼게요.

     [✅] 1강 AGENTS.md
     [⚠] 2강 skills (실습 미이행)
     [✅] 3강 mcp
     [🔒] 4강 prompt-engineering
     ...

   미수강·미이행 강의가 있어요. 어떻게 하시겠어요?
     (1) 그래도 캡스톤 진행 (없는 부분은 옵션 ②로 처리)
     (2) 먼저 미수강 강의로 돌아가기
   ```
4. 첫 인사 + "긴 여정의 마지막에 오신 걸 환영해요!" 격려.
5. 이론 진입. 헤더 `📘 [Lesson 15 · 청크 X/Y]`.
6. 이론 끝 → 가이드 실습 (옵션 2개 인라인).
7. 실습 종료 → 진도 갱신 + **🎓 강의 패키지 완주** 마무리.

---

## 2. 진도 갱신 + draft 키 명세

| 시점 | 갱신 |
|---|---|
| 15강 첫 진입 | `status = "in_progress"`, `current_chunk = 1`, `track = "capstone"` |
| 청크 통과 | `current_chunk += 1` |
| 청크 1~2 답변 | `draft.harness_overview = <학습자가 정리한 하네스 한 줄 정의>` |
| 청크 3 답변 | `draft.components_used = {<체크리스트, 1~14강 어떤 산출물 활용>}` |
| 청크 7 답변 | `draft.daily_workflow = <매일 사용할 운영 루틴>` |
| 실습 통과 | `practice_status = "done"`, `status = "completed"` |
| **🎓 패키지 완주** | (특별 처리 없음 — `progress` 전반 검토) |

### 15강이 사용하는 `draft` 키

| 키 | 시점 | 형식 |
|---|---|---|
| `harness_overview` | 청크 1~2 | string (한 줄 정의) |
| `components_used` | 청크 3 | object (1~14강 산출물 체크리스트) |
| `daily_workflow` | 청크 7 | string (운영 루틴) |

---

## 3. 이론 lesson 흐름

청크 8개. *통합* 강의라 패턴이 다른 강의와 약간 다름:
1. 하네스란? 지금까지 만든 것 모아보기
2. 본인 환경 점검 — 어디까지 적용했나?
3. 통합 우선순위 정하기
4. AGENTS.md 종합 정비 (1강 산출물 다듬기)
5. skills 모음 정리 (2강 + 추가)
6. MCP / hooks / subagents 통합 (3·8·9강)
7. 운영 루틴 만들기 — `daily_workflow`
8. 마무리 — 이후에 무엇을?

### 15강에서 *왜* 한 청크씩 가는가
캡스톤은 *통합*이라 한 번에 다 하면 어디서부터 손대야 할지 막혀요. 한 청크씩 *어떤 산출물부터 → 어떻게 합칠지 → 다음*으로 가야 매튜님이 *우선순위*를 정하며 하나씩 정비할 수 있습니다.

---

## 4. 가이드 실습 — 옵션 2개 인라인

### 4-0. 진입 시 draft 정리

```
🎉 이론 끝! 이제 진짜로 하네스를 완성해볼 시간이에요.

📝 하네스 한 줄 정의: <draft.harness_overview>
📝 사용한 컴포넌트:
   - AGENTS.md: <draft.components_used.agents_md>
   - skills: <draft.components_used.skills>
   - MCP: <draft.components_used.mcp>
   - hooks/subagents: <draft.components_used.hooks_subagents>
📝 일일 운영 루틴: <draft.daily_workflow>
```

### 4-1. 옵션 제시

```
어떻게 진행하시겠어요?

  (1) 1~14강의 *본인 산출물*을 통합 (가장 추천)
       (실습들에서 만든 것들이 자동으로 합쳐져요)
  (2) 새로운 도메인에 처음부터 적용
       (강의 다 안 들으셨거나, 새 환경에 적용하실 때)

번호로 답해주세요.
```

### 4-2. 옵션 ① — 본인 산출물 통합

학습자 프로필의 `progress[*].draft`를 모두 읽어 *각 강의 결과물*을 모아 보여줌. 학습자에게:
1. AGENTS.md 종합본 만들기 (1강 + 다른 강의 통찰)
2. skills 폴더 정리 (2강 + 14강 동안 만든 추가 스킬들)
3. MCP/hooks/subagents 등록 상태 점검
4. 일일 루틴 체크리스트 작성

### 4-3. 옵션 ② — 새 도메인 처음부터

새 폴더 만들고 *최소 하네스* 구축: AGENTS.md + 1~2개 핵심 skill만.

### 4-4. 검증 기준

| 항목 | 통과 기준 |
|---|---|
| `harness_overview`가 *한 줄로 명확* | ✅ |
| `components_used`에 *3개 이상* 컴포넌트 | ✅ |
| `daily_workflow`가 *실제로 매일 사용 가능*한 형태 | ✅ |

3개 중 2개 이상 ✅.

---

## 5~6. (공통)

자리표시자 / 도구 비종속.

---

## 7. 종료 시 행동 — 🎓 강의 패키지 완주 마무리

```
🎉🎉🎉 강의 패키지 완주 축하드려요, {{name}}님!

여기까지 오신 게 정말 큰일이에요. 1~14강에서 만든 것들이 이제 하나의
운영 가능한 하네스로 합쳐졌습니다.

📋 {{name}}님의 하네스 요약:
   - 한 줄 정의: <draft.harness_overview>
   - 통합한 컴포넌트: <draft.components_used.<count>>개
   - 일일 운영 루틴: <draft.daily_workflow>

이후에 무엇을 할까요?
  (1) 강의 패키지의 부록(99-claude-specific) 살펴보기
  (2) 본인 환경에서 1주일 운영해보고 다시 돌아오기
  (3) 강의 종료

이 강의 패키지는 매튜님 작업의 시작이에요. 천천히 본인 페이스로 사용하세요.
```

---

## 8. 강의 작성자 메타

- **트랙**: 캡스톤 (capstone)
- **선행**: 1~14강 (강력 권장 — 모두 수강 또는 스킵 처리됨)
- **분량**: 약 30~45분 (통합 작업이라 학습자별 차이 큼)
- **외부 자료**: 학습자가 1~14강에서 만든 모든 산출물
- **비용**: 없음
- **학습 목표**:
  - 1~14강 산출물을 한 폴더 안에 *통합*
  - 매일 사용 가능한 *운영 루틴* 작성
  - 본인 환경에서 *어떤 부분이 비어 있는지* 인지하고 보완 계획 수립
- **다음**: 99-claude-specific 부록 (선택)

---

## 9. 빠른 자기 점검
- [ ] 학습자 프로필 읽음
- [ ] `📘 [Lesson 15 · 청크 X/Y]`
- [ ] 한 청크만, 끝에 ❓/🛠/🔀
- [ ] 자리표시자 채움
- [ ] 도구명 노출 X
- [ ] 시도 전 답 X
- [ ] `progress["15-build-your-own-harness"]` 갱신
- [ ] **15강 추가**: 1~14강 산출물 체크리스트를 *학습자 프로필에서 자동으로* 가져왔는가
- [ ] **15강 추가**: 종료 시 강의 패키지 *완주 축하*를 빼먹지 않았는가

