# 一致性核查编排Skill 设计

## 1. Skill 定位

`一致性核查编排Skill` 是第四步工作流的总入口 Skill，负责组织审核范围确认、强一致规则加载、字段分组、完全一致比对、混档风险识别、字段池状态回写和报告生成。

英文实现标识建议使用 `ConsistencyReviewOrchestrateSkill`。

## 2. 输入

```python
@dataclass
class ConsistencyReviewOrchestrateInput:
    batch_id: int
    scenario_id: str = "registration_consistency_review"
    selected_document_ids: list[int] = field(default_factory=list)
    field_rule_id: str = "ivd_strict_consistency_v1"
    target_field_keys: list[str] = field(default_factory=list)
    strict_mode: bool = True
```

## 3. 输出

```python
@dataclass
class ConsistencyReviewOrchestrateOutput:
    report_type: str
    batch_id: int
    summary: dict
    consistent_fields: list[dict]
    conflict_fields: list[dict]
    manual_review_fields: list[dict]
    mixed_package_warnings: list[dict]
    audit_id: int | None = None
```

## 4. 依赖 Skill

1. `审核范围确认Skill`
2. `强一致规则加载Skill`
3. `字段分组Skill`
4. `字段完全一致比对Skill`
5. `混档风险识别Skill`
6. `一致性报告生成Skill`

## 5. 核心方法

### 5.1 `run(input) -> ConsistencyReviewOrchestrateOutput`

主入口方法。

执行顺序：

1. 读取统一字段池。
2. 调用 `审核范围确认Skill`。
3. 调用 `强一致规则加载Skill`。
4. 调用 `字段分组Skill`。
5. 调用 `字段完全一致比对Skill`。
6. 调用 `混档风险识别Skill`。
7. 回写字段池冲突状态。
8. 调用 `一致性报告生成Skill`。
9. 写入审计。

### 5.2 `load_field_pool(batch_id) -> list[FieldPoolItem]`

读取字段池主表和候选值。

### 5.3 `update_field_pool_status(compare_results) -> FieldPoolUpdateResult`

回写一致、冲突、待复核状态。

## 6. 技术实现

使用技术：

1. Django ORM
2. Tool Registry
3. dataclass/Pydantic
4. Audit 服务

建议注册名：

```python
tool_registry.register(
    name="consistency_review_orchestrate",
    handler=ConsistencyReviewOrchestrateSkill().run,
)
```

## 7. 异常处理

1. 字段池不存在：任务失败并提示先执行字段抽取。
2. 审核范围为空：返回业务错误。
3. 规则缺失：任务失败并写审计。
4. 字段池回写失败：报告仍生成，但标记系统警告。

## 8. 测试要点

1. 能按顺序调用依赖 Skill。
2. 字段池缺失时返回清晰错误。
3. 冲突结果能回写字段池。
4. 输出报告 schema 稳定。

