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
+41
View File
@@ -0,0 +1,41 @@
import type { ResearchConfig } from "../src/config/index.ts";
// 两份写全的合法配置:完整流程一份、朴素循环一份。数值取方法.md 6.11 的现行值和参考项目真实用过的配置
// (/home/iomgaa/rb-acceptance/15-real-1/research.json:运行 13 次、每批 2、M = 1、修复 1 次、轻量检查 2 次各 5 秒)。
const glm = { provider: "iomgaa", model: "glm-5.3", thinking: "medium" } as const;
export function fullConfig(): ResearchConfig {
return {
studyId: "circle-full-1",
task: "tasks/circle_packing",
models: {
researchers: [{ ...glm }, { ...glm }, { ...glm }],
experimenter: { ...glm },
verifier: { ...glm },
},
proposalLimit: 1,
batchLimit: 2,
runs: 13,
factorLimit: 3,
maxRepairs: 1,
lightChecks: { maxCount: 2, seconds: 5 },
promptDir: "prompts",
devEntry: false,
flow: {
preset: "full",
roundZero: { enabled: true, discussions: 2 },
firstPrediction: true,
critique: true,
ablation: { enabled: true, cellRule: "valueMinusCost" },
batchRule: "bestExpected",
openReserve: 0.1,
knowledgeUse: 0.5,
decay: 0.5,
},
};
}
export function naiveConfig(): ResearchConfig {
return { ...fullConfig(), studyId: "circle-naive-1", flow: { preset: "naive" } };
}