V31-D16·D17 — AI 듀오 협업모드 · 모바일 화면 Phase 1 심층 시안

2026-08-29 · GRID.OS 3.1 배치 3b · 근거: 3.1 스펙 v0.3 결정 C8 — 원우 원문 «모바일로 그리도스를 컨트롤하는 기능이랑, ai 듀오 기능들은 구현 시안이 굉장히 중요해… 시안을 좀 심도있게 잡아서 진행해주면 좋겠어» → 일반 UI 게이트보다 강화된 심층 시안 게이트(인터랙션 흐름 · 상태별 다컷 · 결정보드 컨펌)
이 페이지에서 하는 일 — 두 기능 각각 ① 진입→사용→종료 인터랙션 흐름을 컷으로 ② 상태별(정상·진행중·오류·빈 화면) 다컷으로 ③ 아직 정해지지 않은 지점만 결정 카드로 드립니다. 모바일(V31-D17)은 8/13에 이미 확정된 화면(D41~D51 + 클릭 시제품, Playwright 32/32 검증)을 그대로 재사용합니다 — 그 부분은 새로 묻지 않고 아래 «확정 재사용» 배지로 표시만 합니다. 이번에 새로 결정할 것은 8/13 시안에 없던 연결 끊김·빈 세션·승인 대기 3가지 상태뿐입니다. AI 듀오(V31-D16 후반)는 8/17 기획 씨앗 이후 처음 화면을 잡는 것이라 전 구간이 새 결정입니다.

PART A · AI 듀오 협업모드 V31-D16 후반 · 전 구간 신규

전제: «세션 간 메시징»(V31-D16 전반, 앱 차원 대화탭 세션 라우팅)이 먼저 구현되고 그 위에 얹히는 협업 레이어입니다. 순서 고정: 메시징 → 듀오. 근거: 2026-08-17 기획 씨앗 — 2.1.1 실전(클로드·코덱스 하룻밤 협업)에서 양방향 4건 교차 검출 실증.

인터랙션 흐름 — 진입 → 사용 → 종료

1듀오 시작
+ 듀오 시작
1. AI 2개 선택
☑ Claude ☑ Codex
2. 역할 프리셋
구현↔검증 ▾
3. 목표 입력
"…을 완주해줘"
2역할 표시
C구현
×
검증X
체크포인트 · 리뷰 · 승인 카드로 자동 관리
3주고받는 중
Claude · 구현
1단계 커밋 완료, 리뷰 요청
Codex · 검증
결함 1건 검출 — 리턴
교차 검출 1건
4개입(스티어링)
대상: 전체 ▾
원우 개입
"검증 먼저 끝내고 병합해"
⏸ 두 AI 모두 일시정지
5종료 · 결과
완주
2h 14m · 커밋 6개
교차 검출
C→X 2건 · X→C 1건
계보 보기 →

상태별 다컷 — 듀오 바 컴포넌트

● 정상 진행
C구현
×
검증X
3건
마지막 활동 4초 전 · 4초 전
◐ 진행 중(한쪽만 응답)
C구현
×
검증X
Codex 응답 대기 2분째 — 아직 생존 범위
✕ 오류 — 생존 판정 실패
C구현
×
검증X
⚠ Codex 12분 무응답 — 하트비트 끊김
「원우가 대신 검증」 · 「재개 시도」
○ 빈 상태(듀오 없음)
◐ ◑
아직 시작한 듀오가 없어요
「AI에게 이렇게 말해보세요: '클로드랑 코덱스 듀오로 이 작업 완주해줘'」
기획 씨앗 근거 매핑 — 생존 판정(문제3-1)→하트피트 상태 배지 / 권위 표류(문제3-2)→D92 편성 문서 알림 / 계보 분기(문제3-3)→D91 계보 패널 / 자원 경합(문제3-4)→진행 중 카드에 "동시 검증 대기" 표기 / 범위 표류(문제3-5)→목표 입력 단계 시한 필드(D87 B안).

결정 카드

D87 — 듀오 시작 진입점 + 목표 입력
어디서 듀오를 시작하고, 시한·범위를 어떻게 못박나(문제 5: 범위 표류 방지)

A · 대화탭 「+ 듀오 시작」 버튼

기존 「+ 새 세션」 옆에 「⇄ 듀오 시작」 추가 → 모달(AI 2개 선택 + 프리셋 + 목표만)

빠르지만 시한·범위를 명시적으로 안 받아 문제5(범위 표류)가 그대로 남을 수 있음.

B · 오케스트레이션 뷰 확장 진입 권고

🎯 오케스트레이션 뷰에 「듀오 모드」 탭 추가 → AI 2개 + 프리셋 + 목표 + 완주 기준/시한(선택) 필드

기존 오케스트레이션과 같은 그릇이라 계보·검증 인프라(Run/Event 원장)를 재사용하기 쉽고, 시한 필드로 범위 표류를 시작 시점에 눌러둘 수 있음.

D88 — 역할 프리셋 구성
기획 씨앗 §4의 3프리셋(구현↔검증 / 지휘↔전담 / 2인 독립완주후대조)을 어떻게 제시하나

A · 카드 3장 고정 선택 권고

[구현↔검증] [지휘↔전담] [독립완주후대조] — 클릭 1번, AI 배정은 자동(1번째=A역할)

씨앗 §4에 이미 있는 3가지로 시작 마찰을 최소화. 실사용 뒤 자유 조합 필요성이 확인되면 후속 배치.

B · 자유 조합(AI별 역할 드롭다운)

Claude [구현 ▾] · Codex [검증 ▾] — 역할 어휘 자유 선택

유연하지만 처음 쓰는 사람이 조합을 스스로 판단해야 해 시작 마찰 증가.

D89 — 생존·부하 표시(하트비트)
문제1(생존 판정 불가로 3시간 오판)을 화면에서 어떻게 막나

A · 듀오 바 상시 노출 + 임계 3단계 권고

점 색 = 정상(초록, <2분) → 주의(주황, 2~10분) → 끊김(빨강, >10분 + 배지). 위 «상태별 다컷» 그대로.

기존 오케스트레이션 상태점(.ov-tst) 문법 재사용 — 새 시각 언어 안 늘림(STYLEGUIDE "색은 상태에만").

B · 에이전트 패널(P14) 확장만

별도 듀오 바 없이 기존 🤖 에이전트 패널을 열어야만 생존 상태를 봄

새 UI를 안 늘리지만, 패널을 열지 않으면 3시간 방치 문제가 재발할 위험 그대로.

D90 — 개입(스티어링) UI
원우가 진행 중인 두 AI에게 지시를 줄 때 대상을 어떻게 고르나

A · 공통 입력창 + 대상 칩 권고

입력창 위에 [전체 ▾ / Claude / Codex] 칩 — 기본 «전체», 필요할 때만 한쪽 지목

기존 스티어링(steer) 입력과 같은 문법 재사용 + 대상 선택만 추가. 학습 비용 최소.

B · 2열 분리 입력(AI별 독립창)

Claude 전용 입력창 / Codex 전용 입력창 — 항상 나란히

대상 착오는 없지만 화면이 좁아지고(2열 고정), «둘 다에게» 지시할 때 두 번 입력해야 함.

D91 — 계보 패널(분기 커밋 병합)
문제3(계보 분기)을 화면에서 어떻게 보여주고 병합·채택을 시키나

A · 2열 나란히 + 채택 버튼 권고

Claude 갈래 커밋 목록 | Codex 갈래 커밋 목록 — 각 커밋에 «채택» «병합 제안»

실사용(2.1.1)에서 실제로 벌어진 «두 갈래 커밋»을 그대로 반영 — 원우가 직접 비교하며 고른다.

B · 단일 타임라인 병합 그래프

git graph 스타일 — 브랜치 선이 갈라졌다 합쳐지는 시각화

더 «있어 보이지만» 구현 난도 높고, 2인 듀오 규모에는 과한 시각화일 수 있음(그래프뷰 성능 예산과 별개 신규 렌더러 필요).

D92 — 권위 표류 방지(편성 문서 알림)
문제2(지휘가 바뀌어도 워커가 부팅 때 문서를 계속 권위로 삼아 3회 충돌)를 화면에서 어떻게 막나

A · 상단 고정 배너 + 새로고침 유도 권고

편성 문서가 바뀌면 듀오 바 아래 «⚠ 편성 문서가 개정됐어요 — [반영 확인]» 배너, 두 AI 모두 확인 전까지 배너 유지

확인이 강제되므로 문제2 재발(3회 충돌)을 구조적으로 막음. 클릭 전까지 눈에 계속 보임.

B · 자동 반영 + 토스트만

문서가 바뀌면 두 AI에게 조용히 재주입, 화면엔 3초 토스트만

화면이 조용하지만, "확인했다는 보장"이 없어 문제2가 다시 새어나갈 위험.

PART B · 모바일 화면 Phase 1 V31-D17 · D41~D51 재사용 + 신규 3건

✓ 화면 생김새는 이미 확정돼 있습니다 (2026-08-13, D41~D51 + 클릭 시제품, Playwright 32/32 + 입력창 21/21 통과). 아래는 그 확정 화면을 심층 시안 게이트 형식(흐름 컷 + 상태 다컷)으로 다시 정리해 재확인만 받는 것입니다. 이 섹션의 흐름·상태 그림은 클릭 대상이 아니고, 새로 결정할 것은 맨 아래 D94~D96(연결 끊김·빈 세션·승인 대기) 3건뿐입니다.
D41 확정
전체 구조
하단 탭 3개 — 그리드 / 보드 / 에이전트
D45 확정
보드 화면
인스턴트 노트 → 업무보드(5뷰, 가로 스크롤)
D47 확정
AI 화면
한 번에 하나 몰입, 세션은 탭 전환
D48 확정
터미널
읽기 전용 제공(진행 확인용)
D49 확정
노트 탐색
「그리드」 탭이 트리 역할 겸함
D50 확정
세션 이름
맥 환경 그대로 따름(폰이 새로 안 만듦)
D51 확정
그리드뷰 진입
우하단 원형 FAB(46px), 트리 화면에서만
입력창
에이전트 컴포저
PC와 동일 3층 구조(라벨·textarea·전송)

인터랙션 흐름 — 하단 탭 전환 → 노트 열람 → 에이전트 상태 확인

보드 · 인스턴트 노트
무엇이든 시켜보세요…
메모 · 태스크 추가 ▾
오늘 마감 업무 3건
주간 리포트 검토
그리드
보드
에이전트
그리드 · 트리
📁 02_상품개발
📄 3.1 스펙 초안
방금 열람
그리드
보드
에이전트
에이전트 · ☰ 전체 세션
Claude 3
● 작업 중 · 방금
Codex 1
○ 대기 · 12분 전
그리드
보드
에이전트
Claude 3 · 대화
배치 3b 시안 초안 완료, 검수 요청
모델 · 새 대화
textarea · + · ↑ (PC와 동일 3층)
그리드
보드
에이전트

상태별 다컷 — 신규 결정 대상 3가지

● 정상
Claude 3
● 작업 중
실시간 상태 수신 중
◐ 로딩
✕ 연결 끊김(D94)
맥과 연결이 끊겼어요
자동 재연결 시도 중…
○ 세션 없음(D95)
열린 AI 세션이 없어요
맥에서 세션을 열면 여기 보여요

결정 카드 — 신규 3건

D94 — 연결 끊김(오프라인) 표시
폰이 맥 서버와 웹소켓 연결을 잃었을 때(Cloudflare 무료/Pro 100초 유휴 타임아웃 등) 어떻게 알리나

A · 상단 고정 배너(전 화면 공통) 권고

화면 최상단에 얇은 주황 띠 «연결 끊김 · 재연결 중…» — 어느 탭에 있든 항상 보임

탭을 오가도 상태를 놓치지 않음. 데스크톱 wcc-connection 라벨과 같은 문법.

B · 화면별 인라인 안내

에이전트 탭 안에서만 «연결 끊김» 문구 — 다른 탭엔 표시 없음

화면이 깔끔하지만, 보드·그리드 탭에 있을 때는 끊김을 모른 채 조작할 수 있음.

D95 — 세션 목록 빈 상태
열린 AI 세션이 하나도 없을 때 폰에서 무엇을 할 수 있게 하나

A · 안내만, 맥에서 시작 유도 권고

«열린 세션이 없어요 · 맥에서 세션을 열면 여기 보여요» — 폰에서 새 세션 생성 버튼 없음

D48(터미널=읽기 전용)과 같은 원칙 — Phase 1은 폰에서 실행을 시작하지 않는다는 기존 결정과 정합.

B · 「+ 새 세션」 폰에서 직접 생성

빈 상태에 「+ 새 세션」 버튼 — 눌러 폰에서 바로 AI 세션 생성

편하지만 "폰은 붙기만 하고 새로 만들지 않는다"는 8/13 확정 설계(세션 모델 표)와 충돌 — 별도 재검토 필요.

D96 — 승인 대기 카드(폰에서)
터미널이 읽기 전용(D48)인데, 안전 모드 승인 대기 카드가 뜨면 폰에서 어떻게 하나

A · 배지만, 맥에서 승인 안내 권고

세션 목록에 🔶 배지 + «승인 대기 · 맥에서 확인해주세요» — 폰에서 승인 버튼 없음

D48 «읽기 전용» 원칙을 그대로 지킴 — 실행 제어는 여전히 맥 전담.

B · 승인 버튼만 예외로 활성화

읽기 전용이지만 「허용」「거부」 버튼만 폰에서 누를 수 있게 예외

대기 시간을 줄이지만 "읽기 전용"의 예외를 만들어 D48 원칙이 흐려짐 — 보안 검토(모바일 접속 자유모드 여부, D503)와 얽힘.

이 심층 시안 범위 밖 — 접속 방식·JWT 검증·모바일 실행 권한(D501~D503, 별도 컨펌 문서 「인터널 모바일접속 컨펌」)은 화면과 무관하게 진행 가능해 이 게이트 대상이 아닙니다.

컨펌

위 9개 카드(D87~D96, D93 결번 없음 — D87~D92 듀오 6건 + D94~D96 모바일 3건)를 클릭해 선택한 뒤 아래 컨펌 문자열을 복사해 채팅에 붙여넣어 주세요. 선택 안 한 카드는 권고안(★)이 자동 채택됩니다.