---
id: v3-question-gen-logging
title: 表结构 v3 出题日志/观测（unit_verdict / collapse_metrics / quarantine / facts / resume）
type: schema
created: 2026-07-15
---

# v3 出题运行时数据 schema

**载体**：扩展 `app/question_gen/run_store.py`（同一 SQLite，不新建 run_store_v3）。所有 LLM/VLM 调用 telemetry 走 `GovernedLLMClient` 自动录（CLAUDE.md §4.8），本 schema 只管**出题领域观测**。落库统一 `store.insert(...)`，禁裸 SQL 散落。

## 表 1：`facts`（帧感知抽取 Fact schema，§9）

| 列 | 类型 | 说明 |
|----|------|------|
| fact_id | TEXT PK | UUID |
| video_id / segment_id | TEXT | 溯源 |
| subject / action / object | TEXT | 结构化绑定 |
| frame_ids | TEXT(JSON) | 感知所用帧 |
| polarity | TEXT | 真/假 |
| fact_type | TEXT | binding/state/manner/order/evidence |
| difficulty_tier | INT | 感知难度分层（C1；manner/计数=高）|
| verifier_refs | TEXT(JSON) | qwen/MiniMax 各自裁决 |
| cross_agree | INT | 双 VLM 是否一致 |
| negative_at_target | TEXT | 目标点为假的核实结果（C5）|
| session_id | TEXT | epoch/step 关联 |

## 表 2：`unit_verdict`（六层验证每层裁决，§6）

| 列 | 类型 | 说明 |
|----|------|------|
| unit_id | TEXT | pair/single 单元 |
| pair_id | TEXT? | pair 关联 |
| sub_pattern | TEXT | 6 子模式之一 |
| stage | INT | 层 1-6 |
| verdict | TEXT | pass/fail/abstain |
| reason | TEXT | 拒因 |
| metric_value | REAL? | 该层量化值 |
| model | TEXT? | 裁判模型 |
| session_id | TEXT | |

## 表 3：`collapse_metrics`（配对坍缩度量，§7）

| 列 | 类型 | 说明 |
|----|------|------|
| pair_id | TEXT PK | |
| text_only_acc / single_frame_acc / placebo_drop | REAL | 模型探针类 |
| majority_vote_hit / slot_chi2 / distractor_min_dist | REAL | 纯结构类 |
| multiformat_consistency / subtitle_answerability | REAL | 探针类 |

## 表 4：`quarantine`（失败题指纹去重，§10）

| 列 | 类型 | 说明 |
|----|------|------|
| content_fingerprint | TEXT PK | 题面语义内容指纹 |
| sub_pattern / quarantine_reason / round_no | TEXT/TEXT/INT | |
| ts | TEXT | 时间戳（外部传入，禁进程内 now）|

## 表 5：`resume_state`（断点续跑，§12）

| 列 | 类型 | 说明 |
|----|------|------|
| unit_id | TEXT PK | |
| status | TEXT | pending/accepted/rejected |
| config_fingerprint | TEXT | 失效检测（求解器/裁判 config 变更作废）|
| seq_offset | INT | 补构造续编防撞 |

## 基线指标（进科研 YAML + run 快照，首次运行后建基线）

| 指标 | 阈值/口径 | 类别 |
|------|----------|------|
| 逐维众数命中率 | ≈随机(0.25) | 纯结构（硬地锚）|
| pair 关系可解率 | ≈1/16 | 纯结构 |
| 双正解率 | 基线 33%→≤5% | 探针+人工 |
| 各门通过率 / backfill_yield_by_round | 观测，防减产不可行区 | 系统 |
| judge_disagreement_by_subpattern / shared_error_rate | 观测（人工小样本估）| 探针+人工 |
| negative_at_target 剔除率 | spike 实测 ~17%（基线）| 结构 |

## 埋点位置（交 writing-plans，必须作显式步骤）

| 埋点 | 文件/函数 | 调用 |
|------|----------|------|
| Fact 落库 | `grounded_fact_extractor`（新建） | `store.insert_fact(...)` |
| 逐层裁决 | `pipeline`（主编排）每层出口 | `store.insert_unit_verdict(stage, verdict, reason, ...)` |
| 坍缩度量 | `collapse_metric`（新建） | `store.insert_collapse_metrics(...)` |
| quarantine | `pipeline` 拒题路径 | `store.quarantine(content_fingerprint, reason)` + 补构造前查黑名单 |
| 续跑状态 | `pipeline` on_accept/on_reject | `store.upsert_resume_state(...)` |
| LLM/VLM telemetry | 所有 VLM/LLM 调用 | GovernedLLMClient 自动（session_id 透传）|
