Files
DEMO-AGENT/docs/详细设计/skill/缺失错放判定Skill.md

119 lines
3.1 KiB
Markdown

# 缺失错放判定Skill 设计
## 1. Skill 定位
`缺失错放判定Skill` 负责根据法规要求项和资料匹配结果,判定每个要求项的完整性状态,并映射完整性维度的风险等级和基础处理建议。
英文实现标识建议使用 `MissingMisplacementEvaluateSkill`
本 Skill 是完整性检查中真正产生“缺失、错放、待复核”结论的规则执行单元。
## 2. 输入
```python
@dataclass
class MissingMisplacementEvaluateInput:
requirements: list[RequirementItem]
matches: list[RequirementDocumentMatch]
document_uncertainties: list[DocumentUncertainty]
risk_rules: dict
```
## 3. 输出
```python
@dataclass
class MissingMisplacementEvaluateOutput:
item_results: list[CompletenessItemResult]
missing_items: list[dict]
misplaced_items: list[dict]
suspected_items: list[dict]
manual_review_items: list[dict]
pass_status: str
highest_risk_level: str
```
## 4. 判定规则
| 条件 | 状态 |
|---|---|
| 必交要求项有高置信匹配 | `provided` |
| 必交要求项没有匹配 | `missing` |
| 有低置信匹配 | `suspected` |
| 文档角色匹配但章节点不匹配 | `misplaced` |
| 命中文档待人工复核 | `manual_review_required` |
| 当前流程不适用 | `not_applicable` |
## 5. 风险映射
风险来源:
1. 规则项自身的 `risk_level_if_missing`
2. 错放风险映射。
3. 待复核不确定性。
4. 资料处理失败状态。
准入结论:
1. 存在高风险缺失:`failed`
2. 存在中风险缺失或错放:`review_required`
3. 只有低风险或待复核:`conditional_pass`
4. 全部已提供:`passed`
## 6. 核心方法
### 6.1 `run(input) -> MissingMisplacementEvaluateOutput`
主入口方法。
### 6.2 `evaluate_requirement_status(requirement, matches) -> CompletenessItemResult`
对单个要求项判定状态。
### 6.3 `detect_misplacement(requirement, matches) -> bool`
判断文档是否存在但归错章节点。
### 6.4 `detect_suspected_provided(requirement, matches) -> bool`
判断是否疑似提供。
### 6.5 `map_risk_level(requirement, status, risk_rules) -> str`
映射风险等级。
### 6.6 `build_suggestion(requirement, status, risk_level) -> str`
生成基础处理建议。
建议示例:
1. `补充 CH1.4 申请表,并由注册申报负责人复核。`
2. `核对该文件是否应归入 CH1.5 产品列表。`
3. `当前资料疑似提供但命名不规范,建议人工确认后修正章节点。`
## 7. 技术实现
使用技术:
1. Python 规则引擎
2. YAML 风险映射
3. Pydantic/dataclass
4. 本地建议模板
## 8. 异常处理
1. 要求项缺少风险配置:默认中风险,并记录规则警告。
2. 匹配结果为空:按必交状态判缺失或不适用。
3. 匹配冲突:标记待人工复核。
4. 文档处理失败:不作为已提供,进入待复核。
## 9. 测试要点
1. 必交项无匹配时判缺失。
2. 高风险缺失导致 `failed`
3. 低置信匹配进入 `suspected`
4. 章节点不一致进入 `misplaced`
5. 待复核文档不会直接判为通过。