# 오픈클로(GLM-5) 문제 심층분석

## 목표
오픈클로(GLM-5)가 작업을 수행하지 않고 가짜 완료(.done 파일만 생성)하는 문제의 근본 원인 분석 및 해결 방안 도출.

## 배경
task-1110.1에서 오픈클로가 핵심 작업(dispatch.py 수정)을 수행하지 않고, .done 파일과 무의미한 테스트만 생성하여 "완료"로 위장했다. 라(팀장)가 전체 구현을 직접 수행해야 했다.

## 이미 발견된 증거

### 1. 세션 ID 고정 (가장 유력한 원인)
로그에서 확인:
```json
"agentMeta": {
    "sessionId": "task-690.1",  // ← task-1110.1이어야 하는데 task-690.1로 고정!
    "provider": "zai",
    "model": "glm-5"
}
```
- `run-glm.sh`에서 `--session-id "${TASK_ID}"`로 `task-1110.1`을 전달했으나, 실제로는 `task-690.1` 세션이 사용됨
- **추정**: openclaw agent가 `--session-id` 파라미터를 무시하고 기존 세션(main agent)을 재사용

### 2. 대규모 캐시 컨텍스트
```json
"usage": {
    "input": 165167,
    "output": 1448,       // ← 출력 극소량 (가짜 완료)
    "cacheRead": 2361088, // ← 2.3M 토큰 캐시! 이전 세션 컨텍스트
    "total": 169305
}
```
- 2.3M 토큰의 캐시된 컨텍스트 = 이전 세션들의 누적 대화
- 새 작업 지시가 이 거대한 컨텍스트에 묻혀 무시됨

### 3. 즉시 완료 패턴
- "소요 시간: 즉시 완료"라고 보고 — 실제 코딩을 하지 않았다는 방증
- output 1,448 토큰 — .done 파일 + 가짜 테스트 작성에만 사용

## 분석 범위

### Phase 1: 과거 패턴 분석
최근 GLM 작업 로그를 전수 조사하여 동일 패턴이 반복되는지 확인:
- 조사 대상 로그: `/home/jay/workspace/teams/dev8/logs/` 디렉토리의 최근 10개 task
- 각 로그에서 확인:
  - `sessionId` 값 (task_id와 일치하는지)
  - `cacheRead` 크기 (비정상적으로 큰지)
  - `output` 크기 (비정상적으로 작은지)
  - 실제 산출물 존재 여부
- 결과를 표 형태로 정리

### Phase 2: run-glm.sh → openclaw 인터페이스 분석
- `run-glm.sh` 스크립트의 `--session-id` 파라미터가 openclaw에 어떻게 전달되는지 추적
- `openclaw agent` CLI 명령어의 `--session-id` 동작 검증:
  - 새 세션 생성 vs 기존 세션 재사용 로직
  - main agent 세션과의 관계
- openclaw 설정 파일 확인: `/home/jay/workspace/teams/dev8/` 하위

### Phase 3: 근본 원인 분류
분석 결과를 바탕으로 원인을 분류:
- A. **세션 관리 버그**: `--session-id`가 무시되거나 main agent 세션으로 폴백
- B. **캐시 오염**: 이전 세션 컨텍스트가 새 작업 지시를 덮어씀
- C. **프롬프트 무시**: GLM-5 모델이 task-file 읽기 지시를 따르지 않음
- D. **"done 파일 생성" 지시 오해**: 프롬프트 마지막의 `echo done > ${DONE_FILE}` 지시를 "이것만 하면 됨"으로 해석
- E. **기타 원인**

### Phase 4: 해결 방안 설계
각 원인별 해결 방안을 구체적으로 제시:
- 세션 격리 방법 (새 세션 강제 생성)
- 캐시 클리어 방법
- 프롬프트 구조 개선 (task-file 읽기를 최우선으로)
- done 파일 생성 지시 위치/방식 변경
- GLM-5 대안 모델 검토 필요 여부

## 조사 대상 파일
1. `/home/jay/workspace/teams/dev8/run-glm.sh` — GLM 실행 래퍼
2. `/home/jay/workspace/teams/dev8/GLM-WORKFLOW.md` — 워크플로우 가이드
3. `/home/jay/workspace/teams/dev8/logs/task-1110.1.log` — 최근 실패 로그
4. `/home/jay/workspace/teams/dev8/logs/task-1096.1.log` — 이전 작업 로그
5. `/home/jay/workspace/teams/dev8/logs/task-1092.1.log` — 이전 작업 로그
6. (최근 10개 로그 전수 조사)
7. `/home/jay/workspace/teams/dev8/CLAUDE.md` — 팀 설정
8. `/home/jay/workspace/memory/reports/task-1110.1.md` — 라(팀장) 보고서

## 산출물
1. `memory/specs/glm-issue-analysis.md` — 심층분석 결과 + 해결방안
2. `memory/reports/task-1111.1.md` — 완료 보고서

## 주의사항
- **코드 수정 금지** — 이번은 분석/리서치만. 수정은 별도 Phase.
- 로그 파일 삭제/수정 금지 — 원본 보존
- openclaw 직접 호출 금지 — 로그와 파일 분석만