# 비너스(Venus) Gemini CLI 연동 구현

## 개요
비너스(디자인센터)를 호출할 때 실제 Gemini 모델을 사용하도록 파이프라인 구현.
현재는 Claude Task tool에 페르소나만 입혀서 비너스 역할을 하고 있으나,
조직도 설계 의도는 Gemini 모델로 세컨드오피니언을 받는 것.

## 사전 상태
- gemini CLI v0.31.0 설치됨: `/home/jay/.nvm/versions/node/v24.14.0/bin/gemini`
- OAuth 인증 완료: `~/.gemini/oauth_creds.json` (jonghyuk.jeon@gmail.com)
- **문제**: `~/.gemini/settings.json`의 `authMode`가 `"gcloud"`로 되어 있어 서비스 계정 인증 시도 → 실패
- **수정 필요**: authMode를 OAuth 유저 인증으로 변경

## 구현 항목

### 1. gemini CLI 인증 수정
- `~/.gemini/settings.json`의 authMode 변경
- 유효한 값 확인: `"oauth-user"` 또는 `"oauth"` 또는 적절한 값으로 변경
- gemini CLI 문서/--help 확인하여 정확한 authMode 값 사용
- 변경 후 간단한 테스트: `echo "안녕하세요" | gemini -p "답해주세요"` 실행하여 응답 확인

### 2. 비너스 호출 스크립트 생성
- **파일**: `/home/jay/workspace/scripts/invoke_venus.py`
- **기능**: 프롬프트를 받아 gemini CLI를 non-interactive 모드로 호출, 응답 반환
- **인터페이스**:
  ```python
  def invoke_venus(prompt: str, context_files: list[str] = None, timeout: int = 120) -> str:
      """
      비너스(Gemini)에게 디자인/세컨드오피니언 요청.

      Args:
          prompt: 비너스에게 보낼 프롬프트
          context_files: 참조할 파일 경로 리스트 (gemini가 읽을 수 있도록)
          timeout: 응답 대기 시간(초)

      Returns:
          Gemini의 응답 텍스트
      """
  ```
- **구현 방식**: `subprocess.run(["gemini", "-p", prompt], ...)` 또는 stdin으로 전달
- **비너스 시스템 프롬프트** 포함:
  - 조직도의 비너스 페르소나/전문성 반영
  - "당신은 비너스(Venus), 디자인 디렉터입니다. 미의 여신. 예쁜 게 아니라 맞는 것을 추구합니다."
  - 전문 분야: 브랜드 아이덴티티, 컬러 시스템, 톤앤매너, WCAG 접근성, 코드 세컨드오피니언
- **에러 처리**: gemini CLI 실패 시 적절한 에러 메시지 반환 (fallback으로 Claude 사용 안내)
- **CLI 엔트리포인트**: `python3 invoke_venus.py --prompt "질문" --files file1.py file2.py`로도 사용 가능

### 3. 팀장 워크플로우에서 비너스 호출 방법 문서화
- **파일**: `/home/jay/workspace/prompts/DIRECT-WORKFLOW.md` 또는 별도 문서
- **내용**: 팀장이 비너스를 호출할 때의 절차
  ```
  ## 비너스(디자인센터) 호출
  - 디자인 검토/세컨드오피니언이 필요할 때 invoke_venus.py 사용
  - 호출: `python3 /home/jay/workspace/scripts/invoke_venus.py --prompt "질문내용" --files 관련파일.py`
  - 비너스는 Gemini 모델로 동작하며, Claude와 다른 관점의 의견을 제시
  ```

## 테스트
1. gemini CLI 인증 테스트: 간단한 프롬프트 응답 확인
2. invoke_venus.py 단독 테스트: 프롬프트 전달 → Gemini 응답 수신
3. 컨텍스트 파일 전달 테스트: --files로 파일 경로 전달 시 참조 여부
4. 타임아웃 테스트: 응답 지연 시 적절한 에러
5. pyright 체크: invoke_venus.py 에러 0건

## 완료 기준
- [ ] gemini CLI 인증 정상 동작
- [ ] invoke_venus.py 생성 + 동작 확인
- [ ] Gemini 실제 응답 수신 확인
- [ ] 팀장 호출 방법 문서화
- [ ] pyright 에러 0건