dsh-vibe-math 2.6.0 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.en.md +161 -389
  2. package/README.md +161 -390
  3. package/cordis.patch.yml +62 -14
  4. package/docs/AUDIT-CHECKLIST.md +2 -2
  5. package/docs/final-paper.md +1 -0
  6. package/docs/formal-verification.md +184 -29
  7. package/docs/math-computation.md +163 -0
  8. package/docs/release-notes/RELEASE-NOTES-2.7.0.en.md +151 -0
  9. package/docs/release-notes/RELEASE-NOTES-2.7.0.md +115 -0
  10. package/docs/release-notes/RELEASE-NOTES-2.7.1.en.md +86 -0
  11. package/docs/release-notes/RELEASE-NOTES-2.7.1.md +86 -0
  12. package/docs/test-timing.md +24 -12
  13. package/installer.js +7 -4
  14. package/package.json +21 -3
  15. package/prompt-corpus-persona/persona-corpus.json +12 -12
  16. package/prompt-corpus-persona/persona-corpus.md +128 -32
  17. package/prompt-corpus-v2/formal-verify-v2.json +182 -92
  18. package/prompt-corpus-v2/formal-verify-v2.md +2379 -55
  19. package/prompt-corpus-v3/formal-verify-v3.json +215 -53
  20. package/prompt-corpus-v3/formal-verify-v3.md +2147 -22
  21. package/prompt-corpus-v4/formal-verify-v4.json +14 -14
  22. package/prompt-corpus-v4/formal-verify-v4.md +267 -14
  23. package/prompt-corpus-v5/prompt-corpus-v5.json +62 -62
  24. package/prompt-corpus-v5/prompt-corpus-v5.md +631 -3
  25. package/tests/audit-math-computation-contract.mjs +204 -0
  26. package/tests/audit-math-computation-parity.mjs +198 -0
  27. package/tests/audit-math-computation-sensitivity.mjs +231 -0
  28. package/tests/audit-persona-sensitivity.mjs +4 -4
  29. package/tests/audit-persona-surface.test.mjs +38 -10
  30. package/tests/audit-v5-integrity.mjs +14 -0
  31. package/tests/e2e-v5-round2.test.mjs +459 -2
  32. package/tests/formal-verify-v2.test.mjs +362 -8
  33. package/tests/formal-verify-v3.test.mjs +355 -6
  34. package/tests/formal-verify-v4.test.mjs +295 -6
  35. package/tests/formal-verify-v5.test.mjs +9 -1
  36. package/tests/helpers/math-computation-fake-seam.mjs +163 -0
  37. package/tests/math-computation-shared.test.mjs +806 -0
  38. package/tests/prompt-v5-integrity.test.mjs +5 -5
  39. package/vibe-math-v2/agent.cordis.yml +22 -8
  40. package/vibe-math-v2/math-computation.js +1279 -0
  41. package/vibe-math-v2/math-engines.js +197 -0
  42. package/vibe-math-v2/vibe-math-v2.js +853 -40
  43. package/vibe-math-v2//345/256/236/347/216/260/346/226/271/346/241/210.md +6 -0
  44. package/vibe-math-v3/agent.cordis.yml +22 -8
  45. package/vibe-math-v3/math-computation.js +1279 -0
  46. package/vibe-math-v3/math-engines.js +197 -0
  47. package/vibe-math-v3/vibe-math-v3.js +844 -47
  48. package/vibe-math-v3//345/256/236/347/216/260/346/226/271/346/241/210.md +6 -0
  49. package/vibe-math-v4/agent.cordis.yml +38 -6
  50. package/vibe-math-v4/math-computation.js +1279 -0
  51. package/vibe-math-v4/math-engines.js +197 -0
  52. package/vibe-math-v4/vibe-math-v4.js +816 -31
  53. package/vibe-math-v4//345/256/236/347/216/260/346/226/271/346/241/210.md +6 -0
  54. package/vibe-math-v5/agent.cordis.yml +42 -6
  55. package/vibe-math-v5/math-computation.js +1279 -0
  56. package/vibe-math-v5/math-engines.js +197 -0
  57. package/vibe-math-v5/vibe-math-v5.js +1132 -37
  58. package/vibe-math-v5//345/256/236/347/216/260/346/226/271/346/241/210.md +83 -3
  59. package/vibe-math-v5//346/236/266/346/236/204/345/233/276.md +251 -0
@@ -8,42 +8,42 @@
8
8
  {
9
9
  "kind": "work",
10
10
  "label": "off/normal",
11
- "prompt": "Resident researcher r-1 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮0\nNew items:\n (no new messages)\n\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40}"
11
+ "prompt": "Resident researcher r-1 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮0\nNew items:\n (no new messages)\n\n\n- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。\n- math_computation:本机可用 (无)。需要数值/符号/统计计算时先 probe 再 run(工具路径会留下可复核回执,结论请引用回执路径);缺包时如实说明并给替代方案或安装计划(不要假装),安装需先出计划并征得确认。\n- shell 兜底标注:工具不可用而改用宿主 shell 时,结论必须写\"未经工具归档(shell 路径)\",且不得与工具回执混同(shell 无回执、无超时/输出上限保证)。\n- 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。\n- 需要精确数值、符号化简、反例搜索、统计或线性代数时调用 math_computation:先 probe,再 run。\n- 复核他人的数值结论时用 op:'receipt'(或 op:'run', mode:'file' 指向同一脚本)重跑,并把回执路径写进报告。\n- 归档即引用:报告里带 Computation/<id>/receipt.json;这是\"支撑材料\"的用法。\n- 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)——没把握的先别入库。\n- 不得把计算结果当成\"已证明\":对象是否已验证仍只由本预设既有的验证/共识路径给出。\n- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。\n- math_computation: available (none). Probe first, then run (the tool path leaves a re-runnable receipt - cite it). If a package is missing, say so and offer a fallback or an install plan; installing requires a plan plus confirmation.\n- Shell fallback: if the tool cannot run you may use the host shell, but mark the conclusion \"not tool-archived (shell path)\" - shell runs have no receipt and no timeout/output guarantees; only tool-routed computations count as reproducible supporting material.\n- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.\n- Call math_computation for exact numerics, symbolic simplification, counter-example search, statistics or linear algebra: probe first, then run.\n- To re-check someone else's numeric conclusion, re-run the same script (op:'receipt' or op:'run', mode:'file') and cite the receipt path.\n- Archive means cite: put Computation/<id>/receipt.json in your report - that is what \"supporting material\" means.\n- Criteria: (1) valuable or likely reusable; (2) important or necessary; (3) you are confident in it - do not archive what you are unsure about.\n- Never treat a computation result as \"proved\": whether an object is verified is still decided only by this preset's existing verification/consensus path.\n- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40}"
12
12
  },
13
13
  {
14
14
  "kind": "verify",
15
15
  "label": "encourage/verify",
16
- "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus(命题,提出者 )。\n请给出你对「该对象为真」的**正确概率 `verdict`**,仅一个 0–1 数值:**1 = 绝对为真,0 = 绝对为假,0.5 = 完全不确定,其余为介于其间的程度**(不要给 TRUE/FALSE,就给一个数值)。\n**投票契约**:只有**恰好 1**(你认为是**绝对**为真)和**恰好 0**(你认为是**绝对**为假)算表决;**严格介于 0 与 1 之间**(例如 0.9、0.95、0.5)是**弃权**——它是你对\"该对象为真\"的**概率估计**,不是你的一票。\n · 有把握认为它为真就投 **1**;不要为了\"留一点余地\"投 0.9——那会让全组永远无法定论。\n · 弃权会被如实统计:本轮没有人全票 → 对象**不会**停止验证,而是把全组的**平均概率**写回它在库中的卡片(`- 概率:`),带概率继续留在库里。\n · 弃权的两种合法用途:① 你确实不确定(用 0.5 附近的值表达);② 已归档的机器检查证明与命题原文不一致、你**不能**用 0 表达\"命题为假\"(此时请用 `formal` 回执的 `decision:\"defect\"` 报告偏差,见下方形式化段)。\n判定规则:**仅当全体在册常驻都恰好给 1(都认为是真)、或都恰好给 0(都认为是假)**,才按「真/假」写入 Verified/ 并回写来源卡的「已验证·真/假」;否则**只按概率数值(一种程度)保留在库中**,附全组平均正确概率,不写成真/假。\n请给出你**诚实独立的判断**。\n\n\n【Lean 形式化验证(鼓励模式)】\n · 请先判断该对象的**实现难度**:若能在可接受的工作量内形式化,优先写 Lean 代码并执行。\n · 工具:vibe_v4_lean_run(执行)· vibe_v4_lean_archive(归档)· vibe_v4_lean_lib(查已有可复用库)\n · 工作目录:Formal/(相对项目根);可复用定义放 <VIBEMATH>/Formal/Lib/,已证引理放 <VIBEMATH>/Formal/Proved/;写之前先 vibe_v4_lean_lib 查重。\n · **一旦 Lean 通过,你唯一需要确认的就是忠实性**:定义/对象/条件/假设/结论是否与命题原文逐条一致。请把注意力放在这种核对上,而不是重新做一遍推导。\n · 若你判断不值得或无法形式化,可以不做,但请在回执的 formal 字段写明难度判断(decision='blocked' 时必须写明 note)。\n · 归档可复用定义/引理前先跑通(vibe_v4_lean_archive run=true 或先 vibe_v4_lean_run);跑不通不要入库。\n · 宿主没有 Lean 工具链(LEAN_NOT_FOUND)或根本没有 subprocess 服务(NO_SUBPROCESS)时:把代码写下来归档,并在回执的 note 里写明\"宿主无 Lean 工具链\"——这两种都算显式阻塞原因,定论门禁可以据此放行。\n ▸ 若你在本轮把它形式化并跑通(vibe_v4_lean_archive kind='proof'),后续轮次的\n 审查对象就会从\"推导是否正确\"变成\"Lean 代码是否忠实于命题\"。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
16
+ "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus(命题,提出者 )。\n请给出你对「该对象为真」的**正确概率 `verdict`**,仅一个 0–1 数值:**1 = 绝对为真,0 = 绝对为假,0.5 = 完全不确定,其余为介于其间的程度**(不要给 TRUE/FALSE,就给一个数值)。\n**投票契约**:只有**恰好 1**(你认为是**绝对**为真)和**恰好 0**(你认为是**绝对**为假)算表决;**严格介于 0 与 1 之间**(例如 0.9、0.95、0.5)是**弃权**——它是你对\"该对象为真\"的**概率估计**,不是你的一票。\n · 有把握认为它为真就投 **1**;不要为了\"留一点余地\"投 0.9——那会让全组永远无法定论。\n · 弃权会被如实统计:本轮没有人全票 → 对象**不会**停止验证,而是把全组的**平均概率**写回它在库中的卡片(`- 概率:`),带概率继续留在库里。\n · 弃权的两种合法用途:① 你确实不确定(用 0.5 附近的值表达);② 已归档的机器检查证明与命题原文不一致、你**不能**用 0 表达\"命题为假\"(此时请用 `formal` 回执的 `decision:\"defect\"` 报告偏差,见下方形式化段)。\n判定规则:**仅当全体在册常驻都恰好给 1(都认为是真)、或都恰好给 0(都认为是假)**,才按「真/假」写入 Verified/ 并回写来源卡的「已验证·真/假」;否则**只按概率数值(一种程度)保留在库中**,附全组平均正确概率,不写成真/假。\n请给出你**诚实独立的判断**。\n\n\n【Lean 形式化验证(鼓励模式)】\n · 请先判断该对象的**实现难度**:若能在可接受的工作量内形式化,优先写 Lean 代码并执行。\n · 形式化只写你有把握的版本;没把握就记 blocked 并写清难点——不要用形式化掩盖不确定。\n · 该对象若已有后台编译在队列中,**不得**在它落地前声称已通过或走忠实性审查;等 vibe_v4_lean_lib 显示 passed 再审。\n · 工具:vibe_v4_lean_run(执行/入队)· vibe_v4_lean_archive(归档)· vibe_v4_lean_lib(查已有可复用库与 jobs)· vibe_v4_lean_read(读归档原文逐字复用)\n · 工作目录:Formal/(相对项目根);可复用定义放 <VIBEMATH>/Formal/Lib/,已证引理放 <VIBEMATH>/Formal/Proved/;写之前先 vibe_v4_lean_lib 查重。复用已归档内容:`import Formal.Lib.<name>` / `import Formal.Proved.<name>`(模块根 = VibeMath 根,框架已加入编译搜索路径)。项目工作文件 Formal/<对象 id>.lean 只是归档用,**不是**模块路径,不要 import 它。\n · **一旦 Lean 通过,你唯一需要确认的就是忠实性**:定义/对象/条件/假设/结论是否与命题原文逐条一致。请把注意力放在这种核对上,而不是重新做一遍推导。\n · 若你判断不值得或无法形式化,可以不做,但请在回执的 formal 字段写明难度判断(decision='blocked' 时必须写明 note)。\n · 归档可复用定义/引理前先跑通(vibe_v4_lean_archive run=true 或先 vibe_v4_lean_run);跑不通不要入库。\n · 宿主没有 Lean 工具链(LEAN_NOT_FOUND)或根本没有 subprocess 服务(NO_SUBPROCESS)时:把代码写下来归档,并在回执的 note 里写明\"宿主无 Lean 工具链\"——这两种都算显式阻塞原因,定论门禁可以据此放行。\n ▸ 若你在本轮把它形式化并跑通(vibe_v4_lean_archive kind='proof'),后续轮次的\n 审查对象就会从\"推导是否正确\"变成\"Lean 代码是否忠实于命题\"。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
17
17
  },
18
18
  {
19
19
  "kind": "work",
20
20
  "label": "encourage/normal",
21
- "prompt": "Resident researcher r-1 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮0\nNew items:\n (no new messages)\n\n\n【顺手形式化(鼓励)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。这会让后续的验证与证明省掉大量重复工作。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
21
+ "prompt": "Resident researcher r-1 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮0\nNew items:\n (no new messages)\n\n\n【顺手形式化(鼓励)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。\n · 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)。**没把握的先别入库**——\n 进了 Formal/Proved 的东西会被当成已核对引理;没把握就记 blocked 并写清难点,别用形式化掩盖不确定。\n · 复用优先:写新定义/证明前**先 vibe_v4_lean_lib 查已有库**;复用已归档内容用\n `import Formal.Lib.<name>` / `import Formal.Proved.<name>`(模块根 = VibeMath 根,框架已把它加进编译搜索路径),\n 或 `vibe_v4_lean_read {name}` 取原文逐字复制。**查不到再新写**;同内容重复归档会自动去重。\n · 编译默认走后台队列(leanAsync=true):入队后你可以继续工作;用 vibe_v4_lean_lib 的 jobs 字段或下一轮提示里的\n 【形式化结果】行看结果。**在作业落地为\"通过\"之前,不得把该对象当成已通过。**这会让后续的验证与证明省掉大量重复工作。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\n\n- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。\n- math_computation:本机可用 (无)。需要数值/符号/统计计算时先 probe 再 run(工具路径会留下可复核回执,结论请引用回执路径);缺包时如实说明并给替代方案或安装计划(不要假装),安装需先出计划并征得确认。\n- shell 兜底标注:工具不可用而改用宿主 shell 时,结论必须写\"未经工具归档(shell 路径)\",且不得与工具回执混同(shell 无回执、无超时/输出上限保证)。\n- 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。\n- 需要精确数值、符号化简、反例搜索、统计或线性代数时调用 math_computation:先 probe,再 run。\n- 复核他人的数值结论时用 op:'receipt'(或 op:'run', mode:'file' 指向同一脚本)重跑,并把回执路径写进报告。\n- 归档即引用:报告里带 Computation/<id>/receipt.json;这是\"支撑材料\"的用法。\n- 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)——没把握的先别入库。\n- 不得把计算结果当成\"已证明\":对象是否已验证仍只由本预设既有的验证/共识路径给出。\n- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。\n- math_computation: available (none). Probe first, then run (the tool path leaves a re-runnable receipt - cite it). If a package is missing, say so and offer a fallback or an install plan; installing requires a plan plus confirmation.\n- Shell fallback: if the tool cannot run you may use the host shell, but mark the conclusion \"not tool-archived (shell path)\" - shell runs have no receipt and no timeout/output guarantees; only tool-routed computations count as reproducible supporting material.\n- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.\n- Call math_computation for exact numerics, symbolic simplification, counter-example search, statistics or linear algebra: probe first, then run.\n- To re-check someone else's numeric conclusion, re-run the same script (op:'receipt' or op:'run', mode:'file') and cite the receipt path.\n- Archive means cite: put Computation/<id>/receipt.json in your report - that is what \"supporting material\" means.\n- Criteria: (1) valuable or likely reusable; (2) important or necessary; (3) you are confident in it - do not archive what you are unsure about.\n- Never treat a computation result as \"proved\": whether an object is verified is still decided only by this preset's existing verification/consensus path.\n- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
22
22
  },
23
23
  {
24
24
  "kind": "work",
25
25
  "label": "encourage/heartbeat",
26
- "prompt": "Resident researcher r-1 — CHECKPOINT(团队空闲,请由你们继续自主推进)。当前项目尚未解决(除非你已确认)。团队在等待有人继续:请**继续解决这个问题**——读他人的库对齐、推进某个子问题/引理/方法、尝试一条路线;或向团队发消息(input)、提议任务(propose_task)让大家分工。若你确实认为问题已解决、或已彻底无路可走,才提议开会(propose_meeting)让团队表决/商量、或声明 solved=true。默认立场是:**请推进,而不是停在原地。**\n【顺手形式化(鼓励)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。这会让后续的验证与证明省掉大量重复工作。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\nReply with ONLY a JSON object:\n{\"summary\":\"<what you will do / what you advanced this round>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
26
+ "prompt": "Resident researcher r-1 — CHECKPOINT(团队空闲,请由你们继续自主推进)。当前项目尚未解决(除非你已确认)。团队在等待有人继续:请**继续解决这个问题**——读他人的库对齐、推进某个子问题/引理/方法、尝试一条路线;或向团队发消息(input)、提议任务(propose_task)让大家分工。若你确实认为问题已解决、或已彻底无路可走,才提议开会(propose_meeting)让团队表决/商量、或声明 solved=true。默认立场是:**请推进,而不是停在原地。**\n【顺手形式化(鼓励)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。\n · 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)。**没把握的先别入库**——\n 进了 Formal/Proved 的东西会被当成已核对引理;没把握就记 blocked 并写清难点,别用形式化掩盖不确定。\n · 复用优先:写新定义/证明前**先 vibe_v4_lean_lib 查已有库**;复用已归档内容用\n `import Formal.Lib.<name>` / `import Formal.Proved.<name>`(模块根 = VibeMath 根,框架已把它加进编译搜索路径),\n 或 `vibe_v4_lean_read {name}` 取原文逐字复制。**查不到再新写**;同内容重复归档会自动去重。\n · 编译默认走后台队列(leanAsync=true):入队后你可以继续工作;用 vibe_v4_lean_lib 的 jobs 字段或下一轮提示里的\n 【形式化结果】行看结果。**在作业落地为\"通过\"之前,不得把该对象当成已通过。**这会让后续的验证与证明省掉大量重复工作。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\n- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。\n- math_computation:本机可用 (无)。需要数值/符号/统计计算时先 probe 再 run(工具路径会留下可复核回执,结论请引用回执路径);缺包时如实说明并给替代方案或安装计划(不要假装),安装需先出计划并征得确认。\n- shell 兜底标注:工具不可用而改用宿主 shell 时,结论必须写\"未经工具归档(shell 路径)\",且不得与工具回执混同(shell 无回执、无超时/输出上限保证)。\n- 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。\n- 需要精确数值、符号化简、反例搜索、统计或线性代数时调用 math_computation:先 probe,再 run。\n- 复核他人的数值结论时用 op:'receipt'(或 op:'run', mode:'file' 指向同一脚本)重跑,并把回执路径写进报告。\n- 归档即引用:报告里带 Computation/<id>/receipt.json;这是\"支撑材料\"的用法。\n- 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)——没把握的先别入库。\n- 不得把计算结果当成\"已证明\":对象是否已验证仍只由本预设既有的验证/共识路径给出。\n- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。\n- math_computation: available (none). Probe first, then run (the tool path leaves a re-runnable receipt - cite it). If a package is missing, say so and offer a fallback or an install plan; installing requires a plan plus confirmation.\n- Shell fallback: if the tool cannot run you may use the host shell, but mark the conclusion \"not tool-archived (shell path)\" - shell runs have no receipt and no timeout/output guarantees; only tool-routed computations count as reproducible supporting material.\n- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.\n- Call math_computation for exact numerics, symbolic simplification, counter-example search, statistics or linear algebra: probe first, then run.\n- To re-check someone else's numeric conclusion, re-run the same script (op:'receipt' or op:'run', mode:'file') and cite the receipt path.\n- Archive means cite: put Computation/<id>/receipt.json in your report - that is what \"supporting material\" means.\n- Criteria: (1) valuable or likely reusable; (2) important or necessary; (3) you are confident in it - do not archive what you are unsure about.\n- Never treat a computation result as \"proved\": whether an object is verified is still decided only by this preset's existing verification/consensus path.\n- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.\nReply with ONLY a JSON object:\n{\"summary\":\"<what you will do / what you advanced this round>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
27
27
  },
28
28
  {
29
29
  "kind": "work",
30
30
  "label": "encourage/coreRules",
31
- "prompt": "[核心规则重申] 只有 Verified/(及标记\"已验证·真/假\")算已确立;验证须全组一致(全真或全假)才作数,否则留库附平均概率;你只写自己的库(<VIBEMATH>/Projects/default/ 的 Progress/<你>/、Propos/<你>/、Methods/<你>/、Subproblems/<你>/),可只读任何人的库;任务分工由团队讨论决定;退出只输出一个 JSON 对象。\n`facilitator` 是**框架/人类介入的信使名**,不是常驻成员,也不在编制里——**不要向它回信**(`vibe_v4_send_message` 会返回 no such resident);要回话请用本轮回执的 \"input\" 字段(会转给全组)或 `vibe_v4_send_message {to:\"all\"}`。\n【顺手形式化(鼓励)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。这会让后续的验证与证明省掉大量重复工作。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。"
31
+ "prompt": "[核心规则重申] 只有 Verified/(及标记\"已验证·真/假\")算已确立;验证须全组一致(全真或全假)才作数,否则留库附平均概率;你只写自己的库(<VIBEMATH>/Projects/default/ 的 Progress/<你>/、Propos/<你>/、Methods/<你>/、Subproblems/<你>/),可只读任何人的库;任务分工由团队讨论决定;退出只输出一个 JSON 对象。\n`facilitator` 是**框架/人类介入的信使名**,不是常驻成员,也不在编制里——**不要向它回信**(`vibe_v4_send_message` 会返回 no such resident);要回话请用本轮回执的 \"input\" 字段(会转给全组)或 `vibe_v4_send_message {to:\"all\"}`。\n【顺手形式化(鼓励)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。\n · 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)。**没把握的先别入库**——\n 进了 Formal/Proved 的东西会被当成已核对引理;没把握就记 blocked 并写清难点,别用形式化掩盖不确定。\n · 复用优先:写新定义/证明前**先 vibe_v4_lean_lib 查已有库**;复用已归档内容用\n `import Formal.Lib.<name>` / `import Formal.Proved.<name>`(模块根 = VibeMath 根,框架已把它加进编译搜索路径),\n 或 `vibe_v4_lean_read {name}` 取原文逐字复制。**查不到再新写**;同内容重复归档会自动去重。\n · 编译默认走后台队列(leanAsync=true):入队后你可以继续工作;用 vibe_v4_lean_lib 的 jobs 字段或下一轮提示里的\n 【形式化结果】行看结果。**在作业落地为\"通过\"之前,不得把该对象当成已通过。**这会让后续的验证与证明省掉大量重复工作。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\n- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。\n- math_computation:本机可用 (无)。需要数值/符号/统计计算时先 probe 再 run(工具路径会留下可复核回执,结论请引用回执路径);缺包时如实说明并给替代方案或安装计划(不要假装),安装需先出计划并征得确认。\n- shell 兜底标注:工具不可用而改用宿主 shell 时,结论必须写\"未经工具归档(shell 路径)\",且不得与工具回执混同(shell 无回执、无超时/输出上限保证)。\n- 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。\n- 需要精确数值、符号化简、反例搜索、统计或线性代数时调用 math_computation:先 probe,再 run。\n- 复核他人的数值结论时用 op:'receipt'(或 op:'run', mode:'file' 指向同一脚本)重跑,并把回执路径写进报告。\n- 归档即引用:报告里带 Computation/<id>/receipt.json;这是\"支撑材料\"的用法。\n- 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)——没把握的先别入库。\n- 不得把计算结果当成\"已证明\":对象是否已验证仍只由本预设既有的验证/共识路径给出。\n- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。\n- math_computation: available (none). Probe first, then run (the tool path leaves a re-runnable receipt - cite it). If a package is missing, say so and offer a fallback or an install plan; installing requires a plan plus confirmation.\n- Shell fallback: if the tool cannot run you may use the host shell, but mark the conclusion \"not tool-archived (shell path)\" - shell runs have no receipt and no timeout/output guarantees; only tool-routed computations count as reproducible supporting material.\n- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.\n- Call math_computation for exact numerics, symbolic simplification, counter-example search, statistics or linear algebra: probe first, then run.\n- To re-check someone else's numeric conclusion, re-run the same script (op:'receipt' or op:'run', mode:'file') and cite the receipt path.\n- Archive means cite: put Computation/<id>/receipt.json in your report - that is what \"supporting material\" means.\n- Criteria: (1) valuable or likely reusable; (2) important or necessary; (3) you are confident in it - do not archive what you are unsure about.\n- Never treat a computation result as \"proved\": whether an object is verified is still decided only by this preset's existing verification/consensus path.\n- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly."
32
32
  },
33
33
  {
34
34
  "kind": "verify",
35
35
  "label": "require/verify",
36
- "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus(命题,提出者 )。\n请给出你对「该对象为真」的**正确概率 `verdict`**,仅一个 0–1 数值:**1 = 绝对为真,0 = 绝对为假,0.5 = 完全不确定,其余为介于其间的程度**(不要给 TRUE/FALSE,就给一个数值)。\n**投票契约**:只有**恰好 1**(你认为是**绝对**为真)和**恰好 0**(你认为是**绝对**为假)算表决;**严格介于 0 与 1 之间**(例如 0.9、0.95、0.5)是**弃权**——它是你对\"该对象为真\"的**概率估计**,不是你的一票。\n · 有把握认为它为真就投 **1**;不要为了\"留一点余地\"投 0.9——那会让全组永远无法定论。\n · 弃权会被如实统计:本轮没有人全票 → 对象**不会**停止验证,而是把全组的**平均概率**写回它在库中的卡片(`- 概率:`),带概率继续留在库里。\n · 弃权的两种合法用途:① 你确实不确定(用 0.5 附近的值表达);② 已归档的机器检查证明与命题原文不一致、你**不能**用 0 表达\"命题为假\"(此时请用 `formal` 回执的 `decision:\"defect\"` 报告偏差,见下方形式化段)。\n判定规则:**仅当全体在册常驻都恰好给 1(都认为是真)、或都恰好给 0(都认为是假)**,才按「真/假」写入 Verified/ 并回写来源卡的「已验证·真/假」;否则**只按概率数值(一种程度)保留在库中**,附全组平均正确概率,不写成真/假。\n请给出你**诚实独立的判断**。\n\n\n【Lean 形式化验证(强制模式)】\n · 请先判断该对象的**实现难度**:若能在可接受的工作量内形式化,优先写 Lean 代码并执行。\n · 工具:vibe_v4_lean_run(执行)· vibe_v4_lean_archive(归档)· vibe_v4_lean_lib(查已有可复用库)\n · 工作目录:Formal/(相对项目根);可复用定义放 <VIBEMATH>/Formal/Lib/,已证引理放 <VIBEMATH>/Formal/Proved/;写之前先 vibe_v4_lean_lib 查重。\n · **一旦 Lean 通过,你唯一需要确认的就是忠实性**:定义/对象/条件/假设/结论是否与命题原文逐条一致。请把注意力放在这种核对上,而不是重新做一遍推导。\n · **本模式要求**:必须产出 Lean 形式化,或**必须**给出显式的阻塞原因(vibe_v4_lean_archive kind='blocked' note=… 或回执 formal.note)。若两者都没有,本次裁定不会生效,会被记为未定论(原因 formal-required)并进入「形式化待办」。\n · 归档可复用定义/引理前先跑通(vibe_v4_lean_archive run=true 或先 vibe_v4_lean_run);跑不通不要入库。\n · 宿主没有 Lean 工具链(LEAN_NOT_FOUND)或根本没有 subprocess 服务(NO_SUBPROCESS)时:把代码写下来归档,并在回执的 note 里写明\"宿主无 Lean 工具链\"——这两种都算显式阻塞原因,定论门禁可以据此放行。\n ▸ 若你在本轮把它形式化并跑通(vibe_v4_lean_archive kind='proof'),后续轮次的\n 审查对象就会从\"推导是否正确\"变成\"Lean 代码是否忠实于命题\"。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
36
+ "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus(命题,提出者 )。\n请给出你对「该对象为真」的**正确概率 `verdict`**,仅一个 0–1 数值:**1 = 绝对为真,0 = 绝对为假,0.5 = 完全不确定,其余为介于其间的程度**(不要给 TRUE/FALSE,就给一个数值)。\n**投票契约**:只有**恰好 1**(你认为是**绝对**为真)和**恰好 0**(你认为是**绝对**为假)算表决;**严格介于 0 与 1 之间**(例如 0.9、0.95、0.5)是**弃权**——它是你对\"该对象为真\"的**概率估计**,不是你的一票。\n · 有把握认为它为真就投 **1**;不要为了\"留一点余地\"投 0.9——那会让全组永远无法定论。\n · 弃权会被如实统计:本轮没有人全票 → 对象**不会**停止验证,而是把全组的**平均概率**写回它在库中的卡片(`- 概率:`),带概率继续留在库里。\n · 弃权的两种合法用途:① 你确实不确定(用 0.5 附近的值表达);② 已归档的机器检查证明与命题原文不一致、你**不能**用 0 表达\"命题为假\"(此时请用 `formal` 回执的 `decision:\"defect\"` 报告偏差,见下方形式化段)。\n判定规则:**仅当全体在册常驻都恰好给 1(都认为是真)、或都恰好给 0(都认为是假)**,才按「真/假」写入 Verified/ 并回写来源卡的「已验证·真/假」;否则**只按概率数值(一种程度)保留在库中**,附全组平均正确概率,不写成真/假。\n请给出你**诚实独立的判断**。\n\n\n【Lean 形式化验证(强制模式)】\n · 请先判断该对象的**实现难度**:若能在可接受的工作量内形式化,优先写 Lean 代码并执行。\n · 形式化只写你有把握的版本;没把握就记 blocked 并写清难点——不要用形式化掩盖不确定。\n · 该对象若已有后台编译在队列中,**不得**在它落地前声称已通过或走忠实性审查;等 vibe_v4_lean_lib 显示 passed 再审。\n · 工具:vibe_v4_lean_run(执行/入队)· vibe_v4_lean_archive(归档)· vibe_v4_lean_lib(查已有可复用库与 jobs)· vibe_v4_lean_read(读归档原文逐字复用)\n · 工作目录:Formal/(相对项目根);可复用定义放 <VIBEMATH>/Formal/Lib/,已证引理放 <VIBEMATH>/Formal/Proved/;写之前先 vibe_v4_lean_lib 查重。复用已归档内容:`import Formal.Lib.<name>` / `import Formal.Proved.<name>`(模块根 = VibeMath 根,框架已加入编译搜索路径)。项目工作文件 Formal/<对象 id>.lean 只是归档用,**不是**模块路径,不要 import 它。\n · **一旦 Lean 通过,你唯一需要确认的就是忠实性**:定义/对象/条件/假设/结论是否与命题原文逐条一致。请把注意力放在这种核对上,而不是重新做一遍推导。\n · **本模式要求**:必须产出 Lean 形式化,或**必须**给出显式的阻塞原因(vibe_v4_lean_archive kind='blocked' note=… 或回执 formal.note)。若两者都没有,本次裁定不会生效,会被记为未定论(原因 formal-required)并进入「形式化待办」。\n · 归档可复用定义/引理前先跑通(vibe_v4_lean_archive run=true 或先 vibe_v4_lean_run);跑不通不要入库。\n · 宿主没有 Lean 工具链(LEAN_NOT_FOUND)或根本没有 subprocess 服务(NO_SUBPROCESS)时:把代码写下来归档,并在回执的 note 里写明\"宿主无 Lean 工具链\"——这两种都算显式阻塞原因,定论门禁可以据此放行。\n ▸ 若你在本轮把它形式化并跑通(vibe_v4_lean_archive kind='proof'),后续轮次的\n 审查对象就会从\"推导是否正确\"变成\"Lean 代码是否忠实于命题\"。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
37
37
  },
38
38
  {
39
39
  "kind": "verify",
40
40
  "label": "require/verify/debate",
41
- "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus(命题,提出者 )。\n请给出你对「该对象为真」的**正确概率 `verdict`**,仅一个 0–1 数值:**1 = 绝对为真,0 = 绝对为假,0.5 = 完全不确定,其余为介于其间的程度**(不要给 TRUE/FALSE,就给一个数值)。\n**投票契约**:只有**恰好 1**(你认为是**绝对**为真)和**恰好 0**(你认为是**绝对**为假)算表决;**严格介于 0 与 1 之间**(例如 0.9、0.95、0.5)是**弃权**——它是你对\"该对象为真\"的**概率估计**,不是你的一票。\n · 有把握认为它为真就投 **1**;不要为了\"留一点余地\"投 0.9——那会让全组永远无法定论。\n · 弃权会被如实统计:本轮没有人全票 → 对象**不会**停止验证,而是把全组的**平均概率**写回它在库中的卡片(`- 概率:`),带概率继续留在库里。\n · 弃权的两种合法用途:① 你确实不确定(用 0.5 附近的值表达);② 已归档的机器检查证明与命题原文不一致、你**不能**用 0 表达\"命题为假\"(此时请用 `formal` 回执的 `decision:\"defect\"` 报告偏差,见下方形式化段)。\n判定规则:**仅当全体在册常驻都恰好给 1(都认为是真)、或都恰好给 0(都认为是假)**,才按「真/假」写入 Verified/ 并回写来源卡的「已验证·真/假」;否则**只按概率数值(一种程度)保留在库中**,附全组平均正确概率,不写成真/假。\n请给出你**诚实独立的判断**,并参考他人意见:\n\n\n【Lean 形式化验证(强制模式)】\n · 请先判断该对象的**实现难度**:若能在可接受的工作量内形式化,优先写 Lean 代码并执行。\n · 工具:vibe_v4_lean_run(执行)· vibe_v4_lean_archive(归档)· vibe_v4_lean_lib(查已有可复用库)\n · 工作目录:Formal/(相对项目根);可复用定义放 <VIBEMATH>/Formal/Lib/,已证引理放 <VIBEMATH>/Formal/Proved/;写之前先 vibe_v4_lean_lib 查重。\n · **一旦 Lean 通过,你唯一需要确认的就是忠实性**:定义/对象/条件/假设/结论是否与命题原文逐条一致。请把注意力放在这种核对上,而不是重新做一遍推导。\n · **本模式要求**:必须产出 Lean 形式化,或**必须**给出显式的阻塞原因(vibe_v4_lean_archive kind='blocked' note=… 或回执 formal.note)。若两者都没有,本次裁定不会生效,会被记为未定论(原因 formal-required)并进入「形式化待办」。\n · 归档可复用定义/引理前先跑通(vibe_v4_lean_archive run=true 或先 vibe_v4_lean_run);跑不通不要入库。\n · 宿主没有 Lean 工具链(LEAN_NOT_FOUND)或根本没有 subprocess 服务(NO_SUBPROCESS)时:把代码写下来归档,并在回执的 note 里写明\"宿主无 Lean 工具链\"——这两种都算显式阻塞原因,定论门禁可以据此放行。\n ▸ 若你在本轮把它形式化并跑通(vibe_v4_lean_archive kind='proof'),后续轮次的\n 审查对象就会从\"推导是否正确\"变成\"Lean 代码是否忠实于命题\"。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
41
+ "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus(命题,提出者 )。\n请给出你对「该对象为真」的**正确概率 `verdict`**,仅一个 0–1 数值:**1 = 绝对为真,0 = 绝对为假,0.5 = 完全不确定,其余为介于其间的程度**(不要给 TRUE/FALSE,就给一个数值)。\n**投票契约**:只有**恰好 1**(你认为是**绝对**为真)和**恰好 0**(你认为是**绝对**为假)算表决;**严格介于 0 与 1 之间**(例如 0.9、0.95、0.5)是**弃权**——它是你对\"该对象为真\"的**概率估计**,不是你的一票。\n · 有把握认为它为真就投 **1**;不要为了\"留一点余地\"投 0.9——那会让全组永远无法定论。\n · 弃权会被如实统计:本轮没有人全票 → 对象**不会**停止验证,而是把全组的**平均概率**写回它在库中的卡片(`- 概率:`),带概率继续留在库里。\n · 弃权的两种合法用途:① 你确实不确定(用 0.5 附近的值表达);② 已归档的机器检查证明与命题原文不一致、你**不能**用 0 表达\"命题为假\"(此时请用 `formal` 回执的 `decision:\"defect\"` 报告偏差,见下方形式化段)。\n判定规则:**仅当全体在册常驻都恰好给 1(都认为是真)、或都恰好给 0(都认为是假)**,才按「真/假」写入 Verified/ 并回写来源卡的「已验证·真/假」;否则**只按概率数值(一种程度)保留在库中**,附全组平均正确概率,不写成真/假。\n请给出你**诚实独立的判断**,并参考他人意见:\n\n\n【Lean 形式化验证(强制模式)】\n · 请先判断该对象的**实现难度**:若能在可接受的工作量内形式化,优先写 Lean 代码并执行。\n · 形式化只写你有把握的版本;没把握就记 blocked 并写清难点——不要用形式化掩盖不确定。\n · 该对象若已有后台编译在队列中,**不得**在它落地前声称已通过或走忠实性审查;等 vibe_v4_lean_lib 显示 passed 再审。\n · 工具:vibe_v4_lean_run(执行/入队)· vibe_v4_lean_archive(归档)· vibe_v4_lean_lib(查已有可复用库与 jobs)· vibe_v4_lean_read(读归档原文逐字复用)\n · 工作目录:Formal/(相对项目根);可复用定义放 <VIBEMATH>/Formal/Lib/,已证引理放 <VIBEMATH>/Formal/Proved/;写之前先 vibe_v4_lean_lib 查重。复用已归档内容:`import Formal.Lib.<name>` / `import Formal.Proved.<name>`(模块根 = VibeMath 根,框架已加入编译搜索路径)。项目工作文件 Formal/<对象 id>.lean 只是归档用,**不是**模块路径,不要 import 它。\n · **一旦 Lean 通过,你唯一需要确认的就是忠实性**:定义/对象/条件/假设/结论是否与命题原文逐条一致。请把注意力放在这种核对上,而不是重新做一遍推导。\n · **本模式要求**:必须产出 Lean 形式化,或**必须**给出显式的阻塞原因(vibe_v4_lean_archive kind='blocked' note=… 或回执 formal.note)。若两者都没有,本次裁定不会生效,会被记为未定论(原因 formal-required)并进入「形式化待办」。\n · 归档可复用定义/引理前先跑通(vibe_v4_lean_archive run=true 或先 vibe_v4_lean_run);跑不通不要入库。\n · 宿主没有 Lean 工具链(LEAN_NOT_FOUND)或根本没有 subprocess 服务(NO_SUBPROCESS)时:把代码写下来归档,并在回执的 note 里写明\"宿主无 Lean 工具链\"——这两种都算显式阻塞原因,定论门禁可以据此放行。\n ▸ 若你在本轮把它形式化并跑通(vibe_v4_lean_archive kind='proof'),后续轮次的\n 审查对象就会从\"推导是否正确\"变成\"Lean 代码是否忠实于命题\"。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
42
42
  },
43
43
  {
44
44
  "kind": "work",
45
45
  "label": "require/normal",
46
- "prompt": "Resident researcher r-1 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮0\nNew items:\n (no new messages)\n\n\n【顺手形式化(强制)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。本模式下,任何要定论为真/假的对象都必须先有 Lean 通过或显式阻塞记录。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
46
+ "prompt": "Resident researcher r-1 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮0\nNew items:\n (no new messages)\n\n\n【顺手形式化(强制)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。\n · 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)。**没把握的先别入库**——\n 进了 Formal/Proved 的东西会被当成已核对引理;没把握就记 blocked 并写清难点,别用形式化掩盖不确定。\n · 复用优先:写新定义/证明前**先 vibe_v4_lean_lib 查已有库**;复用已归档内容用\n `import Formal.Lib.<name>` / `import Formal.Proved.<name>`(模块根 = VibeMath 根,框架已把它加进编译搜索路径),\n 或 `vibe_v4_lean_read {name}` 取原文逐字复制。**查不到再新写**;同内容重复归档会自动去重。\n · 编译默认走后台队列(leanAsync=true):入队后你可以继续工作;用 vibe_v4_lean_lib 的 jobs 字段或下一轮提示里的\n 【形式化结果】行看结果。**在作业落地为\"通过\"之前,不得把该对象当成已通过。**本模式下,任何要定论为真/假的对象都必须先有 Lean 通过或显式阻塞记录。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\n\n- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。\n- math_computation:本机可用 (无)。需要数值/符号/统计计算时先 probe 再 run(工具路径会留下可复核回执,结论请引用回执路径);缺包时如实说明并给替代方案或安装计划(不要假装),安装需先出计划并征得确认。\n- shell 兜底标注:工具不可用而改用宿主 shell 时,结论必须写\"未经工具归档(shell 路径)\",且不得与工具回执混同(shell 无回执、无超时/输出上限保证)。\n- 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。\n- 需要精确数值、符号化简、反例搜索、统计或线性代数时调用 math_computation:先 probe,再 run。\n- 复核他人的数值结论时用 op:'receipt'(或 op:'run', mode:'file' 指向同一脚本)重跑,并把回执路径写进报告。\n- 归档即引用:报告里带 Computation/<id>/receipt.json;这是\"支撑材料\"的用法。\n- 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)——没把握的先别入库。\n- 不得把计算结果当成\"已证明\":对象是否已验证仍只由本预设既有的验证/共识路径给出。\n- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。\n- math_computation: available (none). Probe first, then run (the tool path leaves a re-runnable receipt - cite it). If a package is missing, say so and offer a fallback or an install plan; installing requires a plan plus confirmation.\n- Shell fallback: if the tool cannot run you may use the host shell, but mark the conclusion \"not tool-archived (shell path)\" - shell runs have no receipt and no timeout/output guarantees; only tool-routed computations count as reproducible supporting material.\n- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.\n- Call math_computation for exact numerics, symbolic simplification, counter-example search, statistics or linear algebra: probe first, then run.\n- To re-check someone else's numeric conclusion, re-run the same script (op:'receipt' or op:'run', mode:'file') and cite the receipt path.\n- Archive means cite: put Computation/<id>/receipt.json in your report - that is what \"supporting material\" means.\n- Criteria: (1) valuable or likely reusable; (2) important or necessary; (3) you are confident in it - do not archive what you are unsure about.\n- Never treat a computation result as \"proved\": whether an object is verified is still decided only by this preset's existing verification/consensus path.\n- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
47
47
  },
48
48
  {
49
49
  "kind": "verify",
@@ -73,7 +73,7 @@
73
73
  {
74
74
  "kind": "work",
75
75
  "label": "require/real work wake",
76
- "prompt": "Resident researcher r-2 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮0\nNew items:\n (no new messages)\n\n\n【顺手形式化(强制)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。本模式下,任何要定论为真/假的对象都必须先有 Lean 通过或显式阻塞记录。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}\n\n[NEW MESSAGE from facilitator]\n请继续推进。"
76
+ "prompt": "Resident researcher r-2 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮0\nNew items:\n (no new messages)\n\n\n【顺手形式化(强制)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。\n · 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)。**没把握的先别入库**——\n 进了 Formal/Proved 的东西会被当成已核对引理;没把握就记 blocked 并写清难点,别用形式化掩盖不确定。\n · 复用优先:写新定义/证明前**先 vibe_v4_lean_lib 查已有库**;复用已归档内容用\n `import Formal.Lib.<name>` / `import Formal.Proved.<name>`(模块根 = VibeMath 根,框架已把它加进编译搜索路径),\n 或 `vibe_v4_lean_read {name}` 取原文逐字复制。**查不到再新写**;同内容重复归档会自动去重。\n · 编译默认走后台队列(leanAsync=true):入队后你可以继续工作;用 vibe_v4_lean_lib 的 jobs 字段或下一轮提示里的\n 【形式化结果】行看结果。**在作业落地为\"通过\"之前,不得把该对象当成已通过。**本模式下,任何要定论为真/假的对象都必须先有 Lean 通过或显式阻塞记录。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\n\n- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。\n- math_computation:本机可用 (无)。需要数值/符号/统计计算时先 probe 再 run(工具路径会留下可复核回执,结论请引用回执路径);缺包时如实说明并给替代方案或安装计划(不要假装),安装需先出计划并征得确认。\n- shell 兜底标注:工具不可用而改用宿主 shell 时,结论必须写\"未经工具归档(shell 路径)\",且不得与工具回执混同(shell 无回执、无超时/输出上限保证)。\n- 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。\n- 需要精确数值、符号化简、反例搜索、统计或线性代数时调用 math_computation:先 probe,再 run。\n- 复核他人的数值结论时用 op:'receipt'(或 op:'run', mode:'file' 指向同一脚本)重跑,并把回执路径写进报告。\n- 归档即引用:报告里带 Computation/<id>/receipt.json;这是\"支撑材料\"的用法。\n- 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)——没把握的先别入库。\n- 不得把计算结果当成\"已证明\":对象是否已验证仍只由本预设既有的验证/共识路径给出。\n- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。\n- math_computation: available (none). Probe first, then run (the tool path leaves a re-runnable receipt - cite it). If a package is missing, say so and offer a fallback or an install plan; installing requires a plan plus confirmation.\n- Shell fallback: if the tool cannot run you may use the host shell, but mark the conclusion \"not tool-archived (shell path)\" - shell runs have no receipt and no timeout/output guarantees; only tool-routed computations count as reproducible supporting material.\n- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.\n- Call math_computation for exact numerics, symbolic simplification, counter-example search, statistics or linear algebra: probe first, then run.\n- To re-check someone else's numeric conclusion, re-run the same script (op:'receipt' or op:'run', mode:'file') and cite the receipt path.\n- Archive means cite: put Computation/<id>/receipt.json in your report - that is what \"supporting material\" means.\n- Criteria: (1) valuable or likely reusable; (2) important or necessary; (3) you are confident in it - do not archive what you are unsure about.\n- Never treat a computation result as \"proved\": whether an object is verified is still decided only by this preset's existing verification/consensus path.\n- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}\n\n[NEW MESSAGE from facilitator]\n请继续推进。"
77
77
  },
78
78
  {
79
79
  "kind": "hint",
@@ -83,7 +83,7 @@
83
83
  {
84
84
  "kind": "hint",
85
85
  "label": "lean_lib hint",
86
- "prompt": "复用优先:先在 Lib/ 里找现成定义;新定义用 vibe_v4_lean_archive kind='def' 归档,已证引理用 kind='lemma'。"
86
+ "prompt": "复用优先:先在 Lib/ 里找现成定义(vibe_v4_lean_read 可取原文逐字复制);新定义用 vibe_v4_lean_archive kind='def' 归档,已证引理用 kind='lemma';后台编译进度看 jobs。"
87
87
  },
88
88
  {
89
89
  "kind": "meeting",
@@ -98,22 +98,22 @@
98
98
  {
99
99
  "kind": "work",
100
100
  "label": "normal + queued inbox line ([<sender>] content)",
101
- "prompt": "Resident researcher r-1 — 第 1 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮1\n- r-2「(未定)」active·轮1\nNew items:\n [facilitator(框架/人类信使,不是常驻成员,不要向它回信;要回话请用本轮回执的 \"input\" 或 vibe_v4_send_message {to:\"all\"})] 请优先核对引理 B 的假设条件。\n\n\n【顺手形式化(强制)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。本模式下,任何要定论为真/假的对象都必须先有 Lean 通过或显式阻塞记录。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
101
+ "prompt": "Resident researcher r-1 — 第 1 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮1\n- r-2「(未定)」active·轮1\nNew items:\n [facilitator(框架/人类信使,不是常驻成员,不要向它回信;要回话请用本轮回执的 \"input\" 或 vibe_v4_send_message {to:\"all\"})] 请优先核对引理 B 的假设条件。\n\n\n【顺手形式化(强制)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。\n · 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)。**没把握的先别入库**——\n 进了 Formal/Proved 的东西会被当成已核对引理;没把握就记 blocked 并写清难点,别用形式化掩盖不确定。\n · 复用优先:写新定义/证明前**先 vibe_v4_lean_lib 查已有库**;复用已归档内容用\n `import Formal.Lib.<name>` / `import Formal.Proved.<name>`(模块根 = VibeMath 根,框架已把它加进编译搜索路径),\n 或 `vibe_v4_lean_read {name}` 取原文逐字复制。**查不到再新写**;同内容重复归档会自动去重。\n · 编译默认走后台队列(leanAsync=true):入队后你可以继续工作;用 vibe_v4_lean_lib 的 jobs 字段或下一轮提示里的\n 【形式化结果】行看结果。**在作业落地为\"通过\"之前,不得把该对象当成已通过。**本模式下,任何要定论为真/假的对象都必须先有 Lean 通过或显式阻塞记录。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\n\n- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。\n- math_computation:本机可用 (无)。需要数值/符号/统计计算时先 probe 再 run(工具路径会留下可复核回执,结论请引用回执路径);缺包时如实说明并给替代方案或安装计划(不要假装),安装需先出计划并征得确认。\n- shell 兜底标注:工具不可用而改用宿主 shell 时,结论必须写\"未经工具归档(shell 路径)\",且不得与工具回执混同(shell 无回执、无超时/输出上限保证)。\n- 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。\n- 需要精确数值、符号化简、反例搜索、统计或线性代数时调用 math_computation:先 probe,再 run。\n- 复核他人的数值结论时用 op:'receipt'(或 op:'run', mode:'file' 指向同一脚本)重跑,并把回执路径写进报告。\n- 归档即引用:报告里带 Computation/<id>/receipt.json;这是\"支撑材料\"的用法。\n- 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)——没把握的先别入库。\n- 不得把计算结果当成\"已证明\":对象是否已验证仍只由本预设既有的验证/共识路径给出。\n- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。\n- math_computation: available (none). Probe first, then run (the tool path leaves a re-runnable receipt - cite it). If a package is missing, say so and offer a fallback or an install plan; installing requires a plan plus confirmation.\n- Shell fallback: if the tool cannot run you may use the host shell, but mark the conclusion \"not tool-archived (shell path)\" - shell runs have no receipt and no timeout/output guarantees; only tool-routed computations count as reproducible supporting material.\n- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.\n- Call math_computation for exact numerics, symbolic simplification, counter-example search, statistics or linear algebra: probe first, then run.\n- To re-check someone else's numeric conclusion, re-run the same script (op:'receipt' or op:'run', mode:'file') and cite the receipt path.\n- Archive means cite: put Computation/<id>/receipt.json in your report - that is what \"supporting material\" means.\n- Criteria: (1) valuable or likely reusable; (2) important or necessary; (3) you are confident in it - do not archive what you are unsure about.\n- Never treat a computation result as \"proved\": whether an object is verified is still decided only by this preset's existing verification/consensus path.\n- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
102
102
  },
103
103
  {
104
104
  "kind": "work",
105
105
  "label": "normal + delivered message frame ([NEW MESSAGE from ...])",
106
- "prompt": "Resident researcher r-1 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮0\nNew items:\n (no new messages)\n\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40}\n\n[NEW MESSAGE from facilitator]\n请优先核对引理 B 的假设条件。"
106
+ "prompt": "Resident researcher r-1 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮0\nNew items:\n (no new messages)\n\n\n- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。\n- math_computation:本机可用 (无)。需要数值/符号/统计计算时先 probe 再 run(工具路径会留下可复核回执,结论请引用回执路径);缺包时如实说明并给替代方案或安装计划(不要假装),安装需先出计划并征得确认。\n- shell 兜底标注:工具不可用而改用宿主 shell 时,结论必须写\"未经工具归档(shell 路径)\",且不得与工具回执混同(shell 无回执、无超时/输出上限保证)。\n- 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。\n- 需要精确数值、符号化简、反例搜索、统计或线性代数时调用 math_computation:先 probe,再 run。\n- 复核他人的数值结论时用 op:'receipt'(或 op:'run', mode:'file' 指向同一脚本)重跑,并把回执路径写进报告。\n- 归档即引用:报告里带 Computation/<id>/receipt.json;这是\"支撑材料\"的用法。\n- 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)——没把握的先别入库。\n- 不得把计算结果当成\"已证明\":对象是否已验证仍只由本预设既有的验证/共识路径给出。\n- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。\n- math_computation: available (none). Probe first, then run (the tool path leaves a re-runnable receipt - cite it). If a package is missing, say so and offer a fallback or an install plan; installing requires a plan plus confirmation.\n- Shell fallback: if the tool cannot run you may use the host shell, but mark the conclusion \"not tool-archived (shell path)\" - shell runs have no receipt and no timeout/output guarantees; only tool-routed computations count as reproducible supporting material.\n- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.\n- Call math_computation for exact numerics, symbolic simplification, counter-example search, statistics or linear algebra: probe first, then run.\n- To re-check someone else's numeric conclusion, re-run the same script (op:'receipt' or op:'run', mode:'file') and cite the receipt path.\n- Archive means cite: put Computation/<id>/receipt.json in your report - that is what \"supporting material\" means.\n- Criteria: (1) valuable or likely reusable; (2) important or necessary; (3) you are confident in it - do not archive what you are unsure about.\n- Never treat a computation result as \"proved\": whether an object is verified is still decided only by this preset's existing verification/consensus path.\n- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40}\n\n[NEW MESSAGE from facilitator]\n请优先核对引理 B 的假设条件。"
107
107
  },
108
108
  {
109
109
  "kind": "work",
110
110
  "label": "normal + group-chat frame ([群聊])",
111
- "prompt": "Resident researcher r-1 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮1\nNew items:\n (no new messages)\n\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40}\n\n[MESSAGE from r-2]\n[群聊] 我对引理 B 的假设有异议:需要 n≥1。"
111
+ "prompt": "Resident researcher r-1 — 第 0 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮0\n- r-2「(未定)」active·轮1\nNew items:\n (no new messages)\n\n\n- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。\n- math_computation:本机可用 (无)。需要数值/符号/统计计算时先 probe 再 run(工具路径会留下可复核回执,结论请引用回执路径);缺包时如实说明并给替代方案或安装计划(不要假装),安装需先出计划并征得确认。\n- shell 兜底标注:工具不可用而改用宿主 shell 时,结论必须写\"未经工具归档(shell 路径)\",且不得与工具回执混同(shell 无回执、无超时/输出上限保证)。\n- 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。\n- 需要精确数值、符号化简、反例搜索、统计或线性代数时调用 math_computation:先 probe,再 run。\n- 复核他人的数值结论时用 op:'receipt'(或 op:'run', mode:'file' 指向同一脚本)重跑,并把回执路径写进报告。\n- 归档即引用:报告里带 Computation/<id>/receipt.json;这是\"支撑材料\"的用法。\n- 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)——没把握的先别入库。\n- 不得把计算结果当成\"已证明\":对象是否已验证仍只由本预设既有的验证/共识路径给出。\n- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。\n- math_computation: available (none). Probe first, then run (the tool path leaves a re-runnable receipt - cite it). If a package is missing, say so and offer a fallback or an install plan; installing requires a plan plus confirmation.\n- Shell fallback: if the tool cannot run you may use the host shell, but mark the conclusion \"not tool-archived (shell path)\" - shell runs have no receipt and no timeout/output guarantees; only tool-routed computations count as reproducible supporting material.\n- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.\n- Call math_computation for exact numerics, symbolic simplification, counter-example search, statistics or linear algebra: probe first, then run.\n- To re-check someone else's numeric conclusion, re-run the same script (op:'receipt' or op:'run', mode:'file') and cite the receipt path.\n- Archive means cite: put Computation/<id>/receipt.json in your report - that is what \"supporting material\" means.\n- Criteria: (1) valuable or likely reusable; (2) important or necessary; (3) you are confident in it - do not archive what you are unsure about.\n- Never treat a computation result as \"proved\": whether an object is verified is still decided only by this preset's existing verification/consensus path.\n- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40}\n\n[MESSAGE from r-2]\n[群聊] 我对引理 B 的假设有异议:需要 n≥1。"
112
112
  },
113
113
  {
114
114
  "kind": "work",
115
115
  "label": "task frame ([YOU CLAIMED TASK ...])",
116
- "prompt": "Resident researcher r-1 — 第 2 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮2\n- r-2「(未定)」active·轮2\nNew items:\n (no new messages)\n\n\n【顺手形式化(强制)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。本模式下,任何要定论为真/假的对象都必须先有 Lean 通过或显式阻塞记录。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}\n\n[YOU CLAIMED TASK <TASKID>] 核对引理 B 的假设 — 确认 n≥1 是否必要"
116
+ "prompt": "Resident researcher r-1 — 第 2 轮。一切由你和团队讨论决定。动手前先**读别人的库**对齐事实、避免重复;把新进展/结论**直接用 fs 写进你自己的文件**;想对团队说的话放 \"input\"(会转给其他常驻)。\n\n团队成员:\n- r-1「(未定)」active·轮2\n- r-2「(未定)」active·轮2\nNew items:\n (no new messages)\n\n\n【顺手形式化(强制)】把你工作中常用或可能复用的对象、假设、新定义,用 Lean 形式化定义并归档到全局可复用库(vibe_v4_lean_archive kind='def'),已成立的引理归到 Formal/Proved/(kind='lemma');写之前先 vibe_v4_lean_lib 查重,避免重复定义。\n · 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)。**没把握的先别入库**——\n 进了 Formal/Proved 的东西会被当成已核对引理;没把握就记 blocked 并写清难点,别用形式化掩盖不确定。\n · 复用优先:写新定义/证明前**先 vibe_v4_lean_lib 查已有库**;复用已归档内容用\n `import Formal.Lib.<name>` / `import Formal.Proved.<name>`(模块根 = VibeMath 根,框架已把它加进编译搜索路径),\n 或 `vibe_v4_lean_read {name}` 取原文逐字复制。**查不到再新写**;同内容重复归档会自动去重。\n · 编译默认走后台队列(leanAsync=true):入队后你可以继续工作;用 vibe_v4_lean_lib 的 jobs 字段或下一轮提示里的\n 【形式化结果】行看结果。**在作业落地为\"通过\"之前,不得把该对象当成已通过。**本模式下,任何要定论为真/假的对象都必须先有 Lean 通过或显式阻塞记录。归档前先跑通(vibe_v4_lean_run 或 run=true);跑不通的定义不要进可复用库。\n\n- math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。\n- math_computation:本机可用 (无)。需要数值/符号/统计计算时先 probe 再 run(工具路径会留下可复核回执,结论请引用回执路径);缺包时如实说明并给替代方案或安装计划(不要假装),安装需先出计划并征得确认。\n- shell 兜底标注:工具不可用而改用宿主 shell 时,结论必须写\"未经工具归档(shell 路径)\",且不得与工具回执混同(shell 无回执、无超时/输出上限保证)。\n- 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。\n- 需要精确数值、符号化简、反例搜索、统计或线性代数时调用 math_computation:先 probe,再 run。\n- 复核他人的数值结论时用 op:'receipt'(或 op:'run', mode:'file' 指向同一脚本)重跑,并把回执路径写进报告。\n- 归档即引用:报告里带 Computation/<id>/receipt.json;这是\"支撑材料\"的用法。\n- 判断标准:① 有价值或可能复用;② 较为关键或必要;③ 你对该陈述有把握(置信度高)——没把握的先别入库。\n- 不得把计算结果当成\"已证明\":对象是否已验证仍只由本预设既有的验证/共识路径给出。\n- 替代必须声明(诚实性):当替代方案改变了**精确性或结论强度**时(精确符号解 → 数值近似、闭式解 → 采样/求积、改了精度/容差/假设、换了算法类),结论里**必须写明**,不得读起来像得到了原本(精确/所要求的)结果;拿不到精确结果就直说。\n- math_computation: available (none). Probe first, then run (the tool path leaves a re-runnable receipt - cite it). If a package is missing, say so and offer a fallback or an install plan; installing requires a plan plus confirmation.\n- Shell fallback: if the tool cannot run you may use the host shell, but mark the conclusion \"not tool-archived (shell path)\" - shell runs have no receipt and no timeout/output guarantees; only tool-routed computations count as reproducible supporting material.\n- Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.\n- Call math_computation for exact numerics, symbolic simplification, counter-example search, statistics or linear algebra: probe first, then run.\n- To re-check someone else's numeric conclusion, re-run the same script (op:'receipt' or op:'run', mode:'file') and cite the receipt path.\n- Archive means cite: put Computation/<id>/receipt.json in your report - that is what \"supporting material\" means.\n- Criteria: (1) valuable or likely reusable; (2) important or necessary; (3) you are confident in it - do not archive what you are unsure about.\n- Never treat a computation result as \"proved\": whether an object is verified is still decided only by this preset's existing verification/consensus path.\n- Declare substitutions (honesty): when an alternative changes EXACTNESS or conclusion strength (exact symbolic solution -> numerical approximation, closed form -> sampling/quadrature, changed precision/tolerances/assumptions, a different algorithm class), the conclusion MUST say so explicitly and must not read as if the original (exact/requested) result had been obtained; if the exact result is unavailable, say so plainly.\nReply with ONLY a JSON object:\n{\"summary\":\"<what you did / decided this round, 1-3 sentences>\",\"input\":\"<optional: a message to the whole team, or \\\"\\\">\",\"solved\":false,\"propose_verify\":\"<id|null>\",\"propose_meeting\":\"<agenda|null>\",\"propose_task\":\"<task title|null>\",\"task_desc\":\"<optional: why this task matters / what it covers|null>\",\"claim_task\":\"<task id|null>\",\"task_done\":\"<task id|null>\",\"contextPct\":40,\"formal\":{\"target\":\"<对象 id>\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/<对象 id>.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}\n\n[YOU CLAIMED TASK <TASKID>] 核对引理 B 的假设 — 确认 n≥1 是否必要"
117
117
  }
118
118
  ]
119
119
  }