# 缺失错放判定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. 待复核文档不会直接判为通过。