# task-854.1 완료 보고서: dev3 봇 GLM→Direct 전환 전수조사 + 수정

## SCQA

**S**: dev1/dev2팀은 Direct 방식(직접 코딩+검증)으로 운영 중이며, dev4팀만 GLM(OpenClaw 외주) 방식으로 운영해야 하는 구조이다.

**C**: dev3팀(다그다/Dagda)의 CLAUDE.md가 "라(Ra) - 개발3팀장"으로 잘못 표기되고 GLM 방식으로 설정되어 있었다. run-glm.sh, GLM-WORKFLOW.md 등 GLM 전용 파일이 dev3에 존재하고, 9개 이상의 테스트 파일에서 dev3를 GLM 타입으로 전제하는 assertions이 잔존하여, 테스트 실행 시 실패 또는 잘못된 검증이 수행될 상태였다.

**Q**: dev3를 dev1/dev2와 100% 동일한 Direct 방식으로 전환하고, 모든 잔존 참조를 정리할 수 있는가?

**A**: 전수조사를 통해 총 11개 파일을 수정하고 2개 파일을 삭제하여 전환 완료. TEAM_INFO는 이미 `"direct"` 타입이었으나 CLAUDE.md와 테스트 코드들이 불일치 상태였으며, 모두 Direct 방식으로 통일 완료. dev4의 GLM 설정 정상 확인.

---

## 작업 내역

### 수정된 파일 (11건)
1. `teams/dev3/CLAUDE.md` — "라(Ra)"→"다그다(Dagda)", GLM→Direct 방식, 팀원 이집트→켈트 신화로 변경, 모델 claude-sonnet-4-6
2. `prompts/team_prompts.py` — `_build_direct_prompt` docstring에 dev3-team 추가
3. `tests/test_regression.py` — `TestRegressionDev3GLMPrompt` → `TestRegressionDev3DirectPrompt`
4. `tests/test_team_prompts.py` — dev3 GLM 테스트 5건 → Direct 방식으로 전환
5. `tests/test_integration.py` — `test_glm_team_contains_openclaw_keyword` → Direct 검증
6. `tests/test_dispatch.py` — `--task "GLM 작업"` → `--task "Direct 작업"`
7. `prompts/test_team_prompts.py` — `test_glm_prompt_dev3()` → `test_direct_prompt_dev3()`
8. `teams/dev1/tests/test_task182_glm_prompt.py` — GLM 검증 → Direct 부정 검증으로 전면 재작성
9. `teams/dev1/test_event_queue.py` — dev3 docstring `"glm 타입"` → `"direct 타입"`
10. `teams/dev1/test_task_92_1.py` — dev3 GLM docstring 제거
11. `teams/dev2/test_task_106_1.py` — `TEAM_ID "dev3-team"` → `"dev4-team"` (GLM은 dev4에 해당)

### 삭제된 파일 (2건)
1. `teams/dev3/run-glm.sh` — openclaw 래퍼 스크립트
2. `teams/dev3/GLM-WORKFLOW.md` — GLM 워크플로우 문서

### 보존 항목
- `plan-task-*.md` 6건 (과거 기록)
- `logs/`, `qc/`, `.openclaw/` 디렉토리
- `task-*.done` 3건

---

## dev3 ↔ dev1 비교 결과

- 방식: 동일 (Direct 코딩+검증)
- 모델: 의도적 차이 (dev1=claude-opus-4-6, dev3=claude-sonnet-4-6)
- task-timer 규칙: 동일 (start 자동, end 직접 호출)
- 보고서 경로: 동일 (`memory/reports/<task_id>.md`)
- 팀 작업 공간: 의도적 차이 (`teams/dev1/` vs `teams/dev3/`)
- TEAM_INFO type: 동일 (`"direct"`)

## dev4 GLM 설정 정상 확인

- `teams/dev4/CLAUDE.md`: "라 (Ra) - 개발4팀장" ✅
- `teams/dev4/GLM-WORKFLOW.md`: 존재 (9,503 bytes) ✅
- `teams/dev4/run-glm.sh`: 존재 (실행 권한 있음) ✅
- `TEAM_INFO["dev4-team"]["type"]`: `"glm"` ✅
- 경로 참조: `teams/dev4/` ✅

---

## 발견 이슈 및 해결

### 자체 해결 (6건)

1. **CLAUDE.md-TEAM_INFO 불일치** — TEAM_INFO는 이미 `"direct"`였으나 CLAUDE.md는 GLM 기술. CLAUDE.md를 Direct 방식으로 수정하여 해결.
2. **테스트 코드 9개 파일에 GLM 전제 잔존** — dev3=GLM을 assert하는 테스트들이 실제 코드와 불일치. 전수 수정 완료.
3. **prompts/test_team_prompts.py 구형 테스트 방치** — `test_glm_prompt_dev3()` 함수가 GLM 전제 검증 수행. Direct 방식으로 전면 재작성.
4. **dev2 팀 테스트에서 잘못된 GLM 대상** — `test_task_106_1.py`가 dev3를 GLM 대상으로 테스트. dev4로 변경.
5. **test_task182_glm_prompt.py GLM 전제 검증** — `assert "openclaw" in prompt` 등. Direct 부정 검증으로 전환.
6. **run-glm.sh/GLM-WORKFLOW.md dev3 잔존** — dev3에 불필요한 GLM 파일 2건 삭제.

### 범위 외 미해결 (1건)

1. **test_task_92_1.py pre-existing import 에러** — `_build_work_philosophy_section` 함수 미존재로 import 실패. dev1팀 과거 테스트 파일로 본 작업 범위 외. (dev1 소관)

---

## 셀프 QC 체크리스트

- [x] 1. 영향 파일: prompts/team_prompts.py, dispatch.py, tests/ 하위 6개, teams/dev1/ 하위 3개, teams/dev2/ 하위 1개
- [x] 2. 엣지 케이스: dev4 GLM 설정 영향 없음 확인, 과거 기록 파일 미수정 확인
- [x] 3. 작업 지시와 정확히 일치: 전수조사 5개 범위(A~E) 모두 수행
- [x] 4. 에러 처리: N/A (설정/문서 변경 작업)
- [x] 5. 테스트 커버: GLM 전제 테스트 9개 파일 모두 Direct로 전환
- [x] 6. 발견 이슈 모두 직접 해결 (1건 범위 외 사유 명시)

---

## QC 자동 검증 결과

```
overall: 7 PASS, 1 FAIL(.done 미생성=정상 플로우), 4 SKIP, 2 WARN
- test_runner: PASS (pytest 95 passed in 0.16s)
- pyright_check: PASS (0 errors, 0 warnings)
- style_check: PASS (black OK, isort OK)
- data_integrity: PASS (task running 상태 정상)
- file_check: FAIL (.done 파일 미생성 - finish-task.sh에서 생성)
- two_pass_audit: WARN (INFO 5건 - 기존 코드, 본 작업 무관)
- health_score: WARN (53/100 - 설정/문서 변경 작업으로 대부분 NA)
```
