1
2026-06-25 e87cfdcb76a359d217130b33ffb4ed917b64d230
exp-doc/实验存储体系.md
@@ -1,254 +1,50 @@
# 实验存储体系创建指南
# 实验存储体系
创建人员:Codex
文件职责:指导 AI 在具体项目中创建实验体系的数据存储文档、数据目录、表 schema、读取方式和结果包组织方式。
管理规范/模板:common/exp-doc/实验规范.md;本文件是创建指南,不是单次实验模板。
引用文件:../../管理系统说明.md;实验规范.md;实验环境创建指南.md。
创建人员:management.admin
文件职责:记录 `project-info` 项目实验数据、结果包、图片、日志、schema 和读取追踪方式。
管理规范/模板:../../common/exp-doc/实验存储体系创建指南.md;../../common/exp-doc/实验环境创建指南.md。
引用文件:实验规范.md;实验总纲.md;实验设计.md;实验执行日志.md;实验审计报告.md。
记录方式:存储体系入口;目录、结果包命名、schema 或读取规则变化时维护更新。
## 1. 定位
## 1. 目录映射
本指南用于回答:
| 路径 | 作用 | 状态 |
|---|---|---|
| `../exp-data/raw/` | 原始输入索引、抽样数据或外部文件引用 | 已创建 |
| `../exp-data/result/` | 正式结果包、manifest、summary、readout 和可复核中间产物 | 已创建 |
| `../exp-data/img/` | 图片、图表和图片 manifest | 已创建 |
| `../exp-data/tmp/` | 临时文件,不得作为正式证据入口 | 已创建 |
```text
当一个项目启用实验体系时,实验数据应该放哪里、怎么存、怎么读、怎么追踪、表 schema 怎么写。
```
## 2. 结果包命名
项目内应创建一个 `exp-doc/实验存储体系.md`。
`实验存储体系.md` 不是单次实验归档表,而是该项目实验数据的长期存储合同。
创建项目级存储体系时,不得复制其他项目的专有路径、业务名词、历史实验名或旧数据口径。示例表名、字段名和对象名必须改成当前项目可解释的中性名称。
## 2. 项目目录要求
项目启用实验体系时,至少应创建:
```text
<project>/
  exp-doc/
    目录导读.md
    实验规范.md
    实验审计规范.md
    实验存储体系.md
    实验审计报告.md
    实验问题记录.md
    实验总纲.md
    实验设计.md
    实验执行日志.md
  exp-data/
    result/
    img/
    raw/
    tmp/
```
目录职责:
| 目录 | 作用 |
|---|---|
| `exp-doc/` | 存实验文档、实验总纲、实验设计、审计报告、项目实验存储体系 |
| `exp-data/result/` | 存每次实验结果包,建议按 `run_id` 分目录 |
| `exp-data/img/` | 存图片、图表、业务图、人工验收图等可视化资产 |
| `exp-data/raw/` | 存原始输入快照、外部下载文件、原始响应、人工原始回执 |
| `exp-data/tmp/` | 存临时中间文件;不可作为正式结论入口 |
如果项目已有数据库,结构化数据优先进入数据库;文件系统保留原始证据、快照、图表和可读结果包。
## 3. 实验存储体系文档必须包含什么
项目内的 `exp-doc/实验存储体系.md` 至少应包含:
1. 数据存储目标和范围。
2. 目录结构说明。
3. 数据流说明。
4. 结果包组织规则。
5. 图片和图表存储规则。
6. 表清单。
7. 每张表的 schema,精确到字段。
8. 主键、唯一键、去重和版本规则。
9. 数据读取方式。
10. 临时数据和正式数据边界。
11. 审计和复核入口。
## 4. 数据流规则
推荐数据流:
```text
raw source
-> cleaned/input snapshot
-> experiment intermediate
-> result package
-> structured table / database
-> audit/readout
```
每一层都要能追溯:
1. 来自哪个实验。
2. 来自哪个 run。
3. 来自哪个 source snapshot。
4. 由哪个脚本、AI 或人工步骤产生。
5. 后续应该怎么读。
## 5. 结果包规则
结果包建议路径:
正式结果包使用:
```text
exp-data/result/<run_id>/
```
每个结果包至少应包含:
| 文件 | 作用 |
|---|---|
| `summary.json` 或 `summary.md` | 记录关键结论、关键计数、状态 |
| `output_manifest.csv/json` | 记录结果包内所有资产路径、类型、行数、hash |
| `readout.md` | 可选,人读版结论和边界 |
| `input_manifest.csv/json` | 可选,记录输入快照 |
| `schema_or_contract_reference` | 可写在 manifest 字段里,指向 schema 文档 |
结果包入口应回写到实验总纲和实验设计。
结果包内部资产清单应能被 `实验存储体系.md` 中的表清单或 manifest 解释。
## 6. 图片和图表存储规则
图片建议路径:
推荐文件:
```text
exp-data/img/<experiment_id>/<run_id>/
manifest.json
summary.md
summary.json
readout.md
intermediate/      # 需要长期复核的中间数据
```
图片文件名应尽量包含:
图片放入 `exp-data/img/<experiment_id>/<run_id>/`,并用 manifest 记录来源、生成方式和用途。
1. 样本 ID。
2. 标的或对象 ID。
3. 日期或窗口。
4. 图类型。
## 3. 追踪规则
例如:
1. `实验总纲.md` 记录实验 ID、状态、设计入口、结果包入口和审计入口。
2. `实验设计.md` 记录数据源、样本、步骤、产物和判定标准。
3. `实验执行日志.md` 记录 run ID、输入、命令摘要、输出路径、自检和偏离。
4. `实验审计报告.md` 记录设计审核、执行审核和复审结论。
```text
CASE001_OBJECT001_2024-01-05_event_review.png
```
## 4. 禁止事项
图片必须能从表或 manifest 反查:
1. 这张图对应哪个样本。
2. 这张图用于证明什么。
3. 这张图由哪个 run 生成。
4. 这张图是否进入人工验收。
## 7. 表清单要求
`实验存储体系.md` 必须有表清单。
表清单建议字段:
| 字段 | 说明 |
|---|---|
| table_name | 表名或文件名 |
| storage_backend | `mysql/csv/json/sqlite/parquet/image/other` |
| storage_path_or_table | 文件路径或数据库表名 |
| table_role | `raw/input/intermediate/output/audit/manifest/index` |
| row_grain | 一行代表什么 |
| primary_key | 主键 |
| unique_key | 唯一约束 |
| producer | 生产者 |
| consumer | 消费者 |
| update_mode | `append/upsert/overwrite_snapshot/manual` |
| official_flag | 是否正式数据 |
| retention_policy | 保留策略 |
## 8. schema 字段要求
每张结构化表必须写字段级 schema。
字段 schema 至少包含:
| 字段 | 说明 |
|---|---|
| field_name | 字段名 |
| data_type | 类型 |
| required | 是否必填 |
| nullable | 是否允许空 |
| enum_values | 枚举值,如无则为空 |
| meaning | 字段含义 |
| source | 字段来源 |
| time_semantics | 时间口径,如 as-of、event-time、generated-time |
| example | 示例 |
| notes | 注意事项 |
涉及时序决策、事件、时间窗口、外部信息时,必须写清时间口径,避免把未来可见信息当成当时可见信息。
## 9. ID 和追踪字段
推荐所有核心表保留以下追踪字段:
```text
experiment_id
run_id
step_id
artifact_id
source_snapshot_id
producer
produced_at
record_hash
source_file_path
source_file_sha256
```
原则:
1. 不要用 `run_id` 当业务主键。
2. 不要用中文标题、display name、人工摘要当唯一键。
3. 同一对象多轮实验不得随意生成不同业务 ID。
4. 新结论不得覆盖旧结论,应用版本、状态或 run 记录留痕。
## 10. 数据读取方式
`实验存储体系.md` 必须说明人和 AI 如何读取数据。
至少写清:
1. 人优先看哪些文档。
2. AI 优先读哪些 manifest 或表。
3. 结果包从哪里进入。
4. 图片从哪里进入。
5. 数据库表怎么查询。
6. 单个样本如何从结果表追到原始证据。
推荐读取路径:
```text
实验总纲
-> 实验设计
-> 结果包入口
-> output_manifest
-> schema/table registry
-> 具体数据表或图片
-> 审计报告
```
## 11. 临时数据和正式数据边界
`tmp/` 只放临时文件。
临时文件不能作为正式结论入口。
如果临时结果要进入结论,必须移动到正式结果包或数据库,并在 manifest/schema 中登记。
## 12. 审计要求
实验存储体系审计重点:
1. 结果包能否找到。
2. 关键数据是否能追到来源。
3. 表 schema 是否写到字段级。
4. 图片是否能从样本或结果表反查。
5. 临时数据是否被误当正式结果。
6. 时间口径是否清楚。
审计不应把存储体系变成重型 gate。存储体系的目标是让人和 AI 能找到、读懂、复核数据,不是给主流程层层加码。
1. 不得把 `exp-data/tmp/` 当正式证据入口。
2. 不得把数据库密码、授权 token 或私有凭据写入结果包。
3. 不得只有窗口文字结论而没有结果包或明确的 `HELD` 记录。
4. 不得把大表、大日志或批量图片直接回显到 Codex 会话窗口。