oh-my-opencode 4.19.1 → 4.19.3

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 (268) hide show
  1. package/.agents/command/publish.md +95 -28
  2. package/.agents/skills/publish/SKILL.md +20 -6
  3. package/.opencode/command/publish.md +95 -28
  4. package/README.ja.md +2 -2
  5. package/README.ko.md +2 -2
  6. package/README.md +2 -2
  7. package/README.ru.md +2 -2
  8. package/README.zh-cn.md +2 -2
  9. package/THIRD-PARTY-NOTICES.md +7 -7
  10. package/dist/agents/atlas/agent.d.ts +4 -2
  11. package/dist/agents/explore.d.ts +4 -2
  12. package/dist/agents/hephaestus/agent.d.ts +4 -2
  13. package/dist/agents/librarian.d.ts +4 -2
  14. package/dist/agents/metis.d.ts +4 -2
  15. package/dist/agents/momus.d.ts +3 -2
  16. package/dist/agents/multimodal-looker.d.ts +4 -2
  17. package/dist/agents/oracle.d.ts +4 -2
  18. package/dist/agents/sisyphus/claude-opus-5.d.ts +33 -0
  19. package/dist/agents/sisyphus/index.d.ts +2 -0
  20. package/dist/agents/sisyphus-agent-factory.d.ts +5 -2
  21. package/dist/agents/sisyphus-junior/agent.d.ts +4 -1
  22. package/dist/agents/sisyphus-runtime-prompt-reconciler.d.ts +1 -1
  23. package/dist/agents/types.d.ts +2 -2
  24. package/dist/cli/config-migrate.d.ts +8 -0
  25. package/dist/cli/doctor/checks/legacy-config-leftovers.d.ts +10 -0
  26. package/dist/cli/doctor/checks/model-resolution-config.d.ts +1 -1
  27. package/dist/cli/doctor/checks/tools-lsp.d.ts +1 -1
  28. package/dist/cli/doctor/framework/constants.d.ts +1 -1
  29. package/dist/cli/index.js +95391 -88524
  30. package/dist/cli-node/index.js +95504 -88637
  31. package/dist/config/schema/agent-names.d.ts +26 -26
  32. package/dist/config/schema/agent-overrides.d.ts +400 -400
  33. package/dist/config/schema/browser-automation.d.ts +2 -2
  34. package/dist/config/schema/categories.d.ts +36 -36
  35. package/dist/config/schema/commands.d.ts +2 -2
  36. package/dist/config/schema/dynamic-context-pruning.d.ts +1 -1
  37. package/dist/config/schema/experimental.d.ts +1 -1
  38. package/dist/config/schema/fallback-models.d.ts +25 -25
  39. package/dist/config/schema/hooks.d.ts +43 -43
  40. package/dist/config/schema/internal/permission.d.ts +9 -9
  41. package/dist/config/schema/keyword-detector.d.ts +6 -6
  42. package/dist/config/schema/oh-my-opencode-config.d.ts +402 -402
  43. package/dist/config/schema/tmux.d.ts +6 -6
  44. package/dist/config/validate.d.ts +2 -1
  45. package/dist/config-migration/deep-diff.d.ts +1 -0
  46. package/dist/config-migration/discovery-paths.d.ts +11 -0
  47. package/dist/config-migration/discovery-roots.d.ts +7 -0
  48. package/dist/config-migration/discovery.d.ts +4 -0
  49. package/dist/config-migration/index.d.ts +9 -0
  50. package/dist/config-migration/legacy-history.d.ts +3 -0
  51. package/dist/config-migration/migration-executor.d.ts +4 -0
  52. package/dist/config-migration/migration-plans.d.ts +14 -0
  53. package/dist/config-migration/record-values.d.ts +4 -0
  54. package/dist/config-migration/schema-url.d.ts +1 -0
  55. package/dist/config-migration/transform-config-jsonc.d.ts +2 -0
  56. package/dist/config-migration/transform-opencode.d.ts +2 -0
  57. package/dist/config-migration/transform-types.d.ts +24 -0
  58. package/dist/config-migration/types.d.ts +39 -0
  59. package/dist/create-hooks.d.ts +35 -35
  60. package/dist/features/background-agent/spawner/tmux-callback-invoker.d.ts +11 -0
  61. package/dist/features/builtin-commands/templates/hyperplan.d.ts +1 -1
  62. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  63. package/dist/features/claude-tasks/types.d.ts +4 -4
  64. package/dist/features/team-mode/team-runtime/shutdown-helpers.d.ts +1 -1
  65. package/dist/features/team-mode/team-runtime/shutdown-test-fixtures.d.ts +4 -4
  66. package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +42 -42
  67. package/dist/features/tmux-subagent/environment-eligibility.d.ts +2 -0
  68. package/dist/features/tmux-subagent/index.d.ts +1 -0
  69. package/dist/features/tmux-subagent/tracked-session-state.d.ts +1 -0
  70. package/dist/features/tui-sidebar/snapshot-schema.d.ts +6 -6
  71. package/dist/help/schema/acp.d.ts +3 -3
  72. package/dist/help/schema/doctor.d.ts +4 -4
  73. package/dist/help/schema/status.d.ts +3 -3
  74. package/dist/hooks/auto-update-checker/constants.d.ts +3 -3
  75. package/dist/hooks/goal/types.d.ts +5 -5
  76. package/dist/hooks/non-interactive-env/constants.d.ts +4 -1
  77. package/dist/hooks/start-work/parse-user-request.d.ts +2 -0
  78. package/dist/hooks/start-work/worktree-block.d.ts +5 -0
  79. package/dist/index.js +35450 -28257
  80. package/dist/mcp/types.d.ts +3 -3
  81. package/dist/oh-my-opencode.schema.json +1 -1
  82. package/dist/plugin/chat-message/loop-commands.d.ts +1 -0
  83. package/dist/plugin/command-execute-before.d.ts +3 -3
  84. package/dist/plugin/hooks/create-core-hooks.d.ts +25 -25
  85. package/dist/plugin-config/omo-config-chain.d.ts +14 -0
  86. package/dist/plugin-config/unknown-key-diagnostics.d.ts +5 -0
  87. package/dist/plugin-config.d.ts +2 -2
  88. package/dist/shared/agent-display-names.d.ts +1 -1
  89. package/dist/shared/jsonc-parser.d.ts +1 -1
  90. package/dist/shared/migration.d.ts +5 -1
  91. package/dist/shared/opencode-config-dir-types.d.ts +0 -1
  92. package/dist/shared/plugin-identity.d.ts +6 -8
  93. package/dist/shared/project-discovery-dirs.d.ts +0 -1
  94. package/dist/shared/tmux/tmux-utils/environment.d.ts +1 -1
  95. package/dist/shared/tmux/tmux-utils.d.ts +1 -1
  96. package/dist/shared/typescript-native-source-parser.d.ts +7 -0
  97. package/dist/skills/coding-agent-sessions/SKILL.md +5 -2
  98. package/dist/skills/coding-agent-sessions/references/all-platforms.md +3 -1
  99. package/dist/skills/coding-agent-sessions/references/senpi.md +15 -5
  100. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
  101. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
  102. package/dist/skills/debugging/SKILL.md +2 -1
  103. package/dist/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
  104. package/dist/skills/frontend/ATTRIBUTION.md +7 -0
  105. package/dist/skills/frontend/SKILL.md +4 -1
  106. package/dist/skills/frontend/references/design/README.md +8 -0
  107. package/dist/skills/frontend/references/design/_INDEX.md +14 -1
  108. package/dist/skills/frontend/references/design/interaction-skill.md +144 -0
  109. package/dist/skills/programming/SKILL.md +11 -1
  110. package/dist/skills/programming/references/logging.md +6 -1
  111. package/dist/skills/programming/scripts/typescript/check-no-excuse-rules.ts +51 -17
  112. package/dist/skills/start-work/SKILL.md +12 -2
  113. package/dist/skills/ulw-plan/SKILL.md +1 -1
  114. package/dist/skills/ulw-plan/references/full-workflow.md +12 -1
  115. package/dist/skills/ulw-plan/references/intent-clear.md +1 -1
  116. package/dist/startup-migration.d.ts +28 -0
  117. package/dist/testing/create-plugin-module.d.ts +4 -0
  118. package/dist/tools/task/types.d.ts +10 -10
  119. package/dist/tui.js +31812 -26849
  120. package/package.json +14 -14
  121. package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +21 -5
  122. package/packages/lsp-core/src/lsp/fixtures/workspace-edit-server.mjs +11 -2
  123. package/packages/omo-codex/THIRD-PARTY-NOTICES.md +2 -2
  124. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  125. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +8 -4
  126. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  127. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  128. package/packages/omo-codex/plugin/components/codegraph/AGENTS.md +11 -5
  129. package/packages/omo-codex/plugin/components/codegraph/NOTICE +1 -1
  130. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +10272 -2600
  131. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +7341 -562
  132. package/packages/omo-codex/plugin/components/codegraph/package.json +2 -2
  133. package/packages/omo-codex/plugin/components/codegraph/src/hook-input.ts +33 -0
  134. package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +36 -10
  135. package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +170 -186
  136. package/packages/omo-codex/plugin/components/codegraph/src/post-tool-use-hook.ts +34 -0
  137. package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +22 -5
  138. package/packages/omo-codex/plugin/components/codegraph/src/session-start-command.ts +106 -0
  139. package/packages/omo-codex/plugin/components/codegraph/src/session-start-cooldown.ts +145 -0
  140. package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +21 -0
  141. package/packages/omo-codex/plugin/components/codegraph/src/session-start-lock.ts +139 -0
  142. package/packages/omo-codex/plugin/components/codegraph/src/session-start-outcome.ts +15 -0
  143. package/packages/omo-codex/plugin/components/codegraph/src/session-start-paths.ts +32 -0
  144. package/packages/omo-codex/plugin/components/codegraph/src/session-start-project.ts +109 -0
  145. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker-result.ts +148 -0
  146. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +126 -186
  147. package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +9 -4
  148. package/packages/omo-codex/plugin/components/codegraph/test/hook-session-start-guard.test.ts +160 -0
  149. package/packages/omo-codex/plugin/components/codegraph/test/hook-store-upgrade.test.ts +12 -110
  150. package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +29 -20
  151. package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +3 -3
  152. package/packages/omo-codex/plugin/components/codegraph/test/package-runtime.test.ts +2 -2
  153. package/packages/omo-codex/plugin/components/codegraph/test/provisioned-node-guard.test.ts +11 -5
  154. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +3 -3
  155. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-facade.test.ts +2 -1
  156. package/packages/omo-codex/plugin/components/codegraph/test/serve-provision.test.ts +50 -5
  157. package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable.test.ts +3 -2
  158. package/packages/omo-codex/plugin/components/codegraph/test/serve.test.ts +24 -13
  159. package/packages/omo-codex/plugin/components/codegraph/test/session-start-node-support.test.ts +70 -13
  160. package/packages/omo-codex/plugin/components/codegraph/test/session-start-project.test.ts +58 -0
  161. package/packages/omo-codex/plugin/components/codegraph/test/session-start-state.test.ts +104 -0
  162. package/packages/omo-codex/plugin/components/codegraph/test/session-start-trust-boundary.test.ts +4 -2
  163. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-cooldown.test.ts +116 -0
  164. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +114 -119
  165. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  166. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  167. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  168. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  169. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  170. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  171. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  172. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  173. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  174. package/packages/omo-codex/plugin/components/rules/dist/cli.js +31 -14
  175. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  176. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  177. package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +1 -1
  178. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  179. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  180. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  181. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  182. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  183. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  184. package/packages/omo-codex/plugin/components/ultrawork/directive.md +12 -7
  185. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  186. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  187. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +12 -7
  188. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +1 -1
  189. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +12 -1
  190. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +1 -1
  191. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +12 -7
  192. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  193. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  194. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +19 -1
  195. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  196. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  197. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  198. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  199. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  200. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  201. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  202. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  203. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  204. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  205. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  206. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  207. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  208. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  209. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  210. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  211. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  212. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  213. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  214. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  215. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  216. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  217. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  218. package/packages/omo-codex/plugin/package-lock.json +42 -41
  219. package/packages/omo-codex/plugin/package.json +1 -1
  220. package/packages/omo-codex/plugin/shared/src/config-loader.ts +165 -16
  221. package/packages/omo-codex/plugin/shared/src/config-migration.ts +162 -0
  222. package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +196 -18
  223. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +5 -2
  224. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +3 -1
  225. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +15 -5
  226. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
  227. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
  228. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +2 -1
  229. package/packages/omo-codex/plugin/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
  230. package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +7 -0
  231. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +4 -1
  232. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +8 -0
  233. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +14 -1
  234. package/packages/omo-codex/plugin/skills/frontend/references/design/interaction-skill.md +144 -0
  235. package/packages/omo-codex/plugin/skills/programming/SKILL.md +11 -1
  236. package/packages/omo-codex/plugin/skills/programming/references/logging.md +6 -1
  237. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-no-excuse-rules.ts +51 -17
  238. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +12 -2
  239. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +12 -7
  240. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +19 -1
  241. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +1 -1
  242. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +12 -1
  243. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +1 -1
  244. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +22 -0
  245. package/packages/omo-codex/scripts/install-dist/install-local.mjs +1 -1
  246. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +5 -2
  247. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +3 -1
  248. package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +15 -5
  249. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
  250. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
  251. package/packages/shared-skills/skills/debugging/SKILL.md +2 -1
  252. package/packages/shared-skills/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
  253. package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +7 -0
  254. package/packages/shared-skills/skills/frontend/SKILL.md +4 -1
  255. package/packages/shared-skills/skills/frontend/references/design/README.md +8 -0
  256. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +14 -1
  257. package/packages/shared-skills/skills/frontend/references/design/interaction-skill.md +144 -0
  258. package/packages/shared-skills/skills/programming/SKILL.md +11 -1
  259. package/packages/shared-skills/skills/programming/references/logging.md +6 -1
  260. package/packages/shared-skills/skills/programming/scripts/typescript/check-no-excuse-rules.ts +51 -17
  261. package/packages/shared-skills/skills/start-work/SKILL.md +12 -2
  262. package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
  263. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +12 -1
  264. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +1 -1
  265. package/dist/plugin-config/layered-config-loader.d.ts +0 -2
  266. package/dist/plugin-config/single-config-loader.d.ts +0 -4
  267. package/dist/shared/migrate-legacy-config-file.d.ts +0 -1
  268. package/dist/shared/migration/config-migration.d.ts +0 -1
@@ -3,7 +3,7 @@ description: Publish oh-my-opencode to npm via GitHub Actions workflow
3
3
  argument-hint: <patch|minor|major>
4
4
  ---
5
5
 
6
- <command-instruction>
6
+
7
7
  You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
8
8
 
9
9
  ## CRITICAL: PUBLISH IS SHIP-ONLY — GO STRAIGHT TO THE WORKFLOW
@@ -26,6 +26,32 @@ Publishing is complete only after all release surfaces are verified:
26
26
 
27
27
  The publish workflow must not be reported complete while any of `oh-my-opencode`, `oh-my-openagent`, `lazycodex-ai`, or `code-yeongyu/lazycodex` verification is unresolved.
28
28
 
29
+ ## CRITICAL: FULL WORKFLOW MEANS DISCORD TOO
30
+
31
+ Publishing is not complete until the Discord release announcement has been attempted.
32
+
33
+ - **DO NOT stop after creating the GitHub release.**
34
+ - **DO NOT stop after drafting or applying release notes.**
35
+ - **DO NOT wait for a second user acknowledgement if the user already confirmed the publish.**
36
+ - After the release notes are finalized, immediately run Step 7.5 and post to Discord.
37
+ - If Discord posting fails after authentication/retry, report the failure clearly and continue the remaining verification steps. A skipped Discord step is a workflow failure.
38
+
39
+ ## CRITICAL: NO EARLY TURN-END AFTER TRIGGER (COMPLETION CONTRACT)
40
+
41
+ Once `gh workflow run publish` succeeds, the publish is NOT done. A prior session forgot this: it triggered the workflow and ended its turn, leaving the release unverified, the enhanced summary unwritten, and the Discord announcement unsent. That mistake is why this section exists.
42
+
43
+ After Step 3 (trigger), you MUST drive the run to a terminal conclusion AND complete every post-trigger step before ending your turn. You may NOT end the turn, hand off, or stop for the day while ANY of these is unresolved:
44
+
45
+ 1. **Run conclusion** — `gh run view <id> --json conclusion` must return `success` (poll while drafting notes; never sleep idle).
46
+ 2. **Release exists** — Step 5: `gh release view v${NEW_VERSION}` resolves.
47
+ 3. **Enhanced summary applied** — Step 6 + Step 7: draft (mandatory for patch/minor/major) AND `gh release edit --notes-file` applied. "Patch is optional" is wrong; patch summaries are MANDATORY.
48
+ 4. **Discord announced** — Step 7.5: `agent-discordbot message send` attempted; either a message id is recorded OR a clear failure is reported to the user. A skipped Discord step is a workflow failure.
49
+ 5. **npm verified** — Step 8: `npm view oh-my-opencode version` (and oh-my-openagent, lazycodex-ai) shows `${NEW_VERSION}`.
50
+
51
+ Only after all five are green may you end the turn. If the run fails, run `gh run view <id> --log-failed`, report it, and STOP (do not repair the tree mid-publish). If a post-trigger step fails for an external reason (npm propagation, Discord auth), report it clearly and continue the remaining steps — do not let one failure abort the rest.
52
+
53
+ This contract applies to the slash-command copies (`.agents/command/publish.md`, `.opencode/command/publish.md`) too; they are kept byte-identical to this skill per the `.agents/AGENTS.md` drift rule.
54
+
29
55
  ## CRITICAL: ARGUMENT REQUIREMENT
30
56
 
31
57
  **You MUST receive a version bump type from the user.** Valid options:
@@ -52,8 +78,9 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
52
78
  { "id": "run-workflow", "content": "Trigger GitHub Actions publish workflow", "status": "pending", "priority": "high" },
53
79
  { "id": "wait-workflow", "content": "Wait for workflow completion (poll every 30s)", "status": "pending", "priority": "high" },
54
80
  { "id": "verify-and-preview", "content": "Verify release created + preview auto-generated changelog & contributor thanks", "status": "pending", "priority": "high" },
55
- { "id": "draft-summary", "content": "Draft enhanced release summary (mandatory for minor/major, optional for patch — ask user)", "status": "pending", "priority": "high" },
56
- { "id": "apply-summary", "content": "Prepend enhanced summary to release (if user opted in)", "status": "pending", "priority": "high" },
81
+ { "id": "draft-summary", "content": "Draft enhanced release summary (mandatory for all release types)", "status": "pending", "priority": "high" },
82
+ { "id": "apply-summary", "content": "Prepend enhanced summary to release", "status": "pending", "priority": "high" },
83
+ { "id": "discord-announce", "content": "MANDATORY: post release announcement to Discord channel immediately after release notes are finalized", "status": "pending", "priority": "high" },
57
84
  { "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
58
85
  { "id": "verify-lazycodex", "content": "Verify lazycodex-ai publish, Codex plugin metadata version stamp, and code-yeongyu/lazycodex release/sync", "status": "pending", "priority": "high" },
59
86
  { "id": "verify-platform-binaries", "content": "Spot-check platform binary packages on npm", "status": "pending", "priority": "high" },
@@ -163,10 +190,9 @@ After running the preview, present the output to the user and say:
163
190
  >
164
191
  > You do NOT need to write any of this. It's handled.
165
192
  >
166
- > **For a patch release**, this is usually sufficient on its own. However, if there are notable bug fixes or changes worth highlighting, an enhanced summary can be added.
167
- > **For a minor/major release**, an enhanced summary is **required** — I'll draft one in the next step.
193
+ > **For all release types**, an enhanced summary is **required** I'll draft one in the next step.
168
194
 
169
- Wait for the user to acknowledge before proceeding.
195
+ **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.
170
196
  </agent-instruction>
171
197
 
172
198
  ---
@@ -177,7 +203,7 @@ Wait for the user to acknowledge before proceeding.
177
203
 
178
204
  | Release Type | Action |
179
205
  |-------------|--------|
180
- | **patch** | ASK the user: "Would you like me to draft an enhanced summary highlighting the key bug fixes / changes? Or is the auto-generated changelog sufficient?" If user declines → skip to Step 8. If user accepts → draft a concise bug-fix / change summary below. |
206
+ | **patch** | MANDATORY. Draft a concise bug-fix / change summary. Do NOT proceed without one. |
181
207
  | **minor** | MANDATORY. Draft a concise feature summary. Do NOT proceed without one. |
182
208
  | **major** | MANDATORY. Draft a full release narrative with migration notes if applicable. Do NOT proceed without one. |
183
209
 
@@ -238,17 +264,17 @@ cat /tmp/release-summary-v${NEW_VERSION}.md
238
264
  ```
239
265
 
240
266
  <agent-instruction>
241
- After drafting, ask the user:
242
- > "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks. Want me to adjust anything before applying?"
267
+ Present the draft to the user:
268
+ > "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks."
243
269
 
244
- Do NOT proceed to Step 7 without user confirmation.
270
+ **APPROVAL GATE (same single gate):** The initial publish confirmation covers this step too. Present the draft, then IMMEDIATELY proceed to Step 7 (apply) and Step 7.5 (Discord). Do NOT stop to wait for approval unless the user explicitly requested a release-note review hold before the publish started. The Discord announcement (Step 7.5) is mandatory and must not be blocked by a review hold that was never requested.
245
271
  </agent-instruction>
246
272
 
247
273
  ---
248
274
 
249
275
  ## STEP 7: APPLY ENHANCED SUMMARY TO RELEASE
250
276
 
251
- **Skip this step ONLY if the user opted out of the enhanced summary in Step 6** proceed directly to Step 8.
277
+ This step is MANDATORY. The enhanced summary from Step 6 must always be applied.
252
278
 
253
279
  <architecture>
254
280
  The final release note structure:
@@ -297,6 +323,64 @@ gh release view "v${NEW_VERSION}" --json url --jq '.url'
297
323
 
298
324
  ---
299
325
 
326
+ ## STEP 7.5: POST RELEASE NOTES TO DISCORD
327
+
328
+ After the release notes are finalized, post them to the Discord channel. This step is mandatory for every publish run.
329
+
330
+ <hard-gate>
331
+ The workflow is not complete until this step has either:
332
+ 1. Sent a Discord message successfully and recorded the message ID, or
333
+ 2. Failed after `agent-discordbot auth status` plus one send retry, with the Jobdori bot-token failure reported to the user.
334
+
335
+ Never skip this step because the release summary was awaiting approval. If the user already confirmed the publish, continue through Discord before stopping.
336
+ </hard-gate>
337
+
338
+ <agent-discord-instruction>
339
+ 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.
340
+ ```bash
341
+ JOBDORI_BOT_ID=1486173823354146917
342
+ agent-discordbot auth status --bot "$JOBDORI_BOT_ID"
343
+ ```
344
+
345
+ 2. **Read recent messages** in the channel to match the existing announcement style:
346
+ ```bash
347
+ JOBDORI_BOT_ID=1486173823354146917
348
+ agent-discordbot message list 1454708427392680067 --bot "$JOBDORI_BOT_ID" --limit 5
349
+ ```
350
+
351
+ 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`.
352
+
353
+ 4. Post the release announcement to channel `1454708427392680067` matching the style of previous announcements. The message should follow this structure:
354
+ ```
355
+ @here
356
+
357
+ 🎉 **oh-my-opencode v{VERSION} — {Short Tagline}**
358
+
359
+ **Feature 1** — one-line description.
360
+
361
+ **Feature 2** — one-line description.
362
+
363
+ **Feature 3** — one-line description.
364
+
365
+ Plus {summary of remaining changes}.
366
+
367
+ 📦 Install / upgrade:
368
+ `bun i -g oh-my-opencode@{VERSION}` (or `npm`)
369
+
370
+ 📝 Full release notes: {RELEASE_URL}
371
+ ```
372
+
373
+ ```bash
374
+ JOBDORI_BOT_ID=1486173823354146917
375
+ RELEASE_URL=$(gh release view "v${NEW_VERSION}" --json url --jq '.url')
376
+ agent-discordbot message send 1454708427392680067 "{your message following the style above}" --bot "$JOBDORI_BOT_ID"
377
+ ```
378
+
379
+ If the message fails to send, warn the user and continue — do NOT block the publish workflow on Discord errors.
380
+ </agent-discord-instruction>
381
+
382
+ ---
383
+
300
384
  ## STEP 8: VERIFY NPM PUBLICATION
301
385
 
302
386
  Poll npm registry until the new version appears:
@@ -343,20 +427,3 @@ Report success to user with:
343
427
  ## LANGUAGE
344
428
 
345
429
  Respond to user in English.
346
-
347
- </command-instruction>
348
-
349
- <current-context>
350
- <published-version>
351
- !`npm view oh-my-opencode version 2>/dev/null || echo "not published"`
352
- </published-version>
353
- <local-version>
354
- !`node -p "require('./package.json').version" 2>/dev/null || echo "unknown"`
355
- </local-version>
356
- <git-status>
357
- !`git status --porcelain`
358
- </git-status>
359
- <recent-commits>
360
- !`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git log "v{}"..HEAD --oneline 2>/dev/null | head -15 || echo "no commits"`
361
- </recent-commits>
362
- </current-context>
@@ -35,6 +35,22 @@ Publishing is not complete until the Discord release announcement has been attem
35
35
  - After the release notes are finalized, immediately run Step 7.5 and post to Discord.
36
36
  - If Discord posting fails after authentication/retry, report the failure clearly and continue the remaining verification steps. A skipped Discord step is a workflow failure.
37
37
 
38
+ ## CRITICAL: NO EARLY TURN-END AFTER TRIGGER (COMPLETION CONTRACT)
39
+
40
+ Once `gh workflow run publish` succeeds, the publish is NOT done. A prior session forgot this: it triggered the workflow and ended its turn, leaving the release unverified, the enhanced summary unwritten, and the Discord announcement unsent. That mistake is why this section exists.
41
+
42
+ After Step 3 (trigger), you MUST drive the run to a terminal conclusion AND complete every post-trigger step before ending your turn. You may NOT end the turn, hand off, or stop for the day while ANY of these is unresolved:
43
+
44
+ 1. **Run conclusion** — `gh run view <id> --json conclusion` must return `success` (poll while drafting notes; never sleep idle).
45
+ 2. **Release exists** — Step 5: `gh release view v${NEW_VERSION}` resolves.
46
+ 3. **Enhanced summary applied** — Step 6 + Step 7: draft (mandatory for patch/minor/major) AND `gh release edit --notes-file` applied. "Patch is optional" is wrong; patch summaries are MANDATORY.
47
+ 4. **Discord announced** — Step 7.5: `agent-discordbot message send` attempted; either a message id is recorded OR a clear failure is reported to the user. A skipped Discord step is a workflow failure.
48
+ 5. **npm verified** — Step 8: `npm view oh-my-opencode version` (and oh-my-openagent, lazycodex-ai) shows `${NEW_VERSION}`.
49
+
50
+ Only after all five are green may you end the turn. If the run fails, run `gh run view <id> --log-failed`, report it, and STOP (do not repair the tree mid-publish). If a post-trigger step fails for an external reason (npm propagation, Discord auth), report it clearly and continue the remaining steps — do not let one failure abort the rest.
51
+
52
+ This contract applies to the slash-command copies (`.agents/command/publish.md`, `.opencode/command/publish.md`) too; they are kept byte-identical to this skill per the `.agents/AGENTS.md` drift rule.
53
+
38
54
  ## CRITICAL: ARGUMENT REQUIREMENT
39
55
 
40
56
  **You MUST receive a version bump type from the user.** Valid options:
@@ -175,9 +191,7 @@ After running the preview, present the output to the user and say:
175
191
  >
176
192
  > **For all release types**, an enhanced summary is **required** — I'll draft one in the next step.
177
193
 
178
- Wait for the user to acknowledge before proceeding.
179
-
180
- If the user already confirmed the publish workflow and did not explicitly ask to review the generated changelog before release-note editing, treat the publish confirmation as sufficient acknowledgement and continue. Do not end the assistant turn here.
194
+ **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.
181
195
  </agent-instruction>
182
196
 
183
197
  ---
@@ -249,10 +263,10 @@ cat /tmp/release-summary-v${NEW_VERSION}.md
249
263
  ```
250
264
 
251
265
  <agent-instruction>
252
- After drafting, ask the user:
253
- > "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks. Want me to adjust anything before applying?"
266
+ Present the draft to the user:
267
+ > "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks."
254
268
 
255
- If the user already confirmed the publish workflow and did not explicitly request a release-note review hold, proceed to Step 7 after presenting the draft. Do not stop before Step 7.5, because the Discord announcement is mandatory.
269
+ **APPROVAL GATE (same single gate):** The initial publish confirmation covers this step too. Present the draft, then IMMEDIATELY proceed to Step 7 (apply) and Step 7.5 (Discord). Do NOT stop to wait for approval unless the user explicitly requested a release-note review hold before the publish started. The Discord announcement (Step 7.5) is mandatory and must not be blocked by a review hold that was never requested.
256
270
  </agent-instruction>
257
271
 
258
272
  ---
@@ -3,7 +3,7 @@ description: Publish oh-my-opencode to npm via GitHub Actions workflow
3
3
  argument-hint: <patch|minor|major>
4
4
  ---
5
5
 
6
- <command-instruction>
6
+
7
7
  You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
8
8
 
9
9
  ## CRITICAL: PUBLISH IS SHIP-ONLY — GO STRAIGHT TO THE WORKFLOW
@@ -26,6 +26,32 @@ Publishing is complete only after all release surfaces are verified:
26
26
 
27
27
  The publish workflow must not be reported complete while any of `oh-my-opencode`, `oh-my-openagent`, `lazycodex-ai`, or `code-yeongyu/lazycodex` verification is unresolved.
28
28
 
29
+ ## CRITICAL: FULL WORKFLOW MEANS DISCORD TOO
30
+
31
+ Publishing is not complete until the Discord release announcement has been attempted.
32
+
33
+ - **DO NOT stop after creating the GitHub release.**
34
+ - **DO NOT stop after drafting or applying release notes.**
35
+ - **DO NOT wait for a second user acknowledgement if the user already confirmed the publish.**
36
+ - After the release notes are finalized, immediately run Step 7.5 and post to Discord.
37
+ - If Discord posting fails after authentication/retry, report the failure clearly and continue the remaining verification steps. A skipped Discord step is a workflow failure.
38
+
39
+ ## CRITICAL: NO EARLY TURN-END AFTER TRIGGER (COMPLETION CONTRACT)
40
+
41
+ Once `gh workflow run publish` succeeds, the publish is NOT done. A prior session forgot this: it triggered the workflow and ended its turn, leaving the release unverified, the enhanced summary unwritten, and the Discord announcement unsent. That mistake is why this section exists.
42
+
43
+ After Step 3 (trigger), you MUST drive the run to a terminal conclusion AND complete every post-trigger step before ending your turn. You may NOT end the turn, hand off, or stop for the day while ANY of these is unresolved:
44
+
45
+ 1. **Run conclusion** — `gh run view <id> --json conclusion` must return `success` (poll while drafting notes; never sleep idle).
46
+ 2. **Release exists** — Step 5: `gh release view v${NEW_VERSION}` resolves.
47
+ 3. **Enhanced summary applied** — Step 6 + Step 7: draft (mandatory for patch/minor/major) AND `gh release edit --notes-file` applied. "Patch is optional" is wrong; patch summaries are MANDATORY.
48
+ 4. **Discord announced** — Step 7.5: `agent-discordbot message send` attempted; either a message id is recorded OR a clear failure is reported to the user. A skipped Discord step is a workflow failure.
49
+ 5. **npm verified** — Step 8: `npm view oh-my-opencode version` (and oh-my-openagent, lazycodex-ai) shows `${NEW_VERSION}`.
50
+
51
+ Only after all five are green may you end the turn. If the run fails, run `gh run view <id> --log-failed`, report it, and STOP (do not repair the tree mid-publish). If a post-trigger step fails for an external reason (npm propagation, Discord auth), report it clearly and continue the remaining steps — do not let one failure abort the rest.
52
+
53
+ This contract applies to the slash-command copies (`.agents/command/publish.md`, `.opencode/command/publish.md`) too; they are kept byte-identical to this skill per the `.agents/AGENTS.md` drift rule.
54
+
29
55
  ## CRITICAL: ARGUMENT REQUIREMENT
30
56
 
31
57
  **You MUST receive a version bump type from the user.** Valid options:
@@ -52,8 +78,9 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
52
78
  { "id": "run-workflow", "content": "Trigger GitHub Actions publish workflow", "status": "pending", "priority": "high" },
53
79
  { "id": "wait-workflow", "content": "Wait for workflow completion (poll every 30s)", "status": "pending", "priority": "high" },
54
80
  { "id": "verify-and-preview", "content": "Verify release created + preview auto-generated changelog & contributor thanks", "status": "pending", "priority": "high" },
55
- { "id": "draft-summary", "content": "Draft enhanced release summary (mandatory for minor/major, optional for patch — ask user)", "status": "pending", "priority": "high" },
56
- { "id": "apply-summary", "content": "Prepend enhanced summary to release (if user opted in)", "status": "pending", "priority": "high" },
81
+ { "id": "draft-summary", "content": "Draft enhanced release summary (mandatory for all release types)", "status": "pending", "priority": "high" },
82
+ { "id": "apply-summary", "content": "Prepend enhanced summary to release", "status": "pending", "priority": "high" },
83
+ { "id": "discord-announce", "content": "MANDATORY: post release announcement to Discord channel immediately after release notes are finalized", "status": "pending", "priority": "high" },
57
84
  { "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
58
85
  { "id": "verify-lazycodex", "content": "Verify lazycodex-ai publish, Codex plugin metadata version stamp, and code-yeongyu/lazycodex release/sync", "status": "pending", "priority": "high" },
59
86
  { "id": "verify-platform-binaries", "content": "Spot-check platform binary packages on npm", "status": "pending", "priority": "high" },
@@ -163,10 +190,9 @@ After running the preview, present the output to the user and say:
163
190
  >
164
191
  > You do NOT need to write any of this. It's handled.
165
192
  >
166
- > **For a patch release**, this is usually sufficient on its own. However, if there are notable bug fixes or changes worth highlighting, an enhanced summary can be added.
167
- > **For a minor/major release**, an enhanced summary is **required** — I'll draft one in the next step.
193
+ > **For all release types**, an enhanced summary is **required** I'll draft one in the next step.
168
194
 
169
- Wait for the user to acknowledge before proceeding.
195
+ **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.
170
196
  </agent-instruction>
171
197
 
172
198
  ---
@@ -177,7 +203,7 @@ Wait for the user to acknowledge before proceeding.
177
203
 
178
204
  | Release Type | Action |
179
205
  |-------------|--------|
180
- | **patch** | ASK the user: "Would you like me to draft an enhanced summary highlighting the key bug fixes / changes? Or is the auto-generated changelog sufficient?" If user declines → skip to Step 8. If user accepts → draft a concise bug-fix / change summary below. |
206
+ | **patch** | MANDATORY. Draft a concise bug-fix / change summary. Do NOT proceed without one. |
181
207
  | **minor** | MANDATORY. Draft a concise feature summary. Do NOT proceed without one. |
182
208
  | **major** | MANDATORY. Draft a full release narrative with migration notes if applicable. Do NOT proceed without one. |
183
209
 
@@ -238,17 +264,17 @@ cat /tmp/release-summary-v${NEW_VERSION}.md
238
264
  ```
239
265
 
240
266
  <agent-instruction>
241
- After drafting, ask the user:
242
- > "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks. Want me to adjust anything before applying?"
267
+ Present the draft to the user:
268
+ > "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks."
243
269
 
244
- Do NOT proceed to Step 7 without user confirmation.
270
+ **APPROVAL GATE (same single gate):** The initial publish confirmation covers this step too. Present the draft, then IMMEDIATELY proceed to Step 7 (apply) and Step 7.5 (Discord). Do NOT stop to wait for approval unless the user explicitly requested a release-note review hold before the publish started. The Discord announcement (Step 7.5) is mandatory and must not be blocked by a review hold that was never requested.
245
271
  </agent-instruction>
246
272
 
247
273
  ---
248
274
 
249
275
  ## STEP 7: APPLY ENHANCED SUMMARY TO RELEASE
250
276
 
251
- **Skip this step ONLY if the user opted out of the enhanced summary in Step 6** proceed directly to Step 8.
277
+ This step is MANDATORY. The enhanced summary from Step 6 must always be applied.
252
278
 
253
279
  <architecture>
254
280
  The final release note structure:
@@ -297,6 +323,64 @@ gh release view "v${NEW_VERSION}" --json url --jq '.url'
297
323
 
298
324
  ---
299
325
 
326
+ ## STEP 7.5: POST RELEASE NOTES TO DISCORD
327
+
328
+ After the release notes are finalized, post them to the Discord channel. This step is mandatory for every publish run.
329
+
330
+ <hard-gate>
331
+ The workflow is not complete until this step has either:
332
+ 1. Sent a Discord message successfully and recorded the message ID, or
333
+ 2. Failed after `agent-discordbot auth status` plus one send retry, with the Jobdori bot-token failure reported to the user.
334
+
335
+ Never skip this step because the release summary was awaiting approval. If the user already confirmed the publish, continue through Discord before stopping.
336
+ </hard-gate>
337
+
338
+ <agent-discord-instruction>
339
+ 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.
340
+ ```bash
341
+ JOBDORI_BOT_ID=1486173823354146917
342
+ agent-discordbot auth status --bot "$JOBDORI_BOT_ID"
343
+ ```
344
+
345
+ 2. **Read recent messages** in the channel to match the existing announcement style:
346
+ ```bash
347
+ JOBDORI_BOT_ID=1486173823354146917
348
+ agent-discordbot message list 1454708427392680067 --bot "$JOBDORI_BOT_ID" --limit 5
349
+ ```
350
+
351
+ 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`.
352
+
353
+ 4. Post the release announcement to channel `1454708427392680067` matching the style of previous announcements. The message should follow this structure:
354
+ ```
355
+ @here
356
+
357
+ 🎉 **oh-my-opencode v{VERSION} — {Short Tagline}**
358
+
359
+ **Feature 1** — one-line description.
360
+
361
+ **Feature 2** — one-line description.
362
+
363
+ **Feature 3** — one-line description.
364
+
365
+ Plus {summary of remaining changes}.
366
+
367
+ 📦 Install / upgrade:
368
+ `bun i -g oh-my-opencode@{VERSION}` (or `npm`)
369
+
370
+ 📝 Full release notes: {RELEASE_URL}
371
+ ```
372
+
373
+ ```bash
374
+ JOBDORI_BOT_ID=1486173823354146917
375
+ RELEASE_URL=$(gh release view "v${NEW_VERSION}" --json url --jq '.url')
376
+ agent-discordbot message send 1454708427392680067 "{your message following the style above}" --bot "$JOBDORI_BOT_ID"
377
+ ```
378
+
379
+ If the message fails to send, warn the user and continue — do NOT block the publish workflow on Discord errors.
380
+ </agent-discord-instruction>
381
+
382
+ ---
383
+
300
384
  ## STEP 8: VERIFY NPM PUBLICATION
301
385
 
302
386
  Poll npm registry until the new version appears:
@@ -343,20 +427,3 @@ Report success to user with:
343
427
  ## LANGUAGE
344
428
 
345
429
  Respond to user in English.
346
-
347
- </command-instruction>
348
-
349
- <current-context>
350
- <published-version>
351
- !`npm view oh-my-opencode version 2>/dev/null || echo "not published"`
352
- </published-version>
353
- <local-version>
354
- !`node -p "require('./package.json').version" 2>/dev/null || echo "unknown"`
355
- </local-version>
356
- <git-status>
357
- !`git status --porcelain`
358
- </git-status>
359
- <recent-commits>
360
- !`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git log "v{}"..HEAD --oneline 2>/dev/null | head -15 || echo "no commits"`
361
- </recent-commits>
362
- </current-context>
package/README.ja.md CHANGED
@@ -193,11 +193,11 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
193
193
  <td align="center"><img src=".github/assets/hephaestus.png" height="300" /></td>
194
194
  </tr></table>
195
195
 
196
- **Sisyphus** (`claude-opus-4-8` / **`kimi-k3`** / **`glm-5`**) はあなたのメインオーケストレーターです。計画を立て、専門家に委任し、攻撃的な並列実行でタスクを完了まで推進します。途中で投げ出すことはありません。Claude Opus 4.8 と Kimi K3 が推奨デフォルトです。
196
+ **Sisyphus** (`claude-opus-5` / **`kimi-k3`** / **`glm-5`**) はあなたのメインオーケストレーターです。計画を立て、専門家に委任し、攻撃的な並列実行でタスクを完了まで推進します。途中で投げ出すことはありません。Claude Opus 5 と Kimi K3 が推奨デフォルトです。
197
197
 
198
198
  **Hephaestus** (OpenAI、GitHub Copilot、Vercel、または OpenCode 経由で medium effort の `gpt-5.6-sol` のみを使う) はあなたの自律的なディープワーカーです。レシピではなく、目標を与えてください。手取り足取り教えなくても、コードベースを探索し、パターンを調査し、エンドツーエンドで実行します。*正当なる職人 (The Legitimate Craftsman).*
199
199
 
200
- **Prometheus** (`claude-opus-4-8` / **`gpt-5.6-sol`** / **`glm-5.2`**) はあなたの戦略プランナーです。インタビューモードで質問を投げ、スコープを特定し、コードに一行触れる前に詳細な計画を構築します。
200
+ **Prometheus** (`claude-fable-5` / **`kimi-k3`**) はあなたの戦略プランナーです。インタビューモードで質問を投げ、スコープを特定し、コードに一行触れる前に詳細な計画を構築します。
201
201
 
202
202
  すべてのエージェントは、それぞれのモデルの強みに合わせてチューニングされています。手動でモデルを切り替える必要はありません。[詳しくはこちら →](docs/guide/overview.md)
203
203
 
package/README.ko.md CHANGED
@@ -194,11 +194,11 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
194
194
  <td align="center"><img src=".github/assets/hephaestus.png" height="300" /></td>
195
195
  </tr></table>
196
196
 
197
- **Sisyphus** (`claude-opus-4-8` / **`kimi-k3`** / **`glm-5`**)는 메인 오케스트레이터입니다. 계획을 세우고, 전문가에게 위임하고, 공격적인 병렬 실행으로 작업을 끝까지 밀어붙입니다. 중간에 멈추지 않습니다. Claude Opus 4.8과 Kimi K3가 권장 기본값입니다.
197
+ **Sisyphus** (`claude-opus-5` / **`kimi-k3`** / **`glm-5`**)는 메인 오케스트레이터입니다. 계획을 세우고, 전문가에게 위임하고, 공격적인 병렬 실행으로 작업을 끝까지 밀어붙입니다. 중간에 멈추지 않습니다. Claude Opus 5와 Kimi K3가 권장 기본값입니다.
198
198
 
199
199
  **Hephaestus** (OpenAI, GitHub Copilot, Vercel 또는 OpenCode에서 medium effort의 `gpt-5.6-sol`만 사용하는)는 자율적으로 깊게 파는 작업자입니다. 레시피가 아니라 목표를 주세요. 코드베이스를 탐색하고, 패턴을 조사하고, 손을 잡아주지 않아도 엔드투엔드로 실행합니다. *The Legitimate Craftsman.*
200
200
 
201
- **Prometheus** (`claude-opus-4-8` / **`gpt-5.6-sol`** / **`glm-5.2`**)는 전략 플래너입니다. 인터뷰 모드: 질문으로 스코프를 파악하고, 코드에 손대기 전에 상세한 계획을 만듭니다.
201
+ **Prometheus** (`claude-fable-5` / **`kimi-k3`**)는 전략 플래너입니다. 인터뷰 모드: 질문으로 스코프를 파악하고, 코드에 손대기 전에 상세한 계획을 만듭니다.
202
202
 
203
203
  모든 에이전트는 자기 모델의 강점에 맞춰 튜닝되어 있습니다. 수동으로 모델을 돌려가며 쓸 필요가 없습니다. [더 알아보기 →](docs/guide/overview.md)
204
204
 
package/README.md CHANGED
@@ -241,11 +241,11 @@ Even with only the following subscriptions, `ultrawork` works well (this project
241
241
  <td align="center"><img src=".github/assets/hephaestus.png" height="300" /></td>
242
242
  </tr></table>
243
243
 
244
- **Sisyphus** (`claude-opus-4-8` / **`kimi-k3`** / **`glm-5`** ) is your main orchestrator. He plans, delegates to specialists, and drives tasks to completion with aggressive parallel execution. He does not stop halfway. Claude Opus 4.8 and Kimi K3 are the recommended defaults.
244
+ **Sisyphus** (`claude-opus-5` / **`kimi-k3`** / **`glm-5`** ) is your main orchestrator. He plans, delegates to specialists, and drives tasks to completion with aggressive parallel execution. He does not stop halfway. Claude Opus 5 and Kimi K3 are the recommended defaults.
245
245
 
246
246
  **Hephaestus** (`gpt-5.6-sol` through OpenAI, GitHub Copilot, Vercel, or OpenCode at medium effort) is your autonomous deep worker. Give him a goal, not a recipe. He explores the codebase, researches patterns, and executes end-to-end without hand-holding. *The Legitimate Craftsman.*
247
247
 
248
- **Prometheus** (`claude-opus-4-8` / **`gpt-5.6-sol`** / **`glm-5.2`**) is your strategic planner. Interview mode: he asks questions, identifies scope, and builds a detailed plan before a single line of code is touched.
248
+ **Prometheus** (`claude-fable-5` / **`kimi-k3`**) is your strategic planner. Interview mode: he asks questions, identifies scope, and builds a detailed plan before a single line of code is touched.
249
249
 
250
250
  Every agent is tuned to its model's specific strengths. No manual model juggling. [Learn more →](docs/guide/overview.md)
251
251
 
package/README.ru.md CHANGED
@@ -192,11 +192,11 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
192
192
  <td align="center"><img src=".github/assets/hephaestus.png" height="300" /></td>
193
193
  </tr></table>
194
194
 
195
- **Sisyphus** (`claude-opus-4-8` / **`kimi-k3`** / **`glm-5`**) — главный оркестратор. Он планирует, делегирует задачи специалистам и доводит их до завершения с агрессивным параллельным выполнением. Он не останавливается на полпути. Claude Opus 4.8 и Kimi K3 — рекомендуемые значения по умолчанию.
195
+ **Sisyphus** (`claude-opus-5` / **`kimi-k3`** / **`glm-5`**) — главный оркестратор. Он планирует, делегирует задачи специалистам и доводит их до завершения с агрессивным параллельным выполнением. Он не останавливается на полпути. Claude Opus 5 и Kimi K3 — рекомендуемые значения по умолчанию.
196
196
 
197
197
  **Hephaestus** (использует только `gpt-5.6-sol` с medium effort через OpenAI, GitHub Copilot, Vercel или OpenCode) — автономный глубокий исполнитель. Дайте ему цель, а не рецепт. Он исследует кодовую базу, изучает паттерны и выполняет задачи сквозным образом без лишних подсказок. *Законный Мастер.*
198
198
 
199
- **Prometheus** (`claude-opus-4-8` / **`gpt-5.6-sol`** / **`glm-5.2`**) — стратегический планировщик. Режим интервью: он задаёт вопросы, определяет объём работ и формирует детальный план до того, как написана хотя бы одна строка кода.
199
+ **Prometheus** (`claude-fable-5` / **`kimi-k3`**) — стратегический планировщик. Режим интервью: он задаёт вопросы, определяет объём работ и формирует детальный план до того, как написана хотя бы одна строка кода.
200
200
 
201
201
  Каждый агент настроен под сильные стороны своей модели. Никакого ручного переключения между моделями. [Подробнее →](docs/guide/overview.md)
202
202
 
package/README.zh-cn.md CHANGED
@@ -199,11 +199,11 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
199
199
  <td align="center"><img src=".github/assets/hephaestus.png" height="300" /></td>
200
200
  </tr></table>
201
201
 
202
- **Sisyphus** (`claude-opus-4-8` / **`kimi-k3`** / **`glm-5`**) 是你的主指挥官。他负责制定计划、分配任务给专家团队,并以极其激进的并行策略推动任务直至完成。他从不半途而废。Claude Opus 4.8 和 Kimi K3 是推荐默认值。
202
+ **Sisyphus** (`claude-opus-5` / **`kimi-k3`** / **`glm-5`**) 是你的主指挥官。他负责制定计划、分配任务给专家团队,并以极其激进的并行策略推动任务直至完成。他从不半途而废。Claude Opus 5 和 Kimi K3 是推荐默认值。
203
203
 
204
204
  **Hephaestus** (仅通过 OpenAI、GitHub Copilot、Vercel 或 OpenCode 使用 medium effort 的 `gpt-5.6-sol`) 是你的自主深度工作者。你只需要给他目标,不要给他具体做法。他会自动探索代码库模式,从头到尾独立执行任务,绝不会中途要你当保姆。*名副其实的正牌工匠。*
205
205
 
206
- **Prometheus** (`claude-opus-4-8` / **`gpt-5.6-sol`** / **`glm-5.2`**) 是你的战略规划师。他通过访谈模式,在动一行代码之前,先通过提问确定范围并构建详尽的执行计划。
206
+ **Prometheus** (`claude-fable-5` / **`kimi-k3`**) 是你的战略规划师。他通过访谈模式,在动一行代码之前,先通过提问确定范围并构建详尽的执行计划。
207
207
 
208
208
  每一个 Agent 都针对其底层模型的特点进行了专门调优。你无需手动来回切换模型。[阅读背景设定了解更多 →](docs/guide/overview.md)
209
209
 
@@ -24,43 +24,43 @@ Generator/checker note: update this file with the audited component list, then r
24
24
  - Upstream URL: https://github.com/code-yeongyu/go-claude-code-comment-checker
25
25
  - Where-bundled: root production dependency and vendored checker binary payload under `vendor/<platform>/`.
26
26
 
27
- ### @colbymchenry/codegraph@1.0.1
27
+ ### @colbymchenry/codegraph@1.5.0
28
28
  - License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
29
29
  - Copyright: CodeGraph contributors.
30
30
  - Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph
31
31
  - Where-bundled: pinned CodeGraph provisioning payload for the CodeGraph OMO integration.
32
32
 
33
- ### @colbymchenry/codegraph-darwin-arm64@1.0.1
33
+ ### @colbymchenry/codegraph-darwin-arm64@1.5.0
34
34
  - License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
35
35
  - Copyright: CodeGraph contributors.
36
36
  - Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-darwin-arm64
37
37
  - Where-bundled: optional CodeGraph platform bundle for darwin arm64, including CodeGraph runtime files, Node.js runtime binary, and tree-sitter WASM assets.
38
38
 
39
- ### @colbymchenry/codegraph-darwin-x64@1.0.1
39
+ ### @colbymchenry/codegraph-darwin-x64@1.5.0
40
40
  - License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
41
41
  - Copyright: CodeGraph contributors.
42
42
  - Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-darwin-x64
43
43
  - Where-bundled: optional CodeGraph platform bundle for darwin x64, including CodeGraph runtime files, Node.js runtime binary, and tree-sitter WASM assets.
44
44
 
45
- ### @colbymchenry/codegraph-linux-arm64@1.0.1
45
+ ### @colbymchenry/codegraph-linux-arm64@1.5.0
46
46
  - License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
47
47
  - Copyright: CodeGraph contributors.
48
48
  - Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-linux-arm64
49
49
  - Where-bundled: optional CodeGraph platform bundle for linux arm64, including CodeGraph runtime files, Node.js runtime binary, and tree-sitter WASM assets.
50
50
 
51
- ### @colbymchenry/codegraph-linux-x64@1.0.1
51
+ ### @colbymchenry/codegraph-linux-x64@1.5.0
52
52
  - License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
53
53
  - Copyright: CodeGraph contributors.
54
54
  - Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-linux-x64
55
55
  - Where-bundled: optional CodeGraph platform bundle for linux x64, including CodeGraph runtime files, Node.js runtime binary, and tree-sitter WASM assets.
56
56
 
57
- ### @colbymchenry/codegraph-win32-arm64@1.0.1
57
+ ### @colbymchenry/codegraph-win32-arm64@1.5.0
58
58
  - License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
59
59
  - Copyright: CodeGraph contributors.
60
60
  - Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-win32-arm64
61
61
  - Where-bundled: optional CodeGraph platform bundle for win32 arm64, including CodeGraph runtime files, Node.js runtime binary, and tree-sitter WASM assets.
62
62
 
63
- ### @colbymchenry/codegraph-win32-x64@1.0.1
63
+ ### @colbymchenry/codegraph-win32-x64@1.5.0
64
64
  - License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
65
65
  - Copyright: CodeGraph contributors.
66
66
  - Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-win32-x64
@@ -14,9 +14,10 @@
14
14
  * 8. Default (Claude 4.6 family: opus-4-6, sonnet-4-6, haiku-4-5, etc.) → default.md
15
15
  */
16
16
  import type { AgentConfig } from "@opencode-ai/sdk";
17
- import type { AgentPromptMetadata } from "../types";
17
+ import type { AgentMode, AgentPromptMetadata } from "../types";
18
18
  import type { AvailableAgent, AvailableSkill } from "../dynamic-agent-prompt-builder";
19
19
  import type { CategoryConfig } from "../../config/schema";
20
+ declare const MODE: AgentMode;
20
21
  export type AtlasPromptSource = "default" | "gpt" | "gemini" | "kimi" | "kimi-k3" | "kimi-k2-7" | "opus-4-7" | "glm";
21
22
  export declare function getAtlasPromptSource(model?: string): AtlasPromptSource;
22
23
  export interface OrchestratorContext {
@@ -28,6 +29,7 @@ export interface OrchestratorContext {
28
29
  export declare function getAtlasPrompt(model?: string): string;
29
30
  export declare function createAtlasAgent(ctx: OrchestratorContext): AgentConfig;
30
31
  export declare namespace createAtlasAgent {
31
- var mode: "primary";
32
+ export { MODE as mode };
32
33
  }
33
34
  export declare const atlasPromptMetadata: AgentPromptMetadata;
35
+ export {};
@@ -1,7 +1,9 @@
1
1
  import type { AgentConfig } from "@opencode-ai/sdk";
2
- import type { AgentPromptMetadata } from "./types";
2
+ import type { AgentMode, AgentPromptMetadata } from "./types";
3
+ declare const MODE: AgentMode;
3
4
  export declare const EXPLORE_PROMPT_METADATA: AgentPromptMetadata;
4
5
  export declare function createExploreAgent(model: string): AgentConfig;
5
6
  export declare namespace createExploreAgent {
6
- var mode: "subagent";
7
+ export { MODE as mode };
7
8
  }
9
+ export {};
@@ -1,6 +1,7 @@
1
1
  import type { AgentConfig } from "@opencode-ai/sdk";
2
- import type { AgentPromptMetadata } from "../types";
2
+ import type { AgentMode, AgentPromptMetadata } from "../types";
3
3
  import type { AvailableAgent, AvailableTool, AvailableSkill, AvailableCategory } from "../dynamic-agent-prompt-builder";
4
+ declare const MODE: AgentMode;
4
5
  export type HephaestusPromptSource = "gpt-5-6" | "gpt-5-5" | "gpt-5-4" | "gpt";
5
6
  export declare class UnsupportedHephaestusModelError extends Error {
6
7
  readonly model: string | undefined;
@@ -19,6 +20,7 @@ export interface HephaestusContext {
19
20
  export declare function getHephaestusPrompt(model?: string, useTaskSystem?: boolean): string;
20
21
  export declare function createHephaestusAgent(model: string, availableAgents?: AvailableAgent[], availableToolNames?: string[], availableSkills?: AvailableSkill[], availableCategories?: AvailableCategory[], useTaskSystem?: boolean): AgentConfig;
21
22
  export declare namespace createHephaestusAgent {
22
- var mode: "primary";
23
+ export { MODE as mode };
23
24
  }
24
25
  export declare const hephaestusPromptMetadata: AgentPromptMetadata;
26
+ export {};
@@ -1,7 +1,9 @@
1
1
  import type { AgentConfig } from "@opencode-ai/sdk";
2
- import type { AgentPromptMetadata } from "./types";
2
+ import type { AgentMode, AgentPromptMetadata } from "./types";
3
+ declare const MODE: AgentMode;
3
4
  export declare const LIBRARIAN_PROMPT_METADATA: AgentPromptMetadata;
4
5
  export declare function createLibrarianAgent(model: string): AgentConfig;
5
6
  export declare namespace createLibrarianAgent {
6
- var mode: "subagent";
7
+ export { MODE as mode };
7
8
  }
9
+ export {};