# 작업 보고서: task-131.1

## 작업 내용
memory 문서 구조 프로젝트별 분리. dispatch.py와 team_prompts.py를 수정하여 `--project` 옵션 사용 시 보고서와 계획서를 프로젝트별 디렉토리에 저장하도록 개선.

## 생성/수정 파일 목록

| 파일 | 변경 유형 | 변경 사유 |
|------|----------|----------|
| `/home/jay/workspace/prompts/team_prompts.py` | 수정 | PROJECTS_ROOT 추가, report_path/plan_path 프로젝트별 동적 생성 |
| `/home/jay/workspace/dispatch.py` | 수정 | PROJECTS_ROOT 추가, project_dir 경로 버그 수정, register_batch_task에 project_id 파라미터 추가 |
| `/home/jay/workspace/memory/MEMORY.md` | 수정 | 프로젝트별 memory 구조 문서화 |
| `/home/jay/workspace/teams/dev1/plan-task-131.1.md` | 생성 | 작업 계획서 |
| `/home/jay/workspace/teams/dev1/test_task_131_1.py` | 생성 | 단위/통합 테스트 16개 |

## 핵심 변경 상세

### 1. team_prompts.py
- `PROJECTS_ROOT` 환경변수 추가 (기본: `/home/jay/projects`)
- `build_prompt()`에서 `project_id` 유무에 따라 `report_path` 동적 결정:
  - None → `{WORKSPACE_ROOT}/memory/reports/{task_id}.md`
  - 있음 → `{PROJECTS_ROOT}/{project_id}/memory/reports/{task_id}.md`
- `_build_direct_prompt()`에서 `plan_path` 동적 결정:
  - None → `teams/{team_short}/plan-{task_id}.md`
  - 있음 → `projects/{project_id}/plans/plan-{task_id}.md`
- `_build_glm_prompt()`에서도 동일하게 `glm_plan_path` 분기
- 글로벌 유지: done_file, task_file, timer (이벤트 시스템 호환)

### 2. dispatch.py
- `PROJECTS_ROOT` 변수 추가 (`Path` 타입)
- 프로젝트 디렉토리 검증 경로 버그 수정: `WORKSPACE/"projects"` → `PROJECTS_ROOT`
- `register_batch_task()`에 `project_id` 파라미터 추가, report_path 동적 생성

### 3. MEMORY.md
- 경로 구조 섹션에 프로젝트별 memory 분리 규칙 추가

## 테스트 결과
- **16/16 PASSED** (0.06초)
- 시스템 작업 경로 검증 (7개)
- dispatch.py 검증 (3개)
- 경로 형식 일관성 (4개)
- 통합 테스트 (2개)
- 기존 테스트: 이전 리팩토링에 의한 3개 실패 (본 작업과 무관, 마아트/로키 내용이 가이드 파일 참조로 변경된 이후 갱신 안 된 기존 테스트)

## 검토한 대안과 기각 사유
- **심볼릭 링크로 글로벌 reports/에도 동시 링크**: 복잡성 증가, 유지보수 부담 → 기각
- **done 파일도 프로젝트별 분리**: event-queue.py, batch_status() 등 글로벌 events/ 의존 → 시스템 안정성 우선 기각
- **task 파일도 프로젝트별 분리**: dispatch.py의 task 저장/참조 로직 전체 수정 필요 → 범위 초과 기각

## 버그 유무
- **발견 및 수정**: dispatch.py의 project_dir 경로가 `/home/jay/workspace/projects/`로 잘못 설정되어 있었음. 실제 프로젝트 위치는 `/home/jay/projects/`. `PROJECTS_ROOT` 도입으로 수정 완료.
- 그 외 신규 버그 없음.

## 팀장 검토 결과
- **불칸(백엔드)**: 1차 검토 통과, 수정 사항 없음. dispatch.py와 team_prompts.py 변경이 기존 시스템 동작에 영향 없이 정확하게 프로젝트별 분기 추가됨.
- **아르고스(테스터)**: 1차 검토 통과, 수정 사항 없음. 16개 테스트가 모든 주요 경로를 커버하고 전체 통과.

## 셀프 QC
1. **다른 파일 영향**: 없음. 이벤트/타이머 시스템은 글로벌 경로 유지.
2. **엣지 케이스**: project_id=None 시 기존 동작 동일 (테스트 검증), 미존재 프로젝트는 dispatch에서 에러 반환.
3. **작업 지시 일치**: --project 옵션 개선, 보고서 동적 생성, MEMORY.md 문서화, 기존 파일 이동 금지 모두 준수.
4. **에러 처리/보안**: 프로젝트 디렉토리 존재 검증, 환경변수 기본값 제공.
5. **테스트 커버리지**: 시스템/프로젝트 경로, 모든 팀, 배치, 격리, 통합 테스트 완전 커버.

## 비고
- `PROJECTS_ROOT` 환경변수가 `.env.keys`에 추가되어야 할 수 있으나, 기본값(`/home/jay/projects`)이 현재 실제 경로와 동일하므로 즉시 설정 불필요.
