• Data Governance Dev's avatar
    feat(standards): 国标分析拆分为 24 个细粒度 indicator,并注册为独立 step · 5c37925e
    Data Governance Dev authored
    国标分析改造两阶段,合并提交:
    
    【阶段 1】拆分 + 新增 5 类分析对象
    - STD-001 身份证 → IND-001-a/b/c/d (格式/校验位/出生日期/15位兼容)
    - STD-002 USCC  → IND-002-a/b   (格式/校验位)
    - STD-003 手机   → IND-003-a/b   (格式/号段)
    - STD-004 区划   → IND-004-a/b   (格式/编码存在)
    - 新增 IND-101 证件类型枚举(5 值)
    - 新增 IND-201~204 4 种证件号码(身份证/护照/港澳台居住证/外国人永居)
    - 新增 IND-301 跨字段 (证件类型+号码一致性)
    - 新增 IND-302 跨表 (证件唯一性,GROUP BY HAVING)
    - 新增 IND-401/402 姓名 (字符集/长度)
    - 新增 IND-501/502 出生日期 (格式/年龄范围, 性别推断退休年龄)
    - 新增 IND-601/602/603 区划/民族/婚姻
    
    基础设施:
    - BaseStandard 加 group/severity/depends_on 类属性 + validate_rows() 默认实现
    - registry.list_all_standards / list_standards_by_group
    - data_loader.py 惰性加载 data/*.json + extracted_standards.json
    - 新增 data/{id_type,marriage,gender,retirement_age}.json
    - 旧 STD-001~004 标 [已拆分], applies_to_fields=[] (保留兼容)
    
    【阶段 2】每个 indicator 注册为独立 step
    - registry.py 新增 load_standard_class / indicator_step_id /
      step_id_to_indicator_id / list_step_ids 工具函数
    - orchestrator.py 动态按 group 顺序注册 24 个 indicator step
      (国标字段规范=100, 证件信息=200, 身份信息=300, 民政信息=400)
    - step7_standards.py 新增 run_step7_for_indicator,每个 indicator
      独立 section_key (standards_ind_XXX),独立 tab
    - 旧 run_step7() 保留 (向后兼容: 跑全部按 4 group 输出)
    
    校验层:
    - IND-301 用 sample_field_pairs.sql
    - IND-302 用 sample_field_groups.sql
    - 84 单测覆盖所有 indicator (tests/test_indicators.py)
    
    协议层:
    - 沿用上轮的 tab_protocol;每个 indicator 一个独立 tab
      (1 KPI 违规字段 + 1 KPI 检查字段 + 2 表: 指标汇总 + 违规明细)
    
    详细工作记录见 docs/WORKLOG.md。
    5c37925e
TAB_PROTOCOL.md 16.3 KB