用途:当王建硕修改了 VoiceDrop 挖矿系统提示词(agent/src/prompts/mine.js 中的 MINE_SYSTEM),想用数据判断改好还是改坏,而非凭感觉看一两次时使用。被测对象为 MINE_SYSTEM,git 作为版本库;运行时为本地 Claude Code,harness 为本 skill 协议加 jianshuo.dev agent/eval/ 的脚本与数据。
流程:一,把候选 MINE_SYSTEM 文本写入临时文件,如 /tmp/cand-prompt.txt,冠军版由脚本自动读取当前 mine.js。二,跑产出:cd ~/code/jianshuo.dev/agent && CLAUDE_API_KEY=$CLAUDE_API_KEY node eval/run-eval.mjs /tmp/cand-prompt.txt <runId>,结果落 eval/runs/<runId>/;若终端出现确定性回退警告应先停止,多为候选提示词破坏了 JSON 输出。三,成对盲评:对每条 fixture 派发 subagent,喂 references/judge-rubric.md、该 fixture 的 transcript 与两份产出;A/B 顺序随机并记录映射,收到结果后还原为 champion/candidate;裁判模型须与生成模型(opus)不同家族,收集每条 {winner, dims, reason}。四,聚合:把还原后的 verdicts(winner ∈ candidate/champion/tie)与候选 proxyFails 喂 aggregate(),渲染 renderReport() 写入 eval/runs/<runId>/report.md。五,人工终审:把胜负最接近、分歧最大的 1–2 条产出并排交给用户,机器只筛掉明显更差的,文风最终由用户定。六,晋级:仅当 decision==="promote"(胜率 ≥70% 且无回退)且用户点认可时,将候选写回 mine.js 的 MINE_SYSTEM,commit 并附 runId 与胜率,随后跑 npm test 确认未破坏;否则保留报告、不动生产版。
限制:只评挖矿提示词(MINE_SYSTEM/MINE_SYSTEM_FORCE),审核与语音编辑提示词属不同 eval 模式,不在本 skill 范围;不测成本、缓存与延迟,本地缓存行为不等于生产;不做无人值守;真实金标集需 ≥10 条才可信,种子 2 条只够自测流程。其余细节暂未提供。