docs: 账本改为一张只追加的表,12 种记录都不能改
用户 2026-10-02:"同意全部只追加"。结构.md 第四部分重写:一张表(序号、种类、唯一键、内容、哈希),触发器禁改禁删,种类+唯一键去重,写入时的拒收和可见性规则各在一处;私人笔记进账本;ledger 规模改为 900–1400。CLAUDE.md 删去"只有核心表加约束、其余照常读写"。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+25
-19
@@ -5,6 +5,7 @@
|
||||
来源:
|
||||
- 用户 2026-10-01 认可"按负责一件事来切"、下面这套模块与可替换点,以及步骤清单和账本记录种类。
|
||||
- 用户 2026-10-01 同意:提交的字段定义放 vocab,submissions 只判收不收;vocab 可放规范序列化和哈希两个函数,上限调到 600 行;执行后实际 1030 行,用户同意上限改为 1100 行。
|
||||
- 用户 2026-10-02 同意:"全部只追加":账本用一张只追加的表,12 种记录都不能改;ledger 预期 900–1400 行。
|
||||
- 依据是两次开发调研。一次是模块切分,参考了 Parnas 1972 与 1979、Ousterhout、Cockburn 和同类项目的源码;一次是同类研究的实验设计。
|
||||
|
||||
---
|
||||
@@ -110,26 +111,31 @@
|
||||
|
||||
账本只存发生过的事。信念本、战绩、余额、"现在进行到哪一步"都不存,每次从记录现算。
|
||||
|
||||
| # | 记录 | 内容 | 谁写入 | 禁止修改 |
|
||||
|---|---|---|---|---|
|
||||
| 1 | 研究配置 | 冻结的配置、步骤清单、每个决策点用哪条规则、方法参数、提示词哈希 | flow(内容由 config 生成) | 是 |
|
||||
| 2 | 阶段 | 每个阶段的开和关、什么时候公开 | flow | 否 |
|
||||
| 3 | 提交 | 各种提交的每一版:入口、讨论、志愿、提案、两次预测、挑刺、回应、解释、收尾、实现、核验。阶段关闭后以最后一版为准,此后不能再追加新版 | flow(经 submissions 收下后) | 替换时追加新版;阶段关闭后由 ledger 拒绝再写 |
|
||||
| 4 | 冻结协议 | 每个候选的冻结版本:因子清单、保障清单、实现条款、指标登记 | flow | 是 |
|
||||
| 5 | 作者自评 | 封存时的三个数;解封时追加一条解封记录 | flow | 是 |
|
||||
| 6 | 冻结代码 | 每份候选代码和消融格代码的版本号,以及因子位置表 | flow(版本号由 workspace 给出) | 是 |
|
||||
| 7 | 运行 | 每次正式运行三条:登记要跑;确认启动(扣次);结果(分数、合法化、指标、答案路径、资源) | flow(结果由 runner 与 tasks 给出) | 是 |
|
||||
| 8 | 决定 | 程序做的每个决定:选批、采纳、选格、押的因子、入口分配、判重合并。每条存规则名、规则版本、方法参数、种子、全部输入、输出 | flow(由 rules 计算) | 是 |
|
||||
| 9 | 结算 | 每格的结局、撑几成、配合关系标签、每条解释的确认或否定、世界比特、惊讶 | flow(由 rules 计算) | 是 |
|
||||
| 10 | Jev 判别 | 每次问了什么、原始概率、结论 | 提问方(submissions 或 flow) | 否 |
|
||||
| 11 | 用量 | 模型调用和整个环境的用量,只记录 | agents、runner | 否 |
|
||||
| 12 | 事件 | 违规记录、"按配置跳过"、"没测"及原因、停下的原因 | flow | 否 |
|
||||
**全部只追加。** 所有记录放在同一张表里,每一行是:序号(自动递增,就是时间先后)、种类、唯一键、内容(JSON)、内容的哈希。
|
||||
|
||||
**为什么这几种禁止修改**
|
||||
- CLAUDE.md 定的核心表是冻结协议、预测、证据、运行与扣次,分别对应第 4 种、第 3 种里的两次预测(阶段关闭后不再接受新版本)、第 7 和第 9 种、第 7 种。
|
||||
- 另外四种也禁止修改:研究配置、作者自评、冻结代码、决定。它们被改了以后,事后没人察觉得到:配置要在开始时冻结,作者自评要封存,代码冻结后才能启动运行,决定一经写入、恢复时就按原决定走。
|
||||
- 整张表禁止修改、禁止删除,由数据库触发器保证。要更正就追加一条新记录;"开"和"关"、"替换"也都写成新记录。
|
||||
- "种类 + 唯一键"不能重复。同一件事只记一次(确认启动、一格的结算、一条解释在一格上的账)靠这一条约束。
|
||||
- 同样的内容重写一次,当作已经写过;同一个键写进不同的内容,报错。中断恢复时重做一遍写入,不会记两次。
|
||||
- 唯一键怎么拼,只在 ledger 里定义。
|
||||
|
||||
禁止修改的意思是:数据库里加约束,只能追加,不能改也不能删;要更正,就追加一条新记录。
|
||||
| # | 记录 | 内容 | 谁写入 |
|
||||
|---|---|---|---|
|
||||
| 1 | 研究配置 | 冻结的配置、步骤清单、每个决策点用哪条规则、方法参数、提示词哈希 | flow(内容由 config 生成) |
|
||||
| 2 | 阶段 | 每个阶段开一条、关一条;关闭即公开 | flow |
|
||||
| 3 | 提交 | 各种提交的每一版:入口、讨论、志愿、提案、两次预测、挑刺、回应、解释、收尾、实现、核验;私人笔记的每一版。阶段关闭后以最后一版为准,此后由 ledger 拒绝再写 | flow(经 submissions 收下后) |
|
||||
| 4 | 冻结协议 | 每个候选的冻结版本:因子清单、保障清单、实现条款、指标登记 | flow |
|
||||
| 5 | 作者自评 | 封存时的三个数;解封时追加一条解封记录 | flow |
|
||||
| 6 | 冻结代码 | 每份候选代码和消融格代码的版本号,以及因子位置表 | flow(版本号由 workspace 给出) |
|
||||
| 7 | 运行 | 每次正式运行三条:登记要跑(占名额);确认启动(扣次);结果(分数、合法化、指标、答案路径、资源) | flow(结果由 runner 与 tasks 给出) |
|
||||
| 8 | 决定 | 程序做的每个决定:选批、采纳、选格、押的因子、入口分配、判重合并。每条存规则名、规则版本、方法参数、种子、全部输入、输出 | flow(由 rules 计算) |
|
||||
| 9 | 结算 | 每格的结局、撑几成、配合关系标签、每条解释的确认或否定、世界比特、惊讶 | flow(由 rules 计算) |
|
||||
| 10 | Jev 判别 | 每次问了什么、原始概率、结论 | 提问方(submissions 或 flow) |
|
||||
| 11 | 用量 | 模型调用三条:开始、每次回复的用量、结束;整个环境的用量。只记录 | agents、runner |
|
||||
| 12 | 事件 | 违规记录、"按配置跳过"、"没测"及原因、停下的原因 | flow |
|
||||
|
||||
**写入时由 ledger 拒绝的几种情况**:阶段已关闭还要写提交;要替换的那一份不是本人在这个阶段刚交的;没有"确认启动"就写运行结果;这次消融已经有格启动了才冻结解释。
|
||||
|
||||
**谁能看到什么**只在 ledger 的一个函数里判断(方法.md 第三部分):研究者阶段的提交,本人交上就能看,别人在阶段关闭后能看;作者自评有解封记录后别人才能看;第一次预测和私人笔记只有本人能看;程序写的记录写入后所有人都能看。研究者在一个阶段里看到的内容,截止到这个阶段开始的那一刻。
|
||||
|
||||
---
|
||||
|
||||
@@ -180,7 +186,7 @@
|
||||
| plugin | 600–1000 |
|
||||
| config | 300–600 |
|
||||
| flow | 2000–3500 |
|
||||
| ledger | 1500–2500 |
|
||||
| ledger | 900–1400 |
|
||||
| rules | 1500–2500 |
|
||||
| submissions | 600–1000 |
|
||||
| jev | 300–500 |
|
||||
|
||||
Reference in New Issue
Block a user