# .done 알림 시 보고서 요약 자동 포함

## 태스크 ID: task-908.1
## 한정위임: 분석 → 구현 → 테스트 → 보고까지 완료

---

## 문제

현재 .done 감지 시 Telegram 알림은 "task-XXX.1 완료" 정도의 단순 메시지만 전송한다.
제이회장님이 완료 보고서(`memory/reports/<task_id>.md`)의 요약 내용을 직접 확인하려면 아누에게 물어봐야 하는데, 아누가 보고를 빼먹는 경우가 발생한다.

**요구사항**: .done 알림 시 보고서 파일이 존재하면, 핵심 요약을 함께 전송하여 제이회장님이 즉시 결과를 파악할 수 있도록 한다.

## 구현 범위

### 1. `scripts/notify-completion.py` 수정

.done 알림 발송 시:
1. `memory/reports/<task_id>.md` 파일 존재 여부 확인
2. 존재하면 보고서에서 요약 추출:
   - SCQA의 **A** (Answer) 부분
   - 또는 첫 번째 `##` 섹션의 내용
   - 최대 500자로 truncate (Telegram 메시지 길이 제한 고려)
3. 알림 메시지에 요약 포함:
   ```
   ✅ task-906.1 완료 (dev2-team, 12분 30초)

   [요약] auto_orch.py(591 LOC) + team_lock.py(75 LOC) 구현 완료.
   pytest 64건 전건 통과. pyright 0 에러. systemd timer/service 등록.

   📄 상세: memory/reports/task-906.1.md
   ```
4. 보고서 없으면 기존대로 단순 알림

### 2. 요약 추출 함수

```python
def extract_report_summary(report_path: Path, max_chars: int = 500) -> str | None:
    """보고서에서 SCQA의 A(Answer) 또는 첫 섹션 요약 추출"""
```

추출 우선순위:
1. `**A**:` 또는 `**A.**` 패턴 → 해당 줄부터 다음 `**` 또는 `---`까지
2. 위 패턴 없으면 `## ` 다음 첫 번째 본문 단락
3. 둘 다 없으면 파일 첫 10줄

### 3. `scripts/activity-watcher.py` 수정 (동일 로직 적용)

activity-watcher.py의 알림 발송에도 동일한 보고서 요약 추출 로직 적용.
공통 함수는 별도 모듈(`scripts/report_utils.py`)로 분리하여 DRY 유지.

## 수정 대상 파일

- `scripts/notify-completion.py` — 알림 메시지에 요약 포함
- `scripts/activity-watcher.py` — 동일 적용
- `scripts/report_utils.py` — 신규, 요약 추출 공통 함수
- `scripts/tests/test_report_utils.py` — 신규, 요약 추출 테스트

## 수정 금지 파일

- `orchestrator/` 디렉토리 전체 (Phase 3 영역)
- `dashboard/` 디렉토리 전체 (8팀 작업 중)

## 검증 기준

1. 보고서 있는 .done → 알림에 요약 포함 (500자 이내)
2. 보고서 없는 .done → 기존 단순 알림 (에러 없이)
3. SCQA 형식 보고서 → **A** 부분 정확 추출
4. 비SCQA 형식 보고서 → 첫 섹션 본문 추출
5. 기존 테스트 회귀 없음
6. pyright 0 에러, pytest 전건 통과
