--- name: implement-phase description: D3RO-VOICE의 특정 페이즈를 구현. 인자로 Phase 번호 또는 "V2-1" 형식 전달. 완료 후 자동으로 /review-phase → /test-and-commit 체이닝. argument-hint: "[phase number, e.g. 14, 15.5, V2-1]" allowed-tools: Read Write Edit Bash Glob Grep Agent --- # Feature / Phase Implementation 페이즈 또는 새 기능을 구현합니다. **V1(Electron) + V2(Monorepo)** 모두 지원. ## 0. 사전 조건 가드 (스킵 불가) 1. **Git 클린 상태**: `git status --porcelain` — 커밋되지 않은 변경이 있으면 경고 후 커밋/스태시 제안 2. **페이즈 문서 존재**: - V1: `docs/phases/phase-$ARGUMENTS.md` - V2: `docs/v2/phase-$ARGUMENTS.md` 또는 `docs/v2/00-v2-master-plan.md` 참조 3. **이전 페이즈 완료 확인**: `memory/project_status.md` 읽기 4. **설계서 확인**: - V1: `docs/design/00~03` 4종 - V2: `docs/v2/00-v2-master-plan.md` ## 1. 타겟 감지 인자가 `V2-*` 형식이면 V2 모드, 그 외는 V1 모드. ### V2 모드 추가 규칙 - Monorepo 구조: `packages/core`, `packages/ui`, `apps/desktop`, `apps/web`, `apps/mobile` - 앱 간 직접 import 금지 (packages/* 통해서만) - Adapter 패턴: core는 순수 비즈니스 로직, transport는 adapter ## 2. 구현 순서 ### V1 (Electron) 1. `src/shared/` 타입 정의 2. 메인 프로세스 서비스 (싱글톤 + EventEmitter) 3. IPC 핸들러 (IPC_CHANNELS 상수) 4. Preload 브릿지 5. 렌더러 UI (d3roPalette + DS 컴포넌트) 6. i18n 키 추가 (ko/en + 10개 locale) ### V2 (Monorepo) 1. `packages/core/src/types/` 타입 정의 2. `packages/core/src/services/` 서비스 인터페이스 3. 앱별 구현체 (`apps/desktop/`, `apps/web/`, `apps/mobile/`) 4. `packages/ui/` 공유 컴포넌트 5. `packages/i18n/` i18n 키 6. Supabase 마이그레이션 (필요 시) ## 3. 검증 ```bash npm run typecheck # 또는 pnpm turbo typecheck npm run build ``` ## 4. 자동 체이닝 (완료 후) 구현 완료 시 **자동으로** 다음을 순서대로 실행: 1. `/review-phase $ARGUMENTS` — 코드 리뷰 2. 리뷰 GO → `/test-and-commit` — 테스트 + 커밋 3. `memory/project_status.md` 갱신 (즉시) 유저가 중단을 요청하지 않는 한 끝까지 진행. ## 구현 규칙 (위반 불가) - any 타입 금지, console.log 금지 (logger 사용) - 서비스: 싱글톤 + EventEmitter - IPC: IPC_CHANNELS 상수 사용, D3ROError + ErrorCode - UI: d3roPalette/d3roTypo/d3roShadow 토큰만 (hex 금지) - i18n: t() 함수 (하드코딩 금지) - V2: 앱 간 직접 import 금지, packages/* 통해서만