docs: 任务书 08 改为这次不校准,Jev 判断全部存进账本,等真实数据再校准
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+33
-35
@@ -1,10 +1,12 @@
|
||||
# 任务书 08:jev(Jev 判别)
|
||||
|
||||
写 jev 模块:问 Jev 的问法、阈值和校准。全部问题和阈值在新项目的材料上**从头重新校准**。顺带改账本的三处、config 的一处。
|
||||
写 jev 模块:问 Jev 的问法和阈值。**这次不做校准**:问法以参考项目的为基础,阈值暂用参考项目的值;等新项目跑出真实研究、收集到真实数据后再校准(见第三部分)。顺带改账本几处、config 一处。
|
||||
|
||||
本任务书已由用户和监督者在 2026-10-03 一起确定。下面说的"监督者",是在参考项目目录里和用户讨论设计的另一个会话。
|
||||
|
||||
用户原话:"九个都问,并把多出的三个补进 docs/方法.md。所有阈值、prompt等涉及到校正到地方都全部重新校正,我们不在乎钱"。
|
||||
用户原话:"九个都问,并把多出的三个补进 docs/方法.md"。
|
||||
|
||||
**2026-10-03 改动**:用户后来决定这次不校准:"我们到时候应该是通过真实的运行收集一批真实的数据,然后由claude或者gpt亲自打标签作为集合……jev这次的验收应该也不以效果为主,因为还没有数据校准,prompt还是用原本的prompt作为基础就好"。第三部分及相关各处已按此改写。如果你已经开始转换样本或写校准脚本,停下,把这部分删掉。
|
||||
|
||||
## 开工前先读
|
||||
|
||||
@@ -48,25 +50,20 @@
|
||||
- 材料由 jev 从带类型的输入拼出来。jev 的函数收的是:两条提案的因子清单;一份冻结协议的条款;一段代码改动加协议。不收拼好的 JSON。材料里放什么、字段叫什么,只在 jev 一处定(结构.md 第一部分第 7 问)。
|
||||
- 示例句只有填圆一套。参考项目"填圆、C1 两套示例句、按任务覆盖阈值"的机制不搬。以后加第二个任务时再说。
|
||||
- 代码改动按参考项目,**一段改动(一个差异块)一次请求**,五问在同一份材料里。差异块的正文从 workspace 的比较结果里取,怎么切由你定。
|
||||
- 冻结条款三问、判重一问各自怎么分请求,照参考项目的做法,或者按指南重新定,在校准记录里写明理由。
|
||||
- 冻结条款三问、判重一问各自怎么分请求,照参考项目的做法。
|
||||
- 问法只做必要的改动:说法、字段名对上新项目。不为"可能更好"改写措辞,因为现在没有数据能判断改得好不好。
|
||||
|
||||
## 三、校准:全部重新做
|
||||
## 三、这次不校准
|
||||
|
||||
参考项目的阈值是在参考项目的材料格式上定的,材料和问法变了就不能沿用(指南第三部分 3.5 节)。九个问题全部重新校准:
|
||||
参考项目的阈值是在参考项目的手写样本和材料格式上定的。用户决定不在手写样本上重新校准,等新项目跑出真实研究以后,用真实数据校准:收集真实的 Jev 判断和它判断的材料,由 Claude 或 GPT 打标签,作为校准集和留出集。参考项目的 8 个验收数据库不用,因为它们的材料格式以后还会变。
|
||||
|
||||
1. **样本**:把参考项目三组样本(判重 84 条、冻结条款 53 条、代码改动 61 条,各含校准集和留出集)转成新项目的材料格式。**标签不动**:标签是事先写死的"这条应当判出哪几问",转换只改材料的写法。哪条样本转不过来,写明原因,不要编一条新的顶上。
|
||||
2. **按参考项目的四步走**(`tests/calibration/README.md`、指南第七节):
|
||||
- 测抖动:挑几条,同一输入各问 5 次;
|
||||
- 丢掉区分不开的问题,或者改问法:跨输入标准差 < 0.05、两类重叠、零错区间不比抖动宽两倍,都算区分不开;**改了问法就从第一步重来**;
|
||||
- 在零错区间里定阈值,写明依据;
|
||||
- 阈值定下以后才跑留出集,只报对错,不回头调。
|
||||
3. 某一问怎么改都分不开时,停下来写清楚,交给监督者,不要硬定一个阈值。
|
||||
4. 校准脚本、样本和记录放在 `tests/calibration/` 下,三组各一个目录。不进 `npm test`,另起一个命令。`npm test` 里只用假 Jev 验证脚本能跑通。
|
||||
5. 校准结果写在代码里阈值旁边的注释里:零错区间、抖动、取值理由、留出集对错数。参考项目 `questions.ts` 头上那段就是这种写法。每组的完整记录写在该组目录的 `README.md` 里。这是校准数据的一部分,不算新建文档。
|
||||
所以这次:
|
||||
- 九问的阈值暂用参考项目 `JEV_THRESHOLDS` 里的值。代码里阈值旁边写一句:这是参考项目在它自己的材料上校准的值,没有在新项目的材料上校准过,等真实数据。
|
||||
- 不搬参考项目的校准样本,不写校准脚本。以后有了真实数据,按数据的样子再写。
|
||||
- 每次 Jev 判断的原始概率都要存进账本:退回时存在退回记录里,收下时存在提交记录里(第五部分),判重存在决定记录里。以后校准要用的就是这些数据。
|
||||
- 验收看接线对不对,不看判得准不准:用假 Jev 测逻辑,再用真实 Jev 每一处各问一次,确认请求发得出去、回答读得回来(第七部分)。
|
||||
|
||||
**花钱**:用户说"我们不在乎钱",校准该问几次就问几次,不用为省钱少问。
|
||||
|
||||
**密钥**:Jev 的密钥是环境变量 `TYPESAFE_API_KEY`,值在 `/home/iomgaa/Projects/RivalBits/.env`。跑校准时用 `set -a && . /home/iomgaa/Projects/RivalBits/.env && set +a` 加载,不要打印,不要复制进新项目。
|
||||
**密钥**:Jev 的密钥是环境变量 `TYPESAFE_API_KEY`,值在 `/home/iomgaa/Projects/RivalBits/.env`。跑真实 Jev 时用 `set -a && . /home/iomgaa/Projects/RivalBits/.env && set +a` 加载,不要打印,不要复制进新项目。
|
||||
|
||||
## 四、对外提供什么
|
||||
|
||||
@@ -95,10 +92,13 @@
|
||||
1. "模型调用结束"(`callEnded`)加一个墙钟时间字段,单位秒。结构.md 第三部分第 10 种和任务书 07 都要求 flow 把墙钟时间写进去(WORK_LOG"未完成"里那一条)。
|
||||
2. `callEnded` 的结束方式对上 agents 的四种结局:交了、没交(带原因)、出错(带原因)、被停下。现在只有 completed / failed 两种。
|
||||
3. "退回"(`rejection`)加一个字段,存这次退回用到的 Jev 判断。程序检查退回的,写 `null`。结构.md 第三部分第 3 种要求"退回理由含 Jev 的原始概率和结论",现在退回记录只有一段文字。
|
||||
4. "提交"(`submission`)也加同样的字段,存收下这份提交时 Jev 的判断;没用到 Jev 的写 `null`。只存退回的、不存放行的,以后就查不出"放行的里有多少擦着阈值过",也没有校准数据。用户同意这次就加。
|
||||
|
||||
第 1 条的墙钟时间用 vocab 的"测到 / 测不到"(`Measured`):控制进程被杀后,恢复时给旧调用补"结束",时间量不到,写出错加测不到(原因"进程中断")。用户同意。
|
||||
|
||||
判重合并是"决定"记录,它的输入本来就是 JSON,不用改。
|
||||
|
||||
这三处属于账本,写完派一个全新上下文的子 Agent 审阅(见第七部分)。
|
||||
这四处属于账本,写完派一个全新上下文的子 Agent 审阅(见第七部分)。
|
||||
|
||||
**config**:
|
||||
- 加"Jev 用哪个模型",属于用户配置,必填。配置对话以后照字段说明问。参考项目默认是 `jev-latest`,新项目不设默认值。
|
||||
@@ -108,11 +108,11 @@
|
||||
|
||||
| 处理 | 内容 |
|
||||
|---|---|
|
||||
| 借鉴,改说法后重新校准 | `questions.ts` 里判重、可行性、预扫三处的问法和示例句 |
|
||||
| 借鉴,只改说法和字段名 | `questions.ts` 里判重、可行性、预扫三处的问法和示例句;`JEV_THRESHOLDS` 里这九问的阈值,暂用、注明未在新材料上校准 |
|
||||
| 借鉴 | `jev.ts` 读回答的做法;`audit.ts` 的发请求、带密钥 |
|
||||
| 借鉴,改造后用 | `calibration.ts` 的校准流程;三组样本(标签不动) |
|
||||
| 删除 | 指标换说法、指标规格具体性两处的问法、样本和校准 |
|
||||
| 删除 | `C1_JEV_EXAMPLES`、`thresholdOverrides`、`UNCALIBRATED_JEV_SITES`:只有一个任务,阈值全部重新校准 |
|
||||
| 不搬 | `calibration.ts` 和 `tests/calibration/` 下全部样本:以后用真实数据校准时再写 |
|
||||
| 删除 | 指标换说法、指标规格具体性两处的问法 |
|
||||
| 删除 | `C1_JEV_EXAMPLES`、`thresholdOverrides`、`UNCALIBRATED_JEV_SITES`:只有一个任务;未校准的说明写在阈值旁边 |
|
||||
| 删除 | `dedup.ts`:合成几组归 rules,以后再写 |
|
||||
| 删除 | `httpAuditTransport` 里 `endpoint ?? AUDIT_ENDPOINT`、`fetchImpl ?? fetch` 这类可选参数:不设默认值,也不为测试给产品代码加参数 |
|
||||
| 删除 | 发请求前检查"正文里有没有密钥":密钥只从环境变量读进请求头,材料由 jev 自己从带类型的输入拼,没有路径会把它带进正文 |
|
||||
@@ -123,24 +123,24 @@
|
||||
- `npm test`,不花钱:
|
||||
- 用假 Jev 测:概率超过阈值判"是",不超过判"否";回答读不懂时报错;调不通时重试到上限再报错;
|
||||
- 问题哈希:改一个字,哈希就变;
|
||||
- 材料:从带类型的输入拼出的材料,字段和校准时用的一致。用同一个函数拼,不另写一份;
|
||||
- ledger 的三处改动各有测试:墙钟时间存得进、读得出;四种结束方式;退回记录带 Jev 判断或 `null`;
|
||||
- 材料:给定带类型的输入,拼出的材料和预期一致;
|
||||
- ledger 的四处改动各有测试:墙钟时间测到、测不到都存得进、读得出;四种结束方式;退回和提交记录带 Jev 判断或 `null`;
|
||||
- config 少了 Jev 模型时报错。
|
||||
- 校准:另起的命令,花钱,见第三部分。
|
||||
- **审阅**:ledger 的三处改动属于账本,写完派一个全新上下文的子 Agent 审阅一轮。告诉审阅者:
|
||||
- **真实 Jev 接线测试**:另起一个命令,例如 `npm run test:jev`,不放进 `npm test`。三处各问一次真实 Jev,用你随手写的简单材料:确认请求发得出去、九问都拿回 0 到 1 之间的概率、请求编号读得到。不判断概率对不对。
|
||||
- **审阅**:ledger 的四处改动属于账本,写完派一个全新上下文的子 Agent 审阅一轮。告诉审阅者:
|
||||
- 每条意见先回答"不写会怎样";
|
||||
- 只防三类:没人操作也会发生的、模型正常工作时就会做的、出错后发现不了的;
|
||||
- 模块之间传错参数、有人用 shell 故意破坏,只列出不改。
|
||||
|
||||
jev 本身按原型标准,校准本身就是对它最强的检查,不另审。
|
||||
jev 本身按原型标准,不另审。
|
||||
|
||||
## 八、规模与文档
|
||||
|
||||
- jev 预期 400–600 行,不含校准脚本和样本。问题措辞和示例句会占一半左右。超过 600 行就停下来检查。
|
||||
- jev 预期 400–600 行。问题措辞和示例句会占一半左右。超过 600 行就停下来检查。
|
||||
- 完成后更新:
|
||||
- `docs/结构.md` 第八部分:补 jev 对外的函数和类型;ledger、vocab、config 几节按第五部分改;
|
||||
- `WORK_LOG.md`:在"已完成"补一条;删掉"未完成"里 `callEnded` 那一条。
|
||||
- 不新建 md 文件。校准目录里的 `README.md` 是校准记录,见第三部分第 5 条。
|
||||
- 不新建 md 文件。
|
||||
|
||||
## 九、验收与报告
|
||||
|
||||
@@ -148,9 +148,7 @@
|
||||
|
||||
1. 提交号,新增和修改的文件列表,每个文件的行数,jev 的总行数。
|
||||
2. `npm run check`、`npm test` 的完整输出。
|
||||
3. 校准结果,九个问题每问一行:零错区间、抖动、阈值、留出集对错数,以及改过问法的问题改了什么、为什么。
|
||||
4. 转换不过来的样本:哪几条、为什么。
|
||||
5. 校准一共问了多少次 Jev。
|
||||
6. 审阅意见逐条:内容、采纳或不采纳、理由。
|
||||
7. 你和这份任务书、结构.md、方法.md 不一致的地方,以及为什么。
|
||||
8. **规则不清楚的地方**:读 CLAUDE.md、结构.md、方法.md、Jev 使用指南时,哪里让你犹豫、哪里两份文件说法不一致、哪里你是靠猜的。没有就写"没有"。没有真实证据的可能情况,在这里提一句就够,不写进 WORK_LOG。
|
||||
3. 九问的阈值和问法相对参考项目改了哪些字(逐问列出),以及 `npm run test:jev` 的实际输出:每问的概率和请求编号。
|
||||
4. 审阅意见逐条:内容、采纳或不采纳、理由。
|
||||
5. 你和这份任务书、结构.md、方法.md 不一致的地方,以及为什么。
|
||||
6. **规则不清楚的地方**:读 CLAUDE.md、结构.md、方法.md、Jev 使用指南时,哪里让你犹豫、哪里两份文件说法不一致、哪里你是靠猜的。没有就写"没有"。没有真实证据的可能情况,在这里提一句就够,不写进 WORK_LOG。
|
||||
|
||||
Reference in New Issue
Block a user