edit | blame | history | raw

实验规范

创建人员:Codex
文件职责:定义通用实验体系的文档结构、实验设计流程、实验执行流程、审计入口和模板使用规则。
管理规范/模板:项目通用实验体系架构文档;本文件不是模板文档,模板文档放在 common/exp-doc/*模版.md
引用文件:../../管理系统说明.md;../../体系说明.md;../pro-doc/需求规范.md;../dev-doc/编码规范.md;历史实验总纲、实验设计、实验计划、执行约定已去项目化抽象。

统一依赖:本规范必须同时遵守 ../../全局规范.md../project-doc/项目规范.md;项目本地实验规范可补充流程,但不得违反全局规范、全局项目规范和本体系硬约束。

1. 定位

实验是一种事项类型。

实验不是单纯跑脚本,也不是只看 summary。实验必须把一个问题从“为什么要做”推进到“怎么验证、怎么执行、证据在哪里、结论能读到什么程度、是否通过审核”。

实验体系的目标:

  1. 让实验目标、背景、原理来源可追踪。
  2. 让实验设计能证明总纲里的目标。
  3. 让实验执行过程、关键数据、结果包可复核。
  4. 让设计和执行都经过审核,具体审核规则见 实验审核规范.md
  5. 让总纲、设计、执行日志、审计报告能用统一 ID 串成证据链。
  6. 让结论能回写到方法论、需求、代码、数据或下一轮实验。

1A. 全局规范和项目本地规范

common/exp-doc/实验规范.md 是全局通用实验规范。

所有项目的实验员都必须遵守本文件。每个项目创建实验环境时都必须创建项目本地 exp-doc/实验规范.md。项目本地规范默认可以很短,只引用本文件并声明必须遵守;如果补充项目特化规则,不能违反本文件的硬约束。具体流程可以按 1A.1 设计本地版本。

项目本地 实验规范.md 即使没有额外项目规则,也必须说明本项目核心实验文档的作用和入口,至少覆盖:实验总纲.md实验设计.md实验执行日志.md实验存储体系.md实验审计报告.md实验问题记录.md。这样实验员进入项目后,不需要回头翻 common 文档也能知道本项目实验证据链怎么走。

项目本地规范允许补充:

  1. 项目目录映射。
  2. 项目专用数据源和结果包路径。
  3. 项目专用命名规则。
  4. 项目专用实验类型和轻重流程区分。
  5. 项目专用角色分工。

项目本地规范不得削弱:

  1. 实验必须有目标和边界。
  2. 实验设计和执行必须可追踪。
  3. 设计和执行必须有审核闭环。
  4. 关键来源聊天记录必须能被审核员看到。
  5. 结论不得超过证据范围。

如果项目本地规范与 common 规范冲突,必须先修项目本地规范;冲突未解决前,不应把对应实验标为完成。

1A.1 本地实验流程优先级

common 实验规范规定底线和默认流程,项目本地 实验规范.md 可以设计更贴合项目的实验流程。

本地流程设计必须先满足 common 硬约束:目标和边界清楚、来源聊天记录可见、设计和执行可追踪、设计和执行有审核闭环、结论不过读。

本地流程可以做两类调整:

  1. 新增流程:例如新增项目专用样本验收流程、人工复核流程、案例回放流程。
  2. 修改默认流程:例如把 common 默认步骤拆分、合并、替换为项目内更合适的步骤。

如果只是新增流程,只要不违反 common 硬约束即可放行。
如果是修改默认流程,必须在本地 实验规范.md 或对应实验设计中写清楚覆盖范围、替换原因、输入输出、关键证据链和审核点。

本地流程一旦设计完成并通过审核,执行时以本地流程为准;审核员也应按已通过的本地流程审计执行结果。只有发现本地流程违反 common 硬约束时,才回到 common 规范要求整改。

2. 适用范围

适用于以下事项:

  1. 理论验证实验。
  2. 策略实验。
  3. 数据实验。
  4. 工程验证实验。
  5. 性能实验。
  6. 样本验收实验。
  7. 案例分析实验。
  8. 外部信息或人工反馈验证实验。

临时探索如果要被后续引用为结论,必须补齐为正式实验记录。

3. 核心文档

实验体系的正式文档分为核心文档和模板文档。

核心文档用于说明体系和记录具体实验。

模板文档用于创建新项目或新实验时实例化,不是具体实验结论。

3.1 实验规范

实验规范.md 是实验体系架构文档。

它负责说明:

  1. 实验体系有哪些核心文档。
  2. 实验设计和执行的标准流程。
  3. 实验总纲、实验设计、执行日志、结果包、审计报告分别负责什么。
  4. 什么情况下实验可以结束。

3.1A 实验环境创建指南

实验环境创建指南.md 是项目启用实验体系时的初始化手册。

它负责说明:

  1. 新项目要创建哪些实验目录。
  2. 项目级实验入口、实验存储体系、审计报告和问题记录怎么建。
  3. 单个实验事项如何从总纲、设计、执行日志开始。
  4. 什么情况下实验员环境算 ready。

如果一个 AI 要在新项目里创建实验员工作环境,应先读 实验环境创建指南.md,再实例化具体模板。

3.2 实验总纲

实验总纲是实验事项入口,对应管理系统里的“事项总纲”。

项目内默认只有一个 exp-doc/实验总纲.md,用于持续记录所有实验事项的背景、目标、边界、状态、结果包入口和结论。不要默认按实验 ID 创建多份 <EXP-ID>_实验总纲.md,否则 AI 和审核员容易漏看版本和上下文。

实验总纲必须采用滚动账本方式维护:新实验、新结论、新修订追加到文件末尾,最新内容在最后。文件开头可以维护“当前总览”和固定入口,但不得把最新实验插到前面,也不得覆盖历史记录。

实验总纲必须包含事项总纲要求的字段:

  1. 实验事项 ID。
  2. 实验名称。
  3. 背景、由来和原理。
  4. 创建人员。
  5. 创建时间,精确到秒。
  6. 希望达成的目标。
  7. 当前状态。
  8. 当前结论。
  9. 唯一事项 ID。
  10. 事项名称。
  11. 完整来源聊天记录或来源记录路径。

实验总纲还应补充:

  1. 原理来源。
  2. 本轮边界。
  3. 实验设计入口。
  4. 结果包入口。
  5. 审计入口。

3.3 实验设计

实验设计已经合并原“实验设计”和“实验计划”的职责。

原因:设计回答“如何验证目标”,计划回答“如何分步骤执行”。两者必须绑定,否则容易出现设计和执行脱节。

项目内默认只有一个 exp-doc/实验设计.md,用于持续记录所有实验的设计、步骤、依赖、产物和判定标准。新实验应追加到该文件,不要默认按实验 ID 创建多份设计文件。

实验设计必须采用滚动账本方式维护:新设计、新修订、执行结果回填追加到文件末尾,最新内容在最后。设计可以有顶部“当前设计总览”,但详细设计块必须按时间顺序追加,不能用单实验表单替代长期账本。

实验设计对应管理系统里的“事项计划”,必须包含事项计划要求的字段:

  1. 所属事项名称。
  2. 所属事项 ID。
  3. 执行人。
  4. 创建时间,精确到秒。
  5. 目标。
  6. 当前状态。
  7. 当前结论。
  8. 唯一步骤 ID。
  9. 步骤名称。
  10. 来源聊天记录,可为空。

实验设计还应包含:

  1. 假设或要验证的问题。
  2. 数据源和样本范围。
  3. 实验组、对照组和边界样本。
  4. 方法步骤。
  5. 防偏差要求;是否需要防未来函数必须由实验目标决定。
  6. 输出产物。
  7. PASS / FAIL / HELD 判定。
  8. 设计审核记录。

3.4 实验执行日志

实验执行日志记录实际执行过程。

项目内默认只有一个 exp-doc/实验执行日志.md,用于持续记录所有实验 run、输入、关键中间过程、中间数据路径、输出、异常、自检和重跑记录。新 run 应追加到该文件,不要默认按实验 ID 创建多份执行日志。

实验执行日志同样采用 append-only 方式维护;每次运行、重跑、失败、暂停、人工操作和复验都追加到文件末尾,最新内容在最后。

它负责回答:

  1. 哪天、谁、运行了什么。
  2. 用了什么输入。
  3. 中间过程做了哪些关键处理。
  4. 中间数据或中间表存在哪里。
  5. 生成了什么输出。
  6. 关键计数和关键异常是什么。
  7. 是否偏离设计。

执行日志可以简洁,但不能只写“已跑完”。凡是会影响实验结论的关键节点,都要在执行日志中留下可追踪记录。

最低要求:

  1. 记录输入冻结或输入快照路径。
  2. 记录每个关键处理节点,例如清洗、特征生成、过滤、抽样、人工标注、模型运行、结果聚合、画图、summary/readout 生成。
  3. 记录每个关键节点的输入、关键中间过程、中间数据路径和输出。
  4. 记录关键计数,例如输入行数、过滤后行数、样本数、图数量、失败数、命中数。
  5. 记录关键校验,例如 schema、路径存在、hash、样本覆盖、目标相关防偏差检查。
  6. 记录异常、偏离设计、补跑、重跑、降读和复审需求。

如果中间数据是审计员或后续实验复核结论所必需的,应保存到 exp-data/result/<run_id>/intermediate/ 或项目内等价正式结果包目录,并在执行日志中写明路径。exp-data/tmp/ 只适合临时脚本和临时缓存,不能作为正式证据入口。

3.5 实验结果包

实验结果包是产物目录,不是必备模板文档。

结果包入口和状态应回写到实验总纲。

预期产物、实际产物、验收标准和关键读法应回写到实验设计。

数据文件、图表、日志、summary 等资产应符合项目内 实验存储体系.md 的规则。

如果某个结果包特别复杂,可以在结果包目录内临时放 readme,但它不是实验体系必备模板。

结果包应能回答:

  1. 结果包在哪里。
  2. 输入快照是什么。
  3. 输出文件有哪些。
  4. 关键指标是什么。
  5. 自检结果是什么。
  6. 哪些结论可以读,哪些不能读。
  7. 如何复跑或复核。

3.6 实验存储体系

实验存储体系是项目级数据存储合同,不是单次实验模板。

项目启用实验体系时,应按 实验存储体系创建指南.md 创建项目内 exp-doc/实验存储体系.md

它负责回答:

  1. 实验数据存在哪里。
  2. 结果包怎么组织。
  3. 图片和图表怎么存。
  4. 表清单是什么。
  5. 每张表的 schema 和字段含义是什么。
  6. 数据怎么读、怎么取、怎么追到原始来源。

3.7 实验审核和实验审计报告

实验审核的详细规则见 实验审核规范.md

实验审计报告覆盖设计审核和执行审核。

设计和执行都必须审核。审核未通过时,不得把实验标为完成。

审核结果必须记录到对应项目的 exp-doc/实验审计报告.md

实验审计报告采用 append-only 方式维护;每次设计审核、执行审核和复审都追加到文件末尾,最新内容在最后。

3.8 实验问题记录

实验问题记录用于记录非审计人员在实验过程中发现的问题,也用于登记需要跨轮跟踪的审计问题索引。

审核员在设计审核、执行审核和复审中发现的问题,主记录写入 实验审计报告.md;只有需要跨轮跟踪、跨实验汇总或由执行者长期处理时,才在 实验问题记录.md 中建立索引,不重复全文。

实验员、执行 AI、人工同事或其他非审计角色发现的问题,主记录写入 实验问题记录.md

实验问题记录采用 append-only 方式维护;新问题、修复、复验和关闭记录都追加到文件末尾,最新内容在最后。

问题必须区分:

  1. 设计问题。
  2. 执行问题。
  3. 数据问题。
  4. 代码问题。
  5. 结论过读。
  6. 需要下一轮实验的问题。

3.9 结论回写

结论回写是实验收尾动作,不是必备独立模板文档。

结论回写应记录在实验总纲和实验审计报告里。

常见回写目标:

  1. 方法论文档。
  2. 需求文档。
  3. 代码实现方案。
  4. 数据存储规范。
  5. 下一轮实验总纲。
  6. 放弃或暂停说明。

如果某个实验产生大量跨文档回写动作,可以在项目内临时建立回写清单,但它不属于实验体系必备模板。

4. 模板文档

common/exp-doc 下应提供以下模板:

  1. 实验环境创建指南.md
  2. 实验总纲模版.md
  3. 实验设计模版.md
  4. 实验执行日志模版.md
  5. 实验存储体系创建指南.md
  6. 实验审核规范.md
  7. 实验审计报告模版.md
  8. 实验问题记录模版.md
    实验体系不强制提供实验导读或实验总纲列表模板。项目如果需要实验目录索引,可在项目总索引里维护;AI 审查实验时直接读取实验总纲。

创建新项目或新实验体系时,应按这些模板实例化项目内的实验文档。默认实例化为项目级账本文件:实验总纲.md实验设计.md实验执行日志.md,而不是每个实验一份独立文件。

这些项目级账本默认学习长期滚动实验文档的写法:顶部保留当前总览和固定口径,正文按时间追加实验块。字段完整性服务于追踪和审计,不应把文档写成难读的厚重表单。

模板文档开头也必须保留管理系统要求的文件头:

  1. 创建人员。
  2. 文件职责。
  3. 管理规范或模板。
  4. 引用文件。

项目内文档引用项目内文件时,应默认使用相对路径,避免写入依赖个人机器的绝对路径。只有跨项目、跨磁盘或引用 common 规范时,才允许使用绝对路径,并应说明原因。

5. 实验状态

实验状态建议统一使用:

  1. 未开始:已登记,未设计。
  2. 设计中:正在写实验总纲或实验设计。
  3. 待设计审核:设计完成,等待审核。
  4. 设计审核未通过:设计存在阻断问题,需要修改。
  5. 设计审核通过:可以进入执行。
  6. 执行中:正在跑实验或整理结果。
  7. 待执行审核:执行完成,等待审核。
  8. 执行审核未通过:执行或结果存在阻断问题,需要修复或重跑。
  9. 完成:执行审核通过,结论和结果包已归档。
  10. 暂停:因数据、方向、资源或上游问题暂停。
  11. 取消:实验不再执行。

6. 实验设计流程

实验设计流程必须有审核闭环。

标准流程:

提出实验问题
-> 创建实验总纲
-> 编写实验设计
-> 设计自检
-> 提交设计审核
-> 审核员审核
-> 审核通过:设计完成,进入执行
-> 审核不通过:修改总纲或实验设计,再次提交审核

设计审核的检查项、问题分级、通过条件和记录方式,按 实验审核规范.md 执行。

7. 实验执行流程

实验执行流程也必须有审核闭环。

标准流程:

确认设计审核通过
-> 准备输入数据和执行环境
-> 执行实验步骤
-> 记录执行日志
-> 生成结果包
-> 执行自检
-> 提交执行审核
-> 审核员审核
-> 审核通过:实验完成,结论可归档
-> 审核不通过:修复、补证据或重跑,再次提交审核

执行审核的检查项、问题分级、通过条件和记录方式,按 实验审核规范.md 执行。

执行审核通过前,实验不得标记为完成。

8. 证据链要求

每个正式实验必须用统一 ID 串起证据链。

最低要求:

  1. experiment_id:实验事项唯一 ID,必须出现在实验总纲、实验设计、执行日志、审计报告、结果包或 manifest。
  2. step_id:实验设计里的步骤 ID,必须能在执行日志和审计报告里被引用。
  3. run_id:每次实际执行的运行 ID,必须能从执行日志追到结果包。
  4. audit_id:每次审核 ID,必须能追到对应实验、设计版本、执行 run 或复审对象。
  5. source_chat_record:关键来源聊天记录,必须在实验总纲背景中保存原文或路径。

推荐证据链:

实验总纲 experiment_id + source_chat_record
-> 实验设计 experiment_id + step_id
-> 执行日志 experiment_id + step_id + run_id
-> 结果包 run_id
-> 审计报告 audit_id + experiment_id + step_id/run_id

如果证据链断裂,审核员必须指出断在哪一环。

9. 来源聊天记录要求

实验总纲的背景中必须包含最重要的来源聊天记录。

可以保存原文,也可以保存明确路径,但必须能让审核员看到用户原始要求。

最低要求:

  1. 实验总纲必须记录关键聊天原文或路径。
  2. 实验设计必须说明如何承接这些聊天要求。
  3. 审计报告必须检查聊天要求、实验目标、实验设计是否一致。
  4. 不一致时必须提出,不能只按实验设计本身审核。

10. 防偏差要求

实验设计和执行中必须显式考虑以下风险:

  1. 未来函数。
  2. 样本污染。
  3. 幸存者偏差。
  4. 只看成功样本。
  5. 源数据切换但未记录。
  6. 规则执行和文档描述不一致。
  7. 结论过读。
  8. 把探索结果误读成正式结论。

不是每个实验都需要防未来函数。

是否必须防未来函数,应根据实验目标判断:

  1. 如果实验目标涉及时序决策、预测、收益率、回放、实时筛选、自动动作,必须检查未来函数。
  2. 如果实验目标是后验理解、图形归纳、案例复盘、方法论总结,可以不按实时决策时点安全要求审核,但结论必须降读,不能写成可实时使用或 prediction ready。
  3. 如果实验目标没有说明是否需要时点安全,设计审核应要求补清楚。

其他偏差如果会影响结论,也必须记录处理方式。

11. 数据和结果归档

实验产物应尽量形成结果包。

结果包至少应包含:

  1. summary 或结果说明。
  2. 输入数据说明。
  3. 输出数据说明。
  4. 关键表或图。
  5. 自检结果。
  6. 审核入口或审核结论。

大文件可以只记录索引、路径和 hash,不要求全部塞进文档。

12. 结论边界

实验结论必须写清:

  1. 本轮证明了什么。
  2. 本轮没有证明什么。
  3. 哪些结果可以进入下游。
  4. 哪些结果只能作为观察。
  5. 哪些问题需要下一轮实验。

禁止把“样本看起来不错”直接写成“规则已成立”。

13. 轻量实验

轻量实验可以减少文档数量,但不能没有目标、边界和结果记录。

轻量实验最低要求:

  1. 在实验总纲或导读里登记。
  2. 写清目标和边界。
  3. 记录结果位置。
  4. 写清结论不能读到什么程度。

如果轻量实验结果要进入正式决策,必须补齐实验设计、结果包入口和产物清单、审核报告。

14. 交付标准

一个正式实验完成的最低标准:

  1. 实验总纲存在。
  2. 实验设计存在,并通过设计审核。
  3. 实验执行日志或等价执行记录存在。
  4. 结果包存在,且入口已回写到实验总纲和实验设计。
  5. 实验审计报告存在,并通过执行审核。
  6. 结论边界明确。
  7. 来源聊天记录、实验目标、实验设计已经由审核员确认一致,或已明确记录不一致及处理方式。
  8. 必要结论已回写或记录待回写。

缺少执行审核通过结论时,实验状态只能是 待执行审核执行审核未通过暂停HELD,不能标为 完成