fix(crowd_db): 高信任数据系统性修复 — 契约硬化+真相单一化+防漂移
Some checks failed
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled

review 发现数据本身真实达标(7 high / 20 usable / 0 skeleton),
但代码/文档/测试/元数据 4 层出现严重脱节,存在静默升级风险与
合规假象回归漏洞。

Phase 1: 契约硬化(P0)
- risk_report.py 新增 _classify_score_bands + _compute_quality_level
- 质量等级判定从"仅看 confidence"升级为综合门槛
  (conf + sr + recs + alts + 三层分数带),对齐 plan §4
- 新增 low 等级区分"已脱离骨架但未达可用"
- _load_provenance_metadata 改为优先 load_province 取完整数据
- finding_to_risk_dict 不再二次规范化已规范化数据
- quality_summary.py 增加 low 等级统计
- SCHEMA.md §6 同步完整门槛定义

Phase 2: 测试加固(P0)
- 新增 test_high_trust_thresholds.py 锁死 high/usable 完整门槛
  (plan §9.2 要求的"防静默升级"测试)
- 修复 test_crowd_db_data_quality.py 等级枚举支持 low
- 修复 test_risk_report.py 硬编码日期脆弱性

Phase 3: 真相源单一化(P0)
- CURRENT_STATE.md §0.5 清除 6/20 旧文案"4 high + 3 usable + 20 skeleton"
- 改为引用顶部状态词 + 历史轨迹仅供审计
- NATIONALIZATION §4 清除"当前 high 已扩展为 5 省"矛盾文案
- 顶部状态词从"Phase 0 收口中"升级为"已完成"

Phase 4: 元数据状态对齐(P1)
- hunan.json / sichuan.json trusted_sources.kind
  province_official_pending_review -> province_official
- 同步更新 quality_note 说明已完成 2025 年度复核
- 消除"状态 high/usable 但 kind=pending_review"的矛盾

Phase 5: 防漂移机制(P1)
- 新增 scripts/check_crowd_db_consistency.py
  跨文档+数据+测试白名单一致性检查(5 项检查)
- dev-verify.sh 接入 crowd_db quality summary 打印

验证:
- ruff: All checks passed
- mypy: Success, no issues in 16 source files
- pytest crowd_db/: 148 passed, 2 skipped
- pytest 全量: 1283 passed, 2 skipped (无回归)
- consistency check: high=7 usable=20 low=0 skeleton=0

Refs: docs/plans/2026-06-23-national-high-trust-crowd-db-plan.md §4/§9
This commit is contained in:
Hermes Agent
2026-06-25 07:41:11 +08:00
parent 781f189648
commit 4c732eb836
12 changed files with 535 additions and 46 deletions

View File

@@ -1,7 +1,7 @@
# CROWD_DB_NATIONALIZATION_SOURCE_OF_TRUTH
最后更新: 2026-06-23
状态词: 全国高信任建设已启动Phase 0 收口中,Batch 1 样板省准备执行
最后更新: 2026-06-25
状态词: 全国高信任建设已启动Phase 0 + Batch 1 已完成27 省达 7 high / 20 usable / 0 skeleton
上游真相源: `docs/CURRENT_STATE.md`
详细设计: `docs/plans/2026-06-23-national-high-trust-crowd-db-plan.md`
@@ -61,28 +61,30 @@
## 4. 当前执行顺序
### Phase 0 / Batch 0
### Phase 0 / Batch 0 — ✅ 已完成
- 收口 README / SCHEMA / CURRENT*STATE / ACTIVE*\* 的边界表述
- 建立新的高信任分层口径
- 建立新的高信任分层口径(含综合门槛判定)
### Batch 1 样板省
### Batch 1 样板省 — ✅ 已完成
- 广东
- 江苏
- 山东
**当前真实状态**2026-06-25 实测):
当前进展2026-06-23:
- high = 7 省:湖南 / 广东 / 江苏 / 山东 / 河北 / 浙江 / 福建(均 `confidence=0.85``score_ranges>=8``recommendations>=40``alternatives>=60`、覆盖高/中/低三层分数带)
- usable = 20 省:其余 20 省(均 `confidence>=0.65``score_ranges>=6``recommendations>=24``alternatives>=24`
- skeleton = 0 省
- 详细质量分布见 `docs/CURRENT_STATE.md` 顶部状态词与 `python -m data.crowd_db.quality_summary --human`
- 广东 / 江苏 / 山东 / 浙江 / 河北 / 福建 六省 `trusted_sources` 已完成省级官方入口复核(`province_official`
- 山东/广东/江苏 已升级为 high`confidence=0.85``score_ranges=8``recommendations=40``alternatives=80`
- 河北 已升级为 high`confidence=0.85``score_ranges=8``recommendations=40``alternatives=80`
- 3 个 usable: 浙江 / 福建 / (后续仍在推进的 skeleton 省份暂不列
- 当前 high 已扩展为 5 省:湖南 / 广东 / 江苏 / 山东 / 河北;其余 2 个可用省仍为 usable
**历史执行轨迹**(仅供审计):
- 6/20 基线4 high + 3 usable + 20 skeleton
- 6/23升级到 5 high+河北
- 6/24升级到 7 high+浙江/福建)/ 20 usable / 0 skeleton
- 6/25质量门槛从"仅看 confidence"硬化为"综合判定conf + sr + recs + alts + 分数带)",防静默升级
目标:
- 跑通来源核验 → 内容扩充 → 交叉复核 → 定级 → 测试同步的省级流水线
- 跑通"来源核验 → 内容扩充 → 交叉复核 → 定级 → 测试同步"的省级流水线
- 不要求本批结束前就宣称全国完成
## 5. 禁止表述

View File

@@ -1,7 +1,7 @@
# CURRENT_STATE
最后更新: 2026-06-23
状态词: 本地验证完成v2.1 主链与 6/20/6/21 增量仍成立crowd_db 27省口径已全部达到 usable 及以上,当前 live 基线为 7 high / 20 usable / 0 skeleton31 省真正全国口径仍缺 4 个自治区)
最后更新: 2026-06-25
状态词: 本地验证完成v2.1 主链与 6/20/6/21 增量仍成立crowd_db 27省口径已全部达到 usable 及以上,当前 live 基线为 7 high / 20 usable / 0 skeleton31 省真正全国口径仍缺 4 个自治区crowd_db 质量门槛已硬化为综合判定,防静默升级
真相源优先级:
@@ -89,14 +89,14 @@
- 新增 `data/crowd_db/tests/test_crowd_db_data_quality.py` (CROWD_DB_DATA_QUALITY
§7 承诺的锁死文件,仓库此前缺失)
- 27 省总数 (23 省 + 4 直辖市)
- 4 个 high (湖南 / 广东 / 江苏 / 山东)
- 3 个 usable (河北 / 浙江 / 福建)
- 20 个省仍为 skeleton
- 高考生源大省 (北京/上海/河南/四川/湖北) 不在 high 集合
- **当前真实状态**2026-06-25 实测7 high / 20 usable / 0 skeleton
- high 白名单:湖南/广东/江苏/山东/河北/浙江/福建
- 高考生源大省 (北京/上海/河南/四川/湖北) 当前为 usable不在 high 集合
- 所有 confidence ∈ [0, 1]
- 所有 data_year = 2025 (6/25 后需显式更新)
- 所有 data_year = 2025 (待 2026 录取数据正式公布后显式更新)
- 防止"27 省 crowd_db 均为高置信强推荐数据"合规假象回归
- 27 省 crowd_db 中已完成 4 个 high湖南 / 广东 / 江苏 / 山东3 个 usable河北 / 浙江 / 福建;其余 20 省仍为 skeleton
- **历史轨迹**仅供审计6/20 基线为 4 high + 3 usable + 20 skeleton6/23 升级到 5 high6/24 升级到当前 7 high / 20 usable / 0 skeleton
- 详细质量分布与升级轨迹见 `docs/CROWD_DB_NATIONALIZATION_SOURCE_OF_TRUTH.md`
### 0.6 crowd_db 可信来源元数据补齐2026-06-21