oh-my-opencode 5.1.45 → 5.1.47

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 (370) hide show
  1. package/.agents/command/publish.md +12 -13
  2. package/.agents/skills/publish/SKILL.md +12 -13
  3. package/.opencode/command/publish.md +12 -13
  4. package/README.de.md +0 -5
  5. package/README.es.md +0 -5
  6. package/README.fr.md +0 -5
  7. package/README.it.md +0 -5
  8. package/README.ja.md +0 -5
  9. package/README.ko.md +0 -5
  10. package/README.md +4 -5
  11. package/README.pt-br.md +0 -5
  12. package/README.ru.md +0 -6
  13. package/README.zh-cn.md +0 -5
  14. package/dist/agents/atlas/agent.d.ts +3 -2
  15. package/dist/agents/sisyphus/index.d.ts +1 -0
  16. package/dist/agents/sisyphus/kimi-k3-1.d.ts +9 -0
  17. package/dist/agents/sisyphus-agent-factory.d.ts +1 -1
  18. package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
  19. package/dist/agents/sisyphus-junior/index.d.ts +1 -0
  20. package/dist/agents/sisyphus-junior/kimi-k3-1.d.ts +6 -0
  21. package/dist/agents/types.d.ts +2 -2
  22. package/dist/cli/index.js +91 -163
  23. package/dist/cli/service-auth/keystore.d.ts +8 -3
  24. package/dist/cli-node/index.js +91 -163
  25. package/dist/config-migration/index.d.ts +2 -2
  26. package/dist/config-migration/migration-plans.d.ts +0 -10
  27. package/dist/index.js +1784 -1204
  28. package/dist/skills/ast-grep/AGENTS.md +1 -1
  29. package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
  30. package/dist/skills/frontend/ATTRIBUTION.md +2 -2
  31. package/dist/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  32. package/dist/skills/ulw-research/AGENTS.md +14 -2
  33. package/dist/skills/ulw-research/SKILL.md +37 -12
  34. package/dist/skills/ulw-research/references/deliverable-phase.md +81 -14
  35. package/dist/skills/ulw-research/references/fact-ledger-grammar.md +19 -1
  36. package/dist/skills/ulw-research/references/fact-ledger.md +95 -0
  37. package/dist/skills/ulw-research/references/fidelity-claim-kinds.md +19 -0
  38. package/dist/skills/ulw-research/references/report-gates.md +21 -4
  39. package/dist/skills/ulw-research/references/report-visualization.md +2 -0
  40. package/dist/skills/ulw-research/references/unit-rules.md +157 -0
  41. package/dist/skills/ulw-research/scripts/claim-kinds.mjs +116 -0
  42. package/dist/skills/ulw-research/scripts/claim-kinds.test.ts +193 -0
  43. package/dist/skills/ulw-research/scripts/cli-support.mjs +19 -5
  44. package/dist/skills/ulw-research/scripts/cli-support.test.ts +13 -2
  45. package/dist/skills/ulw-research/scripts/contracts.mjs +27 -6
  46. package/dist/skills/ulw-research/scripts/contracts.test.ts +3 -0
  47. package/dist/skills/ulw-research/scripts/copy-returns-polish.test.ts +209 -0
  48. package/dist/skills/ulw-research/scripts/copy-returns.test.ts +183 -0
  49. package/dist/skills/ulw-research/scripts/delivery-barrier.test.ts +245 -0
  50. package/dist/skills/ulw-research/scripts/fact-commands-meaning.mjs +176 -0
  51. package/dist/skills/ulw-research/scripts/fact-commands-polish.mjs +127 -0
  52. package/dist/skills/ulw-research/scripts/fact-commands-verify.mjs +183 -0
  53. package/dist/skills/ulw-research/scripts/fact-commands.mjs +241 -0
  54. package/dist/skills/ulw-research/scripts/fact-derive.mjs +66 -0
  55. package/dist/skills/ulw-research/scripts/fact-derive.test.ts +375 -0
  56. package/dist/skills/ulw-research/scripts/fact-expr.mjs +108 -0
  57. package/dist/skills/ulw-research/scripts/fact-fill.mjs +194 -0
  58. package/dist/skills/ulw-research/scripts/fact-fill.test.ts +221 -0
  59. package/dist/skills/ulw-research/scripts/fact-ledger-grammar.test.ts +9 -2
  60. package/dist/skills/ulw-research/scripts/fact-ledger-kinds.mjs +127 -13
  61. package/dist/skills/ulw-research/scripts/fact-ledger-kinds.test.ts +18 -3
  62. package/dist/skills/ulw-research/scripts/fact-ledger-legacy.test.ts +160 -0
  63. package/dist/skills/ulw-research/scripts/fact-ledger-schema.mjs +33 -16
  64. package/dist/skills/ulw-research/scripts/fact-ledger.mjs +29 -9
  65. package/dist/skills/ulw-research/scripts/fact-ledger.test.ts +2 -0
  66. package/dist/skills/ulw-research/scripts/fact-locate.mjs +231 -0
  67. package/dist/skills/ulw-research/scripts/fact-locate.test.ts +118 -0
  68. package/dist/skills/ulw-research/scripts/fact-pairs.mjs +185 -0
  69. package/dist/skills/ulw-research/scripts/fact-pairs.test.ts +151 -0
  70. package/dist/skills/ulw-research/scripts/fact-recompute.mjs +89 -0
  71. package/dist/skills/ulw-research/scripts/fact-unit-dimensions.test.ts +409 -0
  72. package/dist/skills/ulw-research/scripts/fact-unit-rules.test.ts +388 -0
  73. package/dist/skills/ulw-research/scripts/fidelity-binding.mjs +130 -0
  74. package/dist/skills/ulw-research/scripts/fidelity-binding.test.ts +81 -0
  75. package/dist/skills/ulw-research/scripts/fidelity-brief.mjs +5 -0
  76. package/dist/skills/ulw-research/scripts/fidelity-claims.mjs +89 -0
  77. package/dist/skills/ulw-research/scripts/fidelity-lexicon.mjs +145 -0
  78. package/dist/skills/ulw-research/scripts/fidelity-lexicon.test.ts +117 -0
  79. package/dist/skills/ulw-research/scripts/fidelity-records.mjs +163 -0
  80. package/dist/skills/ulw-research/scripts/fidelity-state.mjs +2 -1
  81. package/dist/skills/ulw-research/scripts/fidelity-trace.mjs +85 -0
  82. package/dist/skills/ulw-research/scripts/fidelity-trace.test.ts +58 -0
  83. package/dist/skills/ulw-research/scripts/fidelity-values.mjs +229 -0
  84. package/dist/skills/ulw-research/scripts/fidelity-values.test.ts +270 -0
  85. package/dist/skills/ulw-research/scripts/gates-fidelity.mjs +113 -0
  86. package/dist/skills/ulw-research/scripts/gates-fidelity.test.ts +73 -0
  87. package/dist/skills/ulw-research/scripts/gates-static.mjs +28 -8
  88. package/dist/skills/ulw-research/scripts/html-lite.mjs +2 -2
  89. package/dist/skills/ulw-research/scripts/html-markup.mjs +182 -0
  90. package/dist/skills/ulw-research/scripts/md-lite.mjs +193 -0
  91. package/dist/skills/ulw-research/scripts/md-lite.test.ts +271 -0
  92. package/dist/skills/ulw-research/scripts/meaning-check.mjs +196 -0
  93. package/dist/skills/ulw-research/scripts/meaning-check.test.ts +228 -0
  94. package/dist/skills/ulw-research/scripts/outcome.mjs +6 -5
  95. package/dist/skills/ulw-research/scripts/placeholder.mjs +184 -0
  96. package/dist/skills/ulw-research/scripts/placeholder.test.ts +77 -0
  97. package/dist/skills/ulw-research/scripts/polish-apply.mjs +115 -0
  98. package/dist/skills/ulw-research/scripts/polish-apply.test.ts +363 -0
  99. package/dist/skills/ulw-research/scripts/polish-diff.mjs +31 -0
  100. package/dist/skills/ulw-research/scripts/polish-diff.test.ts +168 -0
  101. package/dist/skills/ulw-research/scripts/polish-markup.test.ts +187 -0
  102. package/dist/skills/ulw-research/scripts/polish-project.mjs +125 -0
  103. package/dist/skills/ulw-research/scripts/polish-rules.mjs +170 -0
  104. package/dist/skills/ulw-research/scripts/references-fences.test.ts +25 -0
  105. package/dist/skills/ulw-research/scripts/report-tools-commands.mjs +19 -8
  106. package/dist/skills/ulw-research/scripts/report-tools.mjs +15 -0
  107. package/dist/skills/ulw-research/scripts/report-tools.test.ts +545 -2
  108. package/dist/skills/ulw-research/scripts/source-commands.mjs +140 -0
  109. package/dist/skills/ulw-research/scripts/source-snapshot.mjs +176 -0
  110. package/dist/skills/ulw-research/scripts/source-snapshot.test.ts +113 -0
  111. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/assets/share.csv +3 -0
  112. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/gen-legacy-dev.mjs +89 -0
  113. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-basic.json +223 -0
  114. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-legacy-dev.json +859 -0
  115. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-verify.json +420 -0
  116. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/polish-edits.json +12 -0
  117. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/report-bad.html +19 -0
  118. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/report-good.html +39 -0
  119. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/acronyms.json +3 -0
  120. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/meta.json +9 -0
  121. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/sentences.jsonl +7 -0
  122. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/text.txt +7 -0
  123. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4.html +19 -0
  124. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/acronyms.json +1 -0
  125. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/meta.json +9 -0
  126. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/sentences.jsonl +1 -0
  127. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/text.txt +1 -0
  128. package/dist/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S9.txt +1 -0
  129. package/dist/skills/ulw-research/scripts/unit-algebra.mjs +101 -0
  130. package/dist/skills/ulw-research/scripts/unit-errors.mjs +23 -0
  131. package/dist/skills/ulw-research/scripts/unit-metadata.mjs +31 -0
  132. package/dist/skills/ulw-research/scripts/unit-pairs.mjs +72 -0
  133. package/dist/skills/ulw-research/scripts/unit-precision.mjs +44 -0
  134. package/dist/skills/ulw-research/scripts/unit-rules-shapes.mjs +64 -0
  135. package/dist/skills/ulw-research/scripts/unit-rules.mjs +173 -0
  136. package/dist/skills/ulw-research/scripts/units.mjs +4 -4
  137. package/dist/testing/module-mock-lifecycle.d.ts +1 -1
  138. package/dist/tui.js +32 -34
  139. package/package.json +13 -13
  140. package/packages/lsp-core/src/mcp-protocol-pin.test.ts +29 -0
  141. package/packages/lsp-core/src/mcp.ts +5 -2
  142. package/packages/lsp-daemon/dist/cli.js +3 -3
  143. package/packages/lsp-daemon/dist/client.js +3 -3
  144. package/packages/lsp-daemon/dist/index.js +3 -3
  145. package/packages/lsp-tools-mcp/dist/cli.js +3 -3
  146. package/packages/lsp-tools-mcp/dist/mcp.js +3 -3
  147. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  148. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +23 -14
  149. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  150. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  151. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  152. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  153. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  154. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  155. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  156. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  157. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  158. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  159. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  160. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  161. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  162. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  163. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  164. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  165. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  166. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  167. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  168. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  169. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  170. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  171. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  172. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  173. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  174. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  175. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  176. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  177. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  178. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  179. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  180. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  181. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  182. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  183. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  184. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  185. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  186. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  187. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  188. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  189. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  190. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  191. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  192. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  193. package/packages/omo-codex/plugin/package-lock.json +12 -12
  194. package/packages/omo-codex/plugin/package.json +1 -1
  195. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +8 -3
  196. package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +0 -2
  197. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +1 -1
  198. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  199. package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +2 -2
  200. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  201. package/packages/omo-codex/plugin/skills/ulw-research/AGENTS.md +14 -2
  202. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +36 -11
  203. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +81 -14
  204. package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger-grammar.md +19 -1
  205. package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger.md +95 -0
  206. package/packages/omo-codex/plugin/skills/ulw-research/references/fidelity-claim-kinds.md +19 -0
  207. package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +21 -4
  208. package/packages/omo-codex/plugin/skills/ulw-research/references/report-visualization.md +2 -0
  209. package/packages/omo-codex/plugin/skills/ulw-research/references/unit-rules.md +157 -0
  210. package/packages/omo-codex/plugin/skills/ulw-research/scripts/claim-kinds.mjs +116 -0
  211. package/packages/omo-codex/plugin/skills/ulw-research/scripts/cli-support.mjs +19 -5
  212. package/packages/omo-codex/plugin/skills/ulw-research/scripts/contracts.mjs +27 -6
  213. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-meaning.mjs +176 -0
  214. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-polish.mjs +127 -0
  215. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-verify.mjs +183 -0
  216. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands.mjs +241 -0
  217. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-derive.mjs +66 -0
  218. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-expr.mjs +108 -0
  219. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-fill.mjs +194 -0
  220. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-kinds.mjs +127 -13
  221. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-schema.mjs +33 -16
  222. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger.mjs +29 -9
  223. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-locate.mjs +231 -0
  224. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-pairs.mjs +185 -0
  225. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-recompute.mjs +89 -0
  226. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-binding.mjs +130 -0
  227. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-brief.mjs +5 -0
  228. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-claims.mjs +89 -0
  229. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-lexicon.mjs +145 -0
  230. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-records.mjs +163 -0
  231. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-state.mjs +2 -1
  232. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-trace.mjs +85 -0
  233. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-values.mjs +229 -0
  234. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-fidelity.mjs +113 -0
  235. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-static.mjs +28 -8
  236. package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-lite.mjs +2 -2
  237. package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-markup.mjs +182 -0
  238. package/packages/omo-codex/plugin/skills/ulw-research/scripts/md-lite.mjs +193 -0
  239. package/packages/omo-codex/plugin/skills/ulw-research/scripts/meaning-check.mjs +196 -0
  240. package/packages/omo-codex/plugin/skills/ulw-research/scripts/outcome.mjs +6 -5
  241. package/packages/omo-codex/plugin/skills/ulw-research/scripts/placeholder.mjs +184 -0
  242. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-apply.mjs +115 -0
  243. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-diff.mjs +31 -0
  244. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-project.mjs +125 -0
  245. package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-rules.mjs +170 -0
  246. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools-commands.mjs +19 -8
  247. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools.mjs +15 -0
  248. package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-commands.mjs +140 -0
  249. package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-snapshot.mjs +176 -0
  250. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-algebra.mjs +101 -0
  251. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-errors.mjs +23 -0
  252. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-metadata.mjs +31 -0
  253. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-pairs.mjs +72 -0
  254. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-precision.mjs +44 -0
  255. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-rules-shapes.mjs +64 -0
  256. package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-rules.mjs +173 -0
  257. package/packages/omo-codex/plugin/skills/ulw-research/scripts/units.mjs +4 -4
  258. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +19 -0
  259. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +7 -3
  260. package/packages/omo-codex/scripts/install-dist/install-local.mjs +28 -19
  261. package/packages/shared-skills/skills/ast-grep/AGENTS.md +1 -1
  262. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  263. package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +2 -2
  264. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +1 -1
  265. package/packages/shared-skills/skills/ulw-research/AGENTS.md +14 -2
  266. package/packages/shared-skills/skills/ulw-research/SKILL.md +37 -12
  267. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +81 -14
  268. package/packages/shared-skills/skills/ulw-research/references/fact-ledger-grammar.md +19 -1
  269. package/packages/shared-skills/skills/ulw-research/references/fact-ledger.md +95 -0
  270. package/packages/shared-skills/skills/ulw-research/references/fidelity-claim-kinds.md +19 -0
  271. package/packages/shared-skills/skills/ulw-research/references/report-gates.md +21 -4
  272. package/packages/shared-skills/skills/ulw-research/references/report-visualization.md +2 -0
  273. package/packages/shared-skills/skills/ulw-research/references/unit-rules.md +157 -0
  274. package/packages/shared-skills/skills/ulw-research/scripts/claim-kinds.mjs +116 -0
  275. package/packages/shared-skills/skills/ulw-research/scripts/claim-kinds.test.ts +193 -0
  276. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.mjs +19 -5
  277. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.test.ts +13 -2
  278. package/packages/shared-skills/skills/ulw-research/scripts/contracts.mjs +27 -6
  279. package/packages/shared-skills/skills/ulw-research/scripts/contracts.test.ts +3 -0
  280. package/packages/shared-skills/skills/ulw-research/scripts/copy-returns-polish.test.ts +209 -0
  281. package/packages/shared-skills/skills/ulw-research/scripts/copy-returns.test.ts +183 -0
  282. package/packages/shared-skills/skills/ulw-research/scripts/delivery-barrier.test.ts +245 -0
  283. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-meaning.mjs +176 -0
  284. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-polish.mjs +127 -0
  285. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-verify.mjs +183 -0
  286. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands.mjs +241 -0
  287. package/packages/shared-skills/skills/ulw-research/scripts/fact-derive.mjs +66 -0
  288. package/packages/shared-skills/skills/ulw-research/scripts/fact-derive.test.ts +375 -0
  289. package/packages/shared-skills/skills/ulw-research/scripts/fact-expr.mjs +108 -0
  290. package/packages/shared-skills/skills/ulw-research/scripts/fact-fill.mjs +194 -0
  291. package/packages/shared-skills/skills/ulw-research/scripts/fact-fill.test.ts +221 -0
  292. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-grammar.test.ts +9 -2
  293. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.mjs +127 -13
  294. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.test.ts +18 -3
  295. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-legacy.test.ts +160 -0
  296. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-schema.mjs +33 -16
  297. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger.mjs +29 -9
  298. package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger.test.ts +2 -0
  299. package/packages/shared-skills/skills/ulw-research/scripts/fact-locate.mjs +231 -0
  300. package/packages/shared-skills/skills/ulw-research/scripts/fact-locate.test.ts +118 -0
  301. package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.mjs +185 -0
  302. package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.test.ts +151 -0
  303. package/packages/shared-skills/skills/ulw-research/scripts/fact-recompute.mjs +89 -0
  304. package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-dimensions.test.ts +409 -0
  305. package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-rules.test.ts +388 -0
  306. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-binding.mjs +130 -0
  307. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-binding.test.ts +81 -0
  308. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-brief.mjs +5 -0
  309. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-claims.mjs +89 -0
  310. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-lexicon.mjs +145 -0
  311. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-lexicon.test.ts +117 -0
  312. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-records.mjs +163 -0
  313. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-state.mjs +2 -1
  314. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-trace.mjs +85 -0
  315. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-trace.test.ts +58 -0
  316. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.mjs +229 -0
  317. package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.test.ts +270 -0
  318. package/packages/shared-skills/skills/ulw-research/scripts/gates-fidelity.mjs +113 -0
  319. package/packages/shared-skills/skills/ulw-research/scripts/gates-fidelity.test.ts +73 -0
  320. package/packages/shared-skills/skills/ulw-research/scripts/gates-static.mjs +28 -8
  321. package/packages/shared-skills/skills/ulw-research/scripts/html-lite.mjs +2 -2
  322. package/packages/shared-skills/skills/ulw-research/scripts/html-markup.mjs +182 -0
  323. package/packages/shared-skills/skills/ulw-research/scripts/md-lite.mjs +193 -0
  324. package/packages/shared-skills/skills/ulw-research/scripts/md-lite.test.ts +271 -0
  325. package/packages/shared-skills/skills/ulw-research/scripts/meaning-check.mjs +196 -0
  326. package/packages/shared-skills/skills/ulw-research/scripts/meaning-check.test.ts +228 -0
  327. package/packages/shared-skills/skills/ulw-research/scripts/outcome.mjs +6 -5
  328. package/packages/shared-skills/skills/ulw-research/scripts/placeholder.mjs +184 -0
  329. package/packages/shared-skills/skills/ulw-research/scripts/placeholder.test.ts +77 -0
  330. package/packages/shared-skills/skills/ulw-research/scripts/polish-apply.mjs +115 -0
  331. package/packages/shared-skills/skills/ulw-research/scripts/polish-apply.test.ts +363 -0
  332. package/packages/shared-skills/skills/ulw-research/scripts/polish-diff.mjs +31 -0
  333. package/packages/shared-skills/skills/ulw-research/scripts/polish-diff.test.ts +168 -0
  334. package/packages/shared-skills/skills/ulw-research/scripts/polish-markup.test.ts +187 -0
  335. package/packages/shared-skills/skills/ulw-research/scripts/polish-project.mjs +125 -0
  336. package/packages/shared-skills/skills/ulw-research/scripts/polish-rules.mjs +170 -0
  337. package/packages/shared-skills/skills/ulw-research/scripts/references-fences.test.ts +25 -0
  338. package/packages/shared-skills/skills/ulw-research/scripts/report-tools-commands.mjs +19 -8
  339. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.mjs +15 -0
  340. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.test.ts +545 -2
  341. package/packages/shared-skills/skills/ulw-research/scripts/source-commands.mjs +140 -0
  342. package/packages/shared-skills/skills/ulw-research/scripts/source-snapshot.mjs +176 -0
  343. package/packages/shared-skills/skills/ulw-research/scripts/source-snapshot.test.ts +113 -0
  344. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/assets/share.csv +3 -0
  345. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/gen-legacy-dev.mjs +89 -0
  346. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-basic.json +223 -0
  347. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-legacy-dev.json +859 -0
  348. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-verify.json +420 -0
  349. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/polish-edits.json +12 -0
  350. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/report-bad.html +19 -0
  351. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/report-good.html +39 -0
  352. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/acronyms.json +3 -0
  353. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/meta.json +9 -0
  354. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/sentences.jsonl +7 -0
  355. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/text.txt +7 -0
  356. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4.html +19 -0
  357. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/acronyms.json +1 -0
  358. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/meta.json +9 -0
  359. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/sentences.jsonl +1 -0
  360. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/text.txt +1 -0
  361. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S9.txt +1 -0
  362. package/packages/shared-skills/skills/ulw-research/scripts/unit-algebra.mjs +101 -0
  363. package/packages/shared-skills/skills/ulw-research/scripts/unit-errors.mjs +23 -0
  364. package/packages/shared-skills/skills/ulw-research/scripts/unit-metadata.mjs +31 -0
  365. package/packages/shared-skills/skills/ulw-research/scripts/unit-pairs.mjs +72 -0
  366. package/packages/shared-skills/skills/ulw-research/scripts/unit-precision.mjs +44 -0
  367. package/packages/shared-skills/skills/ulw-research/scripts/unit-rules-shapes.mjs +64 -0
  368. package/packages/shared-skills/skills/ulw-research/scripts/unit-rules.mjs +173 -0
  369. package/packages/shared-skills/skills/ulw-research/scripts/units.mjs +4 -4
  370. package/dist/config-migration/dori-section-rename.d.ts +0 -3
@@ -205,8 +205,7 @@ gh release view "v${NEW_VERSION}" --json tagName,url --jq '{tag: .tagName, url:
205
205
 
206
206
  **Release notes are written BEFORE the release, not after.**
207
207
 
208
- The release body is extracted from the `CHANGELOG.md` section for this version. Author the user-facing
209
- notes under `## [Unreleased]` and land them before dispatching `/publish`; release-state preparation
208
+ The release body is extracted from the `CHANGELOG.md` section for this version. Add the user-facing notes as `changes/unreleased/<pr-number>.md` fragments (one per PR, named for the PR) and land them before dispatching `/publish`; release-state preparation
210
209
  stamps that heading into `## [<version>] - <UTC date>` and commits it with the release state, so the
211
210
  published commit already carries its own notes.
212
211
 
@@ -220,13 +219,13 @@ bun run script/print-release-notes.ts "${NEW_VERSION}" /tmp/contributors.md
220
219
  <agent-instruction>
221
220
  After running the preview, present the output to the user and say:
222
221
 
223
- > **This is the exact body the release will publish:** the notes you authored under `[Unreleased]`,
222
+ > **This is the exact body the release will publish:** the assembled fragments,
224
223
  > then contributor thank-yous for non-team contributors, then the install footer.
225
224
  >
226
225
  > Both steps are fail-closed: an absent, empty, or duplicated section aborts the release instead of
227
226
  > publishing blank notes, and re-stamping a version that already has a section is refused.
228
227
  >
229
- > If the `[Unreleased]` section is empty, STOP and write the notes first — the release cannot proceed.
228
+ > If `changes/unreleased/` holds no fragments, STOP and write them first — the release cannot proceed.
230
229
 
231
230
  **APPROVAL GATE (single, binary):** The user's initial publish request with a named bump type IS the only approval this workflow requires. Do NOT wait for a separate acknowledgement here. Present the preview, then IMMEDIATELY proceed to Step 6. The only exception: if the user explicitly said "let me review the changelog before you continue" (or equivalent), stop and wait. Otherwise continue without ending the turn.
232
231
  </agent-instruction>
@@ -373,25 +372,25 @@ After the release notes are finalized, post them to the Discord channel. This st
373
372
  <hard-gate>
374
373
  The workflow is not complete until this step has either:
375
374
  1. Sent a Discord message successfully and recorded the message ID, or
376
- 2. Failed after `agent-discordbot auth status` plus one send retry, with the Jobdori bot-token failure reported to the user.
375
+ 2. Failed after `agent-discordbot auth status` plus one send retry, with the release bot-token failure reported to the user.
377
376
 
378
377
  Never skip this step because the release summary was awaiting approval. If the user already confirmed the publish, continue through Discord before stopping.
379
378
  </hard-gate>
380
379
 
381
380
  <agent-discord-instruction>
382
- 1. Use the Jobdori bot token through `agent-discordbot` for release announcements. This is the required release path; do not use the personal `agent-discord` token unless the bot path is unavailable and the user explicitly approves the fallback. Pin the bot id so release messages go out as the Jobdori bot even if the local `agent-discordbot` current bot changes.
381
+ 1. Use the release bot token through `agent-discordbot` for release announcements. This is the required release path; do not use the personal `agent-discord` token unless the bot path is unavailable and the user explicitly approves the fallback. Pin the bot id so release messages go out as the release bot even if the local `agent-discordbot` current bot changes.
383
382
  ```bash
384
- JOBDORI_BOT_ID=1486173823354146917
385
- agent-discordbot auth status --bot "$JOBDORI_BOT_ID"
383
+ RELEASE_BOT_ID=1486173823354146917
384
+ agent-discordbot auth status --bot "$RELEASE_BOT_ID"
386
385
  ```
387
386
 
388
387
  2. **Read recent messages** in the channel to match the existing announcement style:
389
388
  ```bash
390
- JOBDORI_BOT_ID=1486173823354146917
391
- agent-discordbot message list 1454708427392680067 --bot "$JOBDORI_BOT_ID" --limit 5
389
+ RELEASE_BOT_ID=1486173823354146917
390
+ agent-discordbot message list 1454708427392680067 --bot "$RELEASE_BOT_ID" --limit 5
392
391
  ```
393
392
 
394
- 3. If `agent-discordbot` is unavailable or unauthorized, stop and report that the Jobdori token path failed. Only then may a human decide whether to use `agent-discord`.
393
+ 3. If `agent-discordbot` is unavailable or unauthorized, stop and report that the release bot token path failed. Only then may a human decide whether to use `agent-discord`.
395
394
 
396
395
  4. Post the release announcement to channel `1454708427392680067` matching the style of previous announcements. The message should follow this structure:
397
396
  ```
@@ -414,9 +413,9 @@ Plus {summary of remaining changes}.
414
413
  ```
415
414
 
416
415
  ```bash
417
- JOBDORI_BOT_ID=1486173823354146917
416
+ RELEASE_BOT_ID=1486173823354146917
418
417
  RELEASE_URL=$(gh release view "v${NEW_VERSION}" --json url --jq '.url')
419
- agent-discordbot message send 1454708427392680067 "{your message following the style above}" --bot "$JOBDORI_BOT_ID"
418
+ agent-discordbot message send 1454708427392680067 "{your message following the style above}" --bot "$RELEASE_BOT_ID"
420
419
  ```
421
420
 
422
421
  If the message fails to send, warn the user and continue — do NOT block the publish workflow on Discord errors.
@@ -204,8 +204,7 @@ gh release view "v${NEW_VERSION}" --json tagName,url --jq '{tag: .tagName, url:
204
204
 
205
205
  **Release notes are written BEFORE the release, not after.**
206
206
 
207
- The release body is extracted from the `CHANGELOG.md` section for this version. Author the user-facing
208
- notes under `## [Unreleased]` and land them before dispatching `/publish`; release-state preparation
207
+ The release body is extracted from the `CHANGELOG.md` section for this version. Add the user-facing notes as `changes/unreleased/<pr-number>.md` fragments (one per PR, named for the PR) and land them before dispatching `/publish`; release-state preparation
209
208
  stamps that heading into `## [<version>] - <UTC date>` and commits it with the release state, so the
210
209
  published commit already carries its own notes.
211
210
 
@@ -219,13 +218,13 @@ bun run script/print-release-notes.ts "${NEW_VERSION}" /tmp/contributors.md
219
218
  <agent-instruction>
220
219
  After running the preview, present the output to the user and say:
221
220
 
222
- > **This is the exact body the release will publish:** the notes you authored under `[Unreleased]`,
221
+ > **This is the exact body the release will publish:** the assembled fragments,
223
222
  > then contributor thank-yous for non-team contributors, then the install footer.
224
223
  >
225
224
  > Both steps are fail-closed: an absent, empty, or duplicated section aborts the release instead of
226
225
  > publishing blank notes, and re-stamping a version that already has a section is refused.
227
226
  >
228
- > If the `[Unreleased]` section is empty, STOP and write the notes first — the release cannot proceed.
227
+ > If `changes/unreleased/` holds no fragments, STOP and write them first — the release cannot proceed.
229
228
 
230
229
  **APPROVAL GATE (single, binary):** The user's initial publish request with a named bump type IS the only approval this workflow requires. Do NOT wait for a separate acknowledgement here. Present the preview, then IMMEDIATELY proceed to Step 6. The only exception: if the user explicitly said "let me review the changelog before you continue" (or equivalent), stop and wait. Otherwise continue without ending the turn.
231
230
  </agent-instruction>
@@ -372,25 +371,25 @@ After the release notes are finalized, post them to the Discord channel. This st
372
371
  <hard-gate>
373
372
  The workflow is not complete until this step has either:
374
373
  1. Sent a Discord message successfully and recorded the message ID, or
375
- 2. Failed after `agent-discordbot auth status` plus one send retry, with the Jobdori bot-token failure reported to the user.
374
+ 2. Failed after `agent-discordbot auth status` plus one send retry, with the release bot-token failure reported to the user.
376
375
 
377
376
  Never skip this step because the release summary was awaiting approval. If the user already confirmed the publish, continue through Discord before stopping.
378
377
  </hard-gate>
379
378
 
380
379
  <agent-discord-instruction>
381
- 1. Use the Jobdori bot token through `agent-discordbot` for release announcements. This is the required release path; do not use the personal `agent-discord` token unless the bot path is unavailable and the user explicitly approves the fallback. Pin the bot id so release messages go out as the Jobdori bot even if the local `agent-discordbot` current bot changes.
380
+ 1. Use the release bot token through `agent-discordbot` for release announcements. This is the required release path; do not use the personal `agent-discord` token unless the bot path is unavailable and the user explicitly approves the fallback. Pin the bot id so release messages go out as the release bot even if the local `agent-discordbot` current bot changes.
382
381
  ```bash
383
- JOBDORI_BOT_ID=1486173823354146917
384
- agent-discordbot auth status --bot "$JOBDORI_BOT_ID"
382
+ RELEASE_BOT_ID=1486173823354146917
383
+ agent-discordbot auth status --bot "$RELEASE_BOT_ID"
385
384
  ```
386
385
 
387
386
  2. **Read recent messages** in the channel to match the existing announcement style:
388
387
  ```bash
389
- JOBDORI_BOT_ID=1486173823354146917
390
- agent-discordbot message list 1454708427392680067 --bot "$JOBDORI_BOT_ID" --limit 5
388
+ RELEASE_BOT_ID=1486173823354146917
389
+ agent-discordbot message list 1454708427392680067 --bot "$RELEASE_BOT_ID" --limit 5
391
390
  ```
392
391
 
393
- 3. If `agent-discordbot` is unavailable or unauthorized, stop and report that the Jobdori token path failed. Only then may a human decide whether to use `agent-discord`.
392
+ 3. If `agent-discordbot` is unavailable or unauthorized, stop and report that the release bot token path failed. Only then may a human decide whether to use `agent-discord`.
394
393
 
395
394
  4. Post the release announcement to channel `1454708427392680067` matching the style of previous announcements. The message should follow this structure:
396
395
  ```
@@ -413,9 +412,9 @@ Plus {summary of remaining changes}.
413
412
  ```
414
413
 
415
414
  ```bash
416
- JOBDORI_BOT_ID=1486173823354146917
415
+ RELEASE_BOT_ID=1486173823354146917
417
416
  RELEASE_URL=$(gh release view "v${NEW_VERSION}" --json url --jq '.url')
418
- agent-discordbot message send 1454708427392680067 "{your message following the style above}" --bot "$JOBDORI_BOT_ID"
417
+ agent-discordbot message send 1454708427392680067 "{your message following the style above}" --bot "$RELEASE_BOT_ID"
419
418
  ```
420
419
 
421
420
  If the message fails to send, warn the user and continue — do NOT block the publish workflow on Discord errors.
@@ -205,8 +205,7 @@ gh release view "v${NEW_VERSION}" --json tagName,url --jq '{tag: .tagName, url:
205
205
 
206
206
  **Release notes are written BEFORE the release, not after.**
207
207
 
208
- The release body is extracted from the `CHANGELOG.md` section for this version. Author the user-facing
209
- notes under `## [Unreleased]` and land them before dispatching `/publish`; release-state preparation
208
+ The release body is extracted from the `CHANGELOG.md` section for this version. Add the user-facing notes as `changes/unreleased/<pr-number>.md` fragments (one per PR, named for the PR) and land them before dispatching `/publish`; release-state preparation
210
209
  stamps that heading into `## [<version>] - <UTC date>` and commits it with the release state, so the
211
210
  published commit already carries its own notes.
212
211
 
@@ -220,13 +219,13 @@ bun run script/print-release-notes.ts "${NEW_VERSION}" /tmp/contributors.md
220
219
  <agent-instruction>
221
220
  After running the preview, present the output to the user and say:
222
221
 
223
- > **This is the exact body the release will publish:** the notes you authored under `[Unreleased]`,
222
+ > **This is the exact body the release will publish:** the assembled fragments,
224
223
  > then contributor thank-yous for non-team contributors, then the install footer.
225
224
  >
226
225
  > Both steps are fail-closed: an absent, empty, or duplicated section aborts the release instead of
227
226
  > publishing blank notes, and re-stamping a version that already has a section is refused.
228
227
  >
229
- > If the `[Unreleased]` section is empty, STOP and write the notes first — the release cannot proceed.
228
+ > If `changes/unreleased/` holds no fragments, STOP and write them first — the release cannot proceed.
230
229
 
231
230
  **APPROVAL GATE (single, binary):** The user's initial publish request with a named bump type IS the only approval this workflow requires. Do NOT wait for a separate acknowledgement here. Present the preview, then IMMEDIATELY proceed to Step 6. The only exception: if the user explicitly said "let me review the changelog before you continue" (or equivalent), stop and wait. Otherwise continue without ending the turn.
232
231
  </agent-instruction>
@@ -373,25 +372,25 @@ After the release notes are finalized, post them to the Discord channel. This st
373
372
  <hard-gate>
374
373
  The workflow is not complete until this step has either:
375
374
  1. Sent a Discord message successfully and recorded the message ID, or
376
- 2. Failed after `agent-discordbot auth status` plus one send retry, with the Jobdori bot-token failure reported to the user.
375
+ 2. Failed after `agent-discordbot auth status` plus one send retry, with the release bot-token failure reported to the user.
377
376
 
378
377
  Never skip this step because the release summary was awaiting approval. If the user already confirmed the publish, continue through Discord before stopping.
379
378
  </hard-gate>
380
379
 
381
380
  <agent-discord-instruction>
382
- 1. Use the Jobdori bot token through `agent-discordbot` for release announcements. This is the required release path; do not use the personal `agent-discord` token unless the bot path is unavailable and the user explicitly approves the fallback. Pin the bot id so release messages go out as the Jobdori bot even if the local `agent-discordbot` current bot changes.
381
+ 1. Use the release bot token through `agent-discordbot` for release announcements. This is the required release path; do not use the personal `agent-discord` token unless the bot path is unavailable and the user explicitly approves the fallback. Pin the bot id so release messages go out as the release bot even if the local `agent-discordbot` current bot changes.
383
382
  ```bash
384
- JOBDORI_BOT_ID=1486173823354146917
385
- agent-discordbot auth status --bot "$JOBDORI_BOT_ID"
383
+ RELEASE_BOT_ID=1486173823354146917
384
+ agent-discordbot auth status --bot "$RELEASE_BOT_ID"
386
385
  ```
387
386
 
388
387
  2. **Read recent messages** in the channel to match the existing announcement style:
389
388
  ```bash
390
- JOBDORI_BOT_ID=1486173823354146917
391
- agent-discordbot message list 1454708427392680067 --bot "$JOBDORI_BOT_ID" --limit 5
389
+ RELEASE_BOT_ID=1486173823354146917
390
+ agent-discordbot message list 1454708427392680067 --bot "$RELEASE_BOT_ID" --limit 5
392
391
  ```
393
392
 
394
- 3. If `agent-discordbot` is unavailable or unauthorized, stop and report that the Jobdori token path failed. Only then may a human decide whether to use `agent-discord`.
393
+ 3. If `agent-discordbot` is unavailable or unauthorized, stop and report that the release bot token path failed. Only then may a human decide whether to use `agent-discord`.
395
394
 
396
395
  4. Post the release announcement to channel `1454708427392680067` matching the style of previous announcements. The message should follow this structure:
397
396
  ```
@@ -414,9 +413,9 @@ Plus {summary of remaining changes}.
414
413
  ```
415
414
 
416
415
  ```bash
417
- JOBDORI_BOT_ID=1486173823354146917
416
+ RELEASE_BOT_ID=1486173823354146917
418
417
  RELEASE_URL=$(gh release view "v${NEW_VERSION}" --json url --jq '.url')
419
- agent-discordbot message send 1454708427392680067 "{your message following the style above}" --bot "$JOBDORI_BOT_ID"
418
+ agent-discordbot message send 1454708427392680067 "{your message following the style above}" --bot "$RELEASE_BOT_ID"
420
419
  ```
421
420
 
422
421
  If the message fails to send, warn the user and continue — do NOT block the publish workflow on Discord errors.
package/README.de.md CHANGED
@@ -12,11 +12,6 @@
12
12
  > | :-----| :----- |
13
13
 
14
14
 
15
- > [!NOTE]
16
- >
17
- > [![Sisyphus Labs - Lerne Dori kennen. Keine Demo. Abonniert einfach alles.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
18
- > > **OmO wird von Jobdori betreut, dem oben gezeigten KI-Assistenten. Lerne deinen eigenen Jobdori kennen: Dori. <br />Trag dich [hier](https://sisyphuslabs.ai) auf die Warteliste ein.**
19
-
20
15
  > [!TIP]
21
16
  > Sei dabei!
22
17
  >
package/README.es.md CHANGED
@@ -12,11 +12,6 @@
12
12
  > | :-----| :----- |
13
13
 
14
14
 
15
- > [!NOTE]
16
- >
17
- > [![Sisyphus Labs - Conoce a Dori. No es una demo. Se suscribe a todo.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
18
- > > **OmO es mantenido por Jobdori, el asistente de IA que se muestra arriba. Conoce a tu propio Jobdori, Dori. <br />Únete a la lista de espera [aquí](https://sisyphuslabs.ai).**
19
-
20
15
  > [!TIP]
21
16
  > ¡Acompáñanos!
22
17
  >
package/README.fr.md CHANGED
@@ -12,11 +12,6 @@
12
12
  > | :-----| :----- |
13
13
 
14
14
 
15
- > [!NOTE]
16
- >
17
- > [![Sisyphus Labs - Découvrez Dori. Pas une démo. S'abonne à tout.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
18
- > > **OmO est maintenu par Jobdori, l'assistant IA présenté ci-dessus. Découvrez votre propre Jobdori, Dori. <br />Rejoignez la liste d'attente [ici](https://sisyphuslabs.ai).**
19
-
20
15
  > [!TIP]
21
16
  > Rejoignez-nous !
22
17
  >
package/README.it.md CHANGED
@@ -12,11 +12,6 @@
12
12
  > | :-----| :----- |
13
13
 
14
14
 
15
- > [!NOTE]
16
- >
17
- > [![Sisyphus Labs - Scopri Dori. Non è una demo. Si abbona a tutto.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
18
- > > **OmO è mantenuto da Jobdori, l'assistente IA mostrato qui sopra. Scopri il tuo Jobdori personale, Dori. <br />Iscriviti alla lista d'attesa [qui](https://sisyphuslabs.ai).**
19
-
20
15
  > [!TIP]
21
16
  > Unisciti a noi!
22
17
  >
package/README.ja.md CHANGED
@@ -13,11 +13,6 @@
13
13
  > | :-----| :----- |
14
14
 
15
15
 
16
- > [!NOTE]
17
- >
18
- > [![Sisyphus Labs - Meet Dori. Not a demo. Subscribes to everything.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
19
- > > **OmO は上記の Jobdori によってメンテナンスされています。あなた専用の Jobdori、Dori に会いましょう。 <br />[こちら](https://sisyphuslabs.ai) からウェイトリストにご登録ください。**
20
-
21
16
  > [!TIP]
22
17
  > 私たちと一緒に!
23
18
  >
package/README.ko.md CHANGED
@@ -12,11 +12,6 @@
12
12
  > | [<img alt="OpenGateway" src="./.github/assets/opengateway-logo.svg" width="156px" />](https://opengateway.ai/) | **[OpenGateway](https://opengateway.ai/)**가 OmO를 후원하고 있습니다. 여러 모델 제공사를 하나의 API로 쓸 수 있는 OpenAI 호환 게이트웨이입니다. 오픈소스를 응원해주셔서 감사합니다. |
13
13
  > | :-----| :----- |
14
14
 
15
- > [!NOTE]
16
- >
17
- > [![Sisyphus Labs - Meet Dori. Not a demo. Subscribes to everything.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
18
- > > **OmO는 위의 Jobdori에 의해 메인테이닝되고 있습니다. 당신의 Jobdori, Dori를 만나세요. <br />대기 명단은 [여기](https://sisyphuslabs.ai)에서 받습니다.**
19
-
20
15
  > [!TIP]
21
16
  > 함께해요!
22
17
  >
package/README.md CHANGED
@@ -12,11 +12,6 @@
12
12
  > | :-----| :----- |
13
13
 
14
14
 
15
- > [!NOTE]
16
- >
17
- > [![Sisyphus Labs - Meet Dori. Not a demo. Subscribes to everything.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
18
- > > **OmO is maintained by Jobdori, the AI assistant shown above. Meet your own Jobdori, Dori. <br />Join the waitlist [here](https://sisyphuslabs.ai).**
19
-
20
15
  > [!TIP]
21
16
  > Be with us!
22
17
  >
@@ -95,6 +90,10 @@ Opinionated defaults, adjustable if you insist. Your settings live in `~/.omo/om
95
90
  - [Computer use](docs/guide/computer-use.md) (experimental)
96
91
  - [Ultrawork Manifesto](docs/manifesto.md)
97
92
 
93
+ ## Reporting a bug
94
+
95
+ The fastest way to report a bug is `/bug` inside a session (available in the omo app). It lists what it includes and lets you see the exact report before you send it, then sends it to the OmO team: the recent engine log, your environment and config with secrets blanked, the session transcript, and identity lines - your device name and, when telemetry is on, an install id and a session hash, plus your account details (email, name, account, user and device ids, plan, device name) when you report from the desktop app, so we can reply. Everything but the identity lines goes through the upload redactor. GitHub issues stay open for anyone who cannot use the in-app report.
96
+
98
97
  ## Reviews
99
98
 
100
99
  > "It made me cancel my Cursor subscription. Unbelievable things are happening in the open source community." - [Arthur Guiot](https://x.com/arthur_guiot/status/2008736347092382053?s=20)
package/README.pt-br.md CHANGED
@@ -12,11 +12,6 @@
12
12
  > | :-----| :----- |
13
13
 
14
14
 
15
- > [!NOTE]
16
- >
17
- > [![Sisyphus Labs - Conheça Dori. Não é uma demo. Assina tudo.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
18
- > > **O OmO é mantido por Jobdori, o assistente de IA mostrado acima. Conheça seu próprio Jobdori, Dori. <br />Entre na lista de espera [aqui](https://sisyphuslabs.ai).**
19
-
20
15
  > [!TIP]
21
16
  > Junte-se a nós!
22
17
  >
package/README.ru.md CHANGED
@@ -13,12 +13,6 @@
13
13
  > | :-----| :----- |
14
14
 
15
15
 
16
- > [!NOTE]
17
- >
18
- > [![Sisyphus Labs - Meet Dori. Not a demo. Subscribes to everything.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
19
- >
20
- > > **OmO поддерживается Jobdori, ИИ-ассистентом, показанным выше. Познакомьтесь со своим Jobdori, Dori. <br />Присоединяйтесь к листу ожидания [здесь](https://sisyphuslabs.ai).**
21
-
22
16
  > [!TIP] Будьте с нами!
23
17
  >
24
18
  > | [<img alt="Discord link" src="https://img.shields.io/discord/1452487457085063218?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square" width="156px" />](https://discord.gg/PUwSMR9XNk) | Вступайте в наш [Discord](https://discord.gg/PUwSMR9XNk), чтобы общаться с контрибьюторами и пользователями OmO. |
package/README.zh-cn.md CHANGED
@@ -13,11 +13,6 @@
13
13
  > | :-----| :----- |
14
14
 
15
15
 
16
- > [!NOTE]
17
- >
18
- > [![Sisyphus Labs - Meet Dori. Not a demo. Subscribes to everything.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
19
- > > **OmO 由上述的 Jobdori 进行维护。认识你专属的 Jobdori, Dori。<br />[在此处](https://sisyphuslabs.ai)加入等待名单。**
20
-
21
16
  > [!TIP]
22
17
  > 加入我们!
23
18
  >
@@ -7,7 +7,8 @@
7
7
  * 1. Claude Opus 4.7 → opus-4-7.md (literal-following + explicit fan-out push)
8
8
  * 2. GPT family → gpt.md (shared GPT-family calibration)
9
9
  * 3. Gemini family → gemini.md
10
- * 4. Kimi K3 → kimi-k3.md (K3-native; checked first among Kimi)
10
+ * 4. Kimi K3.1 → kimi-k3-1.md (own copy of kimi-k3.md; checked before K3)
11
+ * 4b. Kimi K3 → kimi-k3.md (K3-native; checked first among the rest of Kimi)
11
12
  * 5. Kimi K2.7 → kimi-k2-7.md (restrained, outcome-first; checked before generic kimi)
12
13
  * 6. Kimi K2.x family → kimi.md (Claude-family base + K2.6 thinking-mode calibration)
13
14
  * 7. GLM family → glm.md (GLM 5.2 calibration)
@@ -18,7 +19,7 @@ import type { AgentMode, AgentPromptMetadata } from "../types";
18
19
  import type { AvailableAgent, AvailableSkill } from "../dynamic-agent-prompt-builder";
19
20
  import type { CategoryConfig } from "../../config/schema";
20
21
  declare const MODE: AgentMode;
21
- export type AtlasPromptSource = "default" | "gpt" | "gemini" | "kimi" | "kimi-k3" | "kimi-k2-7" | "opus-4-7" | "glm";
22
+ export type AtlasPromptSource = "default" | "gpt" | "gemini" | "kimi" | "kimi-k3" | "kimi-k3-1" | "kimi-k2-7" | "opus-4-7" | "glm";
22
23
  export declare function getAtlasPromptSource(model?: string): AtlasPromptSource;
23
24
  export interface OrchestratorContext {
24
25
  model?: string;
@@ -28,3 +28,4 @@ export { buildGlm52SisyphusPrompt } from "./glm-5-2";
28
28
  export { buildKimiK26SisyphusPrompt } from "./kimi-k2-6";
29
29
  export { buildKimiK27SisyphusPrompt } from "./kimi-k2-7";
30
30
  export { buildKimiK3SisyphusPrompt } from "./kimi-k3";
31
+ export { buildKimiK31SisyphusPrompt } from "./kimi-k3-1";
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Kimi K3.1 Sisyphus prompt: its own copy of kimi-k3.ts (Q, 2026-10-24), so later K3 tuning never
3
+ * changes what K3.1 sees. Copied at omo dev de27f2ebfa; only the identity line and the function names
4
+ * differ. Tune it on K3.1 evidence from here on. The K3 design notes in kimi-k3.ts applied at the copy.
5
+ */
6
+ import type { AvailableAgent, AvailableTool, AvailableSkill, AvailableCategory } from "../dynamic-agent-prompt-builder";
7
+ import { categorizeTools } from "../dynamic-agent-prompt-builder";
8
+ export declare function buildKimiK31SisyphusPrompt(model: string, availableAgents: AvailableAgent[], availableTools?: AvailableTool[], availableSkills?: AvailableSkill[], availableCategories?: AvailableCategory[], useTaskSystem?: boolean): string;
9
+ export { categorizeTools };
@@ -9,7 +9,7 @@ declare const MODE: AgentMode;
9
9
  * runtime model resolves to a different family than the configured one, the baked
10
10
  * body is the wrong family and must be rebuilt (issue #5297/#5316).
11
11
  */
12
- export type SisyphusPromptFamily = "kimi-k3" | "kimi-k2-7" | "kimi-k2-6" | "gpt-5-5" | "gpt-5-4" | "claude-fable-5" | "claude-opus-5" | "claude-opus-4-8" | "claude-opus-4-7" | "glm-5-2" | "grok-4" | "fallback";
12
+ export type SisyphusPromptFamily = "kimi-k3-1" | "kimi-k3" | "kimi-k2-7" | "kimi-k2-6" | "gpt-5-5" | "gpt-5-4" | "claude-fable-5" | "claude-opus-5" | "claude-opus-4-8" | "claude-opus-4-7" | "glm-5-2" | "grok-4" | "fallback";
13
13
  export declare function resolveSisyphusPromptFamily(model: string): SisyphusPromptFamily;
14
14
  export declare function createSisyphusAgent(model: string, availableAgents?: AvailableAgent[], availableToolNames?: string[], availableSkills?: AvailableSkill[], availableCategories?: AvailableCategory[], useTaskSystem?: boolean): AgentConfig;
15
15
  export declare namespace createSisyphusAgent {
@@ -21,7 +21,7 @@ export declare const SISYPHUS_JUNIOR_DEFAULTS: {
21
21
  readonly model: "anthropic/claude-sonnet-5";
22
22
  readonly temperature: 0.1;
23
23
  };
24
- export type SisyphusJuniorPromptSource = "default" | "kimi-k2" | "kimi-k2-7" | "kimi-k3" | "gpt" | "gpt-5-5" | "gpt-5-4" | "gemini" | "glm-5-2";
24
+ export type SisyphusJuniorPromptSource = "default" | "kimi-k2" | "kimi-k2-7" | "kimi-k3" | "kimi-k3-1" | "gpt" | "gpt-5-5" | "gpt-5-4" | "gemini" | "glm-5-2";
25
25
  export declare function getSisyphusJuniorPromptSource(model?: string): SisyphusJuniorPromptSource;
26
26
  /**
27
27
  * Builds the appropriate Sisyphus-Junior prompt based on model.
@@ -2,6 +2,7 @@ export { buildDefaultSisyphusJuniorPrompt } from "./default";
2
2
  export { buildKimiK26SisyphusJuniorPrompt } from "./kimi-k2-6";
3
3
  export { buildKimiK27SisyphusJuniorPrompt } from "./kimi-k2-7";
4
4
  export { buildKimiK3SisyphusJuniorPrompt } from "./kimi-k3";
5
+ export { buildKimiK31SisyphusJuniorPrompt } from "./kimi-k3-1";
5
6
  export { buildGptSisyphusJuniorPrompt } from "./gpt";
6
7
  export { buildGpt54SisyphusJuniorPrompt } from "./gpt-5-4";
7
8
  export { buildGpt55SisyphusJuniorPrompt } from "./gpt-5-5";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Kimi K3.1 Sisyphus-Junior prompt: its own copy of kimi-k3.ts (Q, 2026-10-24), so later K3 tuning never
3
+ * changes what K3.1 sees. Copied at omo dev de27f2ebfa; only the identity line and the function names
4
+ * differ. Tune it on K3.1 evidence from here on. The K3 design notes in kimi-k3.ts applied at the copy.
5
+ */
6
+ export declare function buildKimiK31SisyphusJuniorPrompt(useTaskSystem: boolean, promptAppend?: string): string;
@@ -1,6 +1,6 @@
1
1
  import type { AgentConfig } from "@opencode-ai/sdk";
2
- import { isClaudeFable5Model, isClaudeFableOrMythosModel, isClaudeOpus46Model, isClaudeOpus47Model, isClaudeOpus47OrLaterModel, isClaudeOpus48Model, isClaudeOpus5Model, isGeminiModel, isGlmModel, isGptModel, isGrok45Model, isGrok46Model, isKimiK2CodeModel, isKimiK2Model, isKimiK27Model, isKimiK28Model, isKimiK3Model, isMiniMaxModel } from "@oh-my-opencode/model-core";
3
- export { isClaudeFable5Model, isClaudeFableOrMythosModel, isClaudeOpus46Model, isClaudeOpus47Model, isClaudeOpus47OrLaterModel, isClaudeOpus48Model, isClaudeOpus5Model, isGeminiModel, isGlmModel, isGptModel, isGrok45Model, isGrok46Model, isKimiK2CodeModel, isKimiK2Model, isKimiK27Model, isKimiK28Model, isKimiK3Model, isMiniMaxModel, };
2
+ import { isClaudeFable5Model, isClaudeFableOrMythosModel, isClaudeOpus46Model, isClaudeOpus47Model, isClaudeOpus47OrLaterModel, isClaudeOpus48Model, isClaudeOpus5Model, isGeminiModel, isGlmModel, isGptModel, isGrok45Model, isGrok46Model, isKimiK2CodeModel, isKimiK2Model, isKimiK27Model, isKimiK28Model, isKimiK3Model, isKimiK31Model, isMiniMaxModel } from "@oh-my-opencode/model-core";
3
+ export { isClaudeFable5Model, isClaudeFableOrMythosModel, isClaudeOpus46Model, isClaudeOpus47Model, isClaudeOpus47OrLaterModel, isClaudeOpus48Model, isClaudeOpus5Model, isGeminiModel, isGlmModel, isGptModel, isGrok45Model, isGrok46Model, isKimiK2CodeModel, isKimiK2Model, isKimiK27Model, isKimiK28Model, isKimiK3Model, isKimiK31Model, isMiniMaxModel, };
4
4
  /**
5
5
  * Anthropic Opus 4.7+, Fable, and Mythos models reject thinking.type "enabled";
6
6
  * they require adaptive thinking plus an effort, which OpenCode core derives from