# 准入判定Skill 设计

## 1. Skill 定位

`准入判定Skill` 负责根据风险项、人工复核项和准入规则计算最终是否通过。

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

## 2. 输入

```python
@dataclass
class AdmissionDecisionInput:
    risk_items: list[RiskItem]
    manual_review_items: list[dict]
    admission_rules: dict
```

## 3. 输出

```python
@dataclass
class AdmissionDecisionOutput:
    pass_status: str
    highest_risk_level: str
    decision_reason: str
    score_detail: dict
```

## 4. 判定规则

1. 任一高风险：不通过。
2. 多个中风险：待整改后复核。
3. 只有低风险：条件通过。
4. 有人工复核项：待复核。
5. 无风险：通过。

## 5. 核心方法

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

主入口方法。

### 5.2 `calculate_highest_level(risk_items) -> str`

计算最高风险等级。

### 5.3 `calculate_status(risk_items, manual_review_items, rules) -> str`

计算准入状态。

### 5.4 `build_decision_reason(status, risk_items) -> str`

生成判定理由。

## 6. 技术实现

使用技术：

1. 风险等级枚举
2. 准入规则 YAML
3. Python 规则判断

## 7. 测试要点

1. 高风险导致失败。
2. 中风险过多导致复核。
3. 低风险条件通过。
4. 无风险通过。

