edit | blame | history | raw

案例数据入库说明

本文档说明 darkline 案例数据如何落库。它只描述案例层入口,不替代完整事件链表结构。

1. 表关系

案例数据最小关系:

dl_case_import_batch
  -> dl_case_record
      -> dl_darkline_hypothesis
          -> dl_chain_state

解释:

  • dl_case_import_batch 记录一次导入或一次案例包。
  • dl_case_record 记录单个案例、正文快照和来源 hash。
  • dl_darkline_hypothesis 记录案例对应的暗线假设主入口。
  • dl_chain_state 记录当前链路状态和消费等级。

2. dl_case_import_batch

用途:记录案例导入批次。

主键:

import_batch_id

字段:

字段 含义
import_batch_id 导入批次 ID
source_name 来源名称
source_kind 来源类型
source_document_path 来源文档或来源包路径
source_hash 来源内容 hash
case_count 本批案例数
data_dir 本批文件资产目录
imported_at 导入时间
note 备注

3. dl_case_record

用途:记录单个案例。

主键:

case_id

字段:

字段 含义
case_id 案例 ID
import_batch_id 所属批次
case_order 批次内顺序
case_title 案例标题
case_family 案例家族,例如监管风险、困境修复、反常识 K 线
case_level L1 / L2 / L3 / UNKNOWN
current_status 当前状态
case_body_md 案例正文快照
case_body_hash 正文 hash
local_body_path 本地正文文件路径
source_document_path 来源文档路径
source_section_heading 来源章节标题
created_at 创建时间
updated_at 更新时间

4. dl_darkline_hypothesis

用途:把案例挂到暗线假设入口。

主键:

darkline_hypothesis_id

字段:

字段 含义
darkline_hypothesis_id 暗线假设 ID
case_id 关联案例
hypothesis_title 假设标题
darkline_level 暗线层级
hypothesis_family 假设家族
hypothesis_status 假设状态
source_case_body_hash 来源案例正文 hash
created_at 创建时间
updated_at 更新时间

5. dl_chain_state

用途:记录案例链路当前状态。

主键:

state_record_id

字段:

字段 含义
state_record_id 状态记录 ID
darkline_hypothesis_id 暗线假设 ID
case_id 案例 ID
chain_clarity_status 链路清晰状态
reality_confirmation_status 现实验证状态
market_manifestation_status 市场显影状态
validation_readout_status 验证读法
current_consumption_level 当前可消费等级
state_record_time 状态记录时间
note 备注

6. 状态约定

历史导入默认状态:

LEGACY_IMPORTED_REVIEW

含义:

  • 该案例已经迁入新体系。
  • 案例正文可查。
  • 旧结论没有自动升级。
  • 复用前必须重新复核关键节点。

消费等级建议:

NO_CONSUMPTION
REVIEW_ONLY
CASEBOOK
MONITOR
CONDITIONABLE_CANDIDATE

历史案例默认:

CASEBOOK

但这只表示可作为案例库材料,不表示可直接作为规则或预测依据。

7. 入库校验

每次导入至少校验:

case_count == case_body_file_count
dl_case_record 行数 == case_count
dl_darkline_hypothesis 行数 >= case_count
dl_chain_state 行数 >= case_count
case_body_hash 与正文文件一致
manifest 文件存在且所有 artifact_status = READY

导入失败时,文件包仍可保留,但 summary 必须写清:

mysql_import_status = FAILED
mysql_error_type
mysql_error

8. Full archive 入库结构

完整案例不只写最小四张表。进入暗线追踪后,应按以下结构补齐链路数据:

dl_source_document
dl_case_record
  -> dl_case_reasoning_step
  -> dl_expected_line
  -> dl_event_node
  -> dl_evidence
      -> dl_evidence_node_link
  -> dl_impact_target
  -> dl_manifestation_bridge
  -> dl_alternative_explanation
  -> dl_chain_state

各表职责:

作用
dl_source_document 原始来源或案例来源入口
dl_case_record 案例主记录、正文快照、来源 hash
dl_darkline_hypothesis 暗线假设主入口
dl_case_reasoning_step 推理步骤、关键 why 节点、判断变化
dl_expected_line 如果暗线为真,理论上应发生的 M/B/C/N/L 节点
dl_event_node 已经发生的现实事件节点
dl_evidence 证据摘录、证据强度、证据 hash
dl_evidence_node_link 证据、事件、应有之线之间的多对多关系
dl_impact_target 影响对象,股票、行业、风格、K线或其他输出层
dl_manifestation_bridge 输出层显影,例如 K线、风格、股票池变化
dl_alternative_explanation 替代解释和反证
dl_chain_state 当前链路状态、现实验证状态、市场显影状态、消费等级

Full archive 校验建议:

每个 case_id 至少有 1 条 dl_darkline_hypothesis。
每个 case_id 至少有 1 条 dl_expected_line。
每个 case_id 至少有 1 条 dl_case_reasoning_step。
每个 case_id 至少有 1 条 dl_evidence。
每个 darkline_hypothesis_id 至少有 1 条 dl_chain_state。
如果存在 event_node,则必须有 evidence_node_link。
如果存在 manifestation_bridge,则必须有关联 impact_target。
如果 market_manifestation_status 不是 UNKNOWN,则必须有 manifestation 或说明缺口。
判断变化必须新增 chain_state,不允许覆盖旧状态。

没有现实事件、没有市场显影、没有替代解释时,不强行造数据;必须在 dl_chain_state.note 或对应 review 字段里写清缺口。

9. Legacy compliance repair

旧案例迁入后需要执行一次结构合规修复,避免其他 AI 看到缺表后误判数据不符合 darkline 标准。

执行脚本:

python scripts\repair_legacy_case_compliance.py --database tianxia

脚本只做结构合规,不做事实补证:

缺 event_node:补 EVENT_NODE_ARCHIVE_GAP。
缺 manifestation_bridge:补 HELD_BY_MARKET_MANIFESTATION_GAP。
缺 alternative_explanation:补 HELD_BY_ALTERNATIVE_EXPLANATION_GAP。
每条 legacy case 追加一条 *_STATE_LEGACY_COMPLIANCE_V1 状态。

这些补充行只表示“缺口已显式记录”,不能读成“事件已验证 / 市场已显影 / 替代解释已排除”。

合规结果应分账:

CASEBOOK_FULL_CHAIN_IMPORTED:完整链路原本已存在。
CASEBOOK_WITH_EXPLICIT_GAPS:结构链路齐,但含 GAP_REVIEW 缺口。