# task-440.1 보고서: chain_manager.py task_id 매칭 버그 수정

## 작업 내용

`chain_manager.py`의 `cmd_create()` 함수에서 tasks 정규화 시 입력 JSON의 `task_id` 필드를 무시하고 `None`으로 하드코딩하는 버그를 수정했다.

### 원인
`cmd_create()` 243행에서 `"task_id": None`으로 고정하여, 사용자가 전달한 `task_id`가 체인 파일에 저장되지 않았다.

### 수정
`"task_id": None` → `"task_id": t.get("task_id")`로 변경하여 입력값을 그대로 보존.

## 생성/수정 파일 목록

- `/home/jay/workspace/chain_manager.py` (수정: 243행 1줄)
- `/home/jay/workspace/tests/test_chain_manager.py` (수정: 테스트 3건 추가)

## 테스트 결과

```
38 passed in 0.17s
```

- 기존 35개 테스트: 전부 통과 (회귀 없음)
- 신규 3개 테스트:
  - `test_create_preserves_task_id`: create 후 JSON에 task_id 보존 확인 → PASS
  - `test_check_finds_chain_by_task_id`: create → check로 task_id 매칭 확인 → PASS
  - `test_next_advances_by_task_id`: create → update → next로 task_id 기반 진행 확인 → PASS

## pyright

- 기존 pre-existing 에러 1건: `utils.logger` import 해석 실패 (본 작업 범위 외)
- 본 작업으로 인한 신규 에러: 0건

## 버그 유무

- 수정 완료. 추가 발견 버그 없음.

## QC 자동 검증 결과

- overall: **PASS** (5 PASS, 4 SKIP)
- file_check: PASS
- data_integrity: PASS
- tdd_check: PASS
- pyright_check: PASS (0 errors)
- style_check: PASS (black OK, isort OK)
- test_runner: SKIP (test_qc_integration.py 환경변수 미설정 — 본 작업 범위 외)
- api_health / schema_contract / scope_check: SKIP (해당 없음)

## 비고

- Lv.1 단순 버그 수정. 1줄 코드 변경 + 테스트 추가.
- `task_id` 키가 없는 입력은 `t.get("task_id")` → `None`으로 처리되어 기존 동작과 호환.
- ⚠️ 기존 테스트 실패 1건 (본 작업 범위 외): `tests/test_qc_integration.py` — `COKACDIR_KEY_ANU` 환경변수 미설정으로 collection 에러. chain_manager 관련 38개 테스트는 전부 통과.
