/** 三个角色(方法.md 第三部分):研究者、实验员、核验员。 */ export const ROLES = ["researcher", "experimenter", "verifier"] as const; export type Role = (typeof ROLES)[number]; /** * 有人交提交的阶段,按方法.md 4.2、4.3 的先后排。 * 程序自己做的步骤(分配、判重、选批、采纳、选格、结算等)不在这里,步骤清单归 config。 */ export const STAGES = [ "entryDraft", // 0.1 闭门写入口 "discussion", // 0.2 讨论,可配置为 1 或 2 次,每次都是这个阶段 "claim", // 0.3 认领 "proposal", // ② 提案 "firstPrediction", // ④ 第一次预测 "critique", // ⑤ 挑刺 "response", // ⑥ 回应与统一 "secondPrediction", // ⑦ 第二次预测 "implementation", // ⑨ 实现,以及核验不通过后的修复 "verification", // ⑨ 核验 "explanation", // ⑭ 解释 "ablationImplementation", // ⑯ 消融实现 "ablationVerification", // ⑯ 消融核验 "wrapUp", // ⑱ 收尾 ] as const; export type Stage = (typeof STAGES)[number]; /** * 每种提交属于哪个阶段、由哪个角色交(方法.md 第五部分)。 * ledger、materials、submissions、flow、agents 都从这张表取,不在别处另写。 * 每种提交的字段定义在 submissions.ts 的 SUBMISSION_SCHEMAS,键与这张表相同。 */ export const SUBMISSION_KINDS = { entry: { stage: "entryDraft", role: "researcher" }, discussion: { stage: "discussion", role: "researcher" }, claim: { stage: "claim", role: "researcher" }, proposal: { stage: "proposal", role: "researcher" }, firstPrediction: { stage: "firstPrediction", role: "researcher" }, critique: { stage: "critique", role: "researcher" }, response: { stage: "response", role: "researcher" }, unification: { stage: "response", role: "researcher" }, secondPrediction: { stage: "secondPrediction", role: "researcher" }, implementation: { stage: "implementation", role: "experimenter" }, repair: { stage: "implementation", role: "experimenter" }, verification: { stage: "verification", role: "verifier" }, explanation: { stage: "explanation", role: "researcher" }, ablationImplementation: { stage: "ablationImplementation", role: "experimenter" }, ablationVerification: { stage: "ablationVerification", role: "verifier" }, wrapUp: { stage: "wrapUp", role: "researcher" }, } as const satisfies Record; export type SubmissionKind = keyof typeof SUBMISSION_KINDS;