# task-1938: 네이버 블로그 모델별 E2E 실패 3건 수정

## 배경
task-1937 E2E 테스트에서 발견된 3건 수정.

## ★★★ API 호출 절대 금지. CLI만 사용. ★★★

## 수정 항목

### 1. Codex CLI `-q` 옵션 호환성 수정
- 현상: `codex exec -q` 명령에서 `-q` 옵션 미지원 (`unexpected argument '-q' found`)
- 파일: `dashboard/blog_writer.py` (codex 분기 부분)
- 수정: codex CLI의 실제 옵션 확인 후 올바른 quiet/non-interactive 옵션으로 변경
  - `codex --help` 또는 `codex exec --help`로 사용 가능한 옵션 확인
  - `-q`가 없으면 다른 방식으로 non-interactive 실행 (예: `--quiet`, `--non-interactive`, 또는 옵션 없이 stdin 파이프)
- 검증: codex 모델로 글 생성 시작 → completed 도달 확인

### 2. GLM 환경 설정 + CLI 연동
- 현상: GLM_API_KEY 환경변수 미설정 + GLM CLI 미설치
- 파일: `dashboard/blog_writer.py` (glm 분기 부분)
- 수정:
  - GLM 호출 방식 확인: `run-glm.sh`(teams/dev8/) 또는 openclaw MCP
  - .env.keys에 GLM 관련 키가 있는지 확인
  - blog_writer.py의 GLM 분기를 실제 사용 가능한 호출 방식으로 수정
  - GLM CLI가 없으면 openclaw MCP 또는 REST API 대신 **run-glm.sh 래퍼** 사용
- 검증: glm-5 모델로 글 생성 → completed 확인 (또는 환경 불가 시 명확한 에러 메시지)

### 3. Gemini Flash 영어 서문 혼입 수정
- 현상: gemini-2.5-flash로 생성 시 영어 서문("I'll use the following tools...") 혼입
- 파일: `dashboard/blog_writer.py` 또는 프롬프트 파일 (gemini 분기)
- 수정:
  - gemini CLI 호출 시 프롬프트에 "반드시 한국어로만 작성. 영어 사용 금지. tool 사용 선언 금지." 추가
  - 또는 생성 결과에서 영어 서문 자동 제거 (정규식으로 첫 영어 문단 strip)
- 검증: gemini-2.5-flash로 글 생성 → 영어 서문 없는 순수 한글 글 확인

## 전체 검증
- 수정 후 6개 모델 전체 E2E 테스트 재실행
- 최소 Codex, GLM, Gemini Flash 3개 모델로 글 생성 완료까지 확인
- `python3 -m pytest tests/ -q` → 0 failed

## 프로젝트
- insuwiki

## 레벨
- normal
