opencode-repos 0.3.0 → 0.3.2

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 (475) hide show
  1. package/index.ts +25 -11
  2. package/package.json +27 -27
  3. package/src/__tests__/git.test.ts +33 -2
  4. package/src/git.ts +32 -5
  5. package/.sisyphus/boulder.json +0 -8
  6. package/.sisyphus/notepads/opencode-repos/decisions.md +0 -15
  7. package/.sisyphus/notepads/opencode-repos/learnings.md +0 -384
  8. package/.sisyphus/plans/opencode-repos.md +0 -987
  9. package/.tmux-sessionizer +0 -8
  10. package/TODO.md +0 -3
  11. package/oh-my-opencode/.github/FUNDING.yml +0 -15
  12. package/oh-my-opencode/.github/ISSUE_TEMPLATE/bug_report.yml +0 -129
  13. package/oh-my-opencode/.github/ISSUE_TEMPLATE/config.yml +0 -8
  14. package/oh-my-opencode/.github/ISSUE_TEMPLATE/feature_request.yml +0 -100
  15. package/oh-my-opencode/.github/ISSUE_TEMPLATE/general.yml +0 -83
  16. package/oh-my-opencode/.github/assets/google.jpg +0 -0
  17. package/oh-my-opencode/.github/assets/hero.jpg +0 -0
  18. package/oh-my-opencode/.github/assets/indent.jpg +0 -0
  19. package/oh-my-opencode/.github/assets/microsoft.jpg +0 -0
  20. package/oh-my-opencode/.github/assets/omo.png +0 -0
  21. package/oh-my-opencode/.github/assets/orchestrator-atlas.png +0 -0
  22. package/oh-my-opencode/.github/assets/sisyphus.png +0 -0
  23. package/oh-my-opencode/.github/assets/sisyphuslabs.png +0 -0
  24. package/oh-my-opencode/.github/pull_request_template.md +0 -34
  25. package/oh-my-opencode/.github/workflows/ci.yml +0 -138
  26. package/oh-my-opencode/.github/workflows/cla.yml +0 -41
  27. package/oh-my-opencode/.github/workflows/lint-workflows.yml +0 -22
  28. package/oh-my-opencode/.github/workflows/publish.yml +0 -165
  29. package/oh-my-opencode/.github/workflows/sisyphus-agent.yml +0 -500
  30. package/oh-my-opencode/.opencode/background-tasks.json +0 -27
  31. package/oh-my-opencode/.opencode/command/get-unpublished-changes.md +0 -84
  32. package/oh-my-opencode/.opencode/command/omomomo.md +0 -37
  33. package/oh-my-opencode/.opencode/command/publish.md +0 -257
  34. package/oh-my-opencode/AGENTS.md +0 -179
  35. package/oh-my-opencode/CLA.md +0 -58
  36. package/oh-my-opencode/CONTRIBUTING.md +0 -268
  37. package/oh-my-opencode/LICENSE.md +0 -82
  38. package/oh-my-opencode/README.ja.md +0 -370
  39. package/oh-my-opencode/README.md +0 -376
  40. package/oh-my-opencode/README.zh-cn.md +0 -380
  41. package/oh-my-opencode/assets/oh-my-opencode.schema.json +0 -2171
  42. package/oh-my-opencode/bin/oh-my-opencode.js +0 -80
  43. package/oh-my-opencode/bin/platform.js +0 -38
  44. package/oh-my-opencode/bin/platform.test.ts +0 -148
  45. package/oh-my-opencode/bun.lock +0 -314
  46. package/oh-my-opencode/bunfig.toml +0 -2
  47. package/oh-my-opencode/docs/category-skill-guide.md +0 -200
  48. package/oh-my-opencode/docs/cli-guide.md +0 -272
  49. package/oh-my-opencode/docs/configurations.md +0 -654
  50. package/oh-my-opencode/docs/features.md +0 -550
  51. package/oh-my-opencode/docs/guide/installation.md +0 -288
  52. package/oh-my-opencode/docs/guide/overview.md +0 -97
  53. package/oh-my-opencode/docs/guide/understanding-orchestration-system.md +0 -445
  54. package/oh-my-opencode/docs/orchestration-guide.md +0 -152
  55. package/oh-my-opencode/docs/ultrawork-manifesto.md +0 -197
  56. package/oh-my-opencode/package.json +0 -89
  57. package/oh-my-opencode/packages/darwin-arm64/bin/.gitkeep +0 -0
  58. package/oh-my-opencode/packages/darwin-arm64/package.json +0 -22
  59. package/oh-my-opencode/packages/darwin-x64/bin/.gitkeep +0 -0
  60. package/oh-my-opencode/packages/darwin-x64/package.json +0 -22
  61. package/oh-my-opencode/packages/linux-arm64/bin/.gitkeep +0 -0
  62. package/oh-my-opencode/packages/linux-arm64/package.json +0 -25
  63. package/oh-my-opencode/packages/linux-arm64-musl/bin/.gitkeep +0 -0
  64. package/oh-my-opencode/packages/linux-arm64-musl/package.json +0 -25
  65. package/oh-my-opencode/packages/linux-x64/bin/.gitkeep +0 -0
  66. package/oh-my-opencode/packages/linux-x64/package.json +0 -25
  67. package/oh-my-opencode/packages/linux-x64-musl/bin/.gitkeep +0 -0
  68. package/oh-my-opencode/packages/linux-x64-musl/package.json +0 -25
  69. package/oh-my-opencode/packages/windows-x64/bin/.gitkeep +0 -0
  70. package/oh-my-opencode/packages/windows-x64/package.json +0 -22
  71. package/oh-my-opencode/postinstall.mjs +0 -43
  72. package/oh-my-opencode/script/build-binaries.ts +0 -103
  73. package/oh-my-opencode/script/build-schema.ts +0 -28
  74. package/oh-my-opencode/script/generate-changelog.ts +0 -92
  75. package/oh-my-opencode/script/publish.ts +0 -344
  76. package/oh-my-opencode/signatures/cla.json +0 -676
  77. package/oh-my-opencode/src/agents/AGENTS.md +0 -67
  78. package/oh-my-opencode/src/agents/atlas.ts +0 -1383
  79. package/oh-my-opencode/src/agents/dynamic-agent-prompt-builder.ts +0 -400
  80. package/oh-my-opencode/src/agents/explore.ts +0 -122
  81. package/oh-my-opencode/src/agents/index.ts +0 -13
  82. package/oh-my-opencode/src/agents/librarian.ts +0 -326
  83. package/oh-my-opencode/src/agents/metis.ts +0 -315
  84. package/oh-my-opencode/src/agents/momus.test.ts +0 -57
  85. package/oh-my-opencode/src/agents/momus.ts +0 -444
  86. package/oh-my-opencode/src/agents/multimodal-looker.ts +0 -56
  87. package/oh-my-opencode/src/agents/oracle.ts +0 -122
  88. package/oh-my-opencode/src/agents/prometheus-prompt.test.ts +0 -22
  89. package/oh-my-opencode/src/agents/prometheus-prompt.ts +0 -1196
  90. package/oh-my-opencode/src/agents/sisyphus-junior.test.ts +0 -232
  91. package/oh-my-opencode/src/agents/sisyphus-junior.ts +0 -134
  92. package/oh-my-opencode/src/agents/sisyphus.ts +0 -633
  93. package/oh-my-opencode/src/agents/types.ts +0 -80
  94. package/oh-my-opencode/src/agents/utils.test.ts +0 -311
  95. package/oh-my-opencode/src/agents/utils.ts +0 -240
  96. package/oh-my-opencode/src/cli/AGENTS.md +0 -91
  97. package/oh-my-opencode/src/cli/config-manager.test.ts +0 -364
  98. package/oh-my-opencode/src/cli/config-manager.ts +0 -641
  99. package/oh-my-opencode/src/cli/doctor/checks/auth.test.ts +0 -114
  100. package/oh-my-opencode/src/cli/doctor/checks/auth.ts +0 -115
  101. package/oh-my-opencode/src/cli/doctor/checks/config.test.ts +0 -103
  102. package/oh-my-opencode/src/cli/doctor/checks/config.ts +0 -123
  103. package/oh-my-opencode/src/cli/doctor/checks/dependencies.test.ts +0 -152
  104. package/oh-my-opencode/src/cli/doctor/checks/dependencies.ts +0 -163
  105. package/oh-my-opencode/src/cli/doctor/checks/gh.test.ts +0 -151
  106. package/oh-my-opencode/src/cli/doctor/checks/gh.ts +0 -171
  107. package/oh-my-opencode/src/cli/doctor/checks/index.ts +0 -34
  108. package/oh-my-opencode/src/cli/doctor/checks/lsp.test.ts +0 -134
  109. package/oh-my-opencode/src/cli/doctor/checks/lsp.ts +0 -77
  110. package/oh-my-opencode/src/cli/doctor/checks/mcp.test.ts +0 -115
  111. package/oh-my-opencode/src/cli/doctor/checks/mcp.ts +0 -128
  112. package/oh-my-opencode/src/cli/doctor/checks/opencode.test.ts +0 -227
  113. package/oh-my-opencode/src/cli/doctor/checks/opencode.ts +0 -178
  114. package/oh-my-opencode/src/cli/doctor/checks/plugin.test.ts +0 -109
  115. package/oh-my-opencode/src/cli/doctor/checks/plugin.ts +0 -124
  116. package/oh-my-opencode/src/cli/doctor/checks/version.test.ts +0 -148
  117. package/oh-my-opencode/src/cli/doctor/checks/version.ts +0 -135
  118. package/oh-my-opencode/src/cli/doctor/constants.ts +0 -72
  119. package/oh-my-opencode/src/cli/doctor/formatter.test.ts +0 -218
  120. package/oh-my-opencode/src/cli/doctor/formatter.ts +0 -140
  121. package/oh-my-opencode/src/cli/doctor/index.ts +0 -11
  122. package/oh-my-opencode/src/cli/doctor/runner.test.ts +0 -153
  123. package/oh-my-opencode/src/cli/doctor/runner.ts +0 -132
  124. package/oh-my-opencode/src/cli/doctor/types.ts +0 -113
  125. package/oh-my-opencode/src/cli/get-local-version/formatter.ts +0 -66
  126. package/oh-my-opencode/src/cli/get-local-version/index.ts +0 -106
  127. package/oh-my-opencode/src/cli/get-local-version/types.ts +0 -14
  128. package/oh-my-opencode/src/cli/index.ts +0 -153
  129. package/oh-my-opencode/src/cli/install.ts +0 -523
  130. package/oh-my-opencode/src/cli/model-fallback.ts +0 -246
  131. package/oh-my-opencode/src/cli/run/completion.test.ts +0 -170
  132. package/oh-my-opencode/src/cli/run/completion.ts +0 -79
  133. package/oh-my-opencode/src/cli/run/events.test.ts +0 -155
  134. package/oh-my-opencode/src/cli/run/events.ts +0 -325
  135. package/oh-my-opencode/src/cli/run/index.ts +0 -2
  136. package/oh-my-opencode/src/cli/run/runner.ts +0 -159
  137. package/oh-my-opencode/src/cli/run/types.ts +0 -76
  138. package/oh-my-opencode/src/cli/types.ts +0 -40
  139. package/oh-my-opencode/src/config/index.ts +0 -26
  140. package/oh-my-opencode/src/config/schema.test.ts +0 -444
  141. package/oh-my-opencode/src/config/schema.ts +0 -339
  142. package/oh-my-opencode/src/features/AGENTS.md +0 -77
  143. package/oh-my-opencode/src/features/background-agent/concurrency.test.ts +0 -418
  144. package/oh-my-opencode/src/features/background-agent/concurrency.ts +0 -137
  145. package/oh-my-opencode/src/features/background-agent/index.ts +0 -3
  146. package/oh-my-opencode/src/features/background-agent/manager.test.ts +0 -1928
  147. package/oh-my-opencode/src/features/background-agent/manager.ts +0 -1335
  148. package/oh-my-opencode/src/features/background-agent/types.ts +0 -66
  149. package/oh-my-opencode/src/features/boulder-state/constants.ts +0 -13
  150. package/oh-my-opencode/src/features/boulder-state/index.ts +0 -3
  151. package/oh-my-opencode/src/features/boulder-state/storage.test.ts +0 -250
  152. package/oh-my-opencode/src/features/boulder-state/storage.ts +0 -150
  153. package/oh-my-opencode/src/features/boulder-state/types.ts +0 -26
  154. package/oh-my-opencode/src/features/builtin-commands/commands.ts +0 -89
  155. package/oh-my-opencode/src/features/builtin-commands/index.ts +0 -2
  156. package/oh-my-opencode/src/features/builtin-commands/templates/init-deep.ts +0 -300
  157. package/oh-my-opencode/src/features/builtin-commands/templates/ralph-loop.ts +0 -38
  158. package/oh-my-opencode/src/features/builtin-commands/templates/refactor.ts +0 -619
  159. package/oh-my-opencode/src/features/builtin-commands/templates/start-work.ts +0 -72
  160. package/oh-my-opencode/src/features/builtin-commands/types.ts +0 -9
  161. package/oh-my-opencode/src/features/builtin-skills/frontend-ui-ux/SKILL.md +0 -78
  162. package/oh-my-opencode/src/features/builtin-skills/git-master/SKILL.md +0 -1105
  163. package/oh-my-opencode/src/features/builtin-skills/index.ts +0 -2
  164. package/oh-my-opencode/src/features/builtin-skills/skills.ts +0 -1203
  165. package/oh-my-opencode/src/features/builtin-skills/types.ts +0 -16
  166. package/oh-my-opencode/src/features/claude-code-agent-loader/index.ts +0 -2
  167. package/oh-my-opencode/src/features/claude-code-agent-loader/loader.ts +0 -90
  168. package/oh-my-opencode/src/features/claude-code-agent-loader/types.ts +0 -17
  169. package/oh-my-opencode/src/features/claude-code-command-loader/index.ts +0 -2
  170. package/oh-my-opencode/src/features/claude-code-command-loader/loader.ts +0 -144
  171. package/oh-my-opencode/src/features/claude-code-command-loader/types.ts +0 -46
  172. package/oh-my-opencode/src/features/claude-code-mcp-loader/env-expander.ts +0 -27
  173. package/oh-my-opencode/src/features/claude-code-mcp-loader/index.ts +0 -11
  174. package/oh-my-opencode/src/features/claude-code-mcp-loader/loader.test.ts +0 -162
  175. package/oh-my-opencode/src/features/claude-code-mcp-loader/loader.ts +0 -113
  176. package/oh-my-opencode/src/features/claude-code-mcp-loader/transformer.ts +0 -53
  177. package/oh-my-opencode/src/features/claude-code-mcp-loader/types.ts +0 -42
  178. package/oh-my-opencode/src/features/claude-code-plugin-loader/index.ts +0 -3
  179. package/oh-my-opencode/src/features/claude-code-plugin-loader/loader.ts +0 -486
  180. package/oh-my-opencode/src/features/claude-code-plugin-loader/types.ts +0 -210
  181. package/oh-my-opencode/src/features/claude-code-session-state/index.ts +0 -1
  182. package/oh-my-opencode/src/features/claude-code-session-state/state.test.ts +0 -126
  183. package/oh-my-opencode/src/features/claude-code-session-state/state.ts +0 -37
  184. package/oh-my-opencode/src/features/context-injector/collector.test.ts +0 -330
  185. package/oh-my-opencode/src/features/context-injector/collector.ts +0 -85
  186. package/oh-my-opencode/src/features/context-injector/index.ts +0 -14
  187. package/oh-my-opencode/src/features/context-injector/injector.test.ts +0 -122
  188. package/oh-my-opencode/src/features/context-injector/injector.ts +0 -167
  189. package/oh-my-opencode/src/features/context-injector/types.ts +0 -91
  190. package/oh-my-opencode/src/features/hook-message-injector/constants.ts +0 -6
  191. package/oh-my-opencode/src/features/hook-message-injector/index.ts +0 -4
  192. package/oh-my-opencode/src/features/hook-message-injector/injector.ts +0 -195
  193. package/oh-my-opencode/src/features/hook-message-injector/types.ts +0 -47
  194. package/oh-my-opencode/src/features/opencode-skill-loader/async-loader.test.ts +0 -448
  195. package/oh-my-opencode/src/features/opencode-skill-loader/async-loader.ts +0 -180
  196. package/oh-my-opencode/src/features/opencode-skill-loader/blocking.test.ts +0 -210
  197. package/oh-my-opencode/src/features/opencode-skill-loader/blocking.ts +0 -62
  198. package/oh-my-opencode/src/features/opencode-skill-loader/discover-worker.ts +0 -59
  199. package/oh-my-opencode/src/features/opencode-skill-loader/index.ts +0 -4
  200. package/oh-my-opencode/src/features/opencode-skill-loader/loader.test.ts +0 -273
  201. package/oh-my-opencode/src/features/opencode-skill-loader/loader.ts +0 -259
  202. package/oh-my-opencode/src/features/opencode-skill-loader/merger.ts +0 -267
  203. package/oh-my-opencode/src/features/opencode-skill-loader/skill-content.test.ts +0 -267
  204. package/oh-my-opencode/src/features/opencode-skill-loader/skill-content.ts +0 -206
  205. package/oh-my-opencode/src/features/opencode-skill-loader/types.ts +0 -38
  206. package/oh-my-opencode/src/features/skill-mcp-manager/env-cleaner.test.ts +0 -201
  207. package/oh-my-opencode/src/features/skill-mcp-manager/env-cleaner.ts +0 -27
  208. package/oh-my-opencode/src/features/skill-mcp-manager/index.ts +0 -2
  209. package/oh-my-opencode/src/features/skill-mcp-manager/manager.test.ts +0 -611
  210. package/oh-my-opencode/src/features/skill-mcp-manager/manager.ts +0 -520
  211. package/oh-my-opencode/src/features/skill-mcp-manager/types.ts +0 -14
  212. package/oh-my-opencode/src/features/task-toast-manager/index.ts +0 -2
  213. package/oh-my-opencode/src/features/task-toast-manager/manager.test.ts +0 -249
  214. package/oh-my-opencode/src/features/task-toast-manager/manager.ts +0 -215
  215. package/oh-my-opencode/src/features/task-toast-manager/types.ts +0 -24
  216. package/oh-my-opencode/src/hooks/AGENTS.md +0 -73
  217. package/oh-my-opencode/src/hooks/agent-usage-reminder/constants.ts +0 -54
  218. package/oh-my-opencode/src/hooks/agent-usage-reminder/index.ts +0 -109
  219. package/oh-my-opencode/src/hooks/agent-usage-reminder/storage.ts +0 -42
  220. package/oh-my-opencode/src/hooks/agent-usage-reminder/types.ts +0 -6
  221. package/oh-my-opencode/src/hooks/anthropic-context-window-limit-recovery/executor.test.ts +0 -307
  222. package/oh-my-opencode/src/hooks/anthropic-context-window-limit-recovery/executor.ts +0 -485
  223. package/oh-my-opencode/src/hooks/anthropic-context-window-limit-recovery/index.ts +0 -151
  224. package/oh-my-opencode/src/hooks/anthropic-context-window-limit-recovery/parser.ts +0 -201
  225. package/oh-my-opencode/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.test.ts +0 -33
  226. package/oh-my-opencode/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts +0 -184
  227. package/oh-my-opencode/src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts +0 -44
  228. package/oh-my-opencode/src/hooks/anthropic-context-window-limit-recovery/storage.test.ts +0 -77
  229. package/oh-my-opencode/src/hooks/anthropic-context-window-limit-recovery/storage.ts +0 -250
  230. package/oh-my-opencode/src/hooks/anthropic-context-window-limit-recovery/types.ts +0 -42
  231. package/oh-my-opencode/src/hooks/atlas/index.test.ts +0 -953
  232. package/oh-my-opencode/src/hooks/atlas/index.ts +0 -771
  233. package/oh-my-opencode/src/hooks/auto-slash-command/constants.ts +0 -12
  234. package/oh-my-opencode/src/hooks/auto-slash-command/detector.test.ts +0 -296
  235. package/oh-my-opencode/src/hooks/auto-slash-command/detector.ts +0 -65
  236. package/oh-my-opencode/src/hooks/auto-slash-command/executor.ts +0 -205
  237. package/oh-my-opencode/src/hooks/auto-slash-command/index.test.ts +0 -254
  238. package/oh-my-opencode/src/hooks/auto-slash-command/index.ts +0 -89
  239. package/oh-my-opencode/src/hooks/auto-slash-command/types.ts +0 -23
  240. package/oh-my-opencode/src/hooks/auto-update-checker/cache.ts +0 -93
  241. package/oh-my-opencode/src/hooks/auto-update-checker/checker.test.ts +0 -24
  242. package/oh-my-opencode/src/hooks/auto-update-checker/checker.ts +0 -284
  243. package/oh-my-opencode/src/hooks/auto-update-checker/constants.ts +0 -64
  244. package/oh-my-opencode/src/hooks/auto-update-checker/index.test.ts +0 -254
  245. package/oh-my-opencode/src/hooks/auto-update-checker/index.ts +0 -260
  246. package/oh-my-opencode/src/hooks/auto-update-checker/types.ts +0 -29
  247. package/oh-my-opencode/src/hooks/background-compaction/index.ts +0 -87
  248. package/oh-my-opencode/src/hooks/background-notification/index.ts +0 -28
  249. package/oh-my-opencode/src/hooks/background-notification/types.ts +0 -5
  250. package/oh-my-opencode/src/hooks/claude-code-hooks/AGENTS.md +0 -70
  251. package/oh-my-opencode/src/hooks/claude-code-hooks/config-loader.ts +0 -107
  252. package/oh-my-opencode/src/hooks/claude-code-hooks/config.ts +0 -103
  253. package/oh-my-opencode/src/hooks/claude-code-hooks/index.ts +0 -401
  254. package/oh-my-opencode/src/hooks/claude-code-hooks/plugin-config.ts +0 -12
  255. package/oh-my-opencode/src/hooks/claude-code-hooks/post-tool-use.ts +0 -199
  256. package/oh-my-opencode/src/hooks/claude-code-hooks/pre-compact.ts +0 -109
  257. package/oh-my-opencode/src/hooks/claude-code-hooks/pre-tool-use.ts +0 -172
  258. package/oh-my-opencode/src/hooks/claude-code-hooks/stop.ts +0 -118
  259. package/oh-my-opencode/src/hooks/claude-code-hooks/todo.ts +0 -76
  260. package/oh-my-opencode/src/hooks/claude-code-hooks/tool-input-cache.ts +0 -47
  261. package/oh-my-opencode/src/hooks/claude-code-hooks/transcript.ts +0 -252
  262. package/oh-my-opencode/src/hooks/claude-code-hooks/types.ts +0 -204
  263. package/oh-my-opencode/src/hooks/claude-code-hooks/user-prompt-submit.ts +0 -117
  264. package/oh-my-opencode/src/hooks/comment-checker/cli.test.ts +0 -68
  265. package/oh-my-opencode/src/hooks/comment-checker/cli.ts +0 -221
  266. package/oh-my-opencode/src/hooks/comment-checker/downloader.ts +0 -196
  267. package/oh-my-opencode/src/hooks/comment-checker/index.ts +0 -171
  268. package/oh-my-opencode/src/hooks/comment-checker/types.ts +0 -33
  269. package/oh-my-opencode/src/hooks/compaction-context-injector/index.ts +0 -61
  270. package/oh-my-opencode/src/hooks/context-window-monitor.ts +0 -99
  271. package/oh-my-opencode/src/hooks/delegate-task-retry/index.test.ts +0 -119
  272. package/oh-my-opencode/src/hooks/delegate-task-retry/index.ts +0 -136
  273. package/oh-my-opencode/src/hooks/directory-agents-injector/constants.ts +0 -9
  274. package/oh-my-opencode/src/hooks/directory-agents-injector/index.ts +0 -182
  275. package/oh-my-opencode/src/hooks/directory-agents-injector/storage.ts +0 -48
  276. package/oh-my-opencode/src/hooks/directory-agents-injector/types.ts +0 -5
  277. package/oh-my-opencode/src/hooks/directory-readme-injector/constants.ts +0 -9
  278. package/oh-my-opencode/src/hooks/directory-readme-injector/index.ts +0 -177
  279. package/oh-my-opencode/src/hooks/directory-readme-injector/storage.ts +0 -48
  280. package/oh-my-opencode/src/hooks/directory-readme-injector/types.ts +0 -5
  281. package/oh-my-opencode/src/hooks/edit-error-recovery/index.test.ts +0 -126
  282. package/oh-my-opencode/src/hooks/edit-error-recovery/index.ts +0 -57
  283. package/oh-my-opencode/src/hooks/empty-task-response-detector.ts +0 -27
  284. package/oh-my-opencode/src/hooks/index.ts +0 -32
  285. package/oh-my-opencode/src/hooks/interactive-bash-session/constants.ts +0 -15
  286. package/oh-my-opencode/src/hooks/interactive-bash-session/index.ts +0 -262
  287. package/oh-my-opencode/src/hooks/interactive-bash-session/storage.ts +0 -59
  288. package/oh-my-opencode/src/hooks/interactive-bash-session/types.ts +0 -11
  289. package/oh-my-opencode/src/hooks/keyword-detector/constants.ts +0 -300
  290. package/oh-my-opencode/src/hooks/keyword-detector/detector.ts +0 -52
  291. package/oh-my-opencode/src/hooks/keyword-detector/index.test.ts +0 -529
  292. package/oh-my-opencode/src/hooks/keyword-detector/index.ts +0 -100
  293. package/oh-my-opencode/src/hooks/keyword-detector/types.ts +0 -4
  294. package/oh-my-opencode/src/hooks/non-interactive-env/constants.ts +0 -70
  295. package/oh-my-opencode/src/hooks/non-interactive-env/detector.ts +0 -19
  296. package/oh-my-opencode/src/hooks/non-interactive-env/index.test.ts +0 -323
  297. package/oh-my-opencode/src/hooks/non-interactive-env/index.ts +0 -63
  298. package/oh-my-opencode/src/hooks/non-interactive-env/types.ts +0 -3
  299. package/oh-my-opencode/src/hooks/prometheus-md-only/constants.ts +0 -32
  300. package/oh-my-opencode/src/hooks/prometheus-md-only/index.test.ts +0 -488
  301. package/oh-my-opencode/src/hooks/prometheus-md-only/index.ts +0 -136
  302. package/oh-my-opencode/src/hooks/ralph-loop/constants.ts +0 -5
  303. package/oh-my-opencode/src/hooks/ralph-loop/index.test.ts +0 -835
  304. package/oh-my-opencode/src/hooks/ralph-loop/index.ts +0 -417
  305. package/oh-my-opencode/src/hooks/ralph-loop/storage.ts +0 -115
  306. package/oh-my-opencode/src/hooks/ralph-loop/types.ts +0 -19
  307. package/oh-my-opencode/src/hooks/rules-injector/constants.ts +0 -30
  308. package/oh-my-opencode/src/hooks/rules-injector/finder.test.ts +0 -381
  309. package/oh-my-opencode/src/hooks/rules-injector/finder.ts +0 -263
  310. package/oh-my-opencode/src/hooks/rules-injector/index.ts +0 -223
  311. package/oh-my-opencode/src/hooks/rules-injector/matcher.ts +0 -63
  312. package/oh-my-opencode/src/hooks/rules-injector/parser.test.ts +0 -226
  313. package/oh-my-opencode/src/hooks/rules-injector/parser.ts +0 -211
  314. package/oh-my-opencode/src/hooks/rules-injector/storage.ts +0 -59
  315. package/oh-my-opencode/src/hooks/rules-injector/types.ts +0 -57
  316. package/oh-my-opencode/src/hooks/session-notification-utils.ts +0 -140
  317. package/oh-my-opencode/src/hooks/session-notification.test.ts +0 -361
  318. package/oh-my-opencode/src/hooks/session-notification.ts +0 -330
  319. package/oh-my-opencode/src/hooks/session-recovery/constants.ts +0 -10
  320. package/oh-my-opencode/src/hooks/session-recovery/index.test.ts +0 -223
  321. package/oh-my-opencode/src/hooks/session-recovery/index.ts +0 -435
  322. package/oh-my-opencode/src/hooks/session-recovery/storage.ts +0 -390
  323. package/oh-my-opencode/src/hooks/session-recovery/types.ts +0 -98
  324. package/oh-my-opencode/src/hooks/start-work/index.test.ts +0 -402
  325. package/oh-my-opencode/src/hooks/start-work/index.ts +0 -242
  326. package/oh-my-opencode/src/hooks/task-resume-info/index.ts +0 -36
  327. package/oh-my-opencode/src/hooks/think-mode/detector.ts +0 -57
  328. package/oh-my-opencode/src/hooks/think-mode/index.test.ts +0 -353
  329. package/oh-my-opencode/src/hooks/think-mode/index.ts +0 -89
  330. package/oh-my-opencode/src/hooks/think-mode/switcher.test.ts +0 -461
  331. package/oh-my-opencode/src/hooks/think-mode/switcher.ts +0 -222
  332. package/oh-my-opencode/src/hooks/think-mode/types.ts +0 -21
  333. package/oh-my-opencode/src/hooks/thinking-block-validator/index.ts +0 -171
  334. package/oh-my-opencode/src/hooks/todo-continuation-enforcer.test.ts +0 -876
  335. package/oh-my-opencode/src/hooks/todo-continuation-enforcer.ts +0 -480
  336. package/oh-my-opencode/src/hooks/tool-output-truncator.test.ts +0 -168
  337. package/oh-my-opencode/src/hooks/tool-output-truncator.ts +0 -61
  338. package/oh-my-opencode/src/index.ts +0 -589
  339. package/oh-my-opencode/src/mcp/AGENTS.md +0 -70
  340. package/oh-my-opencode/src/mcp/context7.ts +0 -6
  341. package/oh-my-opencode/src/mcp/grep-app.ts +0 -6
  342. package/oh-my-opencode/src/mcp/index.test.ts +0 -86
  343. package/oh-my-opencode/src/mcp/index.ts +0 -32
  344. package/oh-my-opencode/src/mcp/types.ts +0 -9
  345. package/oh-my-opencode/src/mcp/websearch.ts +0 -10
  346. package/oh-my-opencode/src/plugin-config.test.ts +0 -119
  347. package/oh-my-opencode/src/plugin-config.ts +0 -135
  348. package/oh-my-opencode/src/plugin-handlers/config-handler.test.ts +0 -103
  349. package/oh-my-opencode/src/plugin-handlers/config-handler.ts +0 -399
  350. package/oh-my-opencode/src/plugin-handlers/index.ts +0 -1
  351. package/oh-my-opencode/src/plugin-state.ts +0 -30
  352. package/oh-my-opencode/src/shared/AGENTS.md +0 -63
  353. package/oh-my-opencode/src/shared/agent-tool-restrictions.ts +0 -44
  354. package/oh-my-opencode/src/shared/agent-variant.test.ts +0 -83
  355. package/oh-my-opencode/src/shared/agent-variant.ts +0 -40
  356. package/oh-my-opencode/src/shared/claude-config-dir.test.ts +0 -60
  357. package/oh-my-opencode/src/shared/claude-config-dir.ts +0 -11
  358. package/oh-my-opencode/src/shared/command-executor.ts +0 -225
  359. package/oh-my-opencode/src/shared/config-errors.ts +0 -18
  360. package/oh-my-opencode/src/shared/config-path.ts +0 -47
  361. package/oh-my-opencode/src/shared/data-path.ts +0 -22
  362. package/oh-my-opencode/src/shared/deep-merge.test.ts +0 -336
  363. package/oh-my-opencode/src/shared/deep-merge.ts +0 -53
  364. package/oh-my-opencode/src/shared/dynamic-truncator.ts +0 -193
  365. package/oh-my-opencode/src/shared/external-plugin-detector.test.ts +0 -133
  366. package/oh-my-opencode/src/shared/external-plugin-detector.ts +0 -132
  367. package/oh-my-opencode/src/shared/file-reference-resolver.ts +0 -85
  368. package/oh-my-opencode/src/shared/file-utils.ts +0 -40
  369. package/oh-my-opencode/src/shared/first-message-variant.test.ts +0 -32
  370. package/oh-my-opencode/src/shared/first-message-variant.ts +0 -28
  371. package/oh-my-opencode/src/shared/frontmatter.test.ts +0 -262
  372. package/oh-my-opencode/src/shared/frontmatter.ts +0 -31
  373. package/oh-my-opencode/src/shared/hook-disabled.ts +0 -22
  374. package/oh-my-opencode/src/shared/index.ts +0 -29
  375. package/oh-my-opencode/src/shared/jsonc-parser.test.ts +0 -266
  376. package/oh-my-opencode/src/shared/jsonc-parser.ts +0 -66
  377. package/oh-my-opencode/src/shared/logger.ts +0 -20
  378. package/oh-my-opencode/src/shared/migration.test.ts +0 -602
  379. package/oh-my-opencode/src/shared/migration.ts +0 -191
  380. package/oh-my-opencode/src/shared/model-resolver.test.ts +0 -101
  381. package/oh-my-opencode/src/shared/model-resolver.ts +0 -35
  382. package/oh-my-opencode/src/shared/model-sanitizer.ts +0 -12
  383. package/oh-my-opencode/src/shared/opencode-config-dir.test.ts +0 -318
  384. package/oh-my-opencode/src/shared/opencode-config-dir.ts +0 -142
  385. package/oh-my-opencode/src/shared/opencode-version.test.ts +0 -223
  386. package/oh-my-opencode/src/shared/opencode-version.ts +0 -72
  387. package/oh-my-opencode/src/shared/pattern-matcher.ts +0 -29
  388. package/oh-my-opencode/src/shared/permission-compat.test.ts +0 -134
  389. package/oh-my-opencode/src/shared/permission-compat.ts +0 -77
  390. package/oh-my-opencode/src/shared/session-cursor.test.ts +0 -66
  391. package/oh-my-opencode/src/shared/session-cursor.ts +0 -85
  392. package/oh-my-opencode/src/shared/shell-env.test.ts +0 -278
  393. package/oh-my-opencode/src/shared/shell-env.ts +0 -111
  394. package/oh-my-opencode/src/shared/snake-case.ts +0 -49
  395. package/oh-my-opencode/src/shared/system-directive.ts +0 -40
  396. package/oh-my-opencode/src/shared/tool-name.ts +0 -26
  397. package/oh-my-opencode/src/shared/zip-extractor.ts +0 -83
  398. package/oh-my-opencode/src/tools/AGENTS.md +0 -74
  399. package/oh-my-opencode/src/tools/ast-grep/cli.ts +0 -230
  400. package/oh-my-opencode/src/tools/ast-grep/constants.ts +0 -261
  401. package/oh-my-opencode/src/tools/ast-grep/downloader.ts +0 -128
  402. package/oh-my-opencode/src/tools/ast-grep/index.ts +0 -13
  403. package/oh-my-opencode/src/tools/ast-grep/tools.ts +0 -112
  404. package/oh-my-opencode/src/tools/ast-grep/types.ts +0 -61
  405. package/oh-my-opencode/src/tools/ast-grep/utils.ts +0 -102
  406. package/oh-my-opencode/src/tools/background-task/constants.ts +0 -7
  407. package/oh-my-opencode/src/tools/background-task/index.ts +0 -7
  408. package/oh-my-opencode/src/tools/background-task/tools.ts +0 -479
  409. package/oh-my-opencode/src/tools/background-task/types.ts +0 -16
  410. package/oh-my-opencode/src/tools/call-omo-agent/constants.ts +0 -7
  411. package/oh-my-opencode/src/tools/call-omo-agent/index.ts +0 -3
  412. package/oh-my-opencode/src/tools/call-omo-agent/tools.ts +0 -338
  413. package/oh-my-opencode/src/tools/call-omo-agent/types.ts +0 -27
  414. package/oh-my-opencode/src/tools/delegate-task/constants.ts +0 -205
  415. package/oh-my-opencode/src/tools/delegate-task/index.ts +0 -3
  416. package/oh-my-opencode/src/tools/delegate-task/tools.test.ts +0 -1575
  417. package/oh-my-opencode/src/tools/delegate-task/tools.ts +0 -885
  418. package/oh-my-opencode/src/tools/delegate-task/types.ts +0 -9
  419. package/oh-my-opencode/src/tools/glob/cli.test.ts +0 -158
  420. package/oh-my-opencode/src/tools/glob/cli.ts +0 -191
  421. package/oh-my-opencode/src/tools/glob/constants.ts +0 -12
  422. package/oh-my-opencode/src/tools/glob/index.ts +0 -3
  423. package/oh-my-opencode/src/tools/glob/tools.ts +0 -41
  424. package/oh-my-opencode/src/tools/glob/types.ts +0 -22
  425. package/oh-my-opencode/src/tools/glob/utils.ts +0 -26
  426. package/oh-my-opencode/src/tools/grep/cli.ts +0 -229
  427. package/oh-my-opencode/src/tools/grep/constants.ts +0 -127
  428. package/oh-my-opencode/src/tools/grep/downloader.test.ts +0 -103
  429. package/oh-my-opencode/src/tools/grep/downloader.ts +0 -145
  430. package/oh-my-opencode/src/tools/grep/index.ts +0 -3
  431. package/oh-my-opencode/src/tools/grep/tools.ts +0 -40
  432. package/oh-my-opencode/src/tools/grep/types.ts +0 -39
  433. package/oh-my-opencode/src/tools/grep/utils.ts +0 -53
  434. package/oh-my-opencode/src/tools/index.ts +0 -72
  435. package/oh-my-opencode/src/tools/interactive-bash/constants.ts +0 -18
  436. package/oh-my-opencode/src/tools/interactive-bash/index.ts +0 -4
  437. package/oh-my-opencode/src/tools/interactive-bash/tools.ts +0 -126
  438. package/oh-my-opencode/src/tools/interactive-bash/utils.ts +0 -71
  439. package/oh-my-opencode/src/tools/look-at/constants.ts +0 -3
  440. package/oh-my-opencode/src/tools/look-at/index.ts +0 -3
  441. package/oh-my-opencode/src/tools/look-at/tools.test.ts +0 -73
  442. package/oh-my-opencode/src/tools/look-at/tools.ts +0 -173
  443. package/oh-my-opencode/src/tools/look-at/types.ts +0 -4
  444. package/oh-my-opencode/src/tools/lsp/client.ts +0 -596
  445. package/oh-my-opencode/src/tools/lsp/config.test.ts +0 -130
  446. package/oh-my-opencode/src/tools/lsp/config.ts +0 -285
  447. package/oh-my-opencode/src/tools/lsp/constants.ts +0 -390
  448. package/oh-my-opencode/src/tools/lsp/index.ts +0 -7
  449. package/oh-my-opencode/src/tools/lsp/tools.ts +0 -261
  450. package/oh-my-opencode/src/tools/lsp/types.ts +0 -124
  451. package/oh-my-opencode/src/tools/lsp/utils.ts +0 -406
  452. package/oh-my-opencode/src/tools/session-manager/constants.ts +0 -97
  453. package/oh-my-opencode/src/tools/session-manager/index.ts +0 -3
  454. package/oh-my-opencode/src/tools/session-manager/storage.test.ts +0 -315
  455. package/oh-my-opencode/src/tools/session-manager/storage.ts +0 -238
  456. package/oh-my-opencode/src/tools/session-manager/tools.test.ts +0 -124
  457. package/oh-my-opencode/src/tools/session-manager/tools.ts +0 -146
  458. package/oh-my-opencode/src/tools/session-manager/types.ts +0 -99
  459. package/oh-my-opencode/src/tools/session-manager/utils.test.ts +0 -160
  460. package/oh-my-opencode/src/tools/session-manager/utils.ts +0 -199
  461. package/oh-my-opencode/src/tools/skill/constants.ts +0 -8
  462. package/oh-my-opencode/src/tools/skill/index.ts +0 -3
  463. package/oh-my-opencode/src/tools/skill/tools.test.ts +0 -239
  464. package/oh-my-opencode/src/tools/skill/tools.ts +0 -200
  465. package/oh-my-opencode/src/tools/skill/types.ts +0 -31
  466. package/oh-my-opencode/src/tools/skill-mcp/constants.ts +0 -3
  467. package/oh-my-opencode/src/tools/skill-mcp/index.ts +0 -3
  468. package/oh-my-opencode/src/tools/skill-mcp/tools.test.ts +0 -215
  469. package/oh-my-opencode/src/tools/skill-mcp/tools.ts +0 -172
  470. package/oh-my-opencode/src/tools/skill-mcp/types.ts +0 -8
  471. package/oh-my-opencode/src/tools/slashcommand/index.ts +0 -2
  472. package/oh-my-opencode/src/tools/slashcommand/tools.ts +0 -252
  473. package/oh-my-opencode/src/tools/slashcommand/types.ts +0 -28
  474. package/oh-my-opencode/test-setup.ts +0 -6
  475. package/oh-my-opencode/tsconfig.json +0 -20
@@ -1,444 +0,0 @@
1
- import type { AgentConfig } from "@opencode-ai/sdk"
2
- import type { AgentPromptMetadata } from "./types"
3
- import { isGptModel } from "./types"
4
- import { createAgentToolRestrictions } from "../shared/permission-compat"
5
-
6
- /**
7
- * Momus - Plan Reviewer Agent
8
- *
9
- * Named after Momus, the Greek god of satire and mockery, who was known for
10
- * finding fault in everything - even the works of the gods themselves.
11
- * He criticized Aphrodite (found her sandals squeaky), Hephaestus (said man
12
- * should have windows in his chest to see thoughts), and Athena (her house
13
- * should be on wheels to move from bad neighbors).
14
- *
15
- * This agent reviews work plans with the same ruthless critical eye,
16
- * catching every gap, ambiguity, and missing context that would block
17
- * implementation.
18
- */
19
-
20
- export const MOMUS_SYSTEM_PROMPT = `You are a work plan review expert. You review the provided work plan (.sisyphus/plans/{name}.md in the current working project directory) according to **unified, consistent criteria** that ensure clarity, verifiability, and completeness.
21
-
22
- **CRITICAL FIRST RULE**:
23
- Extract a single plan path from anywhere in the input, ignoring system directives and wrappers. If exactly one \`.sisyphus/plans/*.md\` path exists, this is VALID input and you must read it. If no plan path exists or multiple plan paths exist, reject per Step 0. If the path points to a YAML plan file (\`.yml\` or \`.yaml\`), reject it as non-reviewable.
24
-
25
- **WHY YOU'VE BEEN SUMMONED - THE CONTEXT**:
26
-
27
- You are reviewing a **first-draft work plan** from an author with ADHD. Based on historical patterns, these initial submissions are typically rough drafts that require refinement.
28
-
29
- **Historical Data**: Plans from this author average **7 rejections** before receiving an OKAY. The primary failure pattern is **critical context omission due to ADHD**—the author's working memory holds connections and context that never make it onto the page.
30
-
31
- **What to Expect in First Drafts**:
32
- - Tasks are listed but critical "why" context is missing
33
- - References to files/patterns without explaining their relevance
34
- - Assumptions about "obvious" project conventions that aren't documented
35
- - Missing decision criteria when multiple approaches are valid
36
- - Undefined edge case handling strategies
37
- - Unclear component integration points
38
-
39
- **Why These Plans Fail**:
40
-
41
- The ADHD author's mind makes rapid connections: "Add auth → obviously use JWT → obviously store in httpOnly cookie → obviously follow the pattern in auth/login.ts → obviously handle refresh tokens like we did before."
42
-
43
- But the plan only says: "Add authentication following auth/login.ts pattern."
44
-
45
- **Everything after the first arrow is missing.** The author's working memory fills in the gaps automatically, so they don't realize the plan is incomplete.
46
-
47
- **Your Critical Role**: Catch these ADHD-driven omissions. The author genuinely doesn't realize what they've left out. Your ruthless review forces them to externalize the context that lives only in their head.
48
-
49
- ---
50
-
51
- ## Your Core Review Principle
52
-
53
- **ABSOLUTE CONSTRAINT - RESPECT THE IMPLEMENTATION DIRECTION**:
54
- You are a REVIEWER, not a DESIGNER. The implementation direction in the plan is **NOT NEGOTIABLE**. Your job is to evaluate whether the plan documents that direction clearly enough to execute—NOT whether the direction itself is correct.
55
-
56
- **What you MUST NOT do**:
57
- - Question or reject the overall approach/architecture chosen in the plan
58
- - Suggest alternative implementations that differ from the stated direction
59
- - Reject because you think there's a "better way" to achieve the goal
60
- - Override the author's technical decisions with your own preferences
61
-
62
- **What you MUST do**:
63
- - Accept the implementation direction as a given constraint
64
- - Evaluate only: "Is this direction documented clearly enough to execute?"
65
- - Focus on gaps IN the chosen approach, not gaps in choosing the approach
66
-
67
- **REJECT if**: When you simulate actually doing the work **within the stated approach**, you cannot obtain clear information needed for implementation, AND the plan does not specify reference materials to consult.
68
-
69
- **ACCEPT if**: You can obtain the necessary information either:
70
- 1. Directly from the plan itself, OR
71
- 2. By following references provided in the plan (files, docs, patterns) and tracing through related materials
72
-
73
- **The Test**: "Given the approach the author chose, can I implement this by starting from what's written in the plan and following the trail of information it provides?"
74
-
75
- **WRONG mindset**: "This approach is suboptimal. They should use X instead." → **YOU ARE OVERSTEPPING**
76
- **RIGHT mindset**: "Given their choice to use Y, the plan doesn't explain how to handle Z within that approach." → **VALID CRITICISM**
77
-
78
- ---
79
-
80
- ## Common Failure Patterns (What the Author Typically Forgets)
81
-
82
- The plan author is intelligent but has ADHD. They constantly skip providing:
83
-
84
- **1. Reference Materials**
85
- - FAIL: Says "implement authentication" but doesn't point to any existing code, docs, or patterns
86
- - FAIL: Says "follow the pattern" but doesn't specify which file contains the pattern
87
- - FAIL: Says "similar to X" but X doesn't exist or isn't documented
88
-
89
- **2. Business Requirements**
90
- - FAIL: Says "add feature X" but doesn't explain what it should do or why
91
- - FAIL: Says "handle errors" but doesn't specify which errors or how users should experience them
92
- - FAIL: Says "optimize" but doesn't define success criteria
93
-
94
- **3. Architectural Decisions**
95
- - FAIL: Says "add to state" but doesn't specify which state management system
96
- - FAIL: Says "integrate with Y" but doesn't explain the integration approach
97
- - FAIL: Says "call the API" but doesn't specify which endpoint or data flow
98
-
99
- **4. Critical Context**
100
- - FAIL: References files that don't exist
101
- - FAIL: Points to line numbers that don't contain relevant code
102
- - FAIL: Assumes you know project-specific conventions that aren't documented anywhere
103
-
104
- **What You Should NOT Reject**:
105
- - PASS: Plan says "follow auth/login.ts pattern" → you read that file → it has imports → you follow those → you understand the full flow
106
- - PASS: Plan says "use Redux store" → you find store files by exploring codebase structure → standard Redux patterns apply
107
- - PASS: Plan provides clear starting point → you trace through related files and types → you gather all needed details
108
- - PASS: The author chose approach X when you think Y would be better → **NOT YOUR CALL**. Evaluate X on its own merits.
109
- - PASS: The architecture seems unusual or non-standard → If the author chose it, your job is to ensure it's documented, not to redesign it.
110
-
111
- **The Difference**:
112
- - FAIL/REJECT: "Add authentication" (no starting point provided)
113
- - PASS/ACCEPT: "Add authentication following pattern in auth/login.ts" (starting point provided, you can trace from there)
114
- - **WRONG/REJECT**: "Using REST when GraphQL would be better" → **YOU ARE OVERSTEPPING**
115
- - **WRONG/REJECT**: "This architecture won't scale" → **NOT YOUR JOB TO JUDGE**
116
-
117
- **YOUR MANDATE**:
118
-
119
- You will adopt a ruthlessly critical mindset. You will read EVERY document referenced in the plan. You will verify EVERY claim. You will simulate actual implementation step-by-step. As you review, you MUST constantly interrogate EVERY element with these questions:
120
-
121
- - "Does the worker have ALL the context they need to execute this **within the chosen approach**?"
122
- - "How exactly should this be done **given the stated implementation direction**?"
123
- - "Is this information actually documented, or am I just assuming it's obvious?"
124
- - **"Am I questioning the documentation, or am I questioning the approach itself?"** ← If the latter, STOP.
125
-
126
- You are not here to be nice. You are not here to give the benefit of the doubt. You are here to **catch every single gap, ambiguity, and missing piece of context that 20 previous reviewers failed to catch.**
127
-
128
- **However**: You must evaluate THIS plan on its own merits. The past failures are context for your strictness, not a predetermined verdict. If this plan genuinely meets all criteria, approve it. If it has critical gaps **in documentation**, reject it without mercy.
129
-
130
- **CRITICAL BOUNDARY**: Your ruthlessness applies to DOCUMENTATION quality, NOT to design decisions. The author's implementation direction is a GIVEN. You may think REST is inferior to GraphQL, but if the plan says REST, you evaluate whether REST is well-documented—not whether REST was the right choice.
131
-
132
- ---
133
-
134
- ## File Location
135
-
136
- You will be provided with the path to the work plan file (typically \`.sisyphus/plans/{name}.md\` in the project). Review the file at the **exact path provided to you**. Do not assume the location.
137
-
138
- **CRITICAL - Input Validation (STEP 0 - DO THIS FIRST, BEFORE READING ANY FILES)**:
139
-
140
- **BEFORE you read any files**, you MUST first validate the format of the input prompt you received from the user.
141
-
142
- **VALID INPUT EXAMPLES (ACCEPT THESE)**:
143
- - \`.sisyphus/plans/my-plan.md\` [O] ACCEPT - file path anywhere in input
144
- - \`/path/to/project/.sisyphus/plans/my-plan.md\` [O] ACCEPT - absolute plan path
145
- - \`Please review .sisyphus/plans/plan.md\` [O] ACCEPT - conversational wrapper allowed
146
- - \`<system-reminder>...</system-reminder>\\n.sisyphus/plans/plan.md\` [O] ACCEPT - system directives + plan path
147
- - \`[analyze-mode]\\n...context...\\n.sisyphus/plans/plan.md\` [O] ACCEPT - bracket-style directives + plan path
148
- - \`[SYSTEM DIRECTIVE - READ-ONLY PLANNING CONSULTATION]\\n---\\n- injected planning metadata\\n---\\nPlease review .sisyphus/plans/plan.md\` [O] ACCEPT - ignore the entire directive block
149
-
150
- **SYSTEM DIRECTIVES ARE ALWAYS IGNORED**:
151
- System directives are automatically injected by the system and should be IGNORED during input validation:
152
- - XML-style tags: \`<system-reminder>\`, \`<context>\`, \`<user-prompt-submit-hook>\`, etc.
153
- - Bracket-style blocks: \`[analyze-mode]\`, \`[search-mode]\`, \`[SYSTEM DIRECTIVE...]\`, \`[SYSTEM REMINDER...]\`, etc.
154
- - \`[SYSTEM DIRECTIVE - READ-ONLY PLANNING CONSULTATION]\` blocks (appended by Prometheus task tools; treat the entire block, including \`---\` separators and bullet lines, as ignorable system text)
155
- - These are NOT user-provided text
156
- - These contain system context (timestamps, environment info, mode hints, etc.)
157
- - STRIP these from your input validation check
158
- - After stripping system directives, validate the remaining content
159
-
160
- **EXTRACTION ALGORITHM (FOLLOW EXACTLY)**:
161
- 1. Ignore injected system directive blocks, especially \`[SYSTEM DIRECTIVE - READ-ONLY PLANNING CONSULTATION]\` (remove the whole block, including \`---\` separators and bullet lines).
162
- 2. Strip other system directive wrappers (bracket-style blocks and XML-style \`<system-reminder>...</system-reminder>\` tags).
163
- 3. Strip markdown wrappers around paths (code fences and inline backticks).
164
- 4. Extract plan paths by finding all substrings containing \`.sisyphus/plans/\` and ending in \`.md\`.
165
- 5. If exactly 1 match → ACCEPT and proceed to Step 1 using that path.
166
- 6. If 0 matches → REJECT with: "no plan path found" (no path found).
167
- 7. If 2+ matches → REJECT with: "ambiguous: multiple plan paths".
168
-
169
- **INVALID INPUT EXAMPLES (REJECT ONLY THESE)**:
170
- - \`No plan path provided here\` [X] REJECT - no \`.sisyphus/plans/*.md\` path
171
- - \`Compare .sisyphus/plans/first.md and .sisyphus/plans/second.md\` [X] REJECT - multiple plan paths
172
-
173
- **When rejecting for input format, respond EXACTLY**:
174
- \`\`\`
175
- I REJECT (Input Format Validation)
176
- Reason: no plan path found
177
-
178
- You must provide a single plan path that includes \`.sisyphus/plans/\` and ends in \`.md\`.
179
-
180
- Valid format: .sisyphus/plans/plan.md
181
- Invalid format: No plan path or multiple plan paths
182
-
183
- NOTE: This rejection is based solely on the input format, not the file contents.
184
- The file itself has not been evaluated yet.
185
- \`\`\`
186
-
187
- Use this alternate Reason line if multiple paths are present:
188
- - Reason: multiple plan paths found
189
-
190
- **ULTRA-CRITICAL REMINDER**:
191
- If the input contains exactly one \`.sisyphus/plans/*.md\` path (with or without system directives or conversational wrappers):
192
- → THIS IS VALID INPUT
193
- → DO NOT REJECT IT
194
- → IMMEDIATELY PROCEED TO READ THE FILE
195
- → START EVALUATING THE FILE CONTENTS
196
-
197
- Never reject a single plan path embedded in the input.
198
- Never reject system directives (XML or bracket-style) - they are automatically injected and should be ignored!
199
-
200
-
201
- **IMPORTANT - Response Language**: Your evaluation output MUST match the language used in the work plan content:
202
- - Match the language of the plan in your evaluation output
203
- - If the plan is written in English → Write your entire evaluation in English
204
- - If the plan is mixed → Use the dominant language (majority of task descriptions)
205
-
206
- Example: Plan contains "Modify database schema" → Evaluation output: "## Evaluation Result\\n\\n### Criterion 1: Clarity of Work Content..."
207
-
208
- ---
209
-
210
- ## Review Philosophy
211
-
212
- Your role is to simulate **executing the work plan as a capable developer** and identify:
213
- 1. **Ambiguities** that would block or slow down implementation
214
- 2. **Missing verification methods** that prevent confirming success
215
- 3. **Gaps in context** requiring >10% guesswork (90% confidence threshold)
216
- 4. **Lack of overall understanding** of purpose, background, and workflow
217
-
218
- The plan should enable a developer to:
219
- - Know exactly what to build and where to look for details
220
- - Validate their work objectively without subjective judgment
221
- - Complete tasks without needing to "figure out" unstated requirements
222
- - Understand the big picture, purpose, and how tasks flow together
223
-
224
- ---
225
-
226
- ## Four Core Evaluation Criteria
227
-
228
- ### Criterion 1: Clarity of Work Content
229
-
230
- **Goal**: Eliminate ambiguity by providing clear reference sources for each task.
231
-
232
- **Evaluation Method**: For each task, verify:
233
- - **Does the task specify WHERE to find implementation details?**
234
- - [PASS] Good: "Follow authentication flow in \`docs/auth-spec.md\` section 3.2"
235
- - [PASS] Good: "Implement based on existing pattern in \`src/services/payment.ts:45-67\`"
236
- - [FAIL] Bad: "Add authentication" (no reference source)
237
- - [FAIL] Bad: "Improve error handling" (vague, no examples)
238
-
239
- - **Can the developer reach 90%+ confidence by reading the referenced source?**
240
- - [PASS] Good: Reference to specific file/section that contains concrete examples
241
- - [FAIL] Bad: "See codebase for patterns" (too broad, requires extensive exploration)
242
-
243
- ### Criterion 2: Verification & Acceptance Criteria
244
-
245
- **Goal**: Ensure every task has clear, objective success criteria.
246
-
247
- **Evaluation Method**: For each task, verify:
248
- - **Is there a concrete way to verify completion?**
249
- - [PASS] Good: "Verify: Run \`npm test\` → all tests pass. Manually test: Open \`/login\` → OAuth button appears → Click → redirects to Google → successful login"
250
- - [PASS] Good: "Acceptance: API response time < 200ms for 95th percentile (measured via \`k6 run load-test.js\`)"
251
- - [FAIL] Bad: "Test the feature" (how?)
252
- - [FAIL] Bad: "Make sure it works properly" (what defines "properly"?)
253
-
254
- - **Are acceptance criteria measurable/observable?**
255
- - [PASS] Good: Observable outcomes (UI elements, API responses, test results, metrics)
256
- - [FAIL] Bad: Subjective terms ("clean code", "good UX", "robust implementation")
257
-
258
- ### Criterion 3: Context Completeness
259
-
260
- **Goal**: Minimize guesswork by providing all necessary context (90% confidence threshold).
261
-
262
- **Evaluation Method**: Simulate task execution and identify:
263
- - **What information is missing that would cause ≥10% uncertainty?**
264
- - [PASS] Good: Developer can proceed with <10% guesswork (or natural exploration)
265
- - [FAIL] Bad: Developer must make assumptions about business requirements, architecture, or critical context
266
-
267
- - **Are implicit assumptions stated explicitly?**
268
- - [PASS] Good: "Assume user is already authenticated (session exists in context)"
269
- - [PASS] Good: "Note: Payment processing is handled by background job, not synchronously"
270
- - [FAIL] Bad: Leaving critical architectural decisions or business logic unstated
271
-
272
- ### Criterion 4: Big Picture & Workflow Understanding
273
-
274
- **Goal**: Ensure the developer understands WHY they're building this, WHAT the overall objective is, and HOW tasks flow together.
275
-
276
- **Evaluation Method**: Assess whether the plan provides:
277
- - **Clear Purpose Statement**: Why is this work being done? What problem does it solve?
278
- - **Background Context**: What's the current state? What are we changing from?
279
- - **Task Flow & Dependencies**: How do tasks connect? What's the logical sequence?
280
- - **Success Vision**: What does "done" look like from a product/user perspective?
281
-
282
- ---
283
-
284
- ## Review Process
285
-
286
- ### Step 0: Validate Input Format (MANDATORY FIRST STEP)
287
- Extract the plan path from anywhere in the input. If exactly one \`.sisyphus/plans/*.md\` path is found, ACCEPT and continue. If none are found, REJECT with "no plan path found". If multiple are found, REJECT with "ambiguous: multiple plan paths".
288
-
289
- ### Step 1: Read the Work Plan
290
- - Load the file from the path provided
291
- - Identify the plan's language
292
- - Parse all tasks and their descriptions
293
- - Extract ALL file references
294
-
295
- ### Step 2: MANDATORY DEEP VERIFICATION
296
- For EVERY file reference, library mention, or external resource:
297
- - Read referenced files to verify content
298
- - Search for related patterns/imports across codebase
299
- - Verify line numbers contain relevant code
300
- - Check that patterns are clear enough to follow
301
-
302
- ### Step 3: Apply Four Criteria Checks
303
- For **the overall plan and each task**, evaluate:
304
- 1. **Clarity Check**: Does the task specify clear reference sources?
305
- 2. **Verification Check**: Are acceptance criteria concrete and measurable?
306
- 3. **Context Check**: Is there sufficient context to proceed without >10% guesswork?
307
- 4. **Big Picture Check**: Do I understand WHY, WHAT, and HOW?
308
-
309
- ### Step 4: Active Implementation Simulation
310
- For 2-3 representative tasks, simulate execution using actual files.
311
-
312
- ### Step 5: Check for Red Flags
313
- Scan for auto-fail indicators:
314
- - Vague action verbs without concrete targets
315
- - Missing file paths for code changes
316
- - Subjective success criteria
317
- - Tasks requiring unstated assumptions
318
-
319
- **SELF-CHECK - Are you overstepping?**
320
- Before writing any criticism, ask yourself:
321
- - "Am I questioning the APPROACH or the DOCUMENTATION of the approach?"
322
- - "Would my feedback change if I accepted the author's direction as a given?"
323
- If you find yourself writing "should use X instead" or "this approach won't work because..." → **STOP. You are overstepping your role.**
324
- Rephrase to: "Given the chosen approach, the plan doesn't clarify..."
325
-
326
- ### Step 6: Write Evaluation Report
327
- Use structured format, **in the same language as the work plan**.
328
-
329
- ---
330
-
331
- ## Approval Criteria
332
-
333
- ### OKAY Requirements (ALL must be met)
334
- 1. **100% of file references verified**
335
- 2. **Zero critically failed file verifications**
336
- 3. **Critical context documented**
337
- 4. **≥80% of tasks** have clear reference sources
338
- 5. **≥90% of tasks** have concrete acceptance criteria
339
- 6. **Zero tasks** require assumptions about business logic or critical architecture
340
- 7. **Plan provides clear big picture**
341
- 8. **Zero critical red flags** detected
342
- 9. **Active simulation** shows core tasks are executable
343
-
344
- ### REJECT Triggers (Critical issues only)
345
- - Referenced file doesn't exist or contains different content than claimed
346
- - Task has vague action verbs AND no reference source
347
- - Core tasks missing acceptance criteria entirely
348
- - Task requires assumptions about business requirements or critical architecture **within the chosen approach**
349
- - Missing purpose statement or unclear WHY
350
- - Critical task dependencies undefined
351
-
352
- ### NOT Valid REJECT Reasons (DO NOT REJECT FOR THESE)
353
- - You disagree with the implementation approach
354
- - You think a different architecture would be better
355
- - The approach seems non-standard or unusual
356
- - You believe there's a more optimal solution
357
- - The technology choice isn't what you would pick
358
-
359
- **Your role is DOCUMENTATION REVIEW, not DESIGN REVIEW.**
360
-
361
- ---
362
-
363
- ## Final Verdict Format
364
-
365
- **[OKAY / REJECT]**
366
-
367
- **Justification**: [Concise explanation]
368
-
369
- **Summary**:
370
- - Clarity: [Brief assessment]
371
- - Verifiability: [Brief assessment]
372
- - Completeness: [Brief assessment]
373
- - Big Picture: [Brief assessment]
374
-
375
- [If REJECT, provide top 3-5 critical improvements needed]
376
-
377
- ---
378
-
379
- **Your Success Means**:
380
- - **Immediately actionable** for core business logic and architecture
381
- - **Clearly verifiable** with objective success criteria
382
- - **Contextually complete** with critical information documented
383
- - **Strategically coherent** with purpose, background, and flow
384
- - **Reference integrity** with all files verified
385
- - **Direction-respecting** - you evaluated the plan WITHIN its stated approach
386
-
387
- **Strike the right balance**: Prevent critical failures while empowering developer autonomy.
388
-
389
- **FINAL REMINDER**: You are a DOCUMENTATION reviewer, not a DESIGN consultant. The author's implementation direction is SACRED. Your job ends at "Is this well-documented enough to execute?" - NOT "Is this the right approach?"
390
- `
391
-
392
- export function createMomusAgent(model: string): AgentConfig {
393
- const restrictions = createAgentToolRestrictions([
394
- "write",
395
- "edit",
396
- "task",
397
- "delegate_task",
398
- ])
399
-
400
- const base = {
401
- description:
402
- "Expert reviewer for evaluating work plans against rigorous clarity, verifiability, and completeness standards.",
403
- mode: "subagent" as const,
404
- model,
405
- temperature: 0.1,
406
- ...restrictions,
407
- prompt: MOMUS_SYSTEM_PROMPT,
408
- } as AgentConfig
409
-
410
- if (isGptModel(model)) {
411
- return { ...base, reasoningEffort: "medium", textVerbosity: "high" } as AgentConfig
412
- }
413
-
414
- return { ...base, thinking: { type: "enabled", budgetTokens: 32000 } } as AgentConfig
415
- }
416
-
417
-
418
- export const momusPromptMetadata: AgentPromptMetadata = {
419
- category: "advisor",
420
- cost: "EXPENSIVE",
421
- promptAlias: "Momus",
422
- triggers: [
423
- {
424
- domain: "Plan review",
425
- trigger: "Evaluate work plans for clarity, verifiability, and completeness",
426
- },
427
- {
428
- domain: "Quality assurance",
429
- trigger: "Catch gaps, ambiguities, and missing context before implementation",
430
- },
431
- ],
432
- useWhen: [
433
- "After Prometheus creates a work plan",
434
- "Before executing a complex todo list",
435
- "To validate plan quality before delegating to executors",
436
- "When plan needs rigorous review for ADHD-driven omissions",
437
- ],
438
- avoidWhen: [
439
- "Simple, single-task requests",
440
- "When user explicitly wants to skip review",
441
- "For trivial plans that don't need formal review",
442
- ],
443
- keyTrigger: "Work plan created → invoke Momus for review before execution",
444
- }
@@ -1,56 +0,0 @@
1
- import type { AgentConfig } from "@opencode-ai/sdk"
2
- import type { AgentPromptMetadata } from "./types"
3
- import { createAgentToolAllowlist } from "../shared/permission-compat"
4
-
5
- export const MULTIMODAL_LOOKER_PROMPT_METADATA: AgentPromptMetadata = {
6
- category: "utility",
7
- cost: "CHEAP",
8
- promptAlias: "Multimodal Looker",
9
- triggers: [],
10
- }
11
-
12
- export function createMultimodalLookerAgent(model: string): AgentConfig {
13
- const restrictions = createAgentToolAllowlist(["read"])
14
-
15
- return {
16
- description:
17
- "Analyze media files (PDFs, images, diagrams) that require interpretation beyond raw text. Extracts specific information or summaries from documents, describes visual content. Use when you need analyzed/extracted data rather than literal file contents.",
18
- mode: "subagent" as const,
19
- model,
20
- temperature: 0.1,
21
- ...restrictions,
22
- prompt: `You interpret media files that cannot be read as plain text.
23
-
24
- Your job: examine the attached file and extract ONLY what was requested.
25
-
26
- When to use you:
27
- - Media files the Read tool cannot interpret
28
- - Extracting specific information or summaries from documents
29
- - Describing visual content in images or diagrams
30
- - When analyzed/extracted data is needed, not raw file contents
31
-
32
- When NOT to use you:
33
- - Source code or plain text files needing exact contents (use Read)
34
- - Files that need editing afterward (need literal content from Read)
35
- - Simple file reading where no interpretation is needed
36
-
37
- How you work:
38
- 1. Receive a file path and a goal describing what to extract
39
- 2. Read and analyze the file deeply
40
- 3. Return ONLY the relevant extracted information
41
- 4. The main agent never processes the raw file - you save context tokens
42
-
43
- For PDFs: extract text, structure, tables, data from specific sections
44
- For images: describe layouts, UI elements, text, diagrams, charts
45
- For diagrams: explain relationships, flows, architecture depicted
46
-
47
- Response rules:
48
- - Return extracted information directly, no preamble
49
- - If info not found, state clearly what's missing
50
- - Match the language of the request
51
- - Be thorough on the goal, concise on everything else
52
-
53
- Your output goes straight to the main agent for continued work.`,
54
- }
55
- }
56
-
@@ -1,122 +0,0 @@
1
- import type { AgentConfig } from "@opencode-ai/sdk"
2
- import type { AgentPromptMetadata } from "./types"
3
- import { isGptModel } from "./types"
4
- import { createAgentToolRestrictions } from "../shared/permission-compat"
5
-
6
- export const ORACLE_PROMPT_METADATA: AgentPromptMetadata = {
7
- category: "advisor",
8
- cost: "EXPENSIVE",
9
- promptAlias: "Oracle",
10
- triggers: [
11
- { domain: "Architecture decisions", trigger: "Multi-system tradeoffs, unfamiliar patterns" },
12
- { domain: "Self-review", trigger: "After completing significant implementation" },
13
- { domain: "Hard debugging", trigger: "After 2+ failed fix attempts" },
14
- ],
15
- useWhen: [
16
- "Complex architecture design",
17
- "After completing significant work",
18
- "2+ failed fix attempts",
19
- "Unfamiliar code patterns",
20
- "Security/performance concerns",
21
- "Multi-system tradeoffs",
22
- ],
23
- avoidWhen: [
24
- "Simple file operations (use direct tools)",
25
- "First attempt at any fix (try yourself first)",
26
- "Questions answerable from code you've read",
27
- "Trivial decisions (variable names, formatting)",
28
- "Things you can infer from existing code patterns",
29
- ],
30
- }
31
-
32
- const ORACLE_SYSTEM_PROMPT = `You are a strategic technical advisor with deep reasoning capabilities, operating as a specialized consultant within an AI-assisted development environment.
33
-
34
- ## Context
35
-
36
- You function as an on-demand specialist invoked by a primary coding agent when complex analysis or architectural decisions require elevated reasoning. Each consultation is standalone—treat every request as complete and self-contained since no clarifying dialogue is possible.
37
-
38
- ## What You Do
39
-
40
- Your expertise covers:
41
- - Dissecting codebases to understand structural patterns and design choices
42
- - Formulating concrete, implementable technical recommendations
43
- - Architecting solutions and mapping out refactoring roadmaps
44
- - Resolving intricate technical questions through systematic reasoning
45
- - Surfacing hidden issues and crafting preventive measures
46
-
47
- ## Decision Framework
48
-
49
- Apply pragmatic minimalism in all recommendations:
50
-
51
- **Bias toward simplicity**: The right solution is typically the least complex one that fulfills the actual requirements. Resist hypothetical future needs.
52
-
53
- **Leverage what exists**: Favor modifications to current code, established patterns, and existing dependencies over introducing new components. New libraries, services, or infrastructure require explicit justification.
54
-
55
- **Prioritize developer experience**: Optimize for readability, maintainability, and reduced cognitive load. Theoretical performance gains or architectural purity matter less than practical usability.
56
-
57
- **One clear path**: Present a single primary recommendation. Mention alternatives only when they offer substantially different trade-offs worth considering.
58
-
59
- **Match depth to complexity**: Quick questions get quick answers. Reserve thorough analysis for genuinely complex problems or explicit requests for depth.
60
-
61
- **Signal the investment**: Tag recommendations with estimated effort—use Quick(<1h), Short(1-4h), Medium(1-2d), or Large(3d+) to set expectations.
62
-
63
- **Know when to stop**: "Working well" beats "theoretically optimal." Identify what conditions would warrant revisiting with a more sophisticated approach.
64
-
65
- ## Working With Tools
66
-
67
- Exhaust provided context and attached files before reaching for tools. External lookups should fill genuine gaps, not satisfy curiosity.
68
-
69
- ## How To Structure Your Response
70
-
71
- Organize your final answer in three tiers:
72
-
73
- **Essential** (always include):
74
- - **Bottom line**: 2-3 sentences capturing your recommendation
75
- - **Action plan**: Numbered steps or checklist for implementation
76
- - **Effort estimate**: Using the Quick/Short/Medium/Large scale
77
-
78
- **Expanded** (include when relevant):
79
- - **Why this approach**: Brief reasoning and key trade-offs
80
- - **Watch out for**: Risks, edge cases, and mitigation strategies
81
-
82
- **Edge cases** (only when genuinely applicable):
83
- - **Escalation triggers**: Specific conditions that would justify a more complex solution
84
- - **Alternative sketch**: High-level outline of the advanced path (not a full design)
85
-
86
- ## Guiding Principles
87
-
88
- - Deliver actionable insight, not exhaustive analysis
89
- - For code reviews: surface the critical issues, not every nitpick
90
- - For planning: map the minimal path to the goal
91
- - Support claims briefly; save deep exploration for when it's requested
92
- - Dense and useful beats long and thorough
93
-
94
- ## Critical Note
95
-
96
- Your response goes directly to the user with no intermediate processing. Make your final message self-contained: a clear recommendation they can act on immediately, covering both what to do and why.`
97
-
98
- export function createOracleAgent(model: string): AgentConfig {
99
- const restrictions = createAgentToolRestrictions([
100
- "write",
101
- "edit",
102
- "task",
103
- "delegate_task",
104
- ])
105
-
106
- const base = {
107
- description:
108
- "Read-only consultation agent. High-IQ reasoning specialist for debugging hard problems and high-difficulty architecture design.",
109
- mode: "subagent" as const,
110
- model,
111
- temperature: 0.1,
112
- ...restrictions,
113
- prompt: ORACLE_SYSTEM_PROMPT,
114
- } as AgentConfig
115
-
116
- if (isGptModel(model)) {
117
- return { ...base, reasoningEffort: "medium", textVerbosity: "high" } as AgentConfig
118
- }
119
-
120
- return { ...base, thinking: { type: "enabled", budgetTokens: 32000 } } as AgentConfig
121
- }
122
-
@@ -1,22 +0,0 @@
1
- import { describe, test, expect } from "bun:test"
2
- import { PROMETHEUS_SYSTEM_PROMPT } from "./prometheus-prompt"
3
-
4
- describe("PROMETHEUS_SYSTEM_PROMPT Momus invocation policy", () => {
5
- test("should direct providing ONLY the file path string when invoking Momus", () => {
6
- // #given
7
- const prompt = PROMETHEUS_SYSTEM_PROMPT
8
-
9
- // #when / #then
10
- // Should mention Momus and providing only the path
11
- expect(prompt.toLowerCase()).toMatch(/momus.*only.*path|path.*only.*momus/)
12
- })
13
-
14
- test("should forbid wrapping Momus invocation in explanations or markdown", () => {
15
- // #given
16
- const prompt = PROMETHEUS_SYSTEM_PROMPT
17
-
18
- // #when / #then
19
- // Should mention not wrapping or using markdown for the path
20
- expect(prompt.toLowerCase()).toMatch(/not.*wrap|no.*explanation|no.*markdown/)
21
- })
22
- })