docs(详细设计): 新增法规完整性检查设计
This commit is contained in:
90
docs/详细设计/skill/法规流程识别Skill.md
Normal file
90
docs/详细设计/skill/法规流程识别Skill.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# 法规流程识别Skill 设计
|
||||
|
||||
## 1. Skill 定位
|
||||
|
||||
`法规流程识别Skill` 负责确认当前完整性检查适用哪一类法规流程,避免把注册申报、变更备案、变更注册和延续注册混用。
|
||||
|
||||
英文实现标识建议使用 `RegulationWorkflowResolveSkill`。
|
||||
|
||||
V1 默认只执行 `registration`,但设计上保留扩展位。
|
||||
|
||||
## 2. 输入
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class RegulationWorkflowResolveInput:
|
||||
batch_workflow_type: str | None
|
||||
scenario_workflow_type: str | None
|
||||
user_workflow_type: str | None
|
||||
rule_package_supported_workflows: list[str]
|
||||
```
|
||||
|
||||
## 3. 输出
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class RegulationWorkflowResolveOutput:
|
||||
workflow_type: str
|
||||
confidence: str
|
||||
source: str
|
||||
supported: bool
|
||||
warnings: list[dict]
|
||||
```
|
||||
|
||||
## 4. 识别优先级
|
||||
|
||||
1. 用户显式选择。
|
||||
2. 场景配置。
|
||||
3. 资料包批次字段。
|
||||
4. 系统默认值 `registration`。
|
||||
|
||||
如果多个来源冲突,标记为 `manual_review_required`,并优先使用用户显式选择。
|
||||
|
||||
## 5. 核心方法
|
||||
|
||||
### 5.1 `run(input) -> RegulationWorkflowResolveOutput`
|
||||
|
||||
主入口方法。
|
||||
|
||||
### 5.2 `resolve_workflow_type(input) -> str`
|
||||
|
||||
按优先级解析流程类型。
|
||||
|
||||
### 5.3 `detect_workflow_conflict(input) -> list[dict]`
|
||||
|
||||
检测用户选择、场景配置和批次字段是否冲突。
|
||||
|
||||
### 5.4 `validate_supported(workflow_type, supported_workflows) -> bool`
|
||||
|
||||
校验规则包是否支持当前流程。
|
||||
|
||||
## 6. 技术实现
|
||||
|
||||
使用技术:
|
||||
|
||||
1. 场景 YAML
|
||||
2. 批次模型字段
|
||||
3. 规则包元数据
|
||||
4. Python 枚举
|
||||
|
||||
流程枚举:
|
||||
|
||||
1. `registration`
|
||||
2. `change_record`
|
||||
3. `change_registration`
|
||||
4. `renewal`
|
||||
|
||||
## 7. 异常处理
|
||||
|
||||
1. 流程为空:使用 `registration`。
|
||||
2. 流程冲突:标记警告。
|
||||
3. 流程不支持:阻断完整性检查。
|
||||
4. 用户输入非法:返回业务化错误。
|
||||
|
||||
## 8. 测试要点
|
||||
|
||||
1. 默认返回 `registration`。
|
||||
2. 用户显式选择优先。
|
||||
3. 场景和批次冲突时输出警告。
|
||||
4. 不支持流程返回 `supported = false`。
|
||||
|
||||
Reference in New Issue
Block a user