# Review Queue Contract

## 1. 목적

수동 검수가 필요한 parser/feature 레코드를 표준화된 방식으로 적재하고 처리한다.

## 2. review item 최소 스키마

- `review_id`
- `entity_type` (`parser_event`, `feature_record`, `label_record`)
- `entity_id`
- `priority` (`P0`, `P1`, `P2`)
- `reason_codes` (array)
- `status` (`open`, `in_progress`, `resolved`, `wont_fix`)
- `assigned_to` (nullable)
- `created_at`
- `updated_at`
- `snapshot_refs`
- `suggested_overrides` (nullable)

## 3. reason_codes

- `schema_invalid`
- `low_confidence`
- `rule_llm_conflict`
- `guidance_ambiguous`
- `oneoff_likely`
- `timestamp_anomaly`
- `feature_null_spike`
- `label_generation_error`
- `taxonomy_gap`

## 4. 상태 전이

```text
open -> in_progress -> resolved
open -> wont_fix
in_progress -> open
```

## 5. resolve 시 필수 입력

- `reviewer_id`
- `resolution_type` (`override`, `confirm`, `bug`, `source_issue`)
- `field_overrides` (optional)
- `root_cause`
- `notes`
- `resolved_at`

## 6. UI/CLI 요구사항

최소 요구사항:
- 원문 문서 링크 열기
- parser output diff 보기
- evidence span 보기
- override 입력
- root cause 선택
- resolve/wont_fix 처리

## 7. 파서와의 계약

review queue item은 parser/feature pipeline을 멈추지 않는다.
단, 아래 P0는 downstream model dataset export 전에 해결되어야 한다.
- schema_invalid
- timestamp_anomaly
- taxonomy_gap major

## 8. 테스트 포인트

- 중복 review item 방지
- 이미 resolve된 entity 재오픈 로직
- priority escalation
- override 반영 후 canonical record 재생성
