본문으로 건너뛰기

IA · 확장 후 — 정보 구조

갱신일 2026-08-12 · 기준: 확장 개요 · 현재 판 IA · 공통 시나리오 S1~S7 이 문서가 갖는 것: 화자·그래프·외부 클라이언트가 들어온 뒤 사용자가 보는 화면·URL·권한·상태 축. 여기 없는 것: 모듈 배치(AA) · 경계와 프로토콜(SA) · AWS 형상(CA) · 저장소 소유권(DA) · 스키마(ERD) · 그래프 스키마(온톨로지) · 에이전트 게이트(실시간 경로).

⚠︎ 이건 계획이지 현황이 아니다. 지금 서 있는 것은 현재 판 IA가 갖는다. 아래 문구는 초안이고 카피 검수를 거치지 않았다.

1. S1을 화면으로 관통한다

2026-08-12(화), 워크스페이스 민손 팀, 프로젝트 PRO-1 실시간 STT. 김민수가 10:00에 녹음을 시작한다.

10:00 · 회의 면/w/{ws}/notes/{noteId}?view=side. 전사 줄은 시각 + 텍스트뿐이다. 회의 중 화자 표시는 D3 때문에 구조적으로 불가능하고, 그걸 화면이 먼저 말한다 — 전사 상단 고정 줄 회의 중에는 누가 말했는지 표시하지 않는다 · 끝나면 붙는다. (버린 대안: 실시간 화자를 임시로 붙이고 나중에 덮어쓰기. 임시와 확정이 화면에서 구분되지 않고, 이미 읽은 이름이 바뀐다.)

10:23:14 · 사이드 패널 카드 (C3 충돌) — 이서연이 "그냥 STT 공급자 ElevenLabs로 다시 가시죠". 카드는 사이드 패널 감지 탭에 쌓이고 배지가 1 이 된다. 소리도 공유 챗봇 메시지도 없다(D12).

⚑ 이전 결정과 충돌할 수 있다
방금 (10:23:14) — "STT 공급자 ElevenLabs 로 다시 가시죠"
2026-07-22 스프린트 회의에서 정한 것
"실시간 STT 는 Soniox 로 간다" · 그 회의 23:14
[근거 보기] [관련 없음] [닫기]

근거 보기 는 2026-07-22 노트의 23:14 줄로 이동한다 — 근거 없는 카드는 띄우지 않는다(온톨로지 §4). 관련 없음 은 오탐 신고다(§13 ④). 안 읽어도 회의가 안 망가진다: 놓친 카드는 종료 후 요약 탭 회의 중 감지 1건 으로 회수된다.

10:45 · 종료 직후 — 종료한 사람에게도 뷰어에게도 같은 화면이 뜬다.

회의가 끝났다 · 정리 중
✓ 녹음 저장 10:45:03
◐ 누가 말했는지 정리 중 약 3분
· 참석자 확인
· 회의 내용 정리
전사는 지금 바로 볼 수 있다 [전사 보기]

네 줄이 파이프라인 ①②③④ 다. ⑤ 그래프 반영은 화면에 없다 — 사용자가 기다릴 이유가 없다(§5).

11:10 · 화자 교정?view=full&tab=transcript&speakers=edit. 라우트가 아니라 전사 탭 안의 모드다. 화자 4명 중 3명이 voice print로 붙고, 미등록인 최유진이 화자 4 로 남는다. 아래 숫자의 단위는 발화이고, 발화는 연속 세그먼트 묶음이다 — 전사 줄(세그먼트) 수와 다르다(§9).

화자 4명 · 3명은 자동으로 이름이 붙었다
김민수 발화 62 · 34% voice print 매칭 [바꾸기]
이서연 · 박준호 각각 51 · 33 발화 voice print 매칭 [바꾸기]
화자 4 발화 46 · 19% 이름 없음 ▶ 샘플 듣기
"그 부분은 제가 이번 주에 정리할게요" (12:04)
[사람 지정] [다른 화자와 합치기] [이름만 붙이기]

사람 지정 → 최유진 을 누르면 확인 줄이 뜬다 — 화자 4 의 발화 46개가 전부 "최유진" 이 된다. 최유진은 voice print 가 없다 — 이 교정은 이 노트에만 남는다. + [등록 요청 보내기]. 남이 대신 등록할 수 없다. 생체정보 등록은 본인 화면에서만 일어난다(§8). 샘플 듣기 는 오디오가 사는 7일 동안만 있고(D15), 8일째에는 녹음은 7일 뒤 지운다 로 바뀐다.

최종 노트?view=full&tab=summary. 요약 · 결정 2건 · 액션 아이템 3건. 달라진 것 셋: 근거 칩에 이름이 붙고(이서연 · 10:23:14), 회의 중 감지 1건 섹션이 생기고, 맥락 배너가 뜬다.

⚑ 확인 필요 — 이 회의의 결정이 이전 결정을 뒤집는 것 같다
이번 "STT 공급자를 ElevenLabs 로 재검토" 오늘 10:23:14
이전 "실시간 STT 는 Soniox 로 간다" 2026-07-22 23:14
[뒤집는다] [아니다] [나중에]

요약 본문에 이름을 문자열로 박지 않는다. 화자 참조로 렌더하면 교정이 늦게 와도 표시가 따라 바뀐다. 버린 대안: 교정 후 요약 재생성 — LLM 비용이 회의마다 두 배가 되고, 이미 읽은 문장이 통째로 바뀐다.

S5 · 14:00 배포 — 회의 화면에 무엇이 보이나. 진행 중 회의 3건 위로 롤링 배포가 지나간다. 김민수 화면에 아무것도 안 보이는 것이 정답이다 — 태스크 교체·deregistration·task scale-in protection은 전부 화면 아래에서 끝난다(CA §13). protection이 안 먹어 연결이 실제로 끊긴 경우에만 재연결 배지가 뜨고, 그 문구와 90초 초과 시의 갭 표기는 §13 ⑤ 가 갖는다. 배포를 성공 토스트로 알리지 않는다 — 사용자가 모르는 게 무중단의 정의다.

2. 계층 — 무엇이 늘고 무엇이 안 바뀌나

지금1만10만
계층workspace > project > note그대로organization > workspace > project > note (D16)
URL로 뚫린 계층workspace · note+ project (조건부)+ organization
노트 안의 축전사 · 요약 · 챗봇+ 화자 · 감지 카드그대로
회의를 넘는 축없다결정 · 액션 아이템+ 사람 · 검색
권한ADMIN · MEMBER그대로+ 조직 관리자 · 게스트

project 경로는 사용자 수가 아니라 워크스페이스당 노트 수가 연다 — 1,000건을 넘으면 사이드바 그룹핑은 탐색이 아니라 장식이다.

게스트는 계정이 있고 워크스페이스 하나에만 초대된 외부 사용자다. S2의 이정훈(외부) 는 게스트가 아니라 노트 스코프 이름표이고 계정이 없다(§7). 둘을 한 단어로 안 쓴다 — 화면 문구에서도 갈라 쓴다: 초대받은 사람은 게스트, 이름표는 외부.

게스트가 못 하는 것
녹음 시작전사 시간이 워크스페이스 원가다. 조작권 규칙은 §4 그대로
초대외부 사용자가 외부 사용자를 부르면 경계가 없어진다
토큰 발급 (/settings/tokens)MCP 반출 경로를 밖으로 열지 않는다(§10)
전사 전문 열람초대된 노트의 요약 · 결정 · 액션 아이템까지다. 전문은 워크스페이스 멤버만

조직 관리자는 워크스페이스 내용에 접근하지 않는다. 조직 화면은 /o/{orgId}/{members,billing,audit,policy} 넷이 전부이고, 거기서 노트 · 전사 · 요약으로 들어가는 링크가 없다. 결제와 감사를 보는 역할이 남의 회의를 읽는 것은 다른 제품이다. 안 적어두면 「조직 관리자」라는 이름만 보고 전체 열람 권한으로 구현된다.

3. URL — 1만 · 10만

URL화면1만10만
/ · /privacy · /terms · /invite · /auth/callback지금과 같다그대로그대로
/w/{ws}워크스페이스 셸 · 노트 허브그대로그대로
/w/{ws}/notes/{noteId}노트 상세불변불변
/n/{noteId}노트 정규 경로로 302
/w/{ws}/p/{pj}프로젝트 노트 목록조건부 (노트 1,000건)
/w/{ws}/p/{pj}/actions · /decisions · /w/{ws}/my그래프 화면 셋 (§6)
/w/{ws}/usage · /settings/tokens사용량(§11) · 토큰(§10)
/w/{ws}/search검색 1급 화면
/o/{orgId}/{members,billing,audit,policy}조직

노트 URL 불변 규칙 셋: ① organization이 생겨도 /o/{org}/w/... 로 접두사를 붙이지 않는다 — 공유 링크 · Linear 코멘트 · MCP가 내보낸 참조가 그 위에 서 있다. ② 노트가 다른 워크스페이스로 옮겨져도 안 죽게 /n/{noteId} 가 정규 경로다 (noteId는 13자 TSID로 전역 유일). 밖으로 나가는 링크는 전부 이 형태를 쓴다. ③ 화면 안의 상태(view · tab · speakers)는 쿼리스트링이고 history.replaceState 다 — 현재 판이 잰 _rsc= 왕복(102ms → 10ms)이 그대로 유효하다. 버린 대안: 계층이 늘 때마다 URL을 다시 짜고 301을 깐다 — 리다이렉트 표를 영원히 들고 가야 하고, MCP가 이미 내보낸 참조는 우리 리다이렉트를 안 탄다.

4. 상태가 화면을 가르는 축 다섯

화면이 어떻게 갈리나
회의 상태NOT_STARTED → IN_PROGRESS → ENDED (PAUSED 는 값이 살아 있으나 UI를 안 만든다)ACTIVE = IN_PROGRESS && meetingStartedBy != null 이 공유 챗봇 쓰기와 녹음 컨트롤을 연다
조작권최초 녹음 시작자 1인 (+ 이탈 시 ADMIN 대리 종료)뷰어에게는 중지·종료 버튼이 없다
역할ADMIN · MEMBER (10만: + 조직 관리자 · 게스트)초대 · 연동 · 토큰 발급 범위
파이프라인 단계 🆕①~⑤ 각각 대기 · 진행 · 완료 · 건너뜀 · 실패 (AA §3)노트 헤더 진행 줄 · 요약 탭에 뭐가 있나 · 재시도 버튼
화자 라벨 확정도 🆕없음 → 자동 → 매칭 → 확정이름 표기 · 외부 반출 가부
확정도언제화면 표기외부로 나가나
없음회의 중 · 분리 실패화자 표시 없음
자동pyannote 결과화자 4 회색나간다 (익명)
매칭voice print 대조최유진 (추정) — 텍스트가 먼저다. 점선 밑줄 · 툴팁 목소리로 추정 은 보조(§14 ①)안 나간다
확정사람이 지정·확인최유진나간다

미확정 이름은 MCP · Linear · GitHub로 내보내지 않는다. 틀린 이름이 외부 도구에 박히면 회수할 수 없다.

5. 회의가 끝난 뒤 — 대기가 화면에 산다

지금은 상태가 둘이다. 분석 결과 없음 → 있음. 이제 네 줄이 순서대로 켜진다.

단계화면 문구끝나면 쓸 수 있는 것실패하면
① 오디오 확정녹음 저장화자 없이 ④ 로
② 화자 분리누가 말했는지 정리 중전사에 화자 N건너뛴다 → §13 ①
③ 화자 매칭참석자 확인이름 · 교정 화면이름 없이 진행. 사용자가 교정
④ 요약회의 내용 정리 중요약 · 결정 · 액션 아이템§13 ②
⑤ 그래프 반영표시하지 않는다맥락 배너 · 보드조용히 재시도. 배너만 늦게 뜬다

전사는 0초부터 있다. 대기 화면이 전사 보기를 항상 같이 준다 — 전부 끝나야 뭐라도 보이는 구조로 만들지 않는다. 그리고 재시도 중에는 실패라고 말하지 않는다: S4처럼 Spot이 끊겨 ②단계만 다시 도는 경우 화면은 약 3분약 6분 으로 늘릴 뿐이고, 시도 2회를 넘기거나 15분이 지나야 실패 문구로 바뀐다. 버린 대안: 진행률 퍼센트 바 — 단계 소요가 회의 길이와 GPU 대기열에 따라 몇 배로 흔들려 퍼센트가 거짓말이 된다. 단계 이름과 대략 시간이 정직하다.

6. 그래프가 만드는 새 화면 — 회의를 넘는 층

지금 모든 화면은 노트 하나 안에서 끝난다. 그래프가 처음으로 회의를 넘는 화면을 만든다.

화면경로화면 문구
액션 아이템 보드/w/{ws}/p/{pj}/actions담당 없음 · 진행 · 기한 지남 · 완료. 카드 밑줄 2026-08-12 스프린트 회의 · 31:07
내게 밀린 것/w/{ws}/my기한이 지난 것 2건 · 빈 상태 밀린 게 없다
결정 이력/w/{ws}/p/{pj}/decisions역순 타임라인. 뒤집힌 항목은 취소선 + 2026-08-19 회의가 뒤집었다
맥락 배너노트 요약 탭 안§1의 ⚑ 확인 필요 — …

규칙 넷.

규칙
그래프를 그래프로 보여주지 않는다노드-엣지 그림은 데모에서만 예쁘다. 사용자가 찾는 것은 목록이다
모든 항목이 회의로 되돌아간다근거 칩 없는 항목은 화면에 안 올린다
추론과 사실을 구분한다AI 가 찾음 은 흐리게 + 맞다 / 아니다. 텍스트로도 적는다(§14 ①)
미확인 관계는 이력에 안 넣는다확인 전 SUPERSEDES는 배너로만 뜨고 타임라인 취소선을 만들지 않는다 — 온톨로지 §5

버린 대안: 워크스페이스 전역 대시보드를 홈으로 — 프로젝트를 안 고른 액션 아이템 보드는 남의 할 일이 대부분이고, 그러면 아무도 안 본다.

7. 화자 교정 — 동작 넷과 게스트 라벨

화자 분리는 틀린다. 겹쳐 말하면 섞이고, 목소리가 비슷하면 합쳐지고, 중간에 들어온 사람은 새 화자가 된다. 교정은 부가 기능이 아니라 파이프라인의 일부다.

동작버튼무엇이 바뀌나확정도voice print
화자에 사람 지정사람 지정그 화자의 모든 발화가 한 번에 바뀐다확정본인이 등록·동의했으면 개선 입력
화자 둘 합치기다른 화자와 합치기두 화자가 하나가 되고 목록에서 하나 사라진다병합 후 상위 값같음
한 발화만 옮기기발화 줄 → 이 발화만그 세그먼트 하나그 줄만 확정쓰지 않는다 — 겹친 구간은 오염원이다
이름만 붙이기이름만 붙이기노트 안에서만 쓰는 이름표확정 (계정 없음)만들지 않는다

교정이 요약보다 먼저 오는 게 원칙이지만 늦게 와도 요약은 다시 만들지 않는다(§1). 그래프에 투영된 담당자는 재투영으로 갱신된다. S2 게스트 라벨 — 고객사 2명이 화자 5 · 화자 6 이 된다. 김민수가 이름만 붙이기 를 누르면:

이름만 붙이기
이 이름은 이 노트 안에서만 쓴다.
· 목소리를 저장하지 않는다 — 다음 회의에서 자동으로 알아보지 않는다
· 계정과 연결하지 않는다 — 액션 아이템 담당자로 지정할 수 없다
이름 [ 이정훈(외부) ] [저장]

전사 줄에 이정훈(외부)외부 뱃지가 붙는다. voice print를 만들지 않는다는 사실이 화면에 두 줄로 적혀 있다 — 이게 이 화면의 존재 이유다. 다음 회의에서 같은 사람이 와도 다시 화자 N 이고 다시 이름을 붙여야 한다. 그 불편이 옵트인의 대가다. 그래프에 Person 노드가 생기지 않으므로(키가 userId 다) 게스트에게는 담당 지정 버튼부터 비활성이고 툴팁이 계정이 있는 참석자만 담당자가 된다 를 말한다. 403은 최후 방어선이지 UX가 아니다.

8. voice print — 생체정보 화면

목소리는 생체정보다. 이름이나 이메일과 같은 취급을 하면 안 된다. 이 한 줄이 아래 화면 전부의 이유다.

화면 셋.

화면어디무엇이 있나
등록 동의계정 설정 → 목소리무엇을 저장하나 · 어디에 쓰나 · 보관 기간 · 거부해도 제품을 쓸 수 있다
등록 · 내 목소리같은 곳짧은 문장 읽기 또는 지난 노트에서 내 발화 구간 지정 · 등록일 · 갱신 · 삭제
조직 정책/o/{org}/policy (10만)조직 관리자가 기능 자체를 끈다 — 토글 다섯

조직 정책 화면의 토글 다섯. 켜고 끄는 주체는 조직 관리자 하나다. 축과 평가 시점은 AA 가 갖고, 여기는 꺼진 화면이 어떻게 생겼나만 정한다.

토글끄면 화면에서
voice_print_matching등록 진입점이 사라지고 화자는 전부 화자 N 으로 남는다. 교정(§7)은 그대로 된다
realtime_agent사이드 패널 감지 탭이 없다. 요약의 회의 중 감지 절도 없다
graph_projection맥락 배너와 보드 셋(§6)이 없다. /w/{ws}/p/{pj}/actions 는 404가 아니라 진입점부터 없앤다
mcp_edge/settings/tokens 이 없다. 이미 발급된 토큰은 401 이고 목록은 조직 감사 화면에만 남는다
summary_pii_names요약 · 결정의 이름 자리가 화자 N 으로 렌더된다(§1의 화자 참조가 이걸 공짜로 만든다)

끄면 지난 결과는 남는다. 끄기는 앞으로를 막는 스위치이지 지우개가 아니다 — 이미 붙은 화자 라벨, 이미 뜬 배너, 이미 나간 요약은 그대로다. 지우려면 삭제 화면(§9)으로 간다. 끄기 확인 줄이 이 문장을 그대로 말한다: 앞으로 만들지 않는다. 이미 만들어진 것은 지우지 않는다.

#옵트인 규칙화면에서
1옵트인. 기본값 꺼짐등록 안 한 사람은 화자 N 으로 남고 제품은 그대로 돈다
2거부가 1급 경로다거부한 사람 목소리로는 매칭을 시도하지 않는다. 재권유 배너를 반복해 띄우지 않는다
3삭제가 즉시다임베딩은 지우고 과거 라벨은 남는다 — 아래 화면이 이 구분을 말한다
4매칭 범위는 organization 안등록 화면에 대조 범위: 민손 팀 조직 안. 조직을 넘으면 다른 제품이다

S7 삭제 화면 — 최유진이 계정 설정에서 삭제를 누른다.

목소리 등록을 지운다
지워지는 것
· 내 목소리 임베딩 1건 (2026-06-14 등록)
남는 것
· 이미 정리된 회의 12건의 "최유진" 화자 라벨
이름표는 회의 기록이지 목소리가 아니다. 지우려면 각 노트에서 라벨을 바꾼다
앞으로 · 다음 회의부터 자동으로 알아보지 않는다. "화자 N" 으로 남는다
[지운다] [취소]

등록에는 동의 화면을 두고 삭제에는 확인 한 번만 둔다. 버린 대안: 삭제에 비밀번호·이메일 재확인. 생체정보 삭제를 어렵게 만드는 방향은 틀렸다.

9. S6 — 노트 삭제가 무엇을 지우나

저장소가 다섯이면 "지웠다"의 의미가 흐려진다. 삭제 사슬은 DA 가 갖고, 이 문서는 화면에 뭐라고 쓰나만 정한다.

"2026-08-12 스프린트 회의" 를 지운다
지워지는 것
· 전사 412줄 · 요약 · 결정 2건 · 액션 아이템 3건 · 공유 챗봇 기록
· 녹음 파일 45분
· 이 노트의 검색 임베딩
· 이 회의가 만든 결정·액션 아이템의 연결 이력
남는 것
· 참석자 4명의 목소리 등록 — 목소리는 사람의 것이지 이 회의의 것이 아니다
· 연결된 Linear 이슈 1건 — 우리가 지우지 않는다
⚠ 이 회의의 결정 1건을 2026-08-19 회의가 뒤집었다고 표시돼 있다. 지우면 그 이력이 끊긴다.
되돌릴 수 없다. [지운다] [취소]

전사 412줄 의 「줄」은 전사 세그먼트다. §1의 발화 수(62·51·33·46)와 자릿수가 다른 이유는 발화가 연속 세그먼트 묶음이기 때문이고, 45분 회의의 세그먼트 400 내외는 아직 추정이다(ERD §14).

화면 줄과 저장소의 대응은 DA §1 표를 그대로 따른다.

화면 줄DA §1 저장소
전사 · 요약 · 결정 · 액션 · 챗봇Postgres heymoa
녹음 파일 45분S3 오디오
이 노트의 검색 임베딩벡터 (1만 구간까지는 heymoa_ai 안 pgvector)
연결 이력Neo4j
— 화면에 안 올린다heymoa_ai 재분석 캐시 · 체크포인트. 사용자가 잃는 것이 없다
남는 것 · 목소리 등록heymoa 안의 별도 스키마(DA §3). 여섯 번째 저장소가 아니다

저장소 이름은 화면에 쓰지 않는다. 사용자는 Neo4j를 모른다. 대신 사용자가 잃는 것이 있는 저장소를 각각 한 줄씩 말한다 — 줄 수가 줄면 뭔가 안 지워진 것이다. 버린 대안: 30일 휴지통. 다섯 저장소에 걸친 반쯤 지워진 상태를 30일 유지해야 하고, 그동안 "지웠다"가 그래프·검색에서 무슨 뜻인지 설명할 수 없다.

10. S3 — MCP·CLI 토큰 화면

박준호가 IDE에서 TranscriptionStompConfig.kt 를 보다 "왜 SimpleBroker 지?" 를 묻는다. 그 조회가 성립하려면 먼저 토큰 화면이 있어야 한다. /settings/tokens — CLI가 heymoa login 에서 이 주소를 출력한다. (버린 대안: 설정 다이얼로그 전용. CLI가 가리킬 주소가 없다.)

새 토큰
이름 [ 준호 노트북 IDE ]
워크스페이스 [ 민손 팀 ▾ ] 하나만 고른다. 여러 곳이면 토큰을 따로 만든다
권한 (•) 읽기 전용 — 회의 · 결정 · 액션 아이템 조회 기본값
( ) 노트 쓰기 — 액션 아이템 상태 변경
( ) 도구 실행 — Linear · GitHub 에 쓴다 ⚠ 승인할 사람이 없다
읽기 범위 [x] 요약 · 결정 · 액션 아이템 [ ] 전사 전문 (기본 꺼짐)
만료 (•) 90일 ( ) 30일 ( ) 1년 무기한 없음
호출 상한 분당 60 · 하루 5,000 (고정)
[만들기]

발급 직후 한 번만 값을 보여준다 — 다시 볼 수 없다. 잃어버리면 새로 만든다. 목록은 이름 · 범위 · 만료 · 마지막 사용 · 폐기, 감사 줄은 2026-08-12 14:02 · 준호 노트북 IDE · search_decisions · 3건.

도구 실행은 별도 선택지이고 경고가 붙는다. 공유 챗봇의 쓰기 도구는 사람이 승인 버튼을 누르는데, MCP 요청에는 누를 사람이 없어서 그 경계를 토큰 범위가 대신 진다. 전사 전문은 기본 꺼짐이다 — 켜면 회의 전체가 IDE로 나가고, 결정 근거 인용 세 줄로 대개 끝난다.

11. 사용량 — 원가가 제품 결정이 된다

무엇어디문구
이번 달 전사 시간/w/{ws}/usage4시간 12분 / 20시간
화자 분리 처리 · 재분석같은 곳 · 노트의 재분석 버튼 옆회의 12건 정리함(GPU는 별도 원가) · 이번 달 3 / 10
회의 전 사전 경고녹음 시작 버튼 위남은 전사 시간 38분 · 45분 회의라면 중간에 끊긴다
청구 (10만)/o/{org}/billing워크스페이스별 내역

한도는 실패가 아니라 상태다. 막히는 순간에 처음 알리면 회의가 이미 시작돼 있다. 그래서 경고가 녹음 시작 전에 있다.

12. 기능이 켜지는 날

배포일에 제품은 두 개다 — 기능이 붙은 노트기능 이전에 녹음된 노트. 화면이 이 둘을 구분하지 않으면 사용자는 옛 노트를 고장으로 읽는다.

#언제화면
화자 기능 도입 전에 녹음된 노트배지 이 회의는 화자 정보가 없다 — 기능 도입 전 녹음. [다시 시도] 를 안 보여준다 — 오디오가 없어 영영 불가다(D15). 눌러서 실패하는 버튼은 없는 것보다 나쁘다
Neo4j 초기 투영이 아직 안 닿은 노트맥락 배너 자리를 비운다. 아직 준비 중 같은 빈 상태 문구를 쓰지 않는다 — 「연결이 없다」와 「아직 안 봤다」를 화면에서 구분할 수 없고, 구분 못 할 바에는 말을 안 하는 편이 낫다
voice print를 아무도 등록 안 한 워크스페이스권유는 딱 두 곳 · 각 1회 — 첫 화자 교정 화면의 [내 목소리 등록], §8 등록 화면. §8 규칙 2(재권유 금지)가 여기에도 걸린다. 아무도 안 들어오면 ③단계는 계속 건너뛴다
organization 1:1 백필(V25)이 도는 날화면 변화 없음. 조직 화면 넷은 10만 구간에 열리고, 그전까지 테이블만 있고 URL이 없다(§3)

갈림은 하나다 — 사용자가 지금 뭔가 할 수 있으면 말하고, 없으면 침묵한다. ①은 이유를 말해야 재시도를 기다리지 않고, ②는 말하면 없는 것을 있는 것처럼 기다린다.

13. 실패 화면 다섯

정상 경로만 있는 설계는 절반이다. 지금 화면에는 실패 상태가 아예 없다 — 워치독이 못 살리면 사용자는 영원히 기다린다.

#상황화면 문구할 수 있는 것남는 것
화자 분리 실패누가 말했는지는 정리하지 못했다 · 요약은 나왔다[다시 시도] — 오디오가 사는 7일 안에만전사 · 요약 · 결정. 화자만 없다
요약 실패회의 내용을 정리하지 못했다[다시 시도] — 자동 재시도 1회 뒤 사람 손으로전사 · 화자. 재시도가 원가라 무한재시도를 안 한다
한도 초과이번 달 전사 시간을 다 썼다 (20시간) · 녹음을 시작할 수 없다 + [관리자에게 요청]요청 · 다음 달 대기지난 회의는 전부 그대로 열린다
에이전트 오탐[관련 없음]다시 올리지 않는다한 번 누름이 회의에서 그 결정으로 다시 안 뜬다 · 워크스페이스 90일. 요약 회수에도 안 들어간다
연결 끊김 (배포 · Spot 회수 · 네트워크)연결이 끊겼다 · 다시 잇는 중 12초 → 복구되면 이어졌다. 90초를 넘기면 10:31:02~10:31:20 구간은 녹음되지 않았다 + 전사에 회색 갭 블록[그 구간 메모 남기기]앞뒤 전사 · 요약 전부. 갭 구간만 없다

카드 기각은 (창, 결정) 쌍의 억제이지 그래프 SUPERSEDES 부정이 아니다(실시간 §6) — 억제 범위는 워크스페이스 90일이고, 「이 결정이 틀렸다」는 뜻이 아니다. 그래도 사용자에게 하는 약속은 그대로다: 한 번 틀린 카드를 또 띄우면 기능이 죽는다.

⑤ 는 끊긴 것을 숨기지 않는 게 전부다. 갭 블록이 없으면 사용자는 그 구간에 아무도 말을 안 한 줄 안다. 초 단위 재개 규약은 실시간 §7.6, 배포 쪽 원인은 CA §13 이 갖고 문구는 이 표가 정본이다. 배포가 정상이면 ⑤ 자체가 안 뜬다(§1 S5).

①② 는 노트 헤더에 배지로도 남는다. 사용자가 대기 화면을 떠난 뒤 실패했을 수 있고, 도착 경로는 현재 판 미확인 ②(3초 폴링)와 같은 문제를 공유한다.

14. 접근성

실시간 전사 도구는 청각 장애 사용자가 1차 사용자다. 지금 설계가 정면으로 걸린다 — §4 확정도가 색·점선으로만 갈리고, 감지 카드는 소리 없이 쌓이고, 전사 수백 줄에 키보드 경로가 없다.

#규칙화면에서
확정도를 색·점선 단독으로 표현하지 않는다§4 매칭 표기는 최유진 (추정) 텍스트 병기. 점선 밑줄과 회색은 보조 신호다. §6의 AI 가 찾음 도 같다
배지만 읽는다감지 배지에 aria-live="polite" · 감지 1건 만 읽고 포커스를 안 뺏는다. 패널 진입은 Alt+D. 카드 본문을 라이브 리전에 넣으면 읽고 있던 전사를 덮고 D12(놓쳐도 손해 없게)가 깨진다
전사가 키보드로 걸어진다role="log" + 가상 스크롤 · j/k 로 줄 이동 · Enter 로 그 시각 재생 · 자동 스크롤 정지 토글. 새 줄이 계속 밀어 올리는 화면은 스크린리더에서 읽을 수 없다
대기는 상태로 말한다§5 네 줄에 aria-busy + 단계 텍스트. 퍼센트 바를 안 쓴 §5 결정이 여기서 회수된다 — 읽을 수 있는 것은 숫자가 아니라 단계 이름이다

가상 스크롤과 role="log" 는 같이 쓰기 까다롭다 — 화면 밖으로 내려간 줄을 DOM에서 떼면 스크린리더 버퍼에서도 사라진다. 최근 200줄은 떼지 않는 것이 지금 안이고, 실측을 안 했다(§16).

15. 설계 전제

  • 노트 URL은 불변이다. 계층이 늘어도 건드리지 않고, 밖으로 나가는 링크는 /n/{noteId} 를 쓴다.
  • 부분 결과를 먼저 준다. 단계마다 쓸 수 있는 것을 내놓는다. 전사는 0초부터 있다. 지연을 숨기지 않는다 — 인프라가 만든 대기는 화면이 이름으로 설명한다. 조용한 대기는 고장으로 읽힌다.
  • 틀릴 수 있는 것은 틀린 표시를 갖는다. 매칭된 이름은 (추정) 텍스트 + 점선, AI가 찾은 관계는 흐리게, 확인 전에는 이력에 넣지 않는다. 표시는 텍스트가 먼저다 — 색·장식 단독으로 뜻을 지지 않는다(§14). 미확정 정보는 외부로 안 나간다.
  • 생체정보는 옵트인이고 거부가 1급 경로다. 등록은 본인만, 삭제는 확인 한 번으로. 조직 관리자는 기능을 끌 수는 있어도 워크스페이스 내용을 보지 않는다(§2 · §8).
  • 삭제 화면이 저장소를 각각 말한다. 사용자가 잃는 것이 있는 저장소는 한 줄씩 나오고(DA §1), 줄 수가 줄면 뭔가 안 지워진 것이다.
  • 없는 것과 아직 없는 것을 구분해 말한다. 사용자가 지금 뭔가 할 수 있으면 이유를 말하고, 없으면 침묵한다(§12). 끊긴 구간은 숨기지 않는다(§13 ⑤).
  • 자동화 클라이언트는 범위가 좁은 토큰으로만 들어온다. 읽기 전용 · 전사 전문 꺼짐 · 만료 있음이 기본값이다. 일상 탐색은 워크스페이스 셸 안에서 끝난다 — organization을 얹어도 매일 보는 화면 수는 늘지 않는다.

16. 미확인

무엇지금 아는 것확인해야 할 것
스크린리더 실측규칙 넷을 정했다(§14)아직 한 번도 안 돌려봤다. NVDA · VoiceOver에서 role="log" + 가상 스크롤이 실제로 읽히나. 안 읽히면 §14 ③ 을 다시 짠다
화자 분리 정확도없다나쁘면 §7 교정이 부가 화면이 아니라 주 화면이 된다
단계별 실소요없다. §1의 약 3분 은 자리만 잡아둔 값이다실측으로 바꾼다. ②가 10분을 넘으면 IA가 아니라 파이프라인을 다시 짠다
voice print 매칭 임계값없다틀린 이름 vs 이름 없음의 교환비. §4 매칭 표기를 몇 %부터 붙이나
생체정보 법적 요건목소리가 생체정보라는 것까지동의 문구 · 보관 기간 · 국외 이전이 법무 검토 대상
project 경로 시점이 문서는 조건부(노트 1,000건), 확장 개요 §7 20번은 10만 구간워크스페이스당 노트 수 분포를 재야 갈린다
삭제된 노트의 그래프 이력§9가 경고만 띄운다끊긴 SUPERSEDES의 흔적을 남길지 통째로 지울지
MCP 반출 범위전사 전문 기본 꺼짐까지 정했다켰을 때 무엇을 가리나 (게스트 이름 · 미확정 라벨)
시각 표기 기준화면 문구가 전부 절대 시각이다(§1 10:23:14 · §9 2026-08-12)워크스페이스 타임존 고정인지 뷰어 로컬인지. 게스트(§2)와 MCP 반출(§10)에서 갈린다. 회의 시각과 감사 로그 occurred_at 의 기준이 같아야 하나