dsh-vibe-math 2.5.0 → 2.7.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 (59) hide show
  1. package/README.en.md +175 -369
  2. package/README.md +175 -370
  3. package/cordis.patch.yml +78 -22
  4. package/docs/AUDIT-CHECKLIST.md +3 -3
  5. package/docs/final-paper.md +172 -0
  6. package/docs/formal-verification.md +184 -29
  7. package/docs/math-computation.md +121 -0
  8. package/docs/release-notes/RELEASE-NOTES-2.6.0.md +268 -0
  9. package/docs/release-notes/RELEASE-NOTES-2.7.0.en.md +151 -0
  10. package/docs/release-notes/RELEASE-NOTES-2.7.0.md +115 -0
  11. package/docs/test-timing.md +25 -9
  12. package/installer.js +7 -4
  13. package/package.json +21 -3
  14. package/prompt-corpus-persona/persona-corpus.json +16 -16
  15. package/prompt-corpus-persona/persona-corpus.md +164 -52
  16. package/prompt-corpus-v2/formal-verify-v2.json +128 -92
  17. package/prompt-corpus-v2/formal-verify-v2.md +1574 -108
  18. package/prompt-corpus-v3/formal-verify-v3.json +137 -53
  19. package/prompt-corpus-v3/formal-verify-v3.md +1406 -100
  20. package/prompt-corpus-v4/formal-verify-v4.json +14 -14
  21. package/prompt-corpus-v4/formal-verify-v4.md +247 -14
  22. package/prompt-corpus-v5/prompt-corpus-v5.json +62 -62
  23. package/prompt-corpus-v5/prompt-corpus-v5.md +570 -3
  24. package/tests/audit-math-computation-contract.mjs +191 -0
  25. package/tests/audit-math-computation-parity.mjs +169 -0
  26. package/tests/audit-math-computation-sensitivity.mjs +231 -0
  27. package/tests/audit-persona-sensitivity.mjs +64 -11
  28. package/tests/audit-persona-surface.test.mjs +53 -16
  29. package/tests/audit-v5-integrity.mjs +14 -0
  30. package/tests/e2e-v5-round2.test.mjs +923 -3
  31. package/tests/formal-verify-v2.test.mjs +295 -6
  32. package/tests/formal-verify-v3.test.mjs +275 -4
  33. package/tests/formal-verify-v4.test.mjs +295 -6
  34. package/tests/formal-verify-v5.test.mjs +9 -1
  35. package/tests/helpers/math-computation-fake-seam.mjs +135 -0
  36. package/tests/math-computation-shared.test.mjs +504 -0
  37. package/tests/prompt-v5-integrity.test.mjs +14 -8
  38. package/tests/selfdrive-v5.mjs +55 -4
  39. package/vibe-math-v2/agent.cordis.yml +36 -14
  40. package/vibe-math-v2/math-computation.js +936 -0
  41. package/vibe-math-v2/math-engines.js +156 -0
  42. package/vibe-math-v2/vibe-math-v2.js +1653 -48
  43. package/vibe-math-v2//345/256/236/347/216/260/346/226/271/346/241/210.md +6 -0
  44. package/vibe-math-v3/agent.cordis.yml +30 -12
  45. package/vibe-math-v3/math-computation.js +936 -0
  46. package/vibe-math-v3/math-engines.js +156 -0
  47. package/vibe-math-v3/vibe-math-v3.js +1623 -53
  48. package/vibe-math-v3//345/256/236/347/216/260/346/226/271/346/241/210.md +6 -0
  49. package/vibe-math-v4/agent.cordis.yml +44 -8
  50. package/vibe-math-v4/math-computation.js +936 -0
  51. package/vibe-math-v4/math-engines.js +156 -0
  52. package/vibe-math-v4/vibe-math-v4.js +1592 -37
  53. package/vibe-math-v4//345/256/236/347/216/260/346/226/271/346/241/210.md +6 -0
  54. package/vibe-math-v5/agent.cordis.yml +46 -10
  55. package/vibe-math-v5/math-computation.js +936 -0
  56. package/vibe-math-v5/math-engines.js +156 -0
  57. package/vibe-math-v5/vibe-math-v5.js +2233 -42
  58. package/vibe-math-v5//345/256/236/347/216/260/346/226/271/346/241/210.md +153 -4
  59. package/vibe-math-v5//346/236/266/346/236/204/345/233/276.md +251 -0
@@ -5,8 +5,8 @@
5
5
 
6
6
  ## vibe-math-v2
7
7
 
8
- - 注册工具数:**25**
9
- - 斜杠命令 hint:`start|resume|pause|abort|status|report|mode <auto|manual>|setup|save|template [global|project]|add <id> <desc>|add-proposition <id> <概述>|list-propositions|project [list|new <name>|<name>]|decisions|agents`
8
+ - 注册工具数:**28**
9
+ - 斜杠命令 hint:`start|resume|pause|abort|status|report|mode <auto|manual>|setup|save|template [global|project]|add <id> <desc>|add-proposition <id> <概述>|list-propositions|project [list|new <name>|<name>]|decisions|agents|paper [lang=zh|en] [format=both|md|tex] [force]`
10
10
 
11
11
  ### config.prefix
12
12
 
@@ -28,16 +28,27 @@ programmatically runs explorer (direction setting) → per-direction solvers (ag
28
28
  - vibe_math_status / vibe_math_report — read scheduler status / full progress report (report also writes Progress_Logs/report.json).
29
29
  - vibe_math_pause / vibe_math_abort — pause / abort (abort interrupts all children).
30
30
  - vibe_math_set_mode {mode: manual|auto} — switch manual / auto control.
31
- - vibe_math_set_params {...} — tune any parameter (see vibe_math_setup for the full schema; e.g. reportMode file|push|both, promoteValueThreshold, verdictMode flat|forced, formalVerify off|encourage|require).
31
+ - vibe_math_set_params {...} — tune any parameter (see vibe_math_setup for the full schema; e.g. reportMode file|push|both, promoteValueThreshold, verdictMode flat|forced, formalVerify off|encourage|require, finalPaper true|false, paperFormat both|md|tex, paperLanguage zh|en, paperCompilePdf true|false, paperLatexCommand <engine>).
32
32
  - vibe_math_setup / vibe_math_save_settings / vibe_math_template — guided configuration / persist defaults / generate template.
33
33
  - vibe_math_new_project / vibe_math_set_project / vibe_math_list_projects — per-project folders.
34
34
  - vibe_math_list_decisions / vibe_math_decide {id, action: approve|reject|override, verdict?} — resolve manual decisions.
35
35
  - vibe_math_list_agents / vibe_math_message_agent / vibe_math_interrupt_agent — inspect / steer / interrupt subagents.
36
- - vibe_math_lean_run / vibe_math_lean_archive / vibe_math_lean_lib — Lean formal
37
- verification (execute / archive / list the reuse library). The scheduler's child agents
38
- use them too; they work in every mode.
39
-
40
- A /vibe slash command mirrors the main controls. Data lives under {{cwd}}/VibeMath/Projects/<project>/
36
+ - vibe_math_lean_run / vibe_math_lean_archive / vibe_math_lean_lib / vibe_math_lean_read /
37
+ vibe_math_lean_job — Lean formal verification (execute / archive / list + read the reuse
38
+ library / inspect or wait for a background compile job). leanAsync=true (default) queues the
39
+ compile and returns a jobId; nothing counts as proved until that job settles ok (so "有把握"
40
+ is not the same as "已验证"). The scheduler's child agents use them too; they work in every
41
+ mode.
42
+
43
+ - math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
44
+ - 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
45
+
46
+ Final paper: strict termination writes Paper/<project>/{paper.md,paper.tex,paper.pdf,paper.meta.json,paper.log.md}
47
+ automatically — a dedicated paper-writing child assembles the solved material (finalPaper=false disables only that
48
+ automatic run). /vibe paper [lang=zh|en] [format=both|md|tex] [force] writes or rewrites it by hand. md/tex follow
49
+ paperFormat; a PDF is produced only when a LaTeX engine is detected and paperCompilePdf is true.
50
+ A /vibe slash command mirrors the main controls (/vibe start|resume|pause|abort|status|report|mode <auto|manual>|setup|save|template [global|project]|add <id> <desc>|add-proposition <id> <概述>|list-propositions|project [list|new <name>|<name>]|decisions|agents|paper [lang=zh|en] [format=both|md|tex] [force]).
51
+ Data lives under {{cwd}}/VibeMath/Projects/<project>/
41
52
  (qs/qs.json, Propos/<分类>_Propos.json, Reliable/, Verified/, Verification_logs/, Progress_Logs/, VibeMath_State/)
42
53
  and survives restarts via vibe_math_resume.
43
54
 
@@ -69,7 +80,7 @@ LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
69
80
  explicit, reasoned blocker record; the scheduler is never wedged by it).
70
81
  - Paths: work file Formal/<id>.lean; archived proof Verified/Lean/<id>.lean; reusable
71
82
  definitions VibeMath/Formal/Lib/; proved lemmas VibeMath/Formal/Proved/.
72
- - The toolchain knobs leanCommand / leanArgs / leanTimeoutMs are tunable as well
83
+ - The toolchain knobs leanCommand / leanArgs / leanTimeoutMs / leanAsync / leanInitiative / leanSearchPaths / leanJobsMaxParallel are tunable as well
73
84
  (e.g. leanCommand='lake' with leanArgs=['env','lean']); a missing Lean binary is
74
85
  reported as LEAN_NOT_FOUND and still lets the code be written and archived.
75
86
  - vibe_math_status / vibe_math_report show the mode, the per-object formal status and the
@@ -97,16 +108,27 @@ programmatically runs explorer (direction setting) → per-direction solvers (ag
97
108
  - vibe_math_status / vibe_math_report — read scheduler status / full progress report (report also writes Progress_Logs/report.json).
98
109
  - vibe_math_pause / vibe_math_abort — pause / abort (abort interrupts all children).
99
110
  - vibe_math_set_mode {mode: manual|auto} — switch manual / auto control.
100
- - vibe_math_set_params {...} — tune any parameter (see vibe_math_setup for the full schema; e.g. reportMode file|push|both, promoteValueThreshold, verdictMode flat|forced, formalVerify off|encourage|require).
111
+ - vibe_math_set_params {...} — tune any parameter (see vibe_math_setup for the full schema; e.g. reportMode file|push|both, promoteValueThreshold, verdictMode flat|forced, formalVerify off|encourage|require, finalPaper true|false, paperFormat both|md|tex, paperLanguage zh|en, paperCompilePdf true|false, paperLatexCommand <engine>).
101
112
  - vibe_math_setup / vibe_math_save_settings / vibe_math_template — guided configuration / persist defaults / generate template.
102
113
  - vibe_math_new_project / vibe_math_set_project / vibe_math_list_projects — per-project folders.
103
114
  - vibe_math_list_decisions / vibe_math_decide {id, action: approve|reject|override, verdict?} — resolve manual decisions.
104
115
  - vibe_math_list_agents / vibe_math_message_agent / vibe_math_interrupt_agent — inspect / steer / interrupt subagents.
105
- - vibe_math_lean_run / vibe_math_lean_archive / vibe_math_lean_lib — Lean formal
106
- verification (execute / archive / list the reuse library). The scheduler's child agents
107
- use them too; they work in every mode.
108
-
109
- A /vibe slash command mirrors the main controls. Data lives under {{cwd}}/VibeMath/Projects/<project>/
116
+ - vibe_math_lean_run / vibe_math_lean_archive / vibe_math_lean_lib / vibe_math_lean_read /
117
+ vibe_math_lean_job — Lean formal verification (execute / archive / list + read the reuse
118
+ library / inspect or wait for a background compile job). leanAsync=true (default) queues the
119
+ compile and returns a jobId; nothing counts as proved until that job settles ok (so "有把握"
120
+ is not the same as "已验证"). The scheduler's child agents use them too; they work in every
121
+ mode.
122
+
123
+ - math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
124
+ - 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
125
+
126
+ Final paper: strict termination writes Paper/<project>/{paper.md,paper.tex,paper.pdf,paper.meta.json,paper.log.md}
127
+ automatically — a dedicated paper-writing child assembles the solved material (finalPaper=false disables only that
128
+ automatic run). /vibe paper [lang=zh|en] [format=both|md|tex] [force] writes or rewrites it by hand. md/tex follow
129
+ paperFormat; a PDF is produced only when a LaTeX engine is detected and paperCompilePdf is true.
130
+ A /vibe slash command mirrors the main controls (/vibe start|resume|pause|abort|status|report|mode <auto|manual>|setup|save|template [global|project]|add <id> <desc>|add-proposition <id> <概述>|list-propositions|project [list|new <name>|<name>]|decisions|agents|paper [lang=zh|en] [format=both|md|tex] [force]).
131
+ Data lives under {{cwd}}/VibeMath/Projects/<project>/
110
132
  (qs/qs.json, Propos/<分类>_Propos.json, Reliable/, Verified/, Verification_logs/, Progress_Logs/, VibeMath_State/)
111
133
  and survives restarts via vibe_math_resume.
112
134
 
@@ -138,7 +160,7 @@ LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
138
160
  explicit, reasoned blocker record; the scheduler is never wedged by it).
139
161
  - Paths: work file Formal/<id>.lean; archived proof Verified/Lean/<id>.lean; reusable
140
162
  definitions VibeMath/Formal/Lib/; proved lemmas VibeMath/Formal/Proved/.
141
- - The toolchain knobs leanCommand / leanArgs / leanTimeoutMs are tunable as well
163
+ - The toolchain knobs leanCommand / leanArgs / leanTimeoutMs / leanAsync / leanInitiative / leanSearchPaths / leanJobsMaxParallel are tunable as well
142
164
  (e.g. leanCommand='lake' with leanArgs=['env','lean']); a missing Lean binary is
143
165
  reported as LEAN_NOT_FOUND and still lets the code be written and archived.
144
166
  - vibe_math_status / vibe_math_report show the mode, the per-object formal status and the
@@ -149,8 +171,8 @@ LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
149
171
 
150
172
  ## vibe-math-v3
151
173
 
152
- - 注册工具数:**33**
153
- - 斜杠命令 hint:`start [override]|resume [override]|pause|abort|status|report|mode <auto|manual>|setup|save|template [global|project]|add <id> <desc>|add-proposition <id> <概述>|list-propositions|methods|index|plan|lock|project [list|new <name>|<name>]|decisions|agents`
174
+ - 注册工具数:**36**
175
+ - 斜杠命令 hint:`start [override]|resume [override]|pause|abort|status|report|mode <auto|manual>|setup|save|template [global|project]|add <id> <desc>|add-proposition <id> <概述>|list-propositions|methods|index|plan|lock|project [list|new <name>|<name>]|decisions|agents|paper [lang=zh|en] [format=both|md|tex] [force]`
154
176
 
155
177
  ### config.prefix
156
178
 
@@ -188,7 +210,10 @@ is experiential reference.
188
210
  plannerEnabled/plannerProvider/plannerModel/plannerPersona, planMinIntervalMs, plannerMaxFails,
189
211
  methodKeepIntervalMs/methodKeepEvery, methodAutoPromote, indexAutoRebuild, projectLockTimeoutMs,
190
212
  formalVerify/leanCommand/leanArgs/leanTimeoutMs — Lean 形式化验证(off = 默认不额外要求,
191
- encourage = 按实现难度自行形式化、Lean 通过后审查对象变为忠实性,require = 同上并加结论门禁)).
213
+ encourage = 按实现难度自行形式化、Lean 通过后审查对象变为忠实性,require = 同上并加结论门禁),
214
+ finalPaper/paperFormat/paperLanguage/paperCompilePdf/paperLatexCommand — 最终论文(收口时自动派遣
215
+ 「论文撰写」子代理,把已收口的解法/命题/成果整理成 Paper/<project>/;finalPaper=false 只关自动触发,
216
+ /vibe paper 仍可手动触发)。
192
217
  - vibe_math_setup / vibe_math_save_settings / vibe_math_template — guided configuration / persist defaults / generate template.
193
218
  - vibe_math_plan {force?} — show queued plan / last plan, or force a planning round.
194
219
  - vibe_math_index — rebuild State/index.json from the Markdown knowledge base.
@@ -198,12 +223,18 @@ is experiential reference.
198
223
  - vibe_math_new_project / vibe_math_set_project / vibe_math_list_projects — per-project folders.
199
224
  - vibe_math_list_decisions / vibe_math_decide {id, action: approve|reject|override, verdict?} — resolve manual decisions.
200
225
  - vibe_math_list_agents / vibe_math_message_agent / vibe_math_interrupt_agent — inspect / steer / interrupt subagents.
201
- - vibe_math_lean_run / vibe_math_lean_archive / vibe_math_lean_lib — Lean formal
202
- verification (execute / archive / list the reuse library). The scheduler's child agents
203
- use them too; they work in every mode.
226
+ - vibe_math_lean_run / vibe_math_lean_archive / vibe_math_lean_lib / vibe_math_lean_read /
227
+ vibe_math_lean_job — Lean formal verification (execute / archive / list + read the reuse
228
+ library / inspect or wait for a background compile job). leanAsync=true (default) queues the
229
+ compile and returns a jobId; nothing counts as proved until that job settles ok (so "有把握"
230
+ is not the same as "已验证"). The scheduler's child agents use them too; they work in every
231
+ mode.
232
+
233
+ - math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
234
+ - 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
204
235
 
205
236
  A /vibe slash command mirrors the main controls (/vibe start [override]|resume [override]|pause|abort|status|report|mode
206
- <auto|manual>|setup|save|add <id> <desc>|add-proposition <id> <概述>|list-propositions|methods|index|plan|lock|...).
237
+ <auto|manual>|setup|save|template [global|project]|add <id> <desc>|add-proposition <id> <概述>|list-propositions|methods|index|plan|lock|project [list|new <name>|<name>]|decisions|agents|paper [lang=zh|en] [format=both|md|tex] [force]).
207
238
  Data survives restarts via vibe_math_resume.
208
239
 
209
240
  Key rules when reporting: a problem is "solved" when one of its 解法候选 entries reaches 概率 = 1
@@ -228,7 +259,7 @@ LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
228
259
  explicit, reasoned blocker record; the scheduler is never wedged by it).
229
260
  - Paths: work file Formal/<id>.lean; archived proof Verified/Lean/<id>.lean; reusable
230
261
  definitions VibeMath/Formal/Lib/; proved lemmas VibeMath/Formal/Proved/.
231
- - The toolchain knobs leanCommand / leanArgs / leanTimeoutMs are tunable as well
262
+ - The toolchain knobs leanCommand / leanArgs / leanTimeoutMs / leanAsync / leanInitiative / leanSearchPaths / leanJobsMaxParallel are tunable as well
232
263
  (e.g. leanCommand='lake' with leanArgs=['env','lean']); a missing Lean binary is
233
264
  reported as LEAN_NOT_FOUND and still lets the code be written and archived.
234
265
  - vibe_math_status / vibe_math_report show the mode, the per-object formal status and the
@@ -273,7 +304,10 @@ is experiential reference.
273
304
  plannerEnabled/plannerProvider/plannerModel/plannerPersona, planMinIntervalMs, plannerMaxFails,
274
305
  methodKeepIntervalMs/methodKeepEvery, methodAutoPromote, indexAutoRebuild, projectLockTimeoutMs,
275
306
  formalVerify/leanCommand/leanArgs/leanTimeoutMs — Lean 形式化验证(off = 默认不额外要求,
276
- encourage = 按实现难度自行形式化、Lean 通过后审查对象变为忠实性,require = 同上并加结论门禁)).
307
+ encourage = 按实现难度自行形式化、Lean 通过后审查对象变为忠实性,require = 同上并加结论门禁),
308
+ finalPaper/paperFormat/paperLanguage/paperCompilePdf/paperLatexCommand — 最终论文(收口时自动派遣
309
+ 「论文撰写」子代理,把已收口的解法/命题/成果整理成 Paper/<project>/;finalPaper=false 只关自动触发,
310
+ /vibe paper 仍可手动触发)。
277
311
  - vibe_math_setup / vibe_math_save_settings / vibe_math_template — guided configuration / persist defaults / generate template.
278
312
  - vibe_math_plan {force?} — show queued plan / last plan, or force a planning round.
279
313
  - vibe_math_index — rebuild State/index.json from the Markdown knowledge base.
@@ -283,12 +317,18 @@ is experiential reference.
283
317
  - vibe_math_new_project / vibe_math_set_project / vibe_math_list_projects — per-project folders.
284
318
  - vibe_math_list_decisions / vibe_math_decide {id, action: approve|reject|override, verdict?} — resolve manual decisions.
285
319
  - vibe_math_list_agents / vibe_math_message_agent / vibe_math_interrupt_agent — inspect / steer / interrupt subagents.
286
- - vibe_math_lean_run / vibe_math_lean_archive / vibe_math_lean_lib — Lean formal
287
- verification (execute / archive / list the reuse library). The scheduler's child agents
288
- use them too; they work in every mode.
320
+ - vibe_math_lean_run / vibe_math_lean_archive / vibe_math_lean_lib / vibe_math_lean_read /
321
+ vibe_math_lean_job — Lean formal verification (execute / archive / list + read the reuse
322
+ library / inspect or wait for a background compile job). leanAsync=true (default) queues the
323
+ compile and returns a jobId; nothing counts as proved until that job settles ok (so "有把握"
324
+ is not the same as "已验证"). The scheduler's child agents use them too; they work in every
325
+ mode.
326
+
327
+ - math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
328
+ - 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
289
329
 
290
330
  A /vibe slash command mirrors the main controls (/vibe start [override]|resume [override]|pause|abort|status|report|mode
291
- <auto|manual>|setup|save|add <id> <desc>|add-proposition <id> <概述>|list-propositions|methods|index|plan|lock|...).
331
+ <auto|manual>|setup|save|template [global|project]|add <id> <desc>|add-proposition <id> <概述>|list-propositions|methods|index|plan|lock|project [list|new <name>|<name>]|decisions|agents|paper [lang=zh|en] [format=both|md|tex] [force]).
292
332
  Data survives restarts via vibe_math_resume.
293
333
 
294
334
  Key rules when reporting: a problem is "solved" when one of its 解法候选 entries reaches 概率 = 1
@@ -313,7 +353,7 @@ LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
313
353
  explicit, reasoned blocker record; the scheduler is never wedged by it).
314
354
  - Paths: work file Formal/<id>.lean; archived proof Verified/Lean/<id>.lean; reusable
315
355
  definitions VibeMath/Formal/Lib/; proved lemmas VibeMath/Formal/Proved/.
316
- - The toolchain knobs leanCommand / leanArgs / leanTimeoutMs are tunable as well
356
+ - The toolchain knobs leanCommand / leanArgs / leanTimeoutMs / leanAsync / leanInitiative / leanSearchPaths / leanJobsMaxParallel are tunable as well
317
357
  (e.g. leanCommand='lake' with leanArgs=['env','lean']); a missing Lean binary is
318
358
  reported as LEAN_NOT_FOUND and still lets the code be written and archived.
319
359
  - vibe_math_status / vibe_math_report show the mode, the per-object formal status and the
@@ -325,8 +365,8 @@ When the user asks about progress, call vibe_math_report and summarize in plain
325
365
 
326
366
  ## vibe-math-v4
327
367
 
328
- - 注册工具数:**32**
329
- - 斜杠命令 hint:`configure|start|resume|pause|abort|status|report|message <to|all> <content>|meeting|members|add|remove|set`
368
+ - 注册工具数:**34**
369
+ - 斜杠命令 hint:`configure|start|resume|pause|abort|status|report|message <to|all> <content>|meeting|paper [lang=zh|en] [format=md|tex|both] [editor=office|resident:<id>] [force]|members|add|remove|set`
330
370
 
331
371
  ### config.prefix
332
372
 
@@ -375,18 +415,27 @@ Data lives under {{cwd}}/VibeMath/Projects/<project>/:
375
415
  Main controls (recommended flow: configure FIRST, then start):
376
416
  - vibe_v4_configure {project?, problem?, params?} — create/configure the project (name, problem, params) WITHOUT starting a run; set everything here first.
377
417
  - vibe_v4_start {problem?, residentCount?, seedDirections?} — begin the run (spawn residents, brainstorm). If problem was configured, omit it.
378
- - vibe_v4_set {residentCount, compactThreshold, compactAfterRounds, meetingKeepEvery, maxParallel, activityTimeoutMs, stallAutoMeetingMs, verdictMaxRounds, provider, model, residentPersona, toolAllow, toolDeny, formalVerify, leanCommand, leanArgs, leanTimeoutMs} — tune params (persisted to the settings file). provider/model override the residents' LLM route (empty = they inherit YOUR model/provider); toolAllow/toolDeny are per-resident tool permissions (empty = they inherit all tools). stallAutoMeetingMs is the stalled-group auto-sync-meeting threshold (分级保活 B). formalVerify (off|encourage|require, default off) enables Lean formal verification; leanCommand/leanArgs/leanTimeoutMs configure the toolchain.
418
+ - vibe_v4_set {residentCount, compactThreshold, compactAfterRounds, meetingKeepEvery, maxParallel, activityTimeoutMs, stallAutoMeetingMs, verdictMaxRounds, provider, model, residentPersona, toolAllow, toolDeny, formalVerify, leanCommand, leanArgs, leanTimeoutMs, leanAsync, leanInitiative, leanSearchPaths, leanJobsMaxParallel, finalPaper, paperFormat, paperLanguage, paperCompilePdf, paperEditor, paperLatexCommand} — tune params (persisted to the settings file). provider/model override the residents' LLM route (empty = they inherit YOUR model/provider); toolAllow/toolDeny are per-resident tool permissions (empty = they inherit all tools). stallAutoMeetingMs is the stalled-group auto-sync-meeting threshold (分级保活 B). formalVerify (off|encourage|require, default off) enables Lean formal verification; leanCommand/leanArgs/leanTimeoutMs configure the toolchain; leanAsync (true|false, default true) queues each compile as a background job (the tool returns {async:{jobId,state}} and the result lands later), leanInitiative (off|normal|eager, default normal) says how PROACTIVE the group is while working (independent of what formalVerify requires at voting time), leanSearchPaths adds extra compiler search roots (injected BEFORE the automatic VibeMath root), and leanJobsMaxParallel (default 1) caps concurrent compiles. The FINAL PAPER is tuned by finalPaper (true|false, default true), paperFormat (both|md|tex), paperLanguage (zh|en), paperCompilePdf (true|false), paperEditor (office|resident:<id>, default office = the human/assistant side finalises) and paperLatexCommand.
379
419
  - vibe_v4_resume / vibe_v4_pause / vibe_v4_abort / vibe_v4_status / vibe_v4_report.
380
420
  - vibe_v4_message {to|all, content} — inject a message to a resident (human/assistant intervention).
381
421
  - vibe_v4_meeting {agenda} — force a meeting.
382
422
  - vibe_v4_add_member {direction?} / vibe_v4_remove_member {id} — add / close a resident.
383
423
  - vibe_v4_list_members — list residents.
384
- - vibe_v4_lean_run / vibe_v4_lean_archive / vibe_v4_lean_lib — Lean formal verification
385
- (execute / archive / list the reuse library). Residents use them too; they work in every mode.
424
+ - vibe_v4_lean_run / vibe_v4_lean_archive / vibe_v4_lean_lib / vibe_v4_lean_read / vibe_v4_lean_job
425
+ — Lean formal verification (execute or ENQUEUE / archive / list the reuse library + background jobs /
426
+ read one archived library file verbatim / check or wait for a background job). Residents use them
427
+ too; they work in every mode.
386
428
  - vibe_v4_formal_report — human-readable Lean formal-verification mirror (mode, Lean-passed
429
+ - math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
430
+ - 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
431
+ - Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.
387
432
  objects, recorded blockers, formalization TODO, library paths).
388
433
  - vibe_v4_prompts {which: brainstorm|normal|heartbeat|meeting|verify|coreRules, member?, target?, stage?} — read the exact prompt text a resident would receive (prompt auditing; prompt text is the product).
389
- A /v4 slash command mirrors the main controls (configure|start [problem]|resume|pause|abort|status|report|message <to|all> <content>|meeting|members|add|remove|set <k=v>...).
434
+ A /v4 slash command mirrors the main controls (configure|start [problem]|resume|pause|abort|status|report|message <to|all> <content>|meeting|paper [lang=zh|en] [format=md|tex|both] [editor=office|resident:<id>] [force]|members|add|remove|set <k=v>...).
435
+ Final paper: after the unanimous stop vote the run enters a PAPER phase — every resident writes their part, each
436
+ cross-reviews at least one other part, and the paperEditor finalises (office = the human/assistant side, or one named
437
+ resident); only then is the run marked complete. finalPaper=false skips the phase; /v4 paper [lang=zh|en]
438
+ [format=md|tex|both] [editor=office|resident:<id>] [force] starts or re-runs it by hand.
390
439
 
391
440
  TRUST RULE: only Verified/ (and Propos/ entries marked 已验证·真/假) are absolutely
392
441
  trustworthy; everything else — unverified resident claims, Progress/, Method claims —
@@ -413,6 +462,15 @@ LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
413
462
  explicit, reasoned blocker record; the run is never wedged by it).
414
463
  - Paths: work file Formal/<id>.lean; archived proof Verified/Lean/<id>.lean; reusable
415
464
  definitions VibeMath/Formal/Lib/; proved lemmas VibeMath/Formal/Proved/.
465
+ - Reuse FIRST: call vibe_v4_lean_lib (and vibe_v4_lean_read for the verbatim text) BEFORE writing a new
466
+ definition; reuse an archived file with `import Formal.Lib.<name>` / `import Formal.Proved.<name>`
467
+ (the framework passes --search-path <VibeMath root>, so VibeMath is the module root).
468
+ - Choose WHAT to formalize with three criteria: (1) valuable or likely reusable, (2) rather key or
469
+ necessary, (3) you are confident in the statement — when you are NOT confident, record blocked
470
+ with the difficulty instead of hiding uncertainty behind a formalization.
471
+ - Compiles are BACKGROUND JOBS by default: a queued job is not a verification. An object only becomes
472
+ Lean-passed once its job settles green; the result is announced in the next prompt and visible via
473
+ vibe_v4_lean_lib.jobs / vibe_v4_lean_job (waitMs).
416
474
  - The toolchain knobs leanCommand / leanArgs / leanTimeoutMs are tunable as well
417
475
  (e.g. leanCommand='lake' with leanArgs=['env','lean']); a missing Lean binary is
418
476
  reported as LEAN_NOT_FOUND and still lets the code be written and archived.
@@ -470,18 +528,27 @@ Data lives under {{cwd}}/VibeMath/Projects/<project>/:
470
528
  Main controls (recommended flow: configure FIRST, then start):
471
529
  - vibe_v4_configure {project?, problem?, params?} — create/configure the project (name, problem, params) WITHOUT starting a run; set everything here first.
472
530
  - vibe_v4_start {problem?, residentCount?, seedDirections?} — begin the run (spawn residents, brainstorm). If problem was configured, omit it.
473
- - vibe_v4_set {residentCount, compactThreshold, compactAfterRounds, meetingKeepEvery, maxParallel, activityTimeoutMs, stallAutoMeetingMs, verdictMaxRounds, provider, model, residentPersona, toolAllow, toolDeny, formalVerify, leanCommand, leanArgs, leanTimeoutMs} — tune params (persisted to the settings file). provider/model override the residents' LLM route (empty = they inherit YOUR model/provider); toolAllow/toolDeny are per-resident tool permissions (empty = they inherit all tools). stallAutoMeetingMs is the stalled-group auto-sync-meeting threshold (分级保活 B). formalVerify (off|encourage|require, default off) enables Lean formal verification; leanCommand/leanArgs/leanTimeoutMs configure the toolchain.
531
+ - vibe_v4_set {residentCount, compactThreshold, compactAfterRounds, meetingKeepEvery, maxParallel, activityTimeoutMs, stallAutoMeetingMs, verdictMaxRounds, provider, model, residentPersona, toolAllow, toolDeny, formalVerify, leanCommand, leanArgs, leanTimeoutMs, leanAsync, leanInitiative, leanSearchPaths, leanJobsMaxParallel, finalPaper, paperFormat, paperLanguage, paperCompilePdf, paperEditor, paperLatexCommand} — tune params (persisted to the settings file). provider/model override the residents' LLM route (empty = they inherit YOUR model/provider); toolAllow/toolDeny are per-resident tool permissions (empty = they inherit all tools). stallAutoMeetingMs is the stalled-group auto-sync-meeting threshold (分级保活 B). formalVerify (off|encourage|require, default off) enables Lean formal verification; leanCommand/leanArgs/leanTimeoutMs configure the toolchain; leanAsync (true|false, default true) queues each compile as a background job (the tool returns {async:{jobId,state}} and the result lands later), leanInitiative (off|normal|eager, default normal) says how PROACTIVE the group is while working (independent of what formalVerify requires at voting time), leanSearchPaths adds extra compiler search roots (injected BEFORE the automatic VibeMath root), and leanJobsMaxParallel (default 1) caps concurrent compiles. The FINAL PAPER is tuned by finalPaper (true|false, default true), paperFormat (both|md|tex), paperLanguage (zh|en), paperCompilePdf (true|false), paperEditor (office|resident:<id>, default office = the human/assistant side finalises) and paperLatexCommand.
474
532
  - vibe_v4_resume / vibe_v4_pause / vibe_v4_abort / vibe_v4_status / vibe_v4_report.
475
533
  - vibe_v4_message {to|all, content} — inject a message to a resident (human/assistant intervention).
476
534
  - vibe_v4_meeting {agenda} — force a meeting.
477
535
  - vibe_v4_add_member {direction?} / vibe_v4_remove_member {id} — add / close a resident.
478
536
  - vibe_v4_list_members — list residents.
479
- - vibe_v4_lean_run / vibe_v4_lean_archive / vibe_v4_lean_lib — Lean formal verification
480
- (execute / archive / list the reuse library). Residents use them too; they work in every mode.
537
+ - vibe_v4_lean_run / vibe_v4_lean_archive / vibe_v4_lean_lib / vibe_v4_lean_read / vibe_v4_lean_job
538
+ — Lean formal verification (execute or ENQUEUE / archive / list the reuse library + background jobs /
539
+ read one archived library file verbatim / check or wait for a background job). Residents use them
540
+ too; they work in every mode.
481
541
  - vibe_v4_formal_report — human-readable Lean formal-verification mirror (mode, Lean-passed
542
+ - math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
543
+ - 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
544
+ - Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.
482
545
  objects, recorded blockers, formalization TODO, library paths).
483
546
  - vibe_v4_prompts {which: brainstorm|normal|heartbeat|meeting|verify|coreRules, member?, target?, stage?} — read the exact prompt text a resident would receive (prompt auditing; prompt text is the product).
484
- A /v4 slash command mirrors the main controls (configure|start [problem]|resume|pause|abort|status|report|message <to|all> <content>|meeting|members|add|remove|set <k=v>...).
547
+ A /v4 slash command mirrors the main controls (configure|start [problem]|resume|pause|abort|status|report|message <to|all> <content>|meeting|paper [lang=zh|en] [format=md|tex|both] [editor=office|resident:<id>] [force]|members|add|remove|set <k=v>...).
548
+ Final paper: after the unanimous stop vote the run enters a PAPER phase — every resident writes their part, each
549
+ cross-reviews at least one other part, and the paperEditor finalises (office = the human/assistant side, or one named
550
+ resident); only then is the run marked complete. finalPaper=false skips the phase; /v4 paper [lang=zh|en]
551
+ [format=md|tex|both] [editor=office|resident:<id>] [force] starts or re-runs it by hand.
485
552
 
486
553
  TRUST RULE: only Verified/ (and Propos/ entries marked 已验证·真/假) are absolutely
487
554
  trustworthy; everything else — unverified resident claims, Progress/, Method claims —
@@ -508,6 +575,15 @@ LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
508
575
  explicit, reasoned blocker record; the run is never wedged by it).
509
576
  - Paths: work file Formal/<id>.lean; archived proof Verified/Lean/<id>.lean; reusable
510
577
  definitions VibeMath/Formal/Lib/; proved lemmas VibeMath/Formal/Proved/.
578
+ - Reuse FIRST: call vibe_v4_lean_lib (and vibe_v4_lean_read for the verbatim text) BEFORE writing a new
579
+ definition; reuse an archived file with `import Formal.Lib.<name>` / `import Formal.Proved.<name>`
580
+ (the framework passes --search-path <VibeMath root>, so VibeMath is the module root).
581
+ - Choose WHAT to formalize with three criteria: (1) valuable or likely reusable, (2) rather key or
582
+ necessary, (3) you are confident in the statement — when you are NOT confident, record blocked
583
+ with the difficulty instead of hiding uncertainty behind a formalization.
584
+ - Compiles are BACKGROUND JOBS by default: a queued job is not a verification. An object only becomes
585
+ Lean-passed once its job settles green; the result is announced in the next prompt and visible via
586
+ vibe_v4_lean_lib.jobs / vibe_v4_lean_job (waitMs).
511
587
  - The toolchain knobs leanCommand / leanArgs / leanTimeoutMs are tunable as well
512
588
  (e.g. leanCommand='lake' with leanArgs=['env','lean']); a missing Lean binary is
513
589
  reported as LEAN_NOT_FOUND and still lets the code be written and archived.
@@ -521,8 +597,8 @@ When the user asks about progress, call vibe_v4_report and summarize in plain la
521
597
 
522
598
  ## vibe-math-v5
523
599
 
524
- - 注册工具数:**35**
525
- - 斜杠命令 hint:`configure|start|resume|pause|stop|status|report|members|message|meeting|hire|fire|add|remove|set`
600
+ - 注册工具数:**39**
601
+ - 斜杠命令 hint:`configure|start|resume|pause|stop|status|report|members|message|meeting|hire|fire|add|remove|set|paper [lang=en] [format=tex] [editor=office] [force]`
526
602
 
527
603
  ### config.prefix
528
604
 
@@ -587,17 +663,22 @@ Data lives under {{cwd}}/VibeMath/Projects/<project>/Institutes/<institute>/:
587
663
  Main controls (recommended flow: configure FIRST, then start):
588
664
  - vibe_v5_configure {project?, institute?, problem?, params?} — create/configure the institute WITHOUT starting it.
589
665
  - vibe_v5_start {problem?, researcherCount?, academician?, seedDirections?} — found the institute (academician + researchers) and begin.
590
- - vibe_v5_set {…} — tune params (persisted). provider/model override staff LLM routes (empty = inherit YOUR route); toolAllow/toolDeny restrict staff tools.
666
+ - vibe_v5_set {…} — tune params (persisted). provider/model override staff LLM routes (empty = inherit YOUR route); toolAllow/toolDeny restrict staff tools; finalPaper/paperFormat/paperLanguage/paperCompilePdf/paperEditor/paperLatexCommand tune the FINAL PAPER.
591
667
  - vibe_v5_pause / vibe_v5_resume / vibe_v5_stop / vibe_v5_status / vibe_v5_report.
592
668
  - vibe_v5_message {to|all, content} — relay a human message into the institute.
593
669
  - vibe_v5_meeting {agenda, kind} — convene a meeting.
594
670
  - vibe_v5_members — roster (office/employer/status/direction).
595
671
  - vibe_v5_hire / vibe_v5_fire — temp workers: hire one (office, academician or a permanent researcher) / dismiss one for real.
596
672
  - vibe_v5_add_researcher / vibe_v5_remove_researcher — OFFICE only: add or dismiss a PERMANENT researcher (the academician can only propose those).
597
- - vibe_v5_lean_run / vibe_v5_lean_archive / vibe_v5_lean_lib — Lean formal
598
- verification (execute / archive / list the reuse library). Members use them
599
- too; they work in every mode.
600
- A /v5 slash command mirrors these (configure|start|resume|pause|stop|status|report|members|message|meeting|hire|fire|add|remove|set).
673
+ - vibe_v5_paper {lang?, format?, editor?, force?} — write the FINAL PAPER: the permanent staff write their own parts, cross-review each other, then the editor finalises. lang/format/editor override this one paper only.
674
+ - vibe_v5_finalize_paper {decision, note, conclusion?} — OFFICE only when paperEditor=office: consult the institute first (>=1 office message + >=1 meeting), then finalise and put the conclusion in note.
675
+ - vibe_v5_lean_run / vibe_v5_lean_archive / vibe_v5_lean_lib / vibe_v5_lean_read / vibe_v5_lean_job — Lean formal
676
+ verification (execute / archive / list the reuse library / read an archived file
677
+ verbatim / watch the background compile queue). Members use them too; they work in every mode.
678
+ - math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
679
+ - 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
680
+ - Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.
681
+ A /v5 slash command mirrors these (configure|start|resume|pause|stop|status|report|members|message|meeting|hire|fire|add|remove|set|paper).
601
682
 
602
683
  LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
603
684
  - 'off' (default, no extra requirement) | 'encourage' (members decide by
@@ -612,6 +693,19 @@ LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
612
693
  reported as LEAN_NOT_FOUND, a host with no subprocess service as NO_SUBPROCESS
613
694
  (on a timeout the process is terminated first), and in every one of those cases the
614
695
  code can still be written down and archived.
696
+ - Daily eagerness is a SEPARATE knob: leanInitiative 'off' (no daily drive) |
697
+ 'normal' (default; the reminder rides with formalVerify) | 'eager' (push valuable
698
+ small lemmas/propositions/definitions into the library even in ordinary rounds).
699
+ - Reuse first: check vibe_v5_lean_lib BEFORE writing a definition, reuse archived
700
+ content via `import Formal.Lib.<name>` / `import Formal.Proved.<name>` (the compile
701
+ gets `--search-path <VibeMath root>`, preceded by any leanSearchPaths), or copy the
702
+ exact text with vibe_v5_lean_read. Re-archiving identical content is de-duplicated.
703
+ - Compiles are ASYNC by default (leanAsync=true, leanJobsMaxParallel default 1):
704
+ vibe_v5_lean_run / vibe_v5_lean_archive enqueue and return at once; watch them with
705
+ vibe_v5_lean_job {jobId, waitMs} or vibe_v5_lean_lib.jobs, and NEVER treat an object
706
+ as passed before its job settles ok (exit 0, same content, same build context).
707
+ - Only formalize what you are confident about; when unsure record kind='blocked' with a
708
+ reason instead of dressing uncertainty up as a formalization.
615
709
  - vibe_v5_status / vibe_v5_report show the mode, per-object formal status and the
616
710
  formalization TODO. The framework never installs Lean and never judges fidelity.
617
711
 
@@ -686,17 +780,22 @@ Data lives under {{cwd}}/VibeMath/Projects/<project>/Institutes/<institute>/:
686
780
  Main controls (recommended flow: configure FIRST, then start):
687
781
  - vibe_v5_configure {project?, institute?, problem?, params?} — create/configure the institute WITHOUT starting it.
688
782
  - vibe_v5_start {problem?, researcherCount?, academician?, seedDirections?} — found the institute (academician + researchers) and begin.
689
- - vibe_v5_set {…} — tune params (persisted). provider/model override staff LLM routes (empty = inherit YOUR route); toolAllow/toolDeny restrict staff tools.
783
+ - vibe_v5_set {…} — tune params (persisted). provider/model override staff LLM routes (empty = inherit YOUR route); toolAllow/toolDeny restrict staff tools; finalPaper/paperFormat/paperLanguage/paperCompilePdf/paperEditor/paperLatexCommand tune the FINAL PAPER.
690
784
  - vibe_v5_pause / vibe_v5_resume / vibe_v5_stop / vibe_v5_status / vibe_v5_report.
691
785
  - vibe_v5_message {to|all, content} — relay a human message into the institute.
692
786
  - vibe_v5_meeting {agenda, kind} — convene a meeting.
693
787
  - vibe_v5_members — roster (office/employer/status/direction).
694
788
  - vibe_v5_hire / vibe_v5_fire — temp workers: hire one (office, academician or a permanent researcher) / dismiss one for real.
695
789
  - vibe_v5_add_researcher / vibe_v5_remove_researcher — OFFICE only: add or dismiss a PERMANENT researcher (the academician can only propose those).
696
- - vibe_v5_lean_run / vibe_v5_lean_archive / vibe_v5_lean_lib — Lean formal
697
- verification (execute / archive / list the reuse library). Members use them
698
- too; they work in every mode.
699
- A /v5 slash command mirrors these (configure|start|resume|pause|stop|status|report|members|message|meeting|hire|fire|add|remove|set).
790
+ - vibe_v5_paper {lang?, format?, editor?, force?} — write the FINAL PAPER: the permanent staff write their own parts, cross-review each other, then the editor finalises. lang/format/editor override this one paper only.
791
+ - vibe_v5_finalize_paper {decision, note, conclusion?} — OFFICE only when paperEditor=office: consult the institute first (>=1 office message + >=1 meeting), then finalise and put the conclusion in note.
792
+ - vibe_v5_lean_run / vibe_v5_lean_archive / vibe_v5_lean_lib / vibe_v5_lean_read / vibe_v5_lean_job — Lean formal
793
+ verification (execute / archive / list the reuse library / read an archived file
794
+ verbatim / watch the background compile queue). Members use them too; they work in every mode.
795
+ - math_computation {op: probe|run|receipt|install, engine, mode: code|file|expr, …} — 先 probe 预检引擎/包/许可,再调引擎计算并把脚本与输出归档成可复核回执;缺引擎/缺包只报告与给安装指引/计划;shell 兜底不算归档。
796
+ - 归档→编辑→重跑:mode:'code' 的脚本原件在回执的 scriptPath(Computation/<id>/script.<ext>),你可以用普通文件工具打开并编辑它;编辑后用 mode:'file' 指向它重跑,会写出一份**新回执/新 attempt**(含新的 scriptHash)。**旧回执对修改后的代码无效**——报告里必须引用与当前代码哈希一致的那份回执;工具会在 scriptChanged / scriptChangedDuringRun 为 true 时显式告警。
797
+ - Archive -> edit -> re-run: for mode:'code' the script original is at the receipt's scriptPath (Computation/<id>/script.<ext>) and you may open/edit it with your normal file tools; after editing, re-run it with mode:'file' to write a NEW receipt/attempt with a NEW scriptHash. **An old receipt is NOT evidence for edited code** - cite the receipt whose scriptHash matches the current code; the tool warns explicitly via scriptChanged / scriptChangedDuringRun.
798
+ A /v5 slash command mirrors these (configure|start|resume|pause|stop|status|report|members|message|meeting|hire|fire|add|remove|set|paper).
700
799
 
701
800
  LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
702
801
  - 'off' (default, no extra requirement) | 'encourage' (members decide by
@@ -711,6 +810,19 @@ LEAN FORMAL VERIFICATION (formalVerify, a tunable parameter):
711
810
  reported as LEAN_NOT_FOUND, a host with no subprocess service as NO_SUBPROCESS
712
811
  (on a timeout the process is terminated first), and in every one of those cases the
713
812
  code can still be written down and archived.
813
+ - Daily eagerness is a SEPARATE knob: leanInitiative 'off' (no daily drive) |
814
+ 'normal' (default; the reminder rides with formalVerify) | 'eager' (push valuable
815
+ small lemmas/propositions/definitions into the library even in ordinary rounds).
816
+ - Reuse first: check vibe_v5_lean_lib BEFORE writing a definition, reuse archived
817
+ content via `import Formal.Lib.<name>` / `import Formal.Proved.<name>` (the compile
818
+ gets `--search-path <VibeMath root>`, preceded by any leanSearchPaths), or copy the
819
+ exact text with vibe_v5_lean_read. Re-archiving identical content is de-duplicated.
820
+ - Compiles are ASYNC by default (leanAsync=true, leanJobsMaxParallel default 1):
821
+ vibe_v5_lean_run / vibe_v5_lean_archive enqueue and return at once; watch them with
822
+ vibe_v5_lean_job {jobId, waitMs} or vibe_v5_lean_lib.jobs, and NEVER treat an object
823
+ as passed before its job settles ok (exit 0, same content, same build context).
824
+ - Only formalize what you are confident about; when unsure record kind='blocked' with a
825
+ reason instead of dressing uncertainty up as a formalization.
714
826
  - vibe_v5_status / vibe_v5_report show the mode, per-object formal status and the
715
827
  formalization TODO. The framework never installs Lean and never judges fidelity.
716
828