oh-my-opencode 4.3.1 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/.agents/command/get-unpublished-changes.md +148 -0
  2. package/.agents/command/omomomo.md +37 -0
  3. package/.agents/command/publish.md +376 -0
  4. package/.agents/command/remove-deadcode.md +221 -0
  5. package/.agents/command/security-research.md +16 -0
  6. package/.agents/skills/get-unpublished-changes/SKILL.md +24 -0
  7. package/.agents/skills/github-triage/SKILL.md +587 -0
  8. package/.agents/skills/github-triage/scripts/gh_fetch.py +398 -0
  9. package/.agents/skills/hyperplan/SKILL.md +450 -0
  10. package/.agents/skills/omomomo/SKILL.md +36 -0
  11. package/.agents/skills/pre-publish-review/SKILL.md +407 -0
  12. package/.agents/skills/publish/SKILL.md +428 -0
  13. package/.agents/skills/remove-deadcode/SKILL.md +216 -0
  14. package/.agents/skills/security-research/SKILL.md +204 -0
  15. package/.agents/skills/work-with-pr/SKILL.md +360 -0
  16. package/.agents/skills/work-with-pr-workspace/evals/evals.json +76 -0
  17. package/.agents/skills/work-with-pr-workspace/iteration-1/benchmark.json +138 -0
  18. package/.agents/skills/work-with-pr-workspace/iteration-1/benchmark.md +42 -0
  19. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/eval_metadata.json +57 -0
  20. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/grading.json +15 -0
  21. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/code-changes.md +454 -0
  22. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/execution-plan.md +136 -0
  23. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/pr-description.md +47 -0
  24. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/verification-strategy.md +163 -0
  25. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/timing.json +1 -0
  26. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/grading.json +15 -0
  27. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/code-changes.md +615 -0
  28. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/execution-plan.md +99 -0
  29. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/pr-description.md +50 -0
  30. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/verification-strategy.md +111 -0
  31. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/timing.json +1 -0
  32. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/eval_metadata.json +37 -0
  33. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/grading.json +11 -0
  34. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/code-changes.md +205 -0
  35. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/execution-plan.md +78 -0
  36. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/pr-description.md +42 -0
  37. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/verification-strategy.md +87 -0
  38. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/timing.json +1 -0
  39. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/grading.json +11 -0
  40. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/code-changes.md +334 -0
  41. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/execution-plan.md +86 -0
  42. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/pr-description.md +23 -0
  43. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/verification-strategy.md +119 -0
  44. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/timing.json +1 -0
  45. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/eval_metadata.json +32 -0
  46. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/grading.json +10 -0
  47. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +221 -0
  48. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/execution-plan.md +104 -0
  49. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/pr-description.md +41 -0
  50. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/verification-strategy.md +84 -0
  51. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/timing.json +1 -0
  52. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/grading.json +10 -0
  53. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +342 -0
  54. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/execution-plan.md +131 -0
  55. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/pr-description.md +39 -0
  56. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/verification-strategy.md +128 -0
  57. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/timing.json +1 -0
  58. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/eval_metadata.json +32 -0
  59. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/grading.json +10 -0
  60. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/code-changes.md +143 -0
  61. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/execution-plan.md +82 -0
  62. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/pr-description.md +51 -0
  63. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/verification-strategy.md +69 -0
  64. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/timing.json +1 -0
  65. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/grading.json +10 -0
  66. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/code-changes.md +252 -0
  67. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/execution-plan.md +83 -0
  68. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/pr-description.md +33 -0
  69. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/verification-strategy.md +101 -0
  70. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/timing.json +1 -0
  71. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/eval_metadata.json +32 -0
  72. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/grading.json +10 -0
  73. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/code-changes.md +387 -0
  74. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +112 -0
  75. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/pr-description.md +51 -0
  76. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/verification-strategy.md +75 -0
  77. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/timing.json +1 -0
  78. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/grading.json +10 -0
  79. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/code-changes.md +529 -0
  80. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/execution-plan.md +127 -0
  81. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/pr-description.md +42 -0
  82. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/verification-strategy.md +120 -0
  83. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/timing.json +1 -0
  84. package/.agents/skills/work-with-pr-workspace/iteration-1/review.html +1326 -0
  85. package/.opencode/command/get-unpublished-changes.md +148 -0
  86. package/.opencode/command/omomomo.md +37 -0
  87. package/.opencode/command/publish.md +376 -0
  88. package/.opencode/command/remove-deadcode.md +221 -0
  89. package/.opencode/command/security-research.md +16 -0
  90. package/.opencode/skills/github-triage/SKILL.md +587 -0
  91. package/.opencode/skills/github-triage/scripts/gh_fetch.py +398 -0
  92. package/.opencode/skills/hyperplan/SKILL.md +450 -0
  93. package/.opencode/skills/pre-publish-review/SKILL.md +407 -0
  94. package/.opencode/skills/work-with-pr/SKILL.md +360 -0
  95. package/.opencode/skills/work-with-pr-workspace/evals/evals.json +76 -0
  96. package/.opencode/skills/work-with-pr-workspace/iteration-1/benchmark.json +138 -0
  97. package/.opencode/skills/work-with-pr-workspace/iteration-1/benchmark.md +42 -0
  98. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/eval_metadata.json +57 -0
  99. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/grading.json +15 -0
  100. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/code-changes.md +454 -0
  101. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/execution-plan.md +136 -0
  102. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/pr-description.md +47 -0
  103. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/verification-strategy.md +163 -0
  104. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/timing.json +1 -0
  105. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/grading.json +15 -0
  106. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/code-changes.md +615 -0
  107. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/execution-plan.md +99 -0
  108. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/pr-description.md +50 -0
  109. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/verification-strategy.md +111 -0
  110. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/timing.json +1 -0
  111. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/eval_metadata.json +37 -0
  112. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/grading.json +11 -0
  113. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/code-changes.md +205 -0
  114. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/execution-plan.md +78 -0
  115. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/pr-description.md +42 -0
  116. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/verification-strategy.md +87 -0
  117. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/timing.json +1 -0
  118. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/grading.json +11 -0
  119. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/code-changes.md +334 -0
  120. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/execution-plan.md +86 -0
  121. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/pr-description.md +23 -0
  122. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/verification-strategy.md +119 -0
  123. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/timing.json +1 -0
  124. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/eval_metadata.json +32 -0
  125. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/grading.json +10 -0
  126. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +221 -0
  127. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/execution-plan.md +104 -0
  128. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/pr-description.md +41 -0
  129. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/verification-strategy.md +84 -0
  130. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/timing.json +1 -0
  131. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/grading.json +10 -0
  132. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +342 -0
  133. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/execution-plan.md +131 -0
  134. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/pr-description.md +39 -0
  135. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/verification-strategy.md +128 -0
  136. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/timing.json +1 -0
  137. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/eval_metadata.json +32 -0
  138. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/grading.json +10 -0
  139. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/code-changes.md +143 -0
  140. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/execution-plan.md +82 -0
  141. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/pr-description.md +51 -0
  142. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/verification-strategy.md +69 -0
  143. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/timing.json +1 -0
  144. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/grading.json +10 -0
  145. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/code-changes.md +252 -0
  146. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/execution-plan.md +83 -0
  147. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/pr-description.md +33 -0
  148. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/verification-strategy.md +101 -0
  149. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/timing.json +1 -0
  150. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/eval_metadata.json +32 -0
  151. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/grading.json +10 -0
  152. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/code-changes.md +387 -0
  153. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +112 -0
  154. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/pr-description.md +51 -0
  155. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/verification-strategy.md +75 -0
  156. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/timing.json +1 -0
  157. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/grading.json +10 -0
  158. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/code-changes.md +529 -0
  159. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/execution-plan.md +127 -0
  160. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/pr-description.md +42 -0
  161. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/verification-strategy.md +120 -0
  162. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/timing.json +1 -0
  163. package/.opencode/skills/work-with-pr-workspace/iteration-1/review.html +1326 -0
  164. package/README.ja.md +1 -1
  165. package/README.ko.md +1 -1
  166. package/README.md +1 -1
  167. package/README.ru.md +1 -1
  168. package/README.zh-cn.md +1 -1
  169. package/dist/agents/atlas/agent.d.ts +6 -6
  170. package/dist/agents/prometheus/gemini.d.ts +0 -11
  171. package/dist/agents/prometheus/gpt.d.ts +0 -10
  172. package/dist/agents/prometheus/system-prompt.d.ts +2 -20
  173. package/dist/agents/types.d.ts +1 -16
  174. package/dist/cli/index.js +60 -20
  175. package/dist/config/schema/agent-names.d.ts +3 -3
  176. package/dist/config/schema/agent-overrides.d.ts +208 -208
  177. package/dist/config/schema/categories.d.ts +28 -28
  178. package/dist/config/schema/fallback-models.d.ts +20 -20
  179. package/dist/config/schema/oh-my-opencode-config.d.ts +208 -208
  180. package/dist/features/background-agent/parent-wake-dedupe.d.ts +19 -0
  181. package/dist/features/background-agent/parent-wake-notifier.d.ts +8 -19
  182. package/dist/help/schema/acp.d.ts +95 -0
  183. package/dist/help/schema/doctor.d.ts +147 -0
  184. package/dist/help/schema/sandbox.d.ts +74 -0
  185. package/dist/help/schema/status.d.ts +139 -0
  186. package/dist/hooks/keyword-detector/analyze/default.d.ts +1 -1
  187. package/dist/hooks/keyword-detector/hyperplan/default.d.ts +1 -1
  188. package/dist/hooks/keyword-detector/search/default.d.ts +1 -1
  189. package/dist/hooks/keyword-detector/team/default.d.ts +2 -7
  190. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +1 -9
  191. package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +1 -16
  192. package/dist/hooks/keyword-detector/ultrawork/gpt.d.ts +1 -10
  193. package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +1 -5
  194. package/dist/hooks/ralph-loop/no-progress-turn-detector.d.ts +7 -0
  195. package/dist/hooks/ralph-loop/pending-verification-handler.d.ts +1 -0
  196. package/dist/hooks/ralph-loop/types.d.ts +1 -0
  197. package/dist/hooks/runtime-fallback/error-classifier.d.ts +1 -0
  198. package/dist/hooks/tool-pair-validator/hook.d.ts +6 -1
  199. package/dist/index.js +51976 -50299
  200. package/dist/plugin-handlers/provider-config-handler.d.ts +1 -0
  201. package/dist/shared/migration/model-versions.d.ts +6 -0
  202. package/dist/shared/prompt-async-gate/pending-tool-turn.d.ts +1 -0
  203. package/dist/shared/prompt-async-gate/types.d.ts +4 -3
  204. package/package.json +19 -13
  205. package/dist/agents/atlas/default-prompt-sections.d.ts +0 -6
  206. package/dist/agents/atlas/default.d.ts +0 -2
  207. package/dist/agents/atlas/gemini-prompt-sections.d.ts +0 -6
  208. package/dist/agents/atlas/gemini.d.ts +0 -2
  209. package/dist/agents/atlas/gpt-prompt-sections.d.ts +0 -6
  210. package/dist/agents/atlas/gpt.d.ts +0 -2
  211. package/dist/agents/atlas/kimi-prompt-sections.d.ts +0 -6
  212. package/dist/agents/atlas/kimi.d.ts +0 -2
  213. package/dist/agents/atlas/opus-4-7-prompt-sections.d.ts +0 -6
  214. package/dist/agents/atlas/opus-4-7.d.ts +0 -2
  215. package/dist/agents/atlas/shared-prompt.d.ts +0 -9
  216. package/dist/agents/prometheus/behavioral-summary.d.ts +0 -6
  217. package/dist/agents/prometheus/high-accuracy-mode.d.ts +0 -6
  218. package/dist/agents/prometheus/identity-constraints.d.ts +0 -7
  219. package/dist/agents/prometheus/interview-mode.d.ts +0 -7
  220. package/dist/agents/prometheus/plan-generation.d.ts +0 -7
  221. package/dist/agents/prometheus/plan-template.d.ts +0 -7
  222. package/dist/agents/prometheus/spec-driven-mode.d.ts +0 -7
@@ -0,0 +1,221 @@
1
+ # Code Changes
2
+
3
+ ## New File: `src/tools/delegate-task/default-categories.ts`
4
+
5
+ ```typescript
6
+ import type { CategoryConfig } from "../../config/schema"
7
+
8
+ export const DEFAULT_CATEGORIES: Record<string, CategoryConfig> = {
9
+ "visual-engineering": { model: "google/gemini-3.1-pro", variant: "high" },
10
+ ultrabrain: { model: "openai/gpt-5.4", variant: "xhigh" },
11
+ deep: { model: "openai/gpt-5.3-codex", variant: "medium" },
12
+ artistry: { model: "google/gemini-3.1-pro", variant: "high" },
13
+ quick: { model: "anthropic/claude-haiku-4-5" },
14
+ "unspecified-low": { model: "anthropic/claude-sonnet-4-6" },
15
+ "unspecified-high": { model: "anthropic/claude-opus-4-6", variant: "max" },
16
+ writing: { model: "kimi-for-coding/k2p5" },
17
+ }
18
+
19
+ export const CATEGORY_DESCRIPTIONS: Record<string, string> = {
20
+ "visual-engineering": "Frontend, UI/UX, design, styling, animation",
21
+ ultrabrain: "Use ONLY for genuinely hard, logic-heavy tasks. Give clear goals only, not step-by-step instructions.",
22
+ deep: "Goal-oriented autonomous problem-solving. Thorough research before action. For hairy problems requiring deep understanding.",
23
+ artistry: "Complex problem-solving with unconventional, creative approaches - beyond standard patterns",
24
+ quick: "Trivial tasks - single file changes, typo fixes, simple modifications",
25
+ "unspecified-low": "Tasks that don't fit other categories, low effort required",
26
+ "unspecified-high": "Tasks that don't fit other categories, high effort required",
27
+ writing: "Documentation, prose, technical writing",
28
+ }
29
+ ```
30
+
31
+ ## New File: `src/tools/delegate-task/category-prompt-appends.ts`
32
+
33
+ ```typescript
34
+ export const VISUAL_CATEGORY_PROMPT_APPEND = `<Category_Context>
35
+ You are working on VISUAL/UI tasks.
36
+ ...
37
+ </Category_Context>`
38
+ // (exact content from lines 8-95 of constants.ts)
39
+
40
+ export const ULTRABRAIN_CATEGORY_PROMPT_APPEND = `<Category_Context>
41
+ ...
42
+ </Category_Context>`
43
+ // (exact content from lines 97-117)
44
+
45
+ export const ARTISTRY_CATEGORY_PROMPT_APPEND = `<Category_Context>
46
+ ...
47
+ </Category_Context>`
48
+ // (exact content from lines 119-134)
49
+
50
+ export const QUICK_CATEGORY_PROMPT_APPEND = `<Category_Context>
51
+ ...
52
+ </Caller_Warning>`
53
+ // (exact content from lines 136-186)
54
+
55
+ export const UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = `<Category_Context>
56
+ ...
57
+ </Caller_Warning>`
58
+ // (exact content from lines 188-209)
59
+
60
+ export const UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
61
+ ...
62
+ </Category_Context>`
63
+ // (exact content from lines 211-224)
64
+
65
+ export const WRITING_CATEGORY_PROMPT_APPEND = `<Category_Context>
66
+ ...
67
+ </Category_Context>`
68
+ // (exact content from lines 226-250)
69
+
70
+ export const DEEP_CATEGORY_PROMPT_APPEND = `<Category_Context>
71
+ ...
72
+ </Category_Context>`
73
+ // (exact content from lines 252-281)
74
+
75
+ export const CATEGORY_PROMPT_APPENDS: Record<string, string> = {
76
+ "visual-engineering": VISUAL_CATEGORY_PROMPT_APPEND,
77
+ ultrabrain: ULTRABRAIN_CATEGORY_PROMPT_APPEND,
78
+ deep: DEEP_CATEGORY_PROMPT_APPEND,
79
+ artistry: ARTISTRY_CATEGORY_PROMPT_APPEND,
80
+ quick: QUICK_CATEGORY_PROMPT_APPEND,
81
+ "unspecified-low": UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND,
82
+ "unspecified-high": UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND,
83
+ writing: WRITING_CATEGORY_PROMPT_APPEND,
84
+ }
85
+ ```
86
+
87
+ ## New File: `src/tools/delegate-task/plan-agent-prompt.ts`
88
+
89
+ ```typescript
90
+ import type {
91
+ AvailableCategory,
92
+ AvailableSkill,
93
+ } from "../../agents/dynamic-agent-prompt-builder"
94
+ import { truncateDescription } from "../../shared/truncate-description"
95
+
96
+ /**
97
+ * System prompt prepended to plan agent invocations.
98
+ * Instructs the plan agent to first gather context via explore/librarian agents,
99
+ * then summarize user requirements and clarify uncertainties before proceeding.
100
+ * Also MANDATES dependency graphs, parallel execution analysis, and category+skill recommendations.
101
+ */
102
+ export const PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS = `<system>
103
+ ...
104
+ </CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>
105
+ `
106
+ // (exact content from lines 324-430)
107
+
108
+ export const PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS = `### REQUIRED OUTPUT FORMAT
109
+ ...
110
+ `
111
+ // (exact content from lines 432-569)
112
+
113
+ function renderPlanAgentCategoryRows(categories: AvailableCategory[]): string[] {
114
+ const sorted = [...categories].sort((a, b) => a.name.localeCompare(b.name))
115
+ return sorted.map((category) => {
116
+ const bestFor = category.description || category.name
117
+ const model = category.model || ""
118
+ return `| \`${category.name}\` | ${bestFor} | ${model} |`
119
+ })
120
+ }
121
+
122
+ function renderPlanAgentSkillRows(skills: AvailableSkill[]): string[] {
123
+ const sorted = [...skills].sort((a, b) => a.name.localeCompare(b.name))
124
+ return sorted.map((skill) => {
125
+ const domain = truncateDescription(skill.description).trim() || skill.name
126
+ return `| \`${skill.name}\` | ${domain} |`
127
+ })
128
+ }
129
+
130
+ export function buildPlanAgentSkillsSection(
131
+ categories: AvailableCategory[] = [],
132
+ skills: AvailableSkill[] = []
133
+ ): string {
134
+ const categoryRows = renderPlanAgentCategoryRows(categories)
135
+ const skillRows = renderPlanAgentSkillRows(skills)
136
+
137
+ return `### AVAILABLE CATEGORIES
138
+
139
+ | Category | Best For | Model |
140
+ |----------|----------|-------|
141
+ ${categoryRows.join("\n")}
142
+
143
+ ### AVAILABLE SKILLS (ALWAYS EVALUATE ALL)
144
+
145
+ Skills inject specialized expertise into the delegated agent.
146
+ YOU MUST evaluate EVERY skill and justify inclusions/omissions.
147
+
148
+ | Skill | Domain |
149
+ |-------|--------|
150
+ ${skillRows.join("\n")}`
151
+ }
152
+
153
+ export function buildPlanAgentSystemPrepend(
154
+ categories: AvailableCategory[] = [],
155
+ skills: AvailableSkill[] = []
156
+ ): string {
157
+ return [
158
+ PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS,
159
+ buildPlanAgentSkillsSection(categories, skills),
160
+ PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS,
161
+ ].join("\n\n")
162
+ }
163
+ ```
164
+
165
+ ## New File: `src/tools/delegate-task/plan-agent-names.ts`
166
+
167
+ ```typescript
168
+ /**
169
+ * List of agent names that should be treated as plan agents (receive plan system prompt).
170
+ * Case-insensitive matching is used.
171
+ */
172
+ export const PLAN_AGENT_NAMES = ["plan"]
173
+
174
+ /**
175
+ * Check if the given agent name is a plan agent (receives plan system prompt).
176
+ */
177
+ export function isPlanAgent(agentName: string | undefined): boolean {
178
+ if (!agentName) return false
179
+ const lowerName = agentName.toLowerCase().trim()
180
+ return PLAN_AGENT_NAMES.some(name => lowerName === name || lowerName.includes(name))
181
+ }
182
+
183
+ /**
184
+ * Plan family: plan + prometheus. Shares mutual delegation blocking and task tool permission.
185
+ * Does NOT share system prompt (only isPlanAgent controls that).
186
+ */
187
+ export const PLAN_FAMILY_NAMES = ["plan", "prometheus"]
188
+
189
+ /**
190
+ * Check if the given agent belongs to the plan family (blocking + task permission).
191
+ */
192
+ export function isPlanFamily(category: string): boolean
193
+ export function isPlanFamily(category: string | undefined): boolean
194
+ export function isPlanFamily(category: string | undefined): boolean {
195
+ if (!category) return false
196
+ const lowerCategory = category.toLowerCase().trim()
197
+ return PLAN_FAMILY_NAMES.some(
198
+ (name) => lowerCategory === name || lowerCategory.includes(name)
199
+ )
200
+ }
201
+ ```
202
+
203
+ ## Modified File: `src/tools/delegate-task/constants.ts`
204
+
205
+ ```typescript
206
+ export * from "./default-categories"
207
+ export * from "./category-prompt-appends"
208
+ export * from "./plan-agent-prompt"
209
+ export * from "./plan-agent-names"
210
+ ```
211
+
212
+ ## Unchanged: `src/tools/delegate-task/index.ts`
213
+
214
+ ```typescript
215
+ export { createDelegateTask, resolveCategoryConfig, buildSystemContent, buildTaskPrompt } from "./tools"
216
+ export type { DelegateTaskToolOptions, SyncSessionCreatedEvent, BuildSystemContentInput } from "./tools"
217
+ export type * from "./types"
218
+ export * from "./constants"
219
+ ```
220
+
221
+ No changes needed. `export * from "./constants"` transitively re-exports everything from the 4 new files.
@@ -0,0 +1,104 @@
1
+ # Execution Plan: Split delegate-task/constants.ts
2
+
3
+ ## Phase 0: Setup
4
+
5
+ ```bash
6
+ git fetch origin dev
7
+ git worktree add ../omo-wt/refactor-delegate-task-constants origin/dev -b refactor/split-delegate-task-constants
8
+ cd ../omo-wt/refactor-delegate-task-constants
9
+ ```
10
+
11
+ ## Phase 1: Implement
12
+
13
+ ### Analysis
14
+
15
+ `src/tools/delegate-task/constants.ts` is 654 lines with 4 distinct responsibilities:
16
+
17
+ 1. **Category defaults** (lines 285-316): `DEFAULT_CATEGORIES`, `CATEGORY_DESCRIPTIONS`
18
+ 2. **Category prompt appends** (lines 8-305): 8 `*_CATEGORY_PROMPT_APPEND` string constants + `CATEGORY_PROMPT_APPENDS` record
19
+ 3. **Plan agent prompts** (lines 318-620): `PLAN_AGENT_SYSTEM_PREPEND_*`, builder functions
20
+ 4. **Plan agent names** (lines 626-654): `PLAN_AGENT_NAMES`, `isPlanAgent`, `PLAN_FAMILY_NAMES`, `isPlanFamily`
21
+
22
+ Note: `CATEGORY_MODEL_REQUIREMENTS` is already in `src/shared/model-requirements.ts`. No move needed.
23
+
24
+ ### New Files
25
+
26
+ | File | Responsibility | ~LOC |
27
+ |------|---------------|------|
28
+ | `default-categories.ts` | `DEFAULT_CATEGORIES`, `CATEGORY_DESCRIPTIONS` | ~40 |
29
+ | `category-prompt-appends.ts` | 8 prompt append constants + `CATEGORY_PROMPT_APPENDS` record | ~300 (exempt: prompt text) |
30
+ | `plan-agent-prompt.ts` | Plan agent system prompt constants + builder functions | ~250 (exempt: prompt text) |
31
+ | `plan-agent-names.ts` | `PLAN_AGENT_NAMES`, `isPlanAgent`, `PLAN_FAMILY_NAMES`, `isPlanFamily` | ~30 |
32
+ | `constants.ts` (updated) | Re-exports from all 4 files (backward compat) | ~5 |
33
+
34
+ ### Commit 1: Extract category defaults and prompt appends
35
+
36
+ **Files changed**: 3 new + 1 modified
37
+ - Create `src/tools/delegate-task/default-categories.ts`
38
+ - Create `src/tools/delegate-task/category-prompt-appends.ts`
39
+ - Modify `src/tools/delegate-task/constants.ts` (remove extracted code, add re-exports)
40
+
41
+ ### Commit 2: Extract plan agent prompt and names
42
+
43
+ **Files changed**: 2 new + 1 modified
44
+ - Create `src/tools/delegate-task/plan-agent-prompt.ts`
45
+ - Create `src/tools/delegate-task/plan-agent-names.ts`
46
+ - Modify `src/tools/delegate-task/constants.ts` (final: re-exports only)
47
+
48
+ ### Local Validation
49
+
50
+ ```bash
51
+ bun run typecheck
52
+ bun test src/tools/delegate-task/
53
+ bun run build
54
+ ```
55
+
56
+ ## Phase 2: PR Creation
57
+
58
+ ```bash
59
+ git push -u origin refactor/split-delegate-task-constants
60
+ gh pr create --base dev --title "refactor(delegate-task): split constants.ts into focused modules" --body-file /tmp/pr-body.md
61
+ ```
62
+
63
+ ## Phase 3: Verify Loop
64
+
65
+ - **Gate A**: `gh pr checks --watch`
66
+ - **Gate B**: `/review-work` (5-agent review)
67
+ - **Gate C**: Wait for cubic-dev-ai[bot] "No issues found"
68
+
69
+ ## Phase 4: Merge
70
+
71
+ ```bash
72
+ gh pr merge --squash --delete-branch
73
+ git worktree remove ../omo-wt/refactor-delegate-task-constants
74
+ ```
75
+
76
+ ## Import Update Strategy
77
+
78
+ No import updates needed. Backward compatibility preserved through:
79
+ 1. `constants.ts` re-exports everything from the 4 new files
80
+ 2. `index.ts` already does `export * from "./constants"` (unchanged)
81
+ 3. All external consumers import from `"../tools/delegate-task/constants"` or `"./constants"` -- both still work
82
+
83
+ ### External Import Map (Verified -- NO CHANGES NEEDED)
84
+
85
+ | Consumer | Imports | Source Path |
86
+ |----------|---------|-------------|
87
+ | `src/agents/atlas/prompt-section-builder.ts` | `CATEGORY_DESCRIPTIONS` | `../../tools/delegate-task/constants` |
88
+ | `src/agents/builtin-agents.ts` | `CATEGORY_DESCRIPTIONS` | `../tools/delegate-task/constants` |
89
+ | `src/plugin/available-categories.ts` | `CATEGORY_DESCRIPTIONS` | `../tools/delegate-task/constants` |
90
+ | `src/plugin-handlers/category-config-resolver.ts` | `DEFAULT_CATEGORIES` | `../tools/delegate-task/constants` |
91
+ | `src/shared/merge-categories.ts` | `DEFAULT_CATEGORIES` | `../tools/delegate-task/constants` |
92
+ | `src/shared/merge-categories.test.ts` | `DEFAULT_CATEGORIES` | `../tools/delegate-task/constants` |
93
+
94
+ ### Internal Import Map (Within delegate-task/ -- NO CHANGES NEEDED)
95
+
96
+ | Consumer | Imports |
97
+ |----------|---------|
98
+ | `categories.ts` | `DEFAULT_CATEGORIES`, `CATEGORY_PROMPT_APPENDS` |
99
+ | `tools.ts` | `CATEGORY_DESCRIPTIONS` |
100
+ | `prompt-builder.ts` | `buildPlanAgentSystemPrepend`, `isPlanAgent` |
101
+ | `subagent-resolver.ts` | `isPlanFamily` |
102
+ | `sync-continuation.ts` | `isPlanFamily` |
103
+ | `sync-prompt-sender.ts` | `isPlanFamily` |
104
+ | `tools.test.ts` | `DEFAULT_CATEGORIES`, `CATEGORY_PROMPT_APPENDS`, `CATEGORY_DESCRIPTIONS`, `isPlanAgent`, `PLAN_AGENT_NAMES`, `isPlanFamily`, `PLAN_FAMILY_NAMES` |
@@ -0,0 +1,41 @@
1
+ # PR Title
2
+
3
+ ```
4
+ refactor(delegate-task): split constants.ts into focused modules
5
+ ```
6
+
7
+ # PR Body
8
+
9
+ ## Summary
10
+
11
+ - Split the 654-line `src/tools/delegate-task/constants.ts` into 4 single-responsibility modules: `default-categories.ts`, `category-prompt-appends.ts`, `plan-agent-prompt.ts`, `plan-agent-names.ts`
12
+ - `constants.ts` becomes a pure re-export barrel, preserving all existing import paths (`from "./constants"` and `from "./delegate-task"`)
13
+ - Zero import changes across the codebase (6 external + 7 internal consumers verified)
14
+
15
+ ## Motivation
16
+
17
+ `constants.ts` at 654 lines violates the project's 200 LOC soft limit (`modular-code-enforcement.md` rule) and bundles 4 unrelated responsibilities: category model configs, category prompt text, plan agent prompts, and plan agent name utilities.
18
+
19
+ ## Changes
20
+
21
+ | New File | Responsibility | LOC |
22
+ |----------|---------------|-----|
23
+ | `default-categories.ts` | `DEFAULT_CATEGORIES`, `CATEGORY_DESCRIPTIONS` | ~25 |
24
+ | `category-prompt-appends.ts` | 8 `*_PROMPT_APPEND` constants + `CATEGORY_PROMPT_APPENDS` record | ~300 (prompt-exempt) |
25
+ | `plan-agent-prompt.ts` | Plan system prompt constants + `buildPlanAgentSystemPrepend()` | ~250 (prompt-exempt) |
26
+ | `plan-agent-names.ts` | `PLAN_AGENT_NAMES`, `isPlanAgent`, `PLAN_FAMILY_NAMES`, `isPlanFamily` | ~30 |
27
+ | `constants.ts` (updated) | 4-line re-export barrel | 4 |
28
+
29
+ ## Backward Compatibility
30
+
31
+ All 13 consumers continue importing from `"./constants"` or `"../tools/delegate-task/constants"` with zero changes. The re-export chain: new modules -> `constants.ts` -> `index.ts` -> external consumers.
32
+
33
+ ## Note on CATEGORY_MODEL_REQUIREMENTS
34
+
35
+ `CATEGORY_MODEL_REQUIREMENTS` already lives in `src/shared/model-requirements.ts`. No move needed. The AGENTS.md reference to it being in `constants.ts` is outdated.
36
+
37
+ ## Testing
38
+
39
+ - `bun run typecheck` passes
40
+ - `bun test src/tools/delegate-task/` passes (all existing tests untouched)
41
+ - `bun run build` succeeds
@@ -0,0 +1,84 @@
1
+ # Verification Strategy
2
+
3
+ ## Gate A: CI (Blocking)
4
+
5
+ ```bash
6
+ gh pr checks --watch
7
+ ```
8
+
9
+ **Expected CI jobs** (from `ci.yml`):
10
+ 1. **Tests (split)**: mock-heavy isolated + batch `bun test`
11
+ 2. **Typecheck**: `bun run typecheck` (tsc --noEmit)
12
+ 3. **Build**: `bun run build`
13
+ 4. **Schema auto-commit**: If schema changes detected
14
+
15
+ **Likely failure points**: None. This is a pure refactor with re-exports. No runtime behavior changes.
16
+
17
+ **If CI fails**:
18
+ - Typecheck error: Missing re-export or import cycle. Fix in the new modules, amend commit.
19
+ - Test error: `tools.test.ts` imports all symbols from `"./constants"`. Re-export barrel must be complete.
20
+
21
+ ## Gate B: review-work (5-Agent Review)
22
+
23
+ Invoke after CI passes:
24
+
25
+ ```
26
+ /review-work
27
+ ```
28
+
29
+ **5 parallel agents**:
30
+ 1. **Oracle (goal/constraint)**: Verify backward compat claim. Check all 13 import paths resolve.
31
+ 2. **Oracle (code quality)**: Verify single-responsibility per file, LOC limits, no catch-all violations.
32
+ 3. **Oracle (security)**: No security implications in this refactor.
33
+ 4. **QA (hands-on execution)**: Run `bun test src/tools/delegate-task/` and verify all pass.
34
+ 5. **Context miner**: Check no related open issues/PRs conflict.
35
+
36
+ **Expected verdict**: Pass. Pure structural refactor with no behavioral changes.
37
+
38
+ ## Gate C: Cubic (External Bot)
39
+
40
+ Wait for `cubic-dev-ai[bot]` to post "No issues found" on the PR.
41
+
42
+ **If Cubic flags issues**: Likely false positives on "large number of new files". Address in PR comments if needed.
43
+
44
+ ## Pre-Gate Local Validation (Before Push)
45
+
46
+ ```bash
47
+ # In worktree
48
+ bun run typecheck
49
+ bun test src/tools/delegate-task/
50
+ bun run build
51
+
52
+ # Verify re-exports are complete
53
+ bun -e "import * as c from './src/tools/delegate-task/constants'; console.log(Object.keys(c).sort().join('\n'))"
54
+ ```
55
+
56
+ Expected exports from constants.ts (13 total):
57
+ - `ARTISTRY_CATEGORY_PROMPT_APPEND`
58
+ - `CATEGORY_DESCRIPTIONS`
59
+ - `CATEGORY_PROMPT_APPENDS`
60
+ - `DEFAULT_CATEGORIES`
61
+ - `DEEP_CATEGORY_PROMPT_APPEND`
62
+ - `PLAN_AGENT_NAMES`
63
+ - `PLAN_AGENT_SYSTEM_PREPEND_STATIC_AFTER_SKILLS`
64
+ - `PLAN_AGENT_SYSTEM_PREPEND_STATIC_BEFORE_SKILLS`
65
+ - `PLAN_FAMILY_NAMES`
66
+ - `QUICK_CATEGORY_PROMPT_APPEND`
67
+ - `ULTRABRAIN_CATEGORY_PROMPT_APPEND`
68
+ - `UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND`
69
+ - `UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND`
70
+ - `VISUAL_CATEGORY_PROMPT_APPEND`
71
+ - `WRITING_CATEGORY_PROMPT_APPEND`
72
+ - `buildPlanAgentSkillsSection`
73
+ - `buildPlanAgentSystemPrepend`
74
+ - `isPlanAgent`
75
+ - `isPlanFamily`
76
+
77
+ ## Merge Strategy
78
+
79
+ ```bash
80
+ gh pr merge --squash --delete-branch
81
+ git worktree remove ../omo-wt/refactor-delegate-task-constants
82
+ ```
83
+
84
+ Squash merge collapses the 2 atomic commits into 1 clean commit on dev.
@@ -0,0 +1 @@
1
+ {"total_tokens": null, "duration_ms": 181000, "total_duration_seconds": 181}
@@ -0,0 +1,10 @@
1
+ {
2
+ "run_id": "eval-3-without_skill",
3
+ "expectations": [
4
+ {"text": "Plan uses git worktree in a sibling directory", "passed": false, "evidence": "git checkout -b only, no worktree"},
5
+ {"text": "Uses 2+ commits for the multi-file refactor", "passed": false, "evidence": "Single atomic commit: 'refactor: split delegate-task constants and category model requirements'"},
6
+ {"text": "Maintains backward compatibility via barrel re-export", "passed": true, "evidence": "Re-exports from new files, zero consumer changes"},
7
+ {"text": "Verification loop includes all 3 gates", "passed": false, "evidence": "Only mentions typecheck/test/build. No review-work or Cubic."},
8
+ {"text": "References actual src/tools/delegate-task/constants.ts", "passed": true, "evidence": "654 lines, detailed responsibility breakdown, full import maps"}
9
+ ]
10
+ }