# task-1516.1 완료 보고서: BlogAuto 작업 재분류 (Resorting)

## SCQA

**S**: 대시보드 프로젝트뷰에서 BlogAuto 관련 작업 15건이 `project_id: "system"`으로 분류되어 BlogAuto 프로젝트 카드에 표시되지 않고 있었다. 또한 키워드 기반 분류도 "블로그 콘텐츠", "SE 에디터", "쿠키 갱신" 등 12개 핵심 키워드가 누락되어 일부 작업이 "기타"로 분류되고 있었다.

**C**: BlogAuto 프로젝트 현황을 정확히 파악할 수 없으며, 프로젝트 관리 효율이 떨어지는 상태였다.

**Q**: task-timers.json의 project_id 변경과 키워드 보강으로 15건 모두 BlogAuto 하위에 정확히 분류할 수 있는가?

**A**: 3개 파일 수정으로 완료. (1) task-timers.json 15건 project_id를 "BlogAuto"로 변경, (2) data_loader.py에 12개 키워드 추가 + 대소문자 정규화 로직 추가, (3) ProjectView.js 키워드 동기화. Pyright 에러 0건, JSON 유효성 검증 통과.

## 수정 내역

### 1. task-timers.json — project_id 변경 (15건)

- 파일: `/home/jay/workspace/memory/task-timers.json`
- 변경: 아래 15개 task의 `project_id`를 `"system"` → `"BlogAuto"`로 변경
  - task-1082.1, task-1087.1, task-1093.1, task-1097.1, task-1102.1
  - task-1105.1, task-1302.1, task-1304.1, task-1311.1, task-1508.1
  - task-1509.1, task-1510.1, task-1513.1, task-1514.1, task-1515.1
- 검증: 15/15 OK, JSON 유효성 통과 (총 1,328 tasks 정상)

### 2. data_loader.py — BlogAuto 키워드 보강 + 정규화

- 파일: `/home/jay/workspace/dashboard/data_loader.py`
- 키워드 추가 (12개, line 1975-1986):
  - `"블로그 콘텐츠"`, `"블로그 1호"`, `"SE 에디터"`, `"3-Layer Hybrid"`
  - `"쿠키 자동 갱신"`, `"쿠키 갱신"`, `"blog-writer"`, `"naver_login"`
  - `"naver_blog"`, `"블로그 작성"`, `"블로그 파이프라인"`, `"CrossPublisher"`
- 정규화 추가 (line 2431-2432): `pid_normalize` 딕셔너리로 project_id 대소문자 정규화
- 타입 어노테이션 추가 (line 2436-2437): Pyright 타입 에러 방지

### 3. ProjectView.js — BlogAuto 키워드 동기화

- 파일: `/home/jay/workspace/dashboard/components/ProjectView.js`
- line 31의 BlogAuto 키워드 배열에 동일한 12개 키워드 추가
- data_loader.py와 24개 키워드 완전 일치 확인

## 발견 이슈 및 해결

### 자체 해결 (2건)

1. **project_id 대소문자 불일치** — "blogauto" vs "BlogAuto" 정규화 로직 추가로 해결
   - 상세: task 지시서는 `"blogauto"` (소문자)를 지정했으나, data_loader.py의 `fixed_projects`는 `"BlogAuto"` (PascalCase) 사용. 소문자 project_id가 별도 항목으로 분류되는 문제.
   - 해결: (1) project_id를 "BlogAuto"로 설정 + (2) data_loader.py에 `pid_normalize` 대소문자 정규화 딕셔너리 추가하여 향후 불일치 방지

2. **Pyright 타입 에러** — `project_name: str | None` 추론 문제 해결
   - 상세: 정규화 코드 추가 후 Pyright가 `project_name`을 `str | None`으로 추론하여 dict key 사용 시 에러 발생 (line 2443, 2451)
   - 해결: `project_id: str | None`과 `project_name: str` 명시적 타입 어노테이션 추가

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

없음.

## 산출물 파일

- `/home/jay/workspace/memory/task-timers.json`
- `/home/jay/workspace/dashboard/data_loader.py`
- `/home/jay/workspace/dashboard/components/ProjectView.js`

## 검증 결과

- task-timers.json: 15/15 project_id 변경 확인
- 키워드 동기화: data_loader.py ↔ ProjectView.js 24개 키워드 일치
- JSON 유효성: 통과 (1,328 tasks)
- Pyright: 에러 0건 (기존 warning 2건은 미사용 변수, 본 작업 무관)

## 모델 사용 기록

- 팀원: 토르(Thor) / 작업: task-timers.json 수정, data_loader.py 키워드+정규화 / 모델: sonnet
- 팀원: 프레이야(Freyja) / 작업: ProjectView.js 키워드 동기화 / 모델: sonnet
- 팀원: 오딘(팀장) / 작업: Pyright 타입 에러 직접 수정, QC 검증 / 모델: opus
