docs(详细设计): 新增一致性核查设计
This commit is contained in:
74
docs/详细设计/skill/强一致规则加载Skill.md
Normal file
74
docs/详细设计/skill/强一致规则加载Skill.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# 强一致规则加载Skill 设计
|
||||
|
||||
## 1. Skill 定位
|
||||
|
||||
`强一致规则加载Skill` 负责加载字段一致性核查规则,定义哪些字段必须完全一致、如何比对、冲突风险等级和是否参与回填拦截。
|
||||
|
||||
英文实现标识建议使用 `StrictConsistencyRuleLoadSkill`。
|
||||
|
||||
## 2. 输入
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class StrictConsistencyRuleLoadInput:
|
||||
field_rule_id: str
|
||||
target_field_keys: list[str] = field(default_factory=list)
|
||||
strict_mode: bool = True
|
||||
```
|
||||
|
||||
## 3. 输出
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class StrictConsistencyRuleLoadOutput:
|
||||
field_rule_id: str
|
||||
version: str
|
||||
rules: list[ConsistencyFieldRule]
|
||||
validation_warnings: list[dict]
|
||||
```
|
||||
|
||||
## 4. 核心方法
|
||||
|
||||
### 4.1 `run(input) -> StrictConsistencyRuleLoadOutput`
|
||||
|
||||
主入口方法。
|
||||
|
||||
### 4.2 `load_rule_file(field_rule_id) -> dict`
|
||||
|
||||
读取 YAML 规则。
|
||||
|
||||
### 4.3 `validate_rules(raw_rules) -> RuleValidationResult`
|
||||
|
||||
校验规则字段。
|
||||
|
||||
### 4.4 `select_target_rules(rules, target_field_keys) -> list[ConsistencyFieldRule]`
|
||||
|
||||
筛选本次目标字段规则。
|
||||
|
||||
## 5. 技术实现
|
||||
|
||||
使用技术:
|
||||
|
||||
1. YAML
|
||||
2. Pydantic
|
||||
3. Django cache
|
||||
|
||||
建议路径:
|
||||
|
||||
```text
|
||||
configs/registration/consistency/ivd_strict_consistency_v1.yaml
|
||||
```
|
||||
|
||||
## 6. 异常处理
|
||||
|
||||
1. 规则文件不存在:任务失败。
|
||||
2. 目标字段无规则:标记不检查。
|
||||
3. 风险等级缺失:默认中风险并记录警告。
|
||||
|
||||
## 7. 测试要点
|
||||
|
||||
1. 规则加载成功。
|
||||
2. 目标字段筛选正确。
|
||||
3. 缺少规则时报错。
|
||||
4. `strict_mode` 生效。
|
||||
|
||||
Reference in New Issue
Block a user