# Omd Lab 02 Design Harness

OmD Lab #02, 디자인 하네스 정교화 실험.

- Repository: https://github.com/kwakseongjae/oh-my-design (552 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add kwakseongjae/oh-my-design --skill omd-lab-02-design-harness -g -a claude-code -y`
Codex: `npx skills add kwakseongjae/oh-my-design --skill omd-lab-02-design-harness -g -a codex -y`
Cursor: `npx skills add kwakseongjae/oh-my-design --skill omd-lab-02-design-harness -g -a cursor -y`
Gemini CLI: `npx skills add kwakseongjae/oh-my-design --skill omd-lab-02-design-harness -g -a gemini-cli -y`

## Description

OmD Lab #02, 디자인 하네스 정교화 실험. 동일 task를 v1, v2, v3... 버전별 하네스 설정으로 돌려서 산출물 품질·토큰 비용·iteration 수·persona ABANDON 율을 비교. 트리거, '/omd-lab-02', '하네스 lab 시작', '디자인 하네스 v2 돌려서 비교', 'lab #02 자동 비교'.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# OmD Lab #02, Design Harness Refinement

`omd:harness`의 정교화 작업을 위한 실험실. 동일한 design task를 *서로 다른 하네스 설정* (v1, v2, v3, ...)으로 돌려서 품질·비용·실패모드를 비교한다.

## 왜

Lab #01이 "DESIGN.md 유무"의 영향을 봤다면, Lab #02는 **하네스 자체의 설정**(prompt 변형, persona pool, eval rubric, asset 정책 등)이 산출물에 미치는 영향을 본다.

## 디렉토리 구조

```
skills/omd-lab-02-design-harness/
├── SKILL.md                       (this file)
├── playbooks/
│   ├── v1.md                      (현재 baseline, first full implementation)
│   ├── v2.md                      (다음 실험 가설)
│   └── ...
├── runs/
│   ├── v1-run-<ts>-<slug>/        ← omd:harness가 v1 설정으로 돌린 산출물 전체
│   ├── v2-run-<ts>-<slug>/
│   └── ...
├── compare/
│   ├── README.md                  (어떤 task로 어떤 v를 비교했는가)
│   └── <task-id>/
│       ├── index.html             (v1 vs v2 vs v3 동시 비교 뷰)
│       └── metrics.json           (집계 비교 지표)
└── postmortem-aggregate.md        (전 v 누적 학습)
```

## Lab Run 프로토콜

### 새 v 정의 (Lab 운영자, 사용자 또는 Claude)

1. `playbooks/v<N>.md` 작성. 가설을 한 줄로:
   ```
   ## Hypothesis
   v2 raises persona ABANDON budget from 3s → 5s, expecting fewer false-abandon and more useful friction signal.
   ```
2. v<N>이 v<N-1>과 *바꾸는 것 정확히 명시*. 1개 변수만 바꾸는 게 원칙.
3. 변경 점이 sub-agent 프롬프트에 있으면 `playbooks/v<N>/agents-overrides/*.md`로 patch 보관.

### Lab Run 실행

```bash
# 운영자가 수동 실행
omd harness "<task>" --lab v2
# 또는 사용자가 자연어:
# "이 task를 lab v2 설정으로도 돌려서 v1과 비교해줘"
```

`--lab v<N>`이 들어오면:
- `runs/v<N>-run-<ts>-<slug>/` 디렉토리에 산출물 적재
- v<N>의 agent overrides가 있으면 그걸 임시로 `.claude/agents/`에 덮어씌운 채 실행 (run 종료 시 원복)
- run.log에 `lab_version: v<N>` 기록

### 비교 뷰 생성

운영자가 동일 task에 대해 v1, v2, ..., vN의 run을 끝내면:

```bash
omd lab compare --task "<task-slug>" --versions v1,v2,v3
```

이게 `compare/<task-slug>/index.html`을 만든다. 4-패널 (또는 N-패널) 비교:
- 각 v의 brief.md / 주요 wireframe / DESIGN.md.patch / persona ABANDON 요약 / 토큰 비용
- 공통 metrics.json: per-v {iterations, total_tokens, persona_abandon_rate, deterministic_pass_rate, jury_score, time_to_handoff}

### 비교 metrics 정의

The rest: https://github.com/kwakseongjae/oh-my-design/blob/HEAD/skills/omd-lab-02-design-harness/SKILL.md
