# 审核范围确认Skill 设计 ## 1. Skill 定位 `审核范围确认Skill` 负责确认本次一致性核查的文档范围,避免把不同项目、不同产品或法规依据资料混入同一轮比对。 英文实现标识建议使用 `ReviewScopeResolveSkill`。 ## 2. 输入 ```python @dataclass class ReviewScopeResolveInput: batch_id: int documents: list[DocumentFact] selected_document_ids: list[int] = field(default_factory=list) ``` ## 3. 输出 ```python @dataclass class ReviewScopeResolveOutput: scope_documents: list[DocumentFact] excluded_documents: list[dict] scope_warnings: list[dict] scope_status: str ``` ## 4. 范围规则 1. 必须同一批次。 2. 必须是业务申报资料。 3. 法规资料排除。 4. 处理失败资料排除。 5. 待人工复核资料保留但标记警告。 6. 用户选中范围优先。 ## 5. 核心方法 ### 5.1 `run(input) -> ReviewScopeResolveOutput` 主入口方法。 ### 5.2 `filter_by_selected_documents(documents, ids) -> list[DocumentFact]` 根据用户选择过滤文档。 ### 5.3 `exclude_non_submission_documents(documents) -> list[dict]` 排除法规资料和非业务资料。 ### 5.4 `build_scope_warnings(documents) -> list[dict]` 生成范围警告。 ## 6. 技术实现 使用技术: 1. 文档主数据 2. Django ORM 3. 资料来源角色枚举 ## 7. 异常处理 1. 范围为空:任务不可执行。 2. 只有单个文档:允许执行,但只能输出单来源结果。 3. 全部文档待复核:输出低可信警告。 ## 8. 测试要点 1. 选中文档范围生效。 2. 法规资料被排除。 3. 待复核文档输出警告。 4. 空范围返回错误。