dsh-vibe-math 2.7.2 → 2.8.0

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 (153) hide show
  1. package/LICENSE +21 -21
  2. package/README.en.md +682 -681
  3. package/README.md +683 -682
  4. package/cordis.patch.yml +112 -16
  5. package/docs/AUDIT-CHECKLIST.md +755 -518
  6. package/docs/COMPAT-AUDIT-ROUND2.md +354 -328
  7. package/docs/COMPAT-AUDIT-ROUND3.md +154 -154
  8. package/docs/audit-methodology.md +93 -0
  9. package/docs/final-paper.md +172 -172
  10. package/docs/formal-verification.md +613 -588
  11. package/docs/generate_framework_diagram_v2.py +114 -114
  12. package/docs/generate_framework_diagram_v3.py +127 -127
  13. package/docs/math-computation.md +195 -187
  14. package/docs/parameter-schema.md +37 -0
  15. package/docs/release-notes/README.en.md +2 -0
  16. package/docs/release-notes/README.md +2 -0
  17. package/docs/release-notes/RELEASE-NOTES-2.0.22.md +112 -112
  18. package/docs/release-notes/RELEASE-NOTES-2.1.0.md +143 -143
  19. package/docs/release-notes/RELEASE-NOTES-2.2.0.md +266 -266
  20. package/docs/release-notes/RELEASE-NOTES-2.2.1.md +43 -43
  21. package/docs/release-notes/RELEASE-NOTES-2.2.2.md +88 -88
  22. package/docs/release-notes/RELEASE-NOTES-2.3.0.md +207 -207
  23. package/docs/release-notes/RELEASE-NOTES-2.3.1.md +134 -134
  24. package/docs/release-notes/RELEASE-NOTES-2.3.10.md +105 -105
  25. package/docs/release-notes/RELEASE-NOTES-2.3.11.md +57 -57
  26. package/docs/release-notes/RELEASE-NOTES-2.3.12.md +80 -80
  27. package/docs/release-notes/RELEASE-NOTES-2.3.2.md +145 -145
  28. package/docs/release-notes/RELEASE-NOTES-2.3.3.md +115 -115
  29. package/docs/release-notes/RELEASE-NOTES-2.3.4.md +69 -69
  30. package/docs/release-notes/RELEASE-NOTES-2.3.5.md +63 -63
  31. package/docs/release-notes/RELEASE-NOTES-2.3.6.md +66 -66
  32. package/docs/release-notes/RELEASE-NOTES-2.3.7.md +59 -59
  33. package/docs/release-notes/RELEASE-NOTES-2.3.8.md +45 -45
  34. package/docs/release-notes/RELEASE-NOTES-2.3.9.md +70 -70
  35. package/docs/release-notes/RELEASE-NOTES-2.7.2.en.md +2 -2
  36. package/docs/release-notes/RELEASE-NOTES-2.7.2.md +3 -3
  37. package/docs/release-notes/RELEASE-NOTES-2.7.3.en.md +67 -0
  38. package/docs/release-notes/RELEASE-NOTES-2.7.3.md +67 -0
  39. package/docs/release-notes/RELEASE-NOTES-2.8.0.en.md +65 -0
  40. package/docs/release-notes/RELEASE-NOTES-2.8.0.md +65 -0
  41. package/docs/release-notes/TEMPLATE.md +6 -0
  42. package/docs/release-playbook.md +103 -0
  43. package/docs/slv-playbook.md +117 -0
  44. package/docs/status-report-fields.md +167 -0
  45. package/docs/test-timing.md +158 -154
  46. package/docs//346/236/266/346/236/204/345/233/276.md +77 -77
  47. package/installer.js +793 -783
  48. package/package.json +260 -203
  49. package/prompt-corpus-persona/persona-corpus.json +9 -9
  50. package/prompt-corpus-persona/persona-corpus.md +225 -33
  51. package/prompt-corpus-v2/formal-verify-v2.json +295 -115
  52. package/prompt-corpus-v2/formal-verify-v2.md +2290 -282
  53. package/prompt-corpus-v3/formal-verify-v3.json +112 -112
  54. package/prompt-corpus-v3/formal-verify-v3.md +227 -143
  55. package/prompt-corpus-v4/formal-verify-v4.json +18 -18
  56. package/prompt-corpus-v4/formal-verify-v4.md +49 -44
  57. package/prompt-corpus-v5/prompt-corpus-v5.json +82 -82
  58. package/prompt-corpus-v5/prompt-corpus-v5.md +573 -207
  59. package/scripts/clean-temp.mjs +234 -0
  60. package/scripts/update-doc-counts.mjs +71 -0
  61. package/tests/audit-artifact-docs.mjs +72 -0
  62. package/tests/audit-artifact-docs.mutants.mjs +58 -0
  63. package/tests/audit-engine-faces.mjs +298 -0
  64. package/tests/audit-formal-sensitivity.mjs +345 -342
  65. package/tests/audit-installer-assertions.mutants.mjs +63 -0
  66. package/tests/audit-installer-compat.test.mjs +256 -208
  67. package/tests/audit-installer-policy.test.mjs +41 -8
  68. package/tests/audit-math-computation-contract.mjs +64 -8
  69. package/tests/audit-math-computation-contract.mutants.mjs +106 -0
  70. package/tests/audit-math-computation-parity.mjs +164 -3
  71. package/tests/audit-math-computation-sensitivity.mjs +5 -3
  72. package/tests/audit-package-membership.mjs +57 -0
  73. package/tests/audit-package-membership.mutants.mjs +28 -0
  74. package/tests/audit-participant-set-parity.mjs +160 -0
  75. package/tests/audit-path-discipline.mjs +83 -0
  76. package/tests/audit-path-discipline.mutants.mjs +51 -0
  77. package/tests/audit-persona-sensitivity.mjs +323 -309
  78. package/tests/audit-persona-surface.mutants.mjs +69 -0
  79. package/tests/audit-persona-surface.test.mjs +431 -390
  80. package/tests/audit-prompt-duplication.mjs +143 -0
  81. package/tests/audit-prompt-duplication.mutants.mjs +51 -0
  82. package/tests/audit-prompt-invariants.mjs +589 -508
  83. package/tests/audit-readme-bilingual.test.mjs +152 -0
  84. package/tests/audit-readme-counts.mjs +95 -0
  85. package/tests/audit-readme-counts.mutants.mjs +52 -0
  86. package/tests/audit-registration.mjs +78 -0
  87. package/tests/audit-spec-traceability.mjs +193 -193
  88. package/tests/audit-status-report-fields.mjs +172 -0
  89. package/tests/audit-status-report-fields.mutants.mjs +64 -0
  90. package/tests/audit-v3-registration-parity.mjs +156 -0
  91. package/tests/audit-v5-integrity.mjs +795 -508
  92. package/tests/audit-v5-lean-abstention.mjs +392 -0
  93. package/tests/audit-v5-lean-abstention.mutants.mjs +106 -0
  94. package/tests/audit-v5-prompt-duplication.mjs +88 -0
  95. package/tests/audit-v5-prompt-duplication.mutants.mjs +34 -0
  96. package/tests/audit-v5-sensitivity.mjs +433 -427
  97. package/tests/e2e-identity-a6.mutants.mjs +65 -0
  98. package/tests/e2e-v5-round2.test.mjs +2453 -1981
  99. package/tests/formal-verify-v2.test.mjs +1778 -1724
  100. package/tests/formal-verify-v3.mutants.mjs +117 -0
  101. package/tests/formal-verify-v3.test.mjs +1724 -1671
  102. package/tests/formal-verify-v4.mutants.mjs +152 -0
  103. package/tests/formal-verify-v4.test.mjs +2114 -1574
  104. package/tests/formal-verify-v5.test.mjs +790 -724
  105. package/tests/helpers/doc-counts-format.mjs +41 -0
  106. package/tests/helpers/math-computation-fake-seam.mjs +4 -0
  107. package/tests/math-computation-a1.mutants.mjs +72 -0
  108. package/tests/math-computation-archive-rerun.mutants.mjs +65 -0
  109. package/tests/math-computation-discovery.mutants.mjs +76 -0
  110. package/tests/math-computation-shared.test.mjs +392 -6
  111. package/tests/math-computation-v2.test.mjs +779 -0
  112. package/tests/math-computation-v3.test.mjs +771 -0
  113. package/tests/math-computation-v4.mutants.mjs +133 -0
  114. package/tests/math-computation-v4.test.mjs +739 -0
  115. package/tests/prompt-v5-integrity.test.mjs +1291 -1280
  116. package/tests/run-tests.mjs +393 -202
  117. package/tests/run-tests.mutants.mjs +70 -0
  118. package/tests/selfdrive-v5.mjs +560 -508
  119. package/tests/selfdrive-v5.mutants.mjs +132 -0
  120. package/tests/temp-hygiene.mutants.mjs +80 -0
  121. package/tests/v2-fix-probes.mutants.mjs +104 -0
  122. package/tests/v2-fix-probes.test.mjs +1040 -0
  123. package/tests/v2-list-agents-and-next-step.mutants.mjs +106 -0
  124. package/tests/v2v3-interrupt.mutants.mjs +111 -0
  125. package/tests/v3-fix-probes.mutants.mjs +99 -0
  126. package/tests/v3-fix-probes.test.mjs +892 -0
  127. package/tests/v4-final-paper.mutants.mjs +108 -0
  128. package/tests/v5-institute-fixes.mutants.mjs +218 -0
  129. package/vibe-math-v2/agent.cordis.yml +378 -322
  130. package/vibe-math-v2/math-computation.js +144 -53
  131. package/vibe-math-v2/math-engines.js +12 -12
  132. package/vibe-math-v2/preset.yml +2 -2
  133. package/vibe-math-v2/v2/347/232/204/351/242/235/345/244/226/350/246/201/346/261/202.txt +21 -21
  134. package/vibe-math-v2/vibe-math-v2.js +5097 -4755
  135. package/vibe-math-v2//345/256/236/347/216/260/346/226/271/346/241/210.md +491 -487
  136. package/vibe-math-v3/agent.cordis.yml +422 -356
  137. package/vibe-math-v3/math-computation.js +144 -53
  138. package/vibe-math-v3/math-engines.js +12 -12
  139. package/vibe-math-v3/preset.yml +2 -2
  140. package/vibe-math-v3/vibe-math-v3.js +6235 -5873
  141. package/vibe-math-v3//345/256/236/347/216/260/346/226/271/346/241/210.md +649 -649
  142. package/vibe-math-v4/agent.cordis.yml +438 -402
  143. package/vibe-math-v4/math-computation.js +144 -53
  144. package/vibe-math-v4/math-engines.js +12 -12
  145. package/vibe-math-v4/preset.yml +2 -2
  146. package/vibe-math-v4/vibe-math-v4.js +4490 -4269
  147. package/vibe-math-v4//345/256/236/347/216/260/346/226/271/346/241/210.md +1015 -1013
  148. package/vibe-math-v5/agent.cordis.yml +46 -12
  149. package/vibe-math-v5/math-computation.js +144 -53
  150. package/vibe-math-v5/math-engines.js +12 -12
  151. package/vibe-math-v5/vibe-math-v5.js +1266 -229
  152. package/vibe-math-v5//345/256/236/347/216/260/346/226/271/346/241/210.md +1728 -1660
  153. package/vibe-math-v5//346/236/266/346/236/204/345/233/276.md +693 -693
@@ -3,62 +3,62 @@
3
3
  {
4
4
  "kind": "verify",
5
5
  "label": "off/verify",
6
- "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\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}"
6
+ "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 附近的值表达)。\n判定规则:**仅当全体在册常驻都恰好给 1(都认为是真)、或都恰好给 0(都认为是假)**,才按「真/假」写入 Verified/ 并回写来源卡的「已验证·真/假」;否则**只按概率数值(一种程度)保留在库中**,附全组平均正确概率,不写成真/假。\n请给出你**诚实独立的判断**。\n\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}"
7
7
  },
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\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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以打开它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有);编辑后用 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so open it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt); 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}"
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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到\"改过代码\"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true` 与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**\"同一归档的新 attempt\"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT \"a new attempt of the same archive\", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **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 · 形式化只写你有把握的版本;没把握就记 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\":\"难度判断/阻塞原因/具体偏差\"}}"
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 附近的值表达)。\n · 另一种弃权:已归档的机器检查证明与命题原文不一致、你**不能**用 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 查重,避免重复定义。\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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以打开它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有);编辑后用 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so open it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt); 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\":\"难度判断/阻塞原因/具体偏差\"}}"
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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到\"改过代码\"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true` 与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**\"同一归档的新 attempt\"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT \"a new attempt of the same archive\", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **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 查重,避免重复定义。\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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以打开它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有);编辑后用 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so open it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt); 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\":\"难度判断/阻塞原因/具体偏差\"}}"
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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到\"改过代码\"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true` 与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**\"同一归档的新 attempt\"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT \"a new attempt of the same archive\", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **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 查重,避免重复定义。\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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以打开它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有);编辑后用 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so open it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt); 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."
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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到\"改过代码\"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true` 与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**\"同一归档的新 attempt\"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT \"a new attempt of the same archive\", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **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 · 形式化只写你有把握的版本;没把握就记 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\":\"难度判断/阻塞原因/具体偏差\"}}"
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 附近的值表达)。\n · 另一种弃权:已归档的机器检查证明与命题原文不一致、你**不能**用 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 · 形式化只写你有把握的版本;没把握就记 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\":\"难度判断/阻塞原因/具体偏差\"}}"
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 附近的值表达)。\n · 另一种弃权:已归档的机器检查证明与命题原文不一致、你**不能**用 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 查重,避免重复定义。\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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以打开它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有);编辑后用 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so open it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt); 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\":\"难度判断/阻塞原因/具体偏差\"}}"
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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到\"改过代码\"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true` 与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**\"同一归档的新 attempt\"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT \"a new attempt of the same archive\", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **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",
50
50
  "label": "passed/fidelity",
51
- "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus-passed(命题,提出者 )。\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 形式化证明**(Verified/Lean/p-corpus-passed.lean,最近运行 exit 0)。\n **你不需要重新检查推导**。你的任务是**忠实性审查**:逐条核对 Lean 代码里的\n 定义 / 对象 / 条件 / 假设 / 结论是否与命题原文**完全一致**。\n ▸ 一致 → verdict = 1。\n ▸ **发现任何偏差,不要投 0**:偏差只说明**形式化不合格**,不代表命题为假。此时请:\n ① verdict 给一个严格介于 0 与 1 之间的值(记为弃权),并在 reason 里写清偏差;\n ② 用回执 formal:{decision:'defect', note:'<具体偏差>'} 记录它。框架会撤回这条证明的\n 「已通过」状态(降级为 attempted、删除归档证明、写入形式化待办),本次裁定**不定论**;\n 修正形式化并重新跑通后再投票。\n ▸ 只有当你**独立于这份 Lean 代码**也能确定命题为假时,才投 0,并在 reason 里写清独立理由。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus-passed\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus-passed.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
51
+ "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus-passed(命题)。\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 附近的值表达)。\n · 另一种弃权:已归档的机器检查证明与命题原文不一致、你**不能**用 0 表达\"命题为假\"(此时请用 `formal` 回执的 `decision:\"defect\"` 报告偏差)。\n判定规则:**仅当全体在册常驻都恰好给 1(都认为是真)、或都恰好给 0(都认为是假)**,才按「真/假」写入 Verified/ 并回写来源卡的「已验证·真/假」;否则**只按概率数值(一种程度)保留在库中**,附全组平均正确概率,不写成真/假。\n请给出你**诚实独立的判断**。\n\n\n【Lean 形式化验证(强制模式)】\n · 该对象已有**通过的 Lean 形式化证明**(Verified/Lean/p-corpus-passed.lean,最近运行 exit 0)。\n **你不需要重新检查推导**。你的任务是**忠实性审查**:逐条核对 Lean 代码里的\n 定义 / 对象 / 条件 / 假设 / 结论是否与命题原文**完全一致**。\n ▸ 一致 → verdict = 1。\n ▸ **发现任何偏差,不要投 0**:偏差只说明**形式化不合格**,不代表命题为假。此时请:\n ① verdict 给一个严格介于 0 与 1 之间的值(记为弃权),并在 reason 里写清偏差;\n ② 用回执 formal:{decision:'defect', note:'<具体偏差>'} 记录它。框架会撤回这条证明的\n 「已通过」状态(降级为 attempted、删除归档证明、写入形式化待办),本次裁定**不定论**;\n 修正形式化并重新跑通后再投票。\n ▸ 只有当你**独立于这份 Lean 代码**也能确定命题为假时,才投 0,并在 reason 里写清独立理由。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus-passed\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus-passed.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
52
52
  },
53
53
  {
54
54
  "kind": "verify",
55
55
  "label": "passed/fidelity (encourage)",
56
- "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus-passed(命题,提出者 )。\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 形式化证明**(Verified/Lean/p-corpus-passed.lean,最近运行 exit 0)。\n **你不需要重新检查推导**。你的任务是**忠实性审查**:逐条核对 Lean 代码里的\n 定义 / 对象 / 条件 / 假设 / 结论是否与命题原文**完全一致**。\n ▸ 一致 → verdict = 1。\n ▸ **发现任何偏差,不要投 0**:偏差只说明**形式化不合格**,不代表命题为假。此时请:\n ① verdict 给一个严格介于 0 与 1 之间的值(记为弃权),并在 reason 里写清偏差;\n ② 用回执 formal:{decision:'defect', note:'<具体偏差>'} 记录它。框架会撤回这条证明的\n 「已通过」状态(降级为 attempted、删除归档证明、写入形式化待办);本档没有门禁:请务必给弃权值,以保证本轮无法得出一致结论;\n 修正形式化并重新跑通后再投票。\n ▸ 只有当你**独立于这份 Lean 代码**也能确定命题为假时,才投 0,并在 reason 里写清独立理由。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus-passed\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus-passed.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
56
+ "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus-passed(命题)。\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 附近的值表达)。\n · 另一种弃权:已归档的机器检查证明与命题原文不一致、你**不能**用 0 表达\"命题为假\"(此时请用 `formal` 回执的 `decision:\"defect\"` 报告偏差)。\n判定规则:**仅当全体在册常驻都恰好给 1(都认为是真)、或都恰好给 0(都认为是假)**,才按「真/假」写入 Verified/ 并回写来源卡的「已验证·真/假」;否则**只按概率数值(一种程度)保留在库中**,附全组平均正确概率,不写成真/假。\n请给出你**诚实独立的判断**。\n\n\n【Lean 形式化验证(鼓励模式)】\n · 该对象已有**通过的 Lean 形式化证明**(Verified/Lean/p-corpus-passed.lean,最近运行 exit 0)。\n **你不需要重新检查推导**。你的任务是**忠实性审查**:逐条核对 Lean 代码里的\n 定义 / 对象 / 条件 / 假设 / 结论是否与命题原文**完全一致**。\n ▸ 一致 → verdict = 1。\n ▸ **发现任何偏差,不要投 0**:偏差只说明**形式化不合格**,不代表命题为假。此时请:\n ① verdict 给一个严格介于 0 与 1 之间的值(记为弃权),并在 reason 里写清偏差;\n ② 用回执 formal:{decision:'defect', note:'<具体偏差>'} 记录它。框架会撤回这条证明的\n 「已通过」状态(降级为 attempted、删除归档证明、写入形式化待办);本档没有门禁:请务必给弃权值,以保证本轮无法得出一致结论;\n 修正形式化并重新跑通后再投票。\n ▸ 只有当你**独立于这份 Lean 代码**也能确定命题为假时,才投 0,并在 reason 里写清独立理由。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus-passed\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus-passed.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
57
57
  },
58
58
  {
59
59
  "kind": "verify",
60
60
  "label": "blocked/verify",
61
- "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus-blocked(命题,提出者 )。\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 · 该对象已被记录为**形式化阻塞**:需要未形式化的解析数论框架。\n 请复核这个判断是否成立;若你认为其实可以形式化,请指出来并动手做。\n ▸ 因此请把 verdict 用在\"这个阻塞判断是否成立 / 是否仍有别的形式化路线\"上,并给出理由。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus-blocked\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus-blocked.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
61
+ "prompt": "Resident r-1 — 团队验证。 The group is verifying object p-corpus-blocked(命题)。\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 附近的值表达)。\n · 另一种弃权:已归档的机器检查证明与命题原文不一致、你**不能**用 0 表达\"命题为假\"(此时请用 `formal` 回执的 `decision:\"defect\"` 报告偏差)。\n判定规则:**仅当全体在册常驻都恰好给 1(都认为是真)、或都恰好给 0(都认为是假)**,才按「真/假」写入 Verified/ 并回写来源卡的「已验证·真/假」;否则**只按概率数值(一种程度)保留在库中**,附全组平均正确概率,不写成真/假。\n请给出你**诚实独立的判断**。\n\n\n【Lean 形式化验证(强制模式)】\n · 该对象已被记录为**形式化阻塞**:需要未形式化的解析数论框架。\n 请复核这个判断是否成立;若你认为其实可以形式化,请指出来并动手做。\n ▸ 因此请把 verdict 用在\"这个阻塞判断是否成立 / 是否仍有别的形式化路线\"上,并给出理由。\n\nReply with ONLY a JSON object:\n{\"vote\":{\"verdict\":1,\"reason\":\"<your logic>\"}}\n若你本轮做了形式化或给出难度判断,请一并加上:\n{\"formal\":{\"target\":\"p-corpus-blocked\",\"decision\":\"used|blocked|defect\",\"file\":\"Formal/p-corpus-blocked.lean\",\"note\":\"难度判断/阻塞原因/具体偏差\"}}"
62
62
  },
63
63
  {
64
64
  "kind": "contract",
@@ -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 查重,避免重复定义。\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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以打开它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有);编辑后用 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so open it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt); 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请继续推进。"
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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到\"改过代码\"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true` 与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**\"同一归档的新 attempt\"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT \"a new attempt of the same archive\", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **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",
@@ -88,7 +88,7 @@
88
88
  {
89
89
  "kind": "meeting",
90
90
  "label": "meeting/first speaker (no prior speech)",
91
- "prompt": "Resident r-2 — 团队会议进行中。 A meeting is in progress (agenda: 分工与是否需要验证).\n这是一场真实讨论:下面已有人发言(转给你),请先看,然后**加入讨论/补充/反驳/表决**。\n(目前还没人发言,你先说。)\n\n你可以:提议任务(propose_task)、认领开放任务(claim_task)、提议验证对象(propose_verify)、或对\"原问题是否已解决\"表决(voteSolved)。请把**你的实际发言**写进 \"input\"。\n**停止表决必须是绝对票**:`voteSolved:true` 只表示你认为原问题**已解决**;只要有一名在册常驻没投 `true`(投 false、弃权、或漏写这个字段),run 就**不会**停止。不确定就投 false。\nReply with ONLY a JSON object:\n{\"input\":\"<your real contribution to this discussion>\",\"propose_task\":\"<task title or null>\",\"task_desc\":\"...\",\"claim_task\":\"<task id or null>\",\"propose_verify\":\"<id or null>\",\"voteSolved\":true}"
91
+ "prompt": "Resident r-2 — 团队会议进行中。 A meeting is in progress (agenda: 分工与是否需要验证).\n本轮是**并行独立发言**:同轮内不会有人先发言给你(唤醒是并行的),你的 input 会在**下一次唤醒/下一轮**转给其他人;请先给出你自己的判断。\n\n你可以:提议任务(propose_task)、认领开放任务(claim_task)、提议验证对象(propose_verify)、或对\"原问题是否已解决\"表决(voteSolved)。请把**你的实际发言**写进 \"input\"。\n**停止表决必须是绝对票**:`voteSolved:true` 只表示你认为原问题**已解决**;只要有一名在册常驻没投 `true`(投 false、弃权、或漏写这个字段),run 就**不会**停止。不确定就投 false。\nReply with ONLY a JSON object:\n{\"input\":\"<your real contribution to this discussion>\",\"propose_task\":\"<task title or null>\",\"task_desc\":\"...\",\"claim_task\":\"<task id or null>\",\"propose_verify\":\"<id or null>\",\"voteSolved\":true}"
92
92
  },
93
93
  {
94
94
  "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 查重,避免重复定义。\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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以打开它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有);编辑后用 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so open it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt); 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\":\"难度判断/阻塞原因/具体偏差\"}}"
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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到\"改过代码\"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true` 与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**\"同一归档的新 attempt\"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT \"a new attempt of the same archive\", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **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\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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以打开它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有);编辑后用 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so open it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt); 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 的假设条件。"
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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到\"改过代码\"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true` 与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**\"同一归档的新 attempt\"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT \"a new attempt of the same archive\", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **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\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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以打开它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有);编辑后用 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so open it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt); 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。"
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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到\"改过代码\"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true` 与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**\"同一归档的新 attempt\"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT \"a new attempt of the same archive\", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **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 查重,避免重复定义。\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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以打开它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有);编辑后用 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so open it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt); 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 是否必要"
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>,**相对项目根**);**成员的文件工具是按会话 cwd 解析的**,所以读它要用**绝对路径** `receipt.scriptAbs`,或把 `receipt.cwd` 与 `receipt.scriptPath` 拼起来(回执两个字段都有)。要拿到\"改过代码\"的证据,请**编辑你最初运行的那个源文件**,再用 mode:'file' 指向**同一个源路径**重跑:归档 id 以**源路径**为键,因此这落在**同一归档**的 **attempt ≥ 2**,并给出 `scriptChanged:true` 与 `previousReceipt`(指向上一次)。**指向归档副本本身**(`receipt.scriptAbs` 那个路径)按设计是**另一份新归档**:新 id、attempt 1、没有 `previousReceipt`、`scriptChanged:false`;旧 attempt 绝不会被覆盖,但它**不是**\"同一归档的新 attempt\"——工具会用 `fileIsArchivedScript` 与 `ARCHIVED_SCRIPT_RERUN` 警告明确说明。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 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>, **relative to the project root**); member file tools resolve paths against the SESSION CWD, so READ it via the ABSOLUTE `receipt.scriptAbs`, or join `receipt.cwd` with `receipt.scriptPath` (both are in the receipt). To produce evidence for EDITED code, edit the SOURCE FILE you originally ran and re-run mode:'file' pointing at THAT SAME PATH: the archive id is keyed by the SOURCE PATH, so this lands on the SAME archive as attempt >= 2, with `scriptChanged:true` and `previousReceipt` pointing at the previous attempt. Pointing mode:'file' at the ARCHIVED COPY itself (the `receipt.scriptAbs` path) is a DIFFERENT archive BY DESIGN - a new id, attempt 1, no `previousReceipt`, `scriptChanged:false`: the earlier attempt is never overwritten, but it is NOT \"a new attempt of the same archive\", and the tool says so via `fileIsArchivedScript` and the `ARCHIVED_SCRIPT_RERUN` warning. **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
  }