Phase 14 구현: 회의 모드 (Meeting Mode)

실시간 녹음 + 타임스탬프 메모 + STT 전사 + LLM 구조화 회의록 + PDF/MD 내보내기.
CaptionService 연동, 동시 사용 충돌 방지, 긴 회의 2-pass 요약 지원.
DB 2테이블, IPC 15채널, UI 3뷰(목록/녹음/상세), 12개 locale i18n.
This commit is contained in:
Yun Chan 2026-04-08 01:16:52 +09:00
parent dd68fc9ccd
commit d0c4f9ee53
38 changed files with 2550 additions and 769 deletions

View file

@ -1,27 +1,39 @@
---
name: review-phase
description: 완료된 페이즈를 검토하고 다음 페이즈 준비 상태를 판단. 페이즈 번호를 인자로 전달.
argument-hint: "[phase number, e.g. 1]"
allowed-tools: Read Glob Grep Bash Agent
argument-hint: "[phase number or 'all' for full review]"
allowed-tools: Read Edit Write Glob Grep Bash Agent
---
# Phase Review
# Code Review
완료된 페이즈를 검토합니다.
완료된 페이즈 또는 전체 코드베이스를 검토합니다.
## 검토 항목
1. **요구사항 충족**: `docs/phases/phase-$ARGUMENTS.md` 대비 구현 완성도
2. **Speakly 패턴 적용**: RE 노하우가 제대로 반영되었는지
- 상태 머신 설계가 Speakly 수준인가?
- 에러 처리가 포괄적인가?
- 윈도우 관리가 프리로딩 + 2-phase 리사이즈인가?
3. **코드 품질**: TypeScript strict, 일관된 네이밍, 중복 없음
4. **테스트 커버리지**: 핵심 서비스에 단위 테스트 존재
1. **요구사항 충족**: phase 문서 또는 유저 요구사항 대비 구현 완성도
2. **Speakly 패턴 적용**:
- 상태 머신 (RecognitionState + AudioState 분리)
- 이중 조건 플러시
- 프리로딩 + 2-phase 리사이즈
- 에러 처리 포괄성
3. **SSOT 준수** (Grep 도구 사용):
- hex 하드코딩: `src/renderer/``.tsx`/`.ts`에서 `'#[0-9a-fA-F]{6}'` 검색 (theme.ts 제외 0건이어야 함)
- i18n: `.tsx` 파일에서 한국어(`[\uAC00-\uD7AF]`) 또는 JSX 내 영어 문자열 리터럴 검색
- CSS var 폴백 hex는 허용 (예: `var(--color, #fff)`)
4. **코드 품질**: TypeScript strict, any 없음, console.log 없음
5. **타입 안전성**: `npm run typecheck` 통과
6. **빌드**: `npm run build` 통과
## 자동 수정
리뷰 중 발견된 minor 이슈는 유저 확인 후 직접 수정 가능 (Edit/Write 권한 있음):
- CLAUDE.md 서비스 목록/현재 상태 갱신
- memory/project_status.md 갱신
critical/major 이슈는 수정하지 말고 보고만 할 것.
## 출력
- 발견된 이슈 목록 (심각도: critical/major/minor)
- 다음 페이즈 진행 가능 여부 (GO/NO-GO)
- CLAUDE.md 업데이트 제안
- 이슈 목록 (심각도: critical/major/minor)
- 진행 가능 여부 (GO/NO-GO)
- GO일 경우 `/test-and-commit` 실행을 제안