# task-620.1: activity-watcher 알림에 보고서 요약 포함

## 목표
activity-watcher.py가 processing→idle 전환 + .done 감지 시, 보고서를 읽어서 **핵심 요약을 텔레그램 알림에 포함**한다.

## 현재 동작
```
✅ {task_id} 완료. 보고서: memory/reports/{task_id}.md
```
→ 보고서 경로만 알려줌. 제이회장님이 직접 열어봐야 함.

## 변경 후 동작
```
✅ {task_id} 완료 ({team})
S: [상황 1줄]
A: [해결 1줄]
수정: {파일 수}건 | 테스트: {결과}
```
→ 보고서의 SCQA에서 S(상황)와 A(해결)를 추출, 핵심만 알림에 포함.

## 작업 내용

### activity-watcher.py 수정
파일: `/home/jay/workspace/scripts/activity-watcher.py`

1. 보고서 읽기 함수 추가:
   ```python
   def extract_report_summary(task_id: str) -> str:
       report_path = f"{WORKSPACE_ROOT}/memory/reports/{task_id}.md"
       # 파일 읽기
       # SCQA에서 **S**: 와 **A**: 줄 추출
       # 각각 첫 1줄만 (150자 제한)
       # 수정 파일 수, 테스트 결과도 추출 가능하면 포함
       # 파일 없거나 파싱 실패 시 "보고서: {report_path}" 폴백
   ```

2. 알림 메시지 구성 변경:
   - 기존: `f"✅ {task_id} 완료. 보고서: memory/reports/{task_id}.md"`
   - 변경: `f"✅ {task_id} 완료\n{extract_report_summary(task_id)}"`

3. 텔레그램 4096자 제한 준수 — 요약이 길면 잘라내기

### 테스트 추가
- 보고서 파일 존재 시 SCQA 추출 정상 동작
- 보고서 파일 미존재 시 폴백 메시지
- SCQA 형식이 아닌 보고서도 크래시 없이 처리

## 참조
- `/home/jay/workspace/scripts/activity-watcher.py` — 수정 대상
- `/home/jay/workspace/memory/reports/task-619.1.md` — SCQA 보고서 예시

## 보고서
- 경로: `/home/jay/workspace/memory/reports/task-620.1.md`
- 완료: `bash /home/jay/workspace/scripts/finish-task.sh task-620.1`
