Roundtable — 원탁 회의 엔진
"회람에서 원탁으로. 각자의 보고서가 서로를 만나는 자리."
목적
full-review 가 세 검수자의 보고서를 회람(回覽) 으로 종합한다면, 이 엔진은 전문가들이 서로 교차 질문·반박하며 하나의 결정에 이르게 한다. 관점이 충돌하는 문제 — 다음 글감, 검수 기준 개정, 새 엔진 도입 — 처럼 회람으로는 결론이 안 나는 아젠다를 다룬다("나도 모르고 AI도 모르는 것"의 영토, [[meeting-facilitation]] §1).
이 엔진은 하네스 시민권(트리거 자동발견·config 등록·로그 계약·red-team 배선)만 진다. 절차의 상세는 진행자 스킬에 위임한다 — full-review 가 "각 에이전트는 자신의 절차를 따른다"고 위임하는 관례와 같다.
7라운드 상세 절차·소환 프롬프트·수렴 루브릭·회의록 형식은 단일 소스를 따른다:
.claude/skills/roundtable-keeper/(SKILL.md + references/roundtable-protocol.md)
적용 대상
- 관점이 충돌해 회람으로 결론이 안 나는 아젠다(발산/의사결정/리스크 점검)
- 아젠다가 [[meeting-facilitation]] "지식 4분면"의 회람/주입/질문으로 해소되면 회의를 열지 않고 해당 도구로 돌린다
- 미지정 시 — 진행자가 개회 5질문으로 아젠다를 확정한다
참여 에이전트
| 역할 | 에이전트 | 투입 시점 |
|---|---|---|
| 진행자 | 원탁지기 (roundtable-keeper 스킬) | 전 라운드 (허브) |
| 상설 반대자 | [[red-team]] | 5라운드만 (프리모템) |
| 참여 전문가 | 하네스 캐논 에이전트에서 동적 선정 ([[doc-reviewer]], [[style-enforcer]], [[terminology-keeper]], [[manuscript-architect]], [[docs-publisher]], [[internal-liaison]] 중 아젠다에 맞게) | 2·4라운드 |
| 즉석 전문가 | 진행자가 합성 (페르소나 정의를 회의록에 명기) | 2·4라운드 |
agents:순서 ≠ 라운드 순서. frontmatter 의agents: [red-team]은 "이 엔진에 상설로 배선된 에이전트"라는 뜻이지 발언 순서가 아니다. red-team 은 2라운드(독립 의견)가 아니라 5라운드에만 투입된다 — 공격할 재료가 있어야 하기 때문이다. 나머지 참여자는 아젠다에 따라 진행자가 roster 에서 동적으로 선정한다.
실행 순서
사용자: "회의 열어줘 / 주제·목적·산출물"
│
▼
┌────────────────────────────────────┐
│ R0 개회 (진행자 단독) │
│ - 개회 5질문 고정 · roster 스캔 │
│ - 4분면 회람/주입/질문이면 회의 안 엶 │
└──────────────┬─────────────────────┘
▼
┌────────────────────────────────────┐
│ R1 문제 정의 (진행자 단독) │
│ - 풀 문제를 1문장으로 고정 │
└──────────────┬─────────────────────┘
▼
┌────────────────────────────────────┐
│ R2 독립 의견 [E1][E2]...[EN] │ ← 동시 병렬, 완전 격리(앵커링 방지)
└──────────────┬─────────────────────┘
▼
┌────────────────────────────────────┐
│ R3 발산 (진행자: 익명 다이제스트) │ ← 발화자 익명화
└──────────────┬─────────────────────┘
▼
┌────────────────────────────────────┐ ┌──────────────────────┐
│ R4 교차질문 │ │ R5 프리모템 │
│ 웨이브A(질문 병렬)→취합→웨이브B(답변) │◀══병렬══│ [red-team] 1회 소환 │
└──────────────┬─────────────────────┘ └──────────┬───────────┘
└────────────┬───────────────────────────┘
▼
┌────────────────────────────────────┐
│ R6 수렴 (진행자 단독, 위임 금지) │ ← 20점 루브릭 채점, A/B/C 선택지
└──────────────┬─────────────────────┘
▼
┌────────────────────────────────────┐
│ R7 결정·액션 (진행자 추천 → 인간 결정) │
└──────────────┬─────────────────────┘
▼
harness/logs/roundtable/{yyyy-MM-dd-HH-mm-title}.md (강제 저장)
Step별 절차
각 라운드의 상세(소환 프롬프트·출력 형식·웨이브 배칭·회의록 템플릿)는 진행자 스킬의 단일 소스를 따른다. 여기서는 계약만 못박는다.
- R0~R1 (개회·문제정의): 진행자가 개회 5질문을 고정하고 풀 문제를 1문장으로 확정. →
references/roundtable-protocol.md§R0~R1. - R2 (독립 의견): 전문가 전원 동시 소환, 완전 격리(구조적 앵커링 방지). → §R2. (full-review 의 "3축 병렬 검토"와 동일 패턴 — Task 병렬이 가능하면 우선한다.)
- R3 (발산): 진행자가 R2를 발화자 익명화 다이제스트로 압축. → §R3.
- R4 (교차 질문): 웨이브A(질문 병렬 수집) → 진행자 취합 → 웨이브B(대상별 병렬 답변). 후속 심화는 SendMessage 재개. → §R4.
- R5 (프리모템): [[red-team]] 1회 소환(4R과 병렬 가능). red-team.md 보고 형식 준수. → §R5.
- R6 (수렴): 진행자 본인이 20점 루브릭으로 채점 — 서브에이전트 위임 금지. → §R6.
- R7 (결정·액션): 진행자 추천 → 인간 최종 결정. → §R7.
로그 기록
- 회의록:
harness/logs/roundtable/{yyyy-MM-dd-HH-mm-title}.md— frontmatter(date+09:00 /agent: roundtable/type: meeting/mode: log-eval/trigger) 포함. - 미저장 = 회의 미완. 회의록에는 결정·보류·리스크·액션·미해결 unknown 이 반드시 담긴다.
- red-team 은 자체 로그를 별도로 남기지 않고 회의록의 리스크 필드에 흡수된다(중복 방지, full-review 관례와 동일).
종료 조건
goal 도달 판정([[meeting-facilitation]] §5):
- 결정 ≥ 1건, 또는 명시적 보류 + 사유 + 재개 조건
- 액션아이템 각 4필드(누가/무엇을/언제까지/완료기준) 완비 — 공란이면 미완
- 리스크 ≥ 1건(R5 연동)
- 미해결 unknown 목록 대조 완료
- 하드 상한: 서브에이전트 소환 ≤ 20 또는 sub-round ≤ 12. 초과 시 미결(escalate-to-human) 로 기록(조용한 봉합 금지)
- 사용자 "여기까지" 선언 시 즉시 종료
한계
- 완전 자동화 아님 — 최종 결정은 인간이 한다(원탁지기는 진행자이지 의사결정자가 아니다).
- 회람으로 충분한 일에는 쓰지 않는다 — 기준과 원고를 대조하는 검수는 full-review 가 맞다. 회의는 관점이 충돌하는 문제 전용이다.
- AI끼리의 낙관 수렴 위험은 red-team 5R로 상시 견제하나, 완전히 제거되지는 않는다 — 인간의 최종 판단이 마지막 안전장치다.
종합 평가 (정원지기 시점)
엔진 1회 실행이 끝나면 [[tamer]] 가 3축 평가:
| 축 | 평가 | 기준 |
|---|---|---|
| 회의 효율 | A/B/C/D | 라운드 수, 재순환 횟수, 소환 대비 산출 |
| 결정 품질 | 1~5 | goal 필수 필드 완비율, 액션아이템 실행 가능성 |
| unknown 발굴 | A/B/C/D | 4라운드 교차질문이 새 unknown 을 실제로 드러냈는가 |