# task-353.1: TopicSelector 개선 — 단일 토픽 선택 + used_count 정확성

## 문제점
현재 수동 테스트(`run_full_pipeline.py`)에서:
```python
topics = select_daily_topics()  # 10개 선택 → 10개 전부 used_count +1
topic = topics[0]               # 실제로는 1개만 사용
```
→ 사용하지 않은 9개의 used_count가 올라가서 쿨다운/순서가 왜곡됨

## 수정 대상 파일
1. `/home/jay/projects/ThreadAuto/content/topic_selector.py`
2. `/home/jay/projects/ThreadAuto/run_full_pipeline.py`

## 구체적 변경 사항

### 1. `select_single_topic()` 함수 추가 (topic_selector.py)
```python
def select_single_topic(category: str | None = None) -> dict:
    """1개 토픽만 선택하고, 해당 토픽만 used_count를 갱신한다.

    Args:
        category: 지정 시 해당 카테고리에서만 선택.
                  None이면 DAILY_MIX 비율에 따라 가중 랜덤 선택.
    """
```

로직:
- category가 None이면 DAILY_MIX 비율을 가중치로 사용하여 카테고리 1개 랜덤 선택
  - 예: 고민공감 30%, 정보제공 30%, 사회적증거 20%, 업계동향 10%, CTA 10%
  - `random.choices(categories, weights=weights, k=1)`
- 선택된 카테고리에서 `select_from_pool(topics, category, 1)` 호출
- 1개만 used_count 갱신 + save_topics()
- 해당 토픽 반환

### 2. run_full_pipeline.py 수정
```python
# 변경 전
topics = select_daily_topics()
topic = topics[0]

# 변경 후
from content.topic_selector import select_single_topic
topic = select_single_topic()
```

### 3. used_count 리셋은 하지 않음
- 기존 used_count 데이터는 그대로 유지 (테스트 과정의 흔적)
- 앞으로 정확하게 카운트되는 것이 중요

### 4. 테스트
- `select_single_topic()` 호출 시 1개만 반환되는지
- used_count가 해당 토픽만 +1 되는지
- category=None일 때 DAILY_MIX 비율 가중치로 카테고리 선택되는지
- category="고민공감"일 때 해당 카테고리에서만 선택되는지

## 완료 후
- `memory/events/task-353.1.done` 파일 생성
- 보고서: `memory/reports/task-353.1.md`