docs: 谁能看什么归 materials,账本只存;去掉通用唯一键,Jev 不单独成记录
用户 2026-10-02:"每次给到派的材料有哪些"与"一开始灌进去还是让它去查"是分开的两件事;Jev "本质只是一种可以代替程序的判别器"。 结构.md:materials 按任务定材料,第一条消息和查询工具是同一份材料的两种给法;ledger 不再有可见性与截止序号;只在"只能一次"处加唯一约束(确认启动、运行结果、消融结算),恢复不重做写入故无需通用去重;Jev 的概率与结论记在它判断的那件事里;模型调用开始记下这次的全部材料。ledger 500–900 行。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+13
-16
@@ -6,6 +6,7 @@
|
||||
- 用户 2026-10-01 认可"按负责一件事来切"、下面这套模块与可替换点,以及步骤清单和账本记录种类。
|
||||
- 用户 2026-10-01 同意:提交的字段定义放 vocab,submissions 只判收不收;vocab 可放规范序列化和哈希两个函数,上限调到 600 行;执行后实际 1030 行,用户同意上限改为 1100 行。
|
||||
- 用户 2026-10-02 同意:"全部只追加":账本用一张只追加的表,12 种记录都不能改;ledger 预期 900–1400 行。
|
||||
- 用户 2026-10-02 指出可见性、截止序号、通用唯一键都是过度设计:"每次给到派的材料有哪些"和"一开始灌进去还是让它去查"是分开的两件事;Jev 本质上是一种可以代替程序的判别器。据此:谁能看什么归 materials(按任务定材料),ledger 只存;只在方法要求"只能一次"处加唯一约束;Jev 不单独成记录。ledger 预期 500–900 行。
|
||||
- 依据是两次开发调研。一次是模块切分,参考了 Parnas 1972 与 1979、Ousterhout、Cockburn 和同类项目的源码;一次是同类研究的实验设计。
|
||||
|
||||
---
|
||||
@@ -34,9 +35,9 @@
|
||||
| 组织 | flow(流程) | 按步骤清单推进研究;每次启动走同一条恢复路径 | ledger、rules、materials、submissions、agents、runner、tasks、workspace、config、jev |
|
||||
| 组织 | export(导出) | 导出给人看的格式 | ledger、rules、materials |
|
||||
| 组织 | config(配置) | research.json 的字段、默认值、校验;把配置翻译成步骤清单 | 无 |
|
||||
| 组织 | materials(材料) | 给模型看什么、什么顺序、怎么写;回答研究者的查询 | ledger、rules |
|
||||
| 组织 | materials(材料) | 每个任务能看到哪些材料(方法.md 第三部分);第一条消息放哪些、什么顺序、怎么写;在这些材料范围内回答模型的查询 | ledger、rules |
|
||||
| 组织 | submissions(收件) | 一份提交收下还是退回:先程序检查,再问 Jev(字段定义在 vocab) | jev |
|
||||
| 外部 | ledger(账本) | 记录怎么存、怎么保证不可改、怎么从记录算出当前状态;谁在什么时候能看到哪些记录;花钱动作的登记 | 无 |
|
||||
| 外部 | ledger(账本) | 记录怎么存、怎么保证不可改、怎么从记录算出当前状态;花钱动作的登记 | 无 |
|
||||
| 外部 | agents(角色会话) | Pi 的接口:开子会话、发工具和提示词、收提交、记用量 | 无 |
|
||||
| 外部 | runner(运行器) | Docker 的用法:限时、限核、取消、记资源、取回产物 | 无 |
|
||||
| 外部 | tasks(任务) | 一个任务怎么跑、怎么从原始产物独立算分(填圆的合法化也在这里) | 无 |
|
||||
@@ -63,7 +64,7 @@
|
||||
|
||||
### 几条边界
|
||||
|
||||
- **能不能看归 ledger,这次给不给看归 materials。** ledger 只交出"截至某一刻、这位角色能看到的快照"。materials 和查询工具都只拿得到快照,拿不到数据库。
|
||||
- **给模型看什么只归 materials。** 每个任务开始时,materials 按方法.md 第三部分定下这个任务能看到的材料。哪些放进第一条消息、哪些等模型用查询工具去读,是同一份材料的两种给法,查询工具查不到这份材料以外的东西。ledger 不判断谁能看什么。
|
||||
- **收不收一份提交,只在 submissions 一处判。** 跟状态有关的两条由 ledger 在写入时拒绝:这个阶段还开着吗;要替换的那一份是不是本人刚交的。
|
||||
- **信念本**:数字由 rules 算,写成文字由 materials 负责,不单独存,每次现算。
|
||||
- **runner 只管怎么跑,tasks 只管怎么判。** 两者互不认识,由 flow 串起来:先向 tasks 要运行定义,交给 runner 去跑,再把产物交回 tasks 算分。
|
||||
@@ -111,31 +112,27 @@
|
||||
|
||||
账本只存发生过的事。信念本、战绩、余额、"现在进行到哪一步"都不存,每次从记录现算。
|
||||
|
||||
**全部只追加。** 所有记录放在同一张表里,每一行是:序号(自动递增,就是时间先后)、种类、唯一键、内容(JSON)、内容的哈希。
|
||||
**全部只追加。** 所有记录放在同一张表里,每一行是:序号(自动递增,就是时间先后)、种类、内容(JSON)、内容的哈希。整张表禁止修改、禁止删除,由数据库触发器保证。要更正就追加一条新记录;"开"和"关"、"替换"也都写成新记录。
|
||||
|
||||
- 整张表禁止修改、禁止删除,由数据库触发器保证。要更正就追加一条新记录;"开"和"关"、"替换"也都写成新记录。
|
||||
- "种类 + 唯一键"不能重复。同一件事只记一次(确认启动、一格的结算、一条解释在一格上的账)靠这一条约束。
|
||||
- 同样的内容重写一次,当作已经写过;同一个键写进不同的内容,报错。中断恢复时重做一遍写入,不会记两次。
|
||||
- 唯一键怎么拼,只在 ledger 里定义。
|
||||
恢复时只核对、不重做写入(CLAUDE.md"中断后怎么恢复"),所以记录照写就是,不需要通用的去重。只在方法要求"只能有一次"的地方加唯一约束,重复了就报错:一次运行的确认启动、一次运行的结果、一次消融的结算。运行编号由 flow 起;确认没启动、退还名额后要重试,就起一个新编号。
|
||||
|
||||
| # | 记录 | 内容 | 谁写入 |
|
||||
|---|---|---|---|
|
||||
| 1 | 研究配置 | 冻结的配置、步骤清单、每个决策点用哪条规则、方法参数、提示词哈希 | flow(内容由 config 生成) |
|
||||
| 2 | 阶段 | 每个阶段开一条、关一条;关闭即公开 | flow |
|
||||
| 3 | 提交 | 各种提交的每一版:入口、讨论、志愿、提案、两次预测、挑刺、回应、解释、收尾、实现、核验;私人笔记的每一版。阶段关闭后以最后一版为准,此后由 ledger 拒绝再写 | flow(经 submissions 收下后) |
|
||||
| 3 | 提交 | 各种提交的每一版:入口、讨论、志愿、提案、两次预测、挑刺、回应、解释、收尾、实现、核验;私人笔记的每一版。阶段关闭后以最后一版为准,此后由 ledger 拒绝再写。被退回的提交也记,附退回理由(含 Jev 的原始概率和结论) | flow(经 submissions 判定后) |
|
||||
| 4 | 冻结协议 | 每个候选的冻结版本:因子清单、保障清单、实现条款、指标登记 | flow |
|
||||
| 5 | 作者自评 | 封存时的三个数;解封时追加一条解封记录 | flow |
|
||||
| 6 | 冻结代码 | 每份候选代码和消融格代码的版本号,以及因子位置表 | flow(版本号由 workspace 给出) |
|
||||
| 7 | 运行 | 每次正式运行三条:登记要跑(占名额);确认启动(扣次);结果(分数、合法化、指标、答案路径、资源) | flow(结果由 runner 与 tasks 给出) |
|
||||
| 8 | 决定 | 程序做的每个决定:选批、采纳、选格、押的因子、入口分配、判重合并。每条存规则名、规则版本、方法参数、种子、全部输入、输出 | flow(由 rules 计算) |
|
||||
| 8 | 决定 | 程序做的每个决定:选批、采纳、选格、押的因子、入口分配、判重合并。每条存规则名、规则版本、方法参数、种子、全部输入、输出;用到 Jev 的(判重合并),输入里带 Jev 的原始概率 | flow(由 rules 计算) |
|
||||
| 9 | 结算 | 每格的结局、撑几成、配合关系标签、每条解释的确认或否定、世界比特、惊讶 | flow(由 rules 计算) |
|
||||
| 10 | Jev 判别 | 每次问了什么、原始概率、结论 | 提问方(submissions 或 flow) |
|
||||
| 11 | 用量 | 模型调用三条:开始、每次回复的用量、结束;整个环境的用量。只记录 | agents、runner |
|
||||
| 12 | 事件 | 违规记录、"按配置跳过"、"没测"及原因、停下的原因 | flow |
|
||||
| 10 | 用量 | 模型调用三条:开始(附这次任务的全部材料)、每次回复的用量、结束;整个环境的用量。只记录 | agents、runner |
|
||||
| 11 | 事件 | 违规记录、"按配置跳过"、"没测"及原因、停下的原因 | flow |
|
||||
|
||||
**写入时由 ledger 拒绝的几种情况**:阶段已关闭还要写提交;要替换的那一份不是本人在这个阶段刚交的;没有"确认启动"就写运行结果;这次消融已经有格启动了才冻结解释。
|
||||
Jev 是一个判别器,和程序检查地位相同,不单独成一种记录:它的原始概率和结论,记在它判断的那件事里(第 3 种的退回理由、第 8 种的判重合并)。
|
||||
|
||||
**谁能看到什么**只在 ledger 的一个函数里判断(方法.md 第三部分):研究者阶段的提交,本人交上就能看,别人在阶段关闭后能看;作者自评有解封记录后别人才能看;第一次预测和私人笔记只有本人能看;程序写的记录写入后所有人都能看。研究者在一个阶段里看到的内容,截止到这个阶段开始的那一刻。
|
||||
**写入时由 ledger 拒绝的几种情况**:阶段已关闭还要写提交;要替换的那一份不是本人在这个阶段刚交的;没有"确认启动"就写运行结果("确认没启动"这种结果除外);这次消融已经有格启动了才冻结解释。
|
||||
|
||||
---
|
||||
|
||||
@@ -186,7 +183,7 @@
|
||||
| plugin | 600–1000 |
|
||||
| config | 300–600 |
|
||||
| flow | 2000–3500 |
|
||||
| ledger | 900–1400 |
|
||||
| ledger | 500–900 |
|
||||
| rules | 1500–2500 |
|
||||
| submissions | 600–1000 |
|
||||
| jev | 300–500 |
|
||||
|
||||
Reference in New Issue
Block a user