feat: 配置 config 模块(任务书 04)

- src/config:research.json 的字段定义(TypeBox,全部必填、不认识的字段报错,每个字段带中文说明和类别)、一次列出全部错误的校验、步骤清单纯函数。
- 流程写成完整流程 / 朴素循环两选一,第零轮、消融写成开 / 关两选一,冲突组合写不出来,不另写检查。
- 规则名取自 rules 登记表,config 改为依赖 rules(结构.md 第二部分、.dependency-cruiser.cjs)。
- ledger 顺手两处(结构.md 第四部分):消融结算按轮次唯一、去掉消融编号;私人笔记去掉版本号;表结构版本号升到 2。
- 结构.md 第八部分补 config 对外内容、更新 ledger 一节;WORK_LOG 更新。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 08:08:18 -04:00
parent 4dc7ac9d62
commit d2bfb971ab
13 changed files with 1045 additions and 20 deletions
+4 -4
View File
@@ -128,8 +128,8 @@ export const KINDS = {
},
CLOSED,
),
/** 3 私人笔记的每一版:每次修改追加一版,以版本号最大的为准。 */
note: Type.Object({ author: Id, version: Version, body: Text }, CLOSED),
/** 3 私人笔记:不属于任何阶段,每次修改追加一条,以最后写入的一条(序号最大)为准。 */
note: Type.Object({ author: Id, body: Text }, CLOSED),
/** 4 冻结协议:每个候选一份。内容由 flow 合成,先存 Json。 */
protocol: Type.Object({ candidate: Id, protocol: AnyJson }, CLOSED),
@@ -176,8 +176,8 @@ export const KINDS = {
CLOSED,
),
/** 9 结算:一次消融一条,各格结局、配合关系、解释的确认或否定等先存 Json。 */
settlement: Type.Object({ ablation: Id, result: AnyJson }, CLOSED),
/** 9 结算:每轮最多采纳一个改法,所以最多一次消融,结算按轮次一轮一条。各格结局、配合关系、解释的确认或否定等先存 Json。 */
settlement: Type.Object({ round: Round, result: AnyJson }, CLOSED),
/** 10 模型调用开始:先登记再调用(方法.md 第九部分)。附这次任务的全部材料,用来重现模型当时看到了什么。一次调用只有一条。 */
callStarted: Type.Object({ call: Id, actor: Id, stageId: OptionalId, model: Text, materials: AnyJson }, CLOSED),