# 风险报告生成Skill 设计

## 1. Skill 定位

`风险报告生成Skill` 负责将风险项、准入判定和整改建议组装成稳定的 `registration_risk_report`，并生成页面展示、审计和飞书通知载荷。

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

## 2. 输入

```python
@dataclass
class RiskReportBuildInput:
    context: RiskEvaluationContext
    risk_items: list[RiskItem]
    admission_decision: AdmissionDecisionOutput
    suggestions: list[dict]
    owner_notifications: list[dict]
```

## 3. 输出

```python
@dataclass
class RiskReportBuildOutput:
    report: dict
    display_sections: list[dict]
    audit_payload: dict
    feishu_notification_payload: dict
```

## 4. 报告结构

报告必须包含：

1. `report_type`
2. `batch_id`
3. `risk_rule_id`
4. `summary`
5. `risk_items`
6. `manual_review_items`
7. `suggestions`
8. `owner_notifications`

## 5. 核心方法

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

主入口方法。

### 5.2 `build_summary(risk_items, admission) -> dict`

生成汇总。

### 5.3 `build_display_sections(report) -> list[dict]`

生成页面展示区块。

### 5.4 `build_audit_payload(report, context) -> dict`

生成审计载荷。

### 5.5 `build_feishu_payload(report) -> dict`

生成飞书通知载荷。

## 6. 技术实现

使用技术：

1. dataclass/Pydantic
2. JSONField
3. Audit 服务
4. 飞书消息 payload schema

## 7. 异常处理

1. 风险项为空：输出通过报告。
2. 审计失败：报告返回并记录系统警告。
3. 飞书载荷生成失败：不影响 Web 报告。

## 8. 测试要点

1. 报告 schema 稳定。
2. 汇总数量正确。
3. 审计载荷包含规则版本。
4. 飞书载荷包含高风险摘要。

