# 法规流程识别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`。

