@hiai-gg/hiai-opencode 0.1.1 → 0.1.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 (1226) hide show
  1. package/.env.example +68 -57
  2. package/AGENTS.md +383 -281
  3. package/ARCHITECTURE.md +280 -281
  4. package/LICENSE.md +59 -59
  5. package/README.md +421 -301
  6. package/assets/mcp/mempalace.mjs +196 -153
  7. package/assets/mcp/playwright.mjs +76 -0
  8. package/assets/mcp/rag.mjs +236 -236
  9. package/assets/runtime/npm-package-runner.mjs +54 -54
  10. package/config/hiai-opencode.schema.json +82 -82
  11. package/config/opencode.json +4 -4
  12. package/dist/config/defaults.d.ts +3 -0
  13. package/dist/config/platform-schema.d.ts +2 -0
  14. package/dist/index.js +462 -417
  15. package/dist/mcp/registry.d.ts +14 -0
  16. package/dist/mcp/types.d.ts +6 -0
  17. package/hiai-opencode.json +58 -58
  18. package/package.json +86 -91
  19. package/skills/api-and-interface-design/SKILL.md +294 -294
  20. package/skills/brainstorming/SKILL.md +164 -164
  21. package/skills/brainstorming/scripts/frame-template.html +214 -214
  22. package/skills/brainstorming/scripts/helper.js +88 -88
  23. package/skills/brainstorming/scripts/server.cjs +354 -354
  24. package/skills/brainstorming/scripts/start-server.sh +148 -148
  25. package/skills/brainstorming/scripts/stop-server.sh +56 -56
  26. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -49
  27. package/skills/brainstorming/visual-companion.md +287 -287
  28. package/skills/browser-testing-with-devtools/SKILL.md +302 -302
  29. package/skills/ci-cd-and-automation/SKILL.md +390 -390
  30. package/skills/code-review-and-quality/SKILL.md +347 -347
  31. package/skills/code-simplification/SKILL.md +331 -331
  32. package/skills/context-engineering/SKILL.md +289 -289
  33. package/skills/deprecation-and-migration/SKILL.md +206 -206
  34. package/skills/dispatching-parallel-agents/SKILL.md +182 -182
  35. package/skills/documentation-and-adrs/SKILL.md +278 -278
  36. package/skills/executing-plans/SKILL.md +70 -70
  37. package/skills/finishing-a-development-branch/SKILL.md +200 -200
  38. package/skills/frontend-ui-engineering/SKILL.md +322 -322
  39. package/skills/git-workflow-and-versioning/SKILL.md +300 -300
  40. package/skills/incremental-implementation/SKILL.md +241 -241
  41. package/skills/performance-optimization/SKILL.md +350 -350
  42. package/skills/receiving-code-review/SKILL.md +213 -213
  43. package/skills/requesting-code-review/SKILL.md +105 -105
  44. package/skills/requesting-code-review/code-reviewer.md +146 -146
  45. package/skills/security-and-hardening/SKILL.md +349 -349
  46. package/skills/shipping-and-launch/SKILL.md +309 -309
  47. package/skills/source-driven-development/SKILL.md +194 -194
  48. package/skills/spec-driven-development/SKILL.md +200 -200
  49. package/skills/subagent-driven-development/SKILL.md +277 -277
  50. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -26
  51. package/skills/subagent-driven-development/implementer-prompt.md +113 -113
  52. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -61
  53. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  54. package/skills/systematic-debugging/SKILL.md +596 -596
  55. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  56. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  57. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  58. package/skills/systematic-debugging/find-polluter.sh +63 -63
  59. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  60. package/skills/systematic-debugging/test-academic.md +14 -14
  61. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  62. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  63. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  64. package/skills/test-driven-development/SKILL.md +379 -379
  65. package/skills/using-agent-skills/SKILL.md +174 -174
  66. package/skills/using-git-worktrees/SKILL.md +218 -218
  67. package/skills/using-superpowers/SKILL.md +117 -117
  68. package/skills/using-superpowers/references/codex-tools.md +100 -100
  69. package/skills/using-superpowers/references/copilot-tools.md +52 -52
  70. package/skills/using-superpowers/references/gemini-tools.md +33 -33
  71. package/skills/verification-before-completion/SKILL.md +139 -139
  72. package/skills/writing-plans/SKILL.md +152 -152
  73. package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -49
  74. package/skills/writing-skills/SKILL.md +655 -655
  75. package/skills/writing-skills/anthropic-best-practices.md +1150 -1150
  76. package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
  77. package/skills/writing-skills/graphviz-conventions.dot +171 -171
  78. package/skills/writing-skills/persuasion-principles.md +187 -187
  79. package/skills/writing-skills/render-graphs.js +168 -168
  80. package/skills/writing-skills/testing-skills-with-subagents.md +384 -384
  81. package/src/AGENTS.md +41 -41
  82. package/src/agents/AGENTS.md +74 -74
  83. package/src/agents/agent-builder.ts +50 -50
  84. package/src/agents/bob/AGENTS.md +29 -29
  85. package/src/agents/bob/default.ts +128 -128
  86. package/src/agents/bob/gemini.ts +237 -237
  87. package/src/agents/bob/gpt-pro.ts +430 -430
  88. package/src/agents/bob/index.ts +19 -19
  89. package/src/agents/bob.ts +528 -528
  90. package/src/agents/builtin-agents/agent-overrides.ts +75 -75
  91. package/src/agents/builtin-agents/available-skills.ts +35 -35
  92. package/src/agents/builtin-agents/bob-agent.ts +96 -96
  93. package/src/agents/builtin-agents/coder-agent.ts +98 -98
  94. package/src/agents/builtin-agents/environment-context.ts +16 -16
  95. package/src/agents/builtin-agents/general-agents.ts +122 -122
  96. package/src/agents/builtin-agents/guard-agent.ts +66 -66
  97. package/src/agents/builtin-agents/model-resolution.ts +31 -31
  98. package/src/agents/builtin-agents/resolve-file-uri.ts +42 -42
  99. package/src/agents/builtin-agents.ts +194 -194
  100. package/src/agents/coder/AGENTS.md +34 -34
  101. package/src/agents/coder/agent.ts +162 -162
  102. package/src/agents/coder/gpt-codex.ts +404 -404
  103. package/src/agents/coder/gpt-pro.ts +319 -319
  104. package/src/agents/coder/gpt.ts +253 -253
  105. package/src/agents/coder/index.ts +8 -8
  106. package/src/agents/critic/agent.ts +105 -105
  107. package/src/agents/custom-agent-summaries.ts +61 -61
  108. package/src/agents/dynamic-agent-category-skills-guide.ts +138 -138
  109. package/src/agents/dynamic-agent-core-sections.ts +237 -237
  110. package/src/agents/dynamic-agent-policy-sections.ts +182 -182
  111. package/src/agents/dynamic-agent-prompt-builder.ts +31 -31
  112. package/src/agents/dynamic-agent-prompt-types.ts +24 -24
  113. package/src/agents/dynamic-agent-tool-categorization.ts +45 -45
  114. package/src/agents/env-context.ts +16 -16
  115. package/src/agents/gpt-apply-patch-guard.ts +7 -7
  116. package/src/agents/guard/agent.ts +146 -146
  117. package/src/agents/guard/default-prompt-sections.ts +305 -305
  118. package/src/agents/guard/default.ts +22 -22
  119. package/src/agents/guard/gemini-prompt-sections.ts +293 -293
  120. package/src/agents/guard/gemini.ts +22 -22
  121. package/src/agents/guard/gpt-prompt-sections.ts +296 -296
  122. package/src/agents/guard/gpt.ts +22 -22
  123. package/src/agents/guard/index.ts +2 -2
  124. package/src/agents/guard/prompt-section-builder.ts +104 -104
  125. package/src/agents/guard/shared-prompt.ts +172 -172
  126. package/src/agents/index.ts +5 -5
  127. package/src/agents/platform-adapter.ts +236 -236
  128. package/src/agents/platform-manager.ts +57 -57
  129. package/src/agents/prompt-library/identity.ts +14 -14
  130. package/src/agents/prompt-library/index.ts +7 -7
  131. package/src/agents/prompt-library/intent-gate.ts +149 -149
  132. package/src/agents/prompt-library/orchestration.ts +60 -60
  133. package/src/agents/prompt-library/platform.ts +36 -36
  134. package/src/agents/prompt-library/specialized.ts +39 -39
  135. package/src/agents/prompt-library/strategy.ts +80 -80
  136. package/src/agents/prompt-library/todo-discipline.ts +22 -22
  137. package/src/agents/quality-guardian.ts +76 -76
  138. package/src/agents/researcher.ts +73 -73
  139. package/src/agents/strategist/AGENTS.md +37 -37
  140. package/src/agents/strategist/behavioral-summary.ts +79 -79
  141. package/src/agents/strategist/gemini.ts +333 -333
  142. package/src/agents/strategist/gpt.ts +460 -460
  143. package/src/agents/strategist/high-accuracy-mode.ts +78 -78
  144. package/src/agents/strategist/identity-constraints.ts +336 -336
  145. package/src/agents/strategist/index.ts +6 -6
  146. package/src/agents/strategist/interview-mode.ts +335 -335
  147. package/src/agents/strategist/plan-generation.ts +213 -213
  148. package/src/agents/strategist/plan-template.ts +325 -325
  149. package/src/agents/strategist/system-prompt.ts +68 -68
  150. package/src/agents/sub/agent.ts +141 -141
  151. package/src/agents/sub/default.ts +52 -52
  152. package/src/agents/sub/gemini.ts +194 -194
  153. package/src/agents/sub/gpt-codex.ts +156 -156
  154. package/src/agents/sub/gpt-pro.ts +161 -161
  155. package/src/agents/sub/gpt.ts +157 -157
  156. package/src/agents/sub/index.ts +13 -13
  157. package/src/agents/types.ts +144 -144
  158. package/src/agents/ui.ts +58 -58
  159. package/src/config/data/model-capabilities.json +40690 -40690
  160. package/src/config/defaults.ts +89 -146
  161. package/src/config/hiai-opencode.schema.json +12 -12
  162. package/src/config/index.ts +67 -67
  163. package/src/config/loader.test.ts +65 -65
  164. package/src/config/loader.ts +186 -183
  165. package/src/config/models.ts +32 -32
  166. package/src/config/platform-schema.ts +193 -192
  167. package/src/config/schema/agent-definitions.ts +5 -5
  168. package/src/config/schema/agent-names.ts +66 -66
  169. package/src/config/schema/agent-overrides.ts +95 -95
  170. package/src/config/schema/babysitting.ts +7 -7
  171. package/src/config/schema/background-task.ts +29 -29
  172. package/src/config/schema/bob-agent.ts +11 -11
  173. package/src/config/schema/bob.ts +17 -17
  174. package/src/config/schema/browser-automation.ts +24 -24
  175. package/src/config/schema/categories.ts +45 -45
  176. package/src/config/schema/claude-code.ts +13 -13
  177. package/src/config/schema/commands.ts +14 -14
  178. package/src/config/schema/comment-checker.ts +8 -8
  179. package/src/config/schema/dynamic-context-pruning.ts +53 -53
  180. package/src/config/schema/experimental.ts +27 -27
  181. package/src/config/schema/fallback-models.ts +31 -31
  182. package/src/config/schema/fast-apply.ts +14 -14
  183. package/src/config/schema/git-env-prefix.ts +28 -28
  184. package/src/config/schema/git-master.ts +14 -14
  185. package/src/config/schema/hooks.ts +61 -61
  186. package/src/config/schema/index.ts +52 -52
  187. package/src/config/schema/internal/permission.ts +20 -20
  188. package/src/config/schema/model-capabilities.ts +10 -10
  189. package/src/config/schema/notification.ts +8 -8
  190. package/src/config/schema/oh-my-opencode-config.ts +90 -90
  191. package/src/config/schema/openclaw.ts +50 -50
  192. package/src/config/schema/ralph-loop.ts +11 -11
  193. package/src/config/schema/runtime-fallback.ts +18 -18
  194. package/src/config/schema/skills.ts +39 -39
  195. package/src/config/schema/start-work.ts +7 -7
  196. package/src/config/schema/tmux.ts +28 -28
  197. package/src/config/schema/websearch.ts +15 -15
  198. package/src/config/types.ts +174 -174
  199. package/src/create-hooks.ts +93 -93
  200. package/src/create-managers.ts +116 -116
  201. package/src/create-runtime-tmux-config.ts +18 -18
  202. package/src/create-tools.ts +53 -53
  203. package/src/features/background-agent/AGENTS.md +56 -56
  204. package/src/features/background-agent/abort-with-timeout.ts +35 -35
  205. package/src/features/background-agent/background-task-notification-template.ts +74 -74
  206. package/src/features/background-agent/compaction-aware-message-resolver.ts +164 -164
  207. package/src/features/background-agent/concurrency.ts +137 -137
  208. package/src/features/background-agent/constants.ts +58 -58
  209. package/src/features/background-agent/duration-formatter.ts +14 -14
  210. package/src/features/background-agent/error-classifier.ts +83 -83
  211. package/src/features/background-agent/fallback-retry-handler.ts +134 -134
  212. package/src/features/background-agent/index.ts +2 -2
  213. package/src/features/background-agent/loop-detector.ts +102 -102
  214. package/src/features/background-agent/manager.ts +2220 -2220
  215. package/src/features/background-agent/opencode-client.ts +3 -3
  216. package/src/features/background-agent/process-cleanup.ts +98 -98
  217. package/src/features/background-agent/remove-task-toast-tracking.ts +8 -8
  218. package/src/features/background-agent/session-existence.ts +57 -57
  219. package/src/features/background-agent/session-idle-event-handler.ts +93 -93
  220. package/src/features/background-agent/session-status-classifier.ts +20 -20
  221. package/src/features/background-agent/spawner/parent-directory-resolver.ts +24 -24
  222. package/src/features/background-agent/spawner.ts +327 -327
  223. package/src/features/background-agent/state.ts +199 -199
  224. package/src/features/background-agent/subagent-spawn-limits.ts +97 -97
  225. package/src/features/background-agent/task-history.ts +79 -79
  226. package/src/features/background-agent/task-poller.ts +225 -225
  227. package/src/features/background-agent/types.ts +100 -100
  228. package/src/features/boulder-state/constants.ts +13 -13
  229. package/src/features/boulder-state/index.ts +4 -4
  230. package/src/features/boulder-state/storage.ts +336 -336
  231. package/src/features/boulder-state/top-level-task.ts +78 -78
  232. package/src/features/boulder-state/types.ts +61 -61
  233. package/src/features/builtin-commands/commands.ts +143 -143
  234. package/src/features/builtin-commands/index.ts +2 -2
  235. package/src/features/builtin-commands/templates/handoff.ts +177 -177
  236. package/src/features/builtin-commands/templates/init-deep.ts +305 -305
  237. package/src/features/builtin-commands/templates/ralph-loop.ts +66 -66
  238. package/src/features/builtin-commands/templates/refactor.ts +619 -619
  239. package/src/features/builtin-commands/templates/remove-ai-slops.ts +96 -96
  240. package/src/features/builtin-commands/templates/start-work.ts +128 -128
  241. package/src/features/builtin-commands/templates/stop-continuation.ts +13 -13
  242. package/src/features/builtin-commands/types.ts +9 -9
  243. package/src/features/builtin-skills/index.ts +2 -2
  244. package/src/features/builtin-skills/materialize.ts +338 -338
  245. package/src/features/builtin-skills/skills/ai-slop-remover.ts +145 -145
  246. package/src/features/builtin-skills/skills/dev-browser.ts +221 -221
  247. package/src/features/builtin-skills/skills/frontend-ui-ux.ts +79 -79
  248. package/src/features/builtin-skills/skills/git-master-sections/commit-workflow.ts +509 -509
  249. package/src/features/builtin-skills/skills/git-master-sections/history-search-workflow.ts +229 -229
  250. package/src/features/builtin-skills/skills/git-master-sections/overview.ts +64 -64
  251. package/src/features/builtin-skills/skills/git-master-sections/quick-reference.ts +86 -86
  252. package/src/features/builtin-skills/skills/git-master-sections/rebase-workflow.ts +181 -181
  253. package/src/features/builtin-skills/skills/git-master-skill-metadata.ts +4 -4
  254. package/src/features/builtin-skills/skills/git-master.ts +28 -28
  255. package/src/features/builtin-skills/skills/index.ts +7 -7
  256. package/src/features/builtin-skills/skills/playwright-cli.ts +268 -268
  257. package/src/features/builtin-skills/skills/playwright.ts +466 -466
  258. package/src/features/builtin-skills/skills/review-work.ts +536 -536
  259. package/src/features/builtin-skills/skills.ts +39 -39
  260. package/src/features/builtin-skills/types.ts +16 -16
  261. package/src/features/claude-code-agent-loader/agent-definitions-loader.ts +87 -87
  262. package/src/features/claude-code-agent-loader/claude-model-mapper.ts +53 -53
  263. package/src/features/claude-code-agent-loader/index.ts +5 -5
  264. package/src/features/claude-code-agent-loader/json-agent-loader.ts +53 -53
  265. package/src/features/claude-code-agent-loader/loader.ts +86 -86
  266. package/src/features/claude-code-agent-loader/opencode-config-agents-reader.ts +125 -125
  267. package/src/features/claude-code-agent-loader/types.ts +31 -31
  268. package/src/features/claude-code-command-loader/index.ts +2 -2
  269. package/src/features/claude-code-command-loader/loader.ts +169 -169
  270. package/src/features/claude-code-command-loader/types.ts +46 -46
  271. package/src/features/claude-code-mcp-loader/configure-allowed-env-vars.ts +48 -48
  272. package/src/features/claude-code-mcp-loader/env-expander.ts +51 -51
  273. package/src/features/claude-code-mcp-loader/index.ts +12 -12
  274. package/src/features/claude-code-mcp-loader/loader.ts +156 -156
  275. package/src/features/claude-code-mcp-loader/scope-filter.ts +17 -17
  276. package/src/features/claude-code-mcp-loader/transformer.ts +57 -57
  277. package/src/features/claude-code-mcp-loader/types.ts +51 -51
  278. package/src/features/claude-code-plugin-loader/agent-loader.ts +59 -59
  279. package/src/features/claude-code-plugin-loader/command-loader.ts +53 -53
  280. package/src/features/claude-code-plugin-loader/discovery.ts +251 -251
  281. package/src/features/claude-code-plugin-loader/hook-loader.ts +26 -26
  282. package/src/features/claude-code-plugin-loader/index.ts +10 -10
  283. package/src/features/claude-code-plugin-loader/loader.ts +134 -134
  284. package/src/features/claude-code-plugin-loader/mcp-server-loader.ts +59 -59
  285. package/src/features/claude-code-plugin-loader/plugin-path-resolver.ts +23 -23
  286. package/src/features/claude-code-plugin-loader/scope-filter.ts +29 -29
  287. package/src/features/claude-code-plugin-loader/skill-loader.ts +62 -62
  288. package/src/features/claude-code-plugin-loader/types.ts +255 -255
  289. package/src/features/claude-code-session-state/index.ts +1 -1
  290. package/src/features/claude-code-session-state/state.ts +154 -154
  291. package/src/features/claude-tasks/session-storage.ts +52 -52
  292. package/src/features/claude-tasks/storage.ts +169 -169
  293. package/src/features/claude-tasks/types.ts +20 -20
  294. package/src/features/context-injector/collector.ts +91 -91
  295. package/src/features/context-injector/index.ts +14 -14
  296. package/src/features/context-injector/injector.ts +167 -167
  297. package/src/features/context-injector/types.ts +91 -91
  298. package/src/features/hook-message-injector/constants.ts +1 -1
  299. package/src/features/hook-message-injector/index.ts +11 -11
  300. package/src/features/hook-message-injector/injector.ts +437 -437
  301. package/src/features/hook-message-injector/types.ts +49 -49
  302. package/src/features/mcp-oauth/AGENTS.md +54 -54
  303. package/src/features/mcp-oauth/callback-server.ts +106 -106
  304. package/src/features/mcp-oauth/dcr.ts +98 -98
  305. package/src/features/mcp-oauth/discovery.ts +134 -134
  306. package/src/features/mcp-oauth/oauth-authorization-flow.ts +150 -150
  307. package/src/features/mcp-oauth/provider.ts +215 -215
  308. package/src/features/mcp-oauth/refresh-mutex.ts +58 -58
  309. package/src/features/mcp-oauth/resource-indicator.ts +16 -16
  310. package/src/features/mcp-oauth/schema.ts +8 -8
  311. package/src/features/mcp-oauth/step-up.ts +79 -79
  312. package/src/features/mcp-oauth/storage.ts +155 -155
  313. package/src/features/opencode-skill-loader/AGENTS.md +59 -59
  314. package/src/features/opencode-skill-loader/allowed-tools-parser.ts +9 -9
  315. package/src/features/opencode-skill-loader/async-loader.ts +213 -213
  316. package/src/features/opencode-skill-loader/blocking.ts +62 -62
  317. package/src/features/opencode-skill-loader/config-source-discovery.ts +114 -114
  318. package/src/features/opencode-skill-loader/discover-worker.ts +56 -56
  319. package/src/features/opencode-skill-loader/git-master-template-injection.ts +150 -150
  320. package/src/features/opencode-skill-loader/index.ts +17 -17
  321. package/src/features/opencode-skill-loader/loaded-skill-from-path.ts +73 -73
  322. package/src/features/opencode-skill-loader/loaded-skill-template-extractor.ts +16 -16
  323. package/src/features/opencode-skill-loader/loader.ts +172 -172
  324. package/src/features/opencode-skill-loader/merger/builtin-skill-converter.ts +26 -26
  325. package/src/features/opencode-skill-loader/merger/config-skill-entry-loader.ts +117 -117
  326. package/src/features/opencode-skill-loader/merger/scope-priority.ts +10 -10
  327. package/src/features/opencode-skill-loader/merger/skill-definition-merger.ts +31 -31
  328. package/src/features/opencode-skill-loader/merger/skills-config-normalizer.ts +19 -19
  329. package/src/features/opencode-skill-loader/merger.ts +96 -96
  330. package/src/features/opencode-skill-loader/skill-content.ts +11 -11
  331. package/src/features/opencode-skill-loader/skill-deduplication.ts +13 -13
  332. package/src/features/opencode-skill-loader/skill-definition-record.ts +11 -11
  333. package/src/features/opencode-skill-loader/skill-directory-loader.ts +112 -112
  334. package/src/features/opencode-skill-loader/skill-discovery.ts +76 -76
  335. package/src/features/opencode-skill-loader/skill-mcp-config.ts +45 -45
  336. package/src/features/opencode-skill-loader/skill-resolution-options.ts +9 -9
  337. package/src/features/opencode-skill-loader/skill-template-resolver.ts +97 -97
  338. package/src/features/opencode-skill-loader/types.ts +38 -38
  339. package/src/features/run-continuation-state/constants.ts +1 -1
  340. package/src/features/run-continuation-state/index.ts +3 -3
  341. package/src/features/run-continuation-state/storage.ts +80 -80
  342. package/src/features/run-continuation-state/types.ts +15 -15
  343. package/src/features/skill-mcp-manager/AGENTS.md +111 -111
  344. package/src/features/skill-mcp-manager/cleanup.ts +153 -153
  345. package/src/features/skill-mcp-manager/connection-type.ts +26 -26
  346. package/src/features/skill-mcp-manager/connection.ts +146 -146
  347. package/src/features/skill-mcp-manager/env-cleaner.ts +59 -59
  348. package/src/features/skill-mcp-manager/error-redaction.ts +47 -47
  349. package/src/features/skill-mcp-manager/http-client.ts +126 -126
  350. package/src/features/skill-mcp-manager/index.ts +2 -2
  351. package/src/features/skill-mcp-manager/manager.ts +178 -178
  352. package/src/features/skill-mcp-manager/oauth-handler.ts +160 -160
  353. package/src/features/skill-mcp-manager/stdio-client.ts +112 -112
  354. package/src/features/skill-mcp-manager/types.ts +96 -96
  355. package/src/features/task-toast-manager/index.ts +2 -2
  356. package/src/features/task-toast-manager/manager.ts +251 -251
  357. package/src/features/task-toast-manager/types.ts +29 -29
  358. package/src/features/tmux-subagent/action-executor-core.ts +82 -82
  359. package/src/features/tmux-subagent/action-executor.ts +137 -137
  360. package/src/features/tmux-subagent/cleanup.ts +42 -42
  361. package/src/features/tmux-subagent/decision-engine.ts +22 -22
  362. package/src/features/tmux-subagent/event-handlers.ts +6 -6
  363. package/src/features/tmux-subagent/grid-planning.ts +137 -137
  364. package/src/features/tmux-subagent/index.ts +16 -16
  365. package/src/features/tmux-subagent/manager.ts +969 -969
  366. package/src/features/tmux-subagent/oldest-agent-pane.ts +37 -37
  367. package/src/features/tmux-subagent/pane-split-availability.ts +77 -77
  368. package/src/features/tmux-subagent/pane-state-parser.ts +135 -135
  369. package/src/features/tmux-subagent/pane-state-querier.ts +76 -76
  370. package/src/features/tmux-subagent/polling-constants.ts +6 -6
  371. package/src/features/tmux-subagent/polling-manager.ts +167 -167
  372. package/src/features/tmux-subagent/polling.ts +183 -183
  373. package/src/features/tmux-subagent/session-created-event.ts +44 -44
  374. package/src/features/tmux-subagent/session-created-handler.ts +175 -175
  375. package/src/features/tmux-subagent/session-deleted-handler.ts +50 -50
  376. package/src/features/tmux-subagent/session-message-count.ts +3 -3
  377. package/src/features/tmux-subagent/session-ready-waiter.ts +44 -44
  378. package/src/features/tmux-subagent/session-status-parser.ts +17 -17
  379. package/src/features/tmux-subagent/spawn-action-decider.ts +147 -147
  380. package/src/features/tmux-subagent/spawn-target-finder.ts +146 -146
  381. package/src/features/tmux-subagent/tmux-grid-constants.ts +57 -57
  382. package/src/features/tmux-subagent/tracked-session-state.ts +29 -29
  383. package/src/features/tmux-subagent/types.ts +54 -54
  384. package/src/features/tool-metadata-store/index.ts +7 -7
  385. package/src/features/tool-metadata-store/store.ts +84 -84
  386. package/src/hooks/agent-usage-reminder/constants.ts +52 -52
  387. package/src/hooks/agent-usage-reminder/hook.ts +134 -134
  388. package/src/hooks/agent-usage-reminder/index.ts +1 -1
  389. package/src/hooks/agent-usage-reminder/storage.ts +42 -42
  390. package/src/hooks/agent-usage-reminder/types.ts +6 -6
  391. package/src/hooks/anthropic-context-window-limit-recovery/AGENTS.md +49 -49
  392. package/src/hooks/anthropic-context-window-limit-recovery/aggressive-truncation-strategy.ts +87 -87
  393. package/src/hooks/anthropic-context-window-limit-recovery/client.ts +21 -21
  394. package/src/hooks/anthropic-context-window-limit-recovery/deduplication-recovery.ts +77 -77
  395. package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.ts +199 -199
  396. package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery.ts +149 -149
  397. package/src/hooks/anthropic-context-window-limit-recovery/executor.ts +83 -83
  398. package/src/hooks/anthropic-context-window-limit-recovery/index.ts +8 -8
  399. package/src/hooks/anthropic-context-window-limit-recovery/message-builder.ts +190 -190
  400. package/src/hooks/anthropic-context-window-limit-recovery/message-storage-directory.ts +40 -40
  401. package/src/hooks/anthropic-context-window-limit-recovery/parser.ts +209 -209
  402. package/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts +189 -189
  403. package/src/hooks/anthropic-context-window-limit-recovery/pruning-tool-output-truncation.ts +142 -142
  404. package/src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts +44 -44
  405. package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.ts +119 -119
  406. package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.ts +193 -193
  407. package/src/hooks/anthropic-context-window-limit-recovery/recovery-strategy.ts +2 -2
  408. package/src/hooks/anthropic-context-window-limit-recovery/session-timeout-map.ts +20 -20
  409. package/src/hooks/anthropic-context-window-limit-recovery/state.ts +78 -78
  410. package/src/hooks/anthropic-context-window-limit-recovery/storage-paths.ts +6 -6
  411. package/src/hooks/anthropic-context-window-limit-recovery/storage.ts +18 -18
  412. package/src/hooks/anthropic-context-window-limit-recovery/summarize-retry-strategy.ts +218 -218
  413. package/src/hooks/anthropic-context-window-limit-recovery/target-token-truncation.ts +196 -196
  414. package/src/hooks/anthropic-context-window-limit-recovery/tool-part-types.ts +38 -38
  415. package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage-sdk.ts +123 -123
  416. package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage.ts +119 -119
  417. package/src/hooks/anthropic-context-window-limit-recovery/types.ts +44 -44
  418. package/src/hooks/anthropic-effort/hook.ts +93 -93
  419. package/src/hooks/anthropic-effort/index.ts +1 -1
  420. package/src/hooks/auto-slash-command/constants.ts +12 -12
  421. package/src/hooks/auto-slash-command/detector.ts +88 -88
  422. package/src/hooks/auto-slash-command/executor.ts +165 -165
  423. package/src/hooks/auto-slash-command/hook.ts +238 -238
  424. package/src/hooks/auto-slash-command/index.ts +7 -7
  425. package/src/hooks/auto-slash-command/processed-command-store.ts +74 -74
  426. package/src/hooks/auto-slash-command/types.ts +42 -42
  427. package/src/hooks/background-notification/hook.ts +54 -54
  428. package/src/hooks/background-notification/index.ts +2 -2
  429. package/src/hooks/background-notification/types.ts +5 -5
  430. package/src/hooks/bash-file-read-guard.ts +44 -44
  431. package/src/hooks/category-skill-reminder/formatter.ts +37 -37
  432. package/src/hooks/category-skill-reminder/hook.ts +142 -142
  433. package/src/hooks/category-skill-reminder/index.ts +1 -1
  434. package/src/hooks/claude-code-hooks/AGENTS.md +41 -41
  435. package/src/hooks/claude-code-hooks/claude-code-hooks-hook.ts +28 -28
  436. package/src/hooks/claude-code-hooks/config-loader.ts +151 -151
  437. package/src/hooks/claude-code-hooks/config.ts +147 -147
  438. package/src/hooks/claude-code-hooks/dispatch-hook.ts +27 -27
  439. package/src/hooks/claude-code-hooks/execute-http-hook.ts +116 -116
  440. package/src/hooks/claude-code-hooks/handlers/chat-message-handler.ts +140 -140
  441. package/src/hooks/claude-code-hooks/handlers/pre-compact-handler.ts +41 -41
  442. package/src/hooks/claude-code-hooks/handlers/session-event-handler.ts +137 -137
  443. package/src/hooks/claude-code-hooks/handlers/tool-execute-after-handler.ts +160 -160
  444. package/src/hooks/claude-code-hooks/handlers/tool-execute-before-handler.ts +93 -93
  445. package/src/hooks/claude-code-hooks/index.ts +1 -1
  446. package/src/hooks/claude-code-hooks/plugin-config.ts +12 -12
  447. package/src/hooks/claude-code-hooks/post-tool-use.ts +195 -195
  448. package/src/hooks/claude-code-hooks/pre-compact.ts +105 -105
  449. package/src/hooks/claude-code-hooks/pre-tool-use.ts +168 -168
  450. package/src/hooks/claude-code-hooks/session-hook-state.ts +17 -17
  451. package/src/hooks/claude-code-hooks/stop.ts +118 -118
  452. package/src/hooks/claude-code-hooks/todo.ts +76 -76
  453. package/src/hooks/claude-code-hooks/tool-input-cache.ts +82 -82
  454. package/src/hooks/claude-code-hooks/transcript.ts +248 -248
  455. package/src/hooks/claude-code-hooks/types.ts +214 -214
  456. package/src/hooks/claude-code-hooks/user-prompt-submit.ts +121 -121
  457. package/src/hooks/comment-checker/cli-runner.ts +127 -127
  458. package/src/hooks/comment-checker/cli.ts +269 -269
  459. package/src/hooks/comment-checker/downloader.ts +170 -170
  460. package/src/hooks/comment-checker/hook.ts +192 -192
  461. package/src/hooks/comment-checker/index.ts +1 -1
  462. package/src/hooks/comment-checker/pending-calls.ts +45 -45
  463. package/src/hooks/comment-checker/types.ts +33 -33
  464. package/src/hooks/compaction-context-injector/compaction-context-prompt.ts +56 -56
  465. package/src/hooks/compaction-context-injector/constants.ts +5 -5
  466. package/src/hooks/compaction-context-injector/hook.ts +164 -164
  467. package/src/hooks/compaction-context-injector/index.ts +1 -1
  468. package/src/hooks/compaction-context-injector/recovery-prompt-config.ts +77 -77
  469. package/src/hooks/compaction-context-injector/recovery.ts +163 -163
  470. package/src/hooks/compaction-context-injector/session-id.ts +8 -8
  471. package/src/hooks/compaction-context-injector/session-prompt-config-resolver.ts +120 -120
  472. package/src/hooks/compaction-context-injector/tail-monitor.ts +52 -52
  473. package/src/hooks/compaction-context-injector/types.ts +25 -25
  474. package/src/hooks/compaction-context-injector/validated-model.ts +47 -47
  475. package/src/hooks/compaction-todo-preserver/hook.ts +127 -127
  476. package/src/hooks/compaction-todo-preserver/index.ts +2 -2
  477. package/src/hooks/context-window-monitor.ts +113 -113
  478. package/src/hooks/delegate-task-retry/guidance.ts +45 -45
  479. package/src/hooks/delegate-task-retry/hook.ts +22 -22
  480. package/src/hooks/delegate-task-retry/index.ts +4 -4
  481. package/src/hooks/delegate-task-retry/patterns.ts +77 -77
  482. package/src/hooks/directory-agents-injector/constants.ts +7 -7
  483. package/src/hooks/directory-agents-injector/finder.ts +38 -38
  484. package/src/hooks/directory-agents-injector/hook.ts +80 -80
  485. package/src/hooks/directory-agents-injector/index.ts +1 -1
  486. package/src/hooks/directory-agents-injector/injector.ts +59 -59
  487. package/src/hooks/directory-agents-injector/storage.ts +8 -8
  488. package/src/hooks/directory-readme-injector/constants.ts +7 -7
  489. package/src/hooks/directory-readme-injector/finder.ts +33 -33
  490. package/src/hooks/directory-readme-injector/hook.ts +80 -80
  491. package/src/hooks/directory-readme-injector/index.ts +1 -1
  492. package/src/hooks/directory-readme-injector/injector.ts +59 -59
  493. package/src/hooks/directory-readme-injector/storage.ts +8 -8
  494. package/src/hooks/edit-error-recovery/hook.ts +58 -58
  495. package/src/hooks/edit-error-recovery/index.ts +5 -5
  496. package/src/hooks/empty-task-response-detector.ts +27 -27
  497. package/src/hooks/fast-apply/hook.ts +11 -11
  498. package/src/hooks/fast-apply/index.ts +1 -1
  499. package/src/hooks/fast-apply/ollama-client.ts +53 -53
  500. package/src/hooks/fast-apply/tool-execute-before-handler.ts +86 -86
  501. package/src/hooks/guard/AGENTS.md +64 -64
  502. package/src/hooks/guard/background-launch-session-tracking.ts +97 -97
  503. package/src/hooks/guard/bob-path.ts +8 -8
  504. package/src/hooks/guard/boulder-continuation-injector.ts +109 -109
  505. package/src/hooks/guard/boulder-session-lineage.ts +44 -44
  506. package/src/hooks/guard/event-handler.ts +104 -104
  507. package/src/hooks/guard/final-wave-approval-gate.ts +47 -47
  508. package/src/hooks/guard/final-wave-plan-state.ts +60 -60
  509. package/src/hooks/guard/guard-hook.ts +27 -27
  510. package/src/hooks/guard/hook-name.ts +1 -1
  511. package/src/hooks/guard/idle-event.ts +341 -341
  512. package/src/hooks/guard/index.ts +3 -3
  513. package/src/hooks/guard/is-abort-error.ts +20 -20
  514. package/src/hooks/guard/recent-model-resolver.ts +89 -89
  515. package/src/hooks/guard/resolve-active-boulder-session.ts +29 -29
  516. package/src/hooks/guard/session-last-agent.ts +153 -153
  517. package/src/hooks/guard/subagent-session-id.ts +54 -54
  518. package/src/hooks/guard/system-reminder-templates.ts +249 -249
  519. package/src/hooks/guard/task-context.ts +45 -45
  520. package/src/hooks/guard/tool-execute-after.ts +209 -209
  521. package/src/hooks/guard/tool-execute-before.ts +102 -102
  522. package/src/hooks/guard/tsconfig.json +9 -9
  523. package/src/hooks/guard/types.ts +45 -45
  524. package/src/hooks/guard/verification-reminders.ts +197 -197
  525. package/src/hooks/guard/write-edit-tool-policy.ts +5 -5
  526. package/src/hooks/hashline-edit-diff-enhancer/hook.ts +106 -106
  527. package/src/hooks/hashline-read-enhancer/hook.ts +193 -193
  528. package/src/hooks/hashline-read-enhancer/index.ts +1 -1
  529. package/src/hooks/index.ts +58 -58
  530. package/src/hooks/interactive-bash-session/constants.ts +13 -13
  531. package/src/hooks/interactive-bash-session/hook.ts +125 -125
  532. package/src/hooks/interactive-bash-session/index.ts +3 -3
  533. package/src/hooks/interactive-bash-session/interactive-bash-session-tracker.ts +119 -119
  534. package/src/hooks/interactive-bash-session/parser.ts +118 -118
  535. package/src/hooks/interactive-bash-session/state-manager.ts +35 -35
  536. package/src/hooks/interactive-bash-session/storage.ts +59 -59
  537. package/src/hooks/interactive-bash-session/tmux-command-parser.ts +125 -125
  538. package/src/hooks/interactive-bash-session/types.ts +11 -11
  539. package/src/hooks/json-error-recovery/hook.ts +58 -58
  540. package/src/hooks/json-error-recovery/index.ts +6 -6
  541. package/src/hooks/keyword-detector/AGENTS.md +57 -57
  542. package/src/hooks/keyword-detector/analyze/default.ts +28 -28
  543. package/src/hooks/keyword-detector/analyze/index.ts +1 -1
  544. package/src/hooks/keyword-detector/constants.ts +45 -45
  545. package/src/hooks/keyword-detector/detector.ts +53 -53
  546. package/src/hooks/keyword-detector/hook.ts +143 -143
  547. package/src/hooks/keyword-detector/index.ts +5 -5
  548. package/src/hooks/keyword-detector/search/default.ts +20 -20
  549. package/src/hooks/keyword-detector/search/index.ts +1 -1
  550. package/src/hooks/keyword-detector/types.ts +4 -4
  551. package/src/hooks/keyword-detector/ultrawork/default.ts +302 -302
  552. package/src/hooks/keyword-detector/ultrawork/gemini.ts +290 -290
  553. package/src/hooks/keyword-detector/ultrawork/gpt.ts +173 -173
  554. package/src/hooks/keyword-detector/ultrawork/index.ts +56 -56
  555. package/src/hooks/keyword-detector/ultrawork/planner.ts +140 -140
  556. package/src/hooks/keyword-detector/ultrawork/source-detector.ts +65 -65
  557. package/src/hooks/legacy-plugin-toast/auto-migrate-runner.ts +2 -2
  558. package/src/hooks/legacy-plugin-toast/auto-migrate.ts +64 -64
  559. package/src/hooks/legacy-plugin-toast/hook.ts +68 -68
  560. package/src/hooks/legacy-plugin-toast/index.ts +1 -1
  561. package/src/hooks/legacy-plugin-toast/plugin-entry-migrator.ts +1 -1
  562. package/src/hooks/model-fallback/chat-message-fallback-handler.ts +74 -74
  563. package/src/hooks/model-fallback/hook.ts +201 -201
  564. package/src/hooks/model-fallback/next-fallback.ts +84 -84
  565. package/src/hooks/no-bob-gpt/hook.ts +56 -56
  566. package/src/hooks/no-bob-gpt/index.ts +1 -1
  567. package/src/hooks/no-coder-non-gpt/hook.ts +67 -67
  568. package/src/hooks/no-coder-non-gpt/index.ts +1 -1
  569. package/src/hooks/non-interactive-env/constants.ts +70 -70
  570. package/src/hooks/non-interactive-env/detector.ts +19 -19
  571. package/src/hooks/non-interactive-env/index.ts +5 -5
  572. package/src/hooks/non-interactive-env/non-interactive-env-hook.ts +73 -73
  573. package/src/hooks/non-interactive-env/types.ts +3 -3
  574. package/src/hooks/preemptive-compaction-degradation-monitor.ts +212 -212
  575. package/src/hooks/preemptive-compaction-no-text-tail.ts +70 -70
  576. package/src/hooks/preemptive-compaction.ts +218 -218
  577. package/src/hooks/question-label-truncator/hook.ts +62 -62
  578. package/src/hooks/question-label-truncator/index.ts +1 -1
  579. package/src/hooks/ralph-loop/AGENTS.md +62 -62
  580. package/src/hooks/ralph-loop/command-arguments.ts +30 -30
  581. package/src/hooks/ralph-loop/completion-handler.ts +65 -65
  582. package/src/hooks/ralph-loop/completion-promise-detector-test-input.ts +23 -23
  583. package/src/hooks/ralph-loop/completion-promise-detector.ts +165 -165
  584. package/src/hooks/ralph-loop/constants.ts +7 -7
  585. package/src/hooks/ralph-loop/continuation-prompt-builder.ts +77 -77
  586. package/src/hooks/ralph-loop/continuation-prompt-injector.ts +91 -91
  587. package/src/hooks/ralph-loop/index.ts +6 -6
  588. package/src/hooks/ralph-loop/iteration-continuation.ts +64 -64
  589. package/src/hooks/ralph-loop/logician-verification-detector.ts +88 -88
  590. package/src/hooks/ralph-loop/loop-session-recovery.ts +33 -33
  591. package/src/hooks/ralph-loop/loop-state-controller.ts +178 -178
  592. package/src/hooks/ralph-loop/message-storage-directory.ts +1 -1
  593. package/src/hooks/ralph-loop/pending-verification-handler.ts +152 -152
  594. package/src/hooks/ralph-loop/ralph-loop-event-handler.ts +231 -231
  595. package/src/hooks/ralph-loop/ralph-loop-hook.ts +90 -90
  596. package/src/hooks/ralph-loop/session-event-handler.ts +56 -56
  597. package/src/hooks/ralph-loop/session-reset-strategy.ts +69 -69
  598. package/src/hooks/ralph-loop/storage.ts +164 -164
  599. package/src/hooks/ralph-loop/types.ts +25 -25
  600. package/src/hooks/ralph-loop/verification-failure-handler.ts +103 -103
  601. package/src/hooks/ralph-loop/with-timeout.ts +20 -20
  602. package/src/hooks/read-image-resizer/hook.ts +209 -209
  603. package/src/hooks/read-image-resizer/image-dimensions.ts +191 -191
  604. package/src/hooks/read-image-resizer/image-resizer.ts +191 -191
  605. package/src/hooks/read-image-resizer/index.ts +1 -1
  606. package/src/hooks/read-image-resizer/png-fallback-resizer.ts +359 -359
  607. package/src/hooks/read-image-resizer/types.ts +16 -16
  608. package/src/hooks/rules-injector/AGENTS.md +53 -53
  609. package/src/hooks/rules-injector/cache.ts +27 -27
  610. package/src/hooks/rules-injector/constants.ts +31 -31
  611. package/src/hooks/rules-injector/finder.ts +3 -3
  612. package/src/hooks/rules-injector/hook.ts +94 -94
  613. package/src/hooks/rules-injector/index.ts +2 -2
  614. package/src/hooks/rules-injector/injector.ts +189 -189
  615. package/src/hooks/rules-injector/matcher.ts +63 -63
  616. package/src/hooks/rules-injector/output-path.ts +22 -22
  617. package/src/hooks/rules-injector/parser.ts +211 -211
  618. package/src/hooks/rules-injector/project-root-finder.ts +36 -36
  619. package/src/hooks/rules-injector/rule-distance.ts +53 -53
  620. package/src/hooks/rules-injector/rule-file-finder.ts +139 -139
  621. package/src/hooks/rules-injector/rule-file-scanner.ts +55 -55
  622. package/src/hooks/rules-injector/storage.ts +59 -59
  623. package/src/hooks/rules-injector/types.ts +57 -57
  624. package/src/hooks/runtime-fallback/AGENTS.md +102 -102
  625. package/src/hooks/runtime-fallback/agent-resolver.ts +50 -50
  626. package/src/hooks/runtime-fallback/auto-retry-signal.ts +32 -32
  627. package/src/hooks/runtime-fallback/auto-retry.ts +228 -228
  628. package/src/hooks/runtime-fallback/chat-message-handler.ts +62 -62
  629. package/src/hooks/runtime-fallback/constants.ts +47 -47
  630. package/src/hooks/runtime-fallback/error-classifier.ts +183 -183
  631. package/src/hooks/runtime-fallback/event-handler.ts +213 -213
  632. package/src/hooks/runtime-fallback/fallback-bootstrap-model.ts +63 -63
  633. package/src/hooks/runtime-fallback/fallback-models.ts +86 -86
  634. package/src/hooks/runtime-fallback/fallback-retry-dispatcher.ts +55 -55
  635. package/src/hooks/runtime-fallback/fallback-state.ts +74 -74
  636. package/src/hooks/runtime-fallback/hook.ts +87 -87
  637. package/src/hooks/runtime-fallback/index.ts +2 -2
  638. package/src/hooks/runtime-fallback/last-user-retry-parts.ts +20 -20
  639. package/src/hooks/runtime-fallback/message-update-handler.ts +168 -168
  640. package/src/hooks/runtime-fallback/retry-model-payload.ts +30 -30
  641. package/src/hooks/runtime-fallback/session-messages.ts +38 -38
  642. package/src/hooks/runtime-fallback/session-status-handler.ts +126 -126
  643. package/src/hooks/runtime-fallback/types.ts +77 -77
  644. package/src/hooks/runtime-fallback/visible-assistant-response.ts +80 -80
  645. package/src/hooks/session-notification-content.ts +145 -145
  646. package/src/hooks/session-notification-formatting.ts +25 -25
  647. package/src/hooks/session-notification-scheduler.ts +188 -188
  648. package/src/hooks/session-notification-sender.ts +117 -117
  649. package/src/hooks/session-notification-utils.ts +80 -80
  650. package/src/hooks/session-notification.ts +219 -219
  651. package/src/hooks/session-recovery/AGENTS.md +59 -59
  652. package/src/hooks/session-recovery/constants.ts +5 -5
  653. package/src/hooks/session-recovery/detect-error-type.ts +102 -102
  654. package/src/hooks/session-recovery/hook.ts +166 -166
  655. package/src/hooks/session-recovery/index.ts +7 -7
  656. package/src/hooks/session-recovery/recover-empty-content-message-sdk.ts +201 -201
  657. package/src/hooks/session-recovery/recover-thinking-block-order.ts +137 -137
  658. package/src/hooks/session-recovery/recover-thinking-disabled-violation.ts +75 -75
  659. package/src/hooks/session-recovery/recover-tool-result-missing.ts +108 -108
  660. package/src/hooks/session-recovery/recover-unavailable-tool.ts +108 -108
  661. package/src/hooks/session-recovery/resume.ts +49 -49
  662. package/src/hooks/session-recovery/storage/empty-messages.ts +47 -47
  663. package/src/hooks/session-recovery/storage/empty-text.ts +118 -118
  664. package/src/hooks/session-recovery/storage/message-dir.ts +1 -1
  665. package/src/hooks/session-recovery/storage/messages-reader.ts +83 -83
  666. package/src/hooks/session-recovery/storage/orphan-thinking-search.ts +43 -43
  667. package/src/hooks/session-recovery/storage/part-content.ts +28 -28
  668. package/src/hooks/session-recovery/storage/part-id.ts +5 -5
  669. package/src/hooks/session-recovery/storage/parts-reader.ts +56 -56
  670. package/src/hooks/session-recovery/storage/text-part-injector.ts +63 -63
  671. package/src/hooks/session-recovery/storage/thinking-block-search.ts +42 -42
  672. package/src/hooks/session-recovery/storage/thinking-prepend.ts +223 -223
  673. package/src/hooks/session-recovery/storage/thinking-strip.ts +67 -67
  674. package/src/hooks/session-recovery/storage.ts +34 -34
  675. package/src/hooks/session-recovery/types.ts +101 -101
  676. package/src/hooks/session-todo-status.ts +20 -20
  677. package/src/hooks/shared/compaction-model-resolver.ts +34 -34
  678. package/src/hooks/shared/shared/compaction-model-resolver.ts +34 -34
  679. package/src/hooks/start-work/context-info-builder.ts +319 -319
  680. package/src/hooks/start-work/index.ts +4 -4
  681. package/src/hooks/start-work/parse-user-request.ts +32 -32
  682. package/src/hooks/start-work/start-work-hook.ts +135 -135
  683. package/src/hooks/start-work/worktree-block.ts +11 -11
  684. package/src/hooks/start-work/worktree-detector.ts +77 -77
  685. package/src/hooks/stop-continuation-guard/hook.ts +122 -122
  686. package/src/hooks/stop-continuation-guard/index.ts +2 -2
  687. package/src/hooks/strategist-md-only/agent-matcher.ts +5 -5
  688. package/src/hooks/strategist-md-only/agent-resolution.ts +70 -70
  689. package/src/hooks/strategist-md-only/constants.ts +78 -78
  690. package/src/hooks/strategist-md-only/hook.ts +82 -82
  691. package/src/hooks/strategist-md-only/index.ts +2 -2
  692. package/src/hooks/strategist-md-only/path-policy.ts +41 -41
  693. package/src/hooks/sub-notepad/constants.ts +29 -29
  694. package/src/hooks/sub-notepad/hook.ts +44 -44
  695. package/src/hooks/sub-notepad/index.ts +3 -3
  696. package/src/hooks/task-reminder/hook.ts +59 -59
  697. package/src/hooks/task-reminder/index.ts +1 -1
  698. package/src/hooks/task-resume-info/hook.ts +39 -39
  699. package/src/hooks/task-resume-info/index.ts +1 -1
  700. package/src/hooks/tasks-todowrite-disabler/constants.ts +30 -30
  701. package/src/hooks/tasks-todowrite-disabler/hook.ts +34 -34
  702. package/src/hooks/tasks-todowrite-disabler/index.ts +2 -2
  703. package/src/hooks/think-mode/detector.ts +59 -59
  704. package/src/hooks/think-mode/hook.ts +76 -76
  705. package/src/hooks/think-mode/index.ts +5 -5
  706. package/src/hooks/think-mode/switcher.ts +100 -100
  707. package/src/hooks/think-mode/types.ts +16 -16
  708. package/src/hooks/thinking-block-validator/hook.ts +181 -181
  709. package/src/hooks/thinking-block-validator/index.ts +1 -1
  710. package/src/hooks/todo-continuation-enforcer/AGENTS.md +65 -65
  711. package/src/hooks/todo-continuation-enforcer/abort-detection.ts +17 -17
  712. package/src/hooks/todo-continuation-enforcer/compaction-guard.ts +39 -39
  713. package/src/hooks/todo-continuation-enforcer/constants.ts +25 -25
  714. package/src/hooks/todo-continuation-enforcer/continuation-injection.ts +222 -222
  715. package/src/hooks/todo-continuation-enforcer/countdown.ts +86 -86
  716. package/src/hooks/todo-continuation-enforcer/handler.ts +99 -99
  717. package/src/hooks/todo-continuation-enforcer/idle-event.ts +225 -225
  718. package/src/hooks/todo-continuation-enforcer/index.ts +59 -59
  719. package/src/hooks/todo-continuation-enforcer/message-directory.ts +1 -1
  720. package/src/hooks/todo-continuation-enforcer/non-idle-events.ts +107 -107
  721. package/src/hooks/todo-continuation-enforcer/pending-question-detection.ts +40 -40
  722. package/src/hooks/todo-continuation-enforcer/resolve-message-info.ts +48 -48
  723. package/src/hooks/todo-continuation-enforcer/session-state.ts +283 -283
  724. package/src/hooks/todo-continuation-enforcer/stagnation-detection.ts +36 -36
  725. package/src/hooks/todo-continuation-enforcer/todo.ts +11 -11
  726. package/src/hooks/todo-continuation-enforcer/token-limit-detection.ts +38 -38
  727. package/src/hooks/todo-continuation-enforcer/types.ts +74 -74
  728. package/src/hooks/todo-description-override/description.ts +28 -28
  729. package/src/hooks/todo-description-override/hook.ts +14 -14
  730. package/src/hooks/todo-description-override/index.ts +1 -1
  731. package/src/hooks/tool-output-truncator.ts +66 -66
  732. package/src/hooks/tool-pair-validator/hook.ts +184 -184
  733. package/src/hooks/tool-pair-validator/index.ts +1 -1
  734. package/src/hooks/unstable-agent-babysitter/index.ts +9 -9
  735. package/src/hooks/unstable-agent-babysitter/task-message-analyzer.ts +110 -110
  736. package/src/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.ts +238 -238
  737. package/src/hooks/webfetch-redirect-guard/constants.ts +11 -11
  738. package/src/hooks/webfetch-redirect-guard/hook.ts +123 -123
  739. package/src/hooks/webfetch-redirect-guard/index.ts +1 -1
  740. package/src/hooks/webfetch-redirect-guard/redirect-resolution.ts +89 -89
  741. package/src/hooks/write-existing-file-guard/hook.ts +108 -108
  742. package/src/hooks/write-existing-file-guard/index.ts +1 -1
  743. package/src/hooks/write-existing-file-guard/session-read-permissions.ts +36 -36
  744. package/src/hooks/write-existing-file-guard/tool-execute-before-handler.ts +176 -176
  745. package/src/index.ts +285 -284
  746. package/src/internals/plugins/pty/LICENSE +21 -21
  747. package/src/internals/plugins/pty/constants.ts +7 -7
  748. package/src/internals/plugins/pty/plugin.ts +28 -28
  749. package/src/internals/plugins/pty/pty/buffer.ts +75 -75
  750. package/src/internals/plugins/pty/pty/formatters.ts +22 -22
  751. package/src/internals/plugins/pty/pty/manager.ts +175 -175
  752. package/src/internals/plugins/pty/pty/notification-manager.ts +75 -75
  753. package/src/internals/plugins/pty/pty/output-manager.ts +29 -29
  754. package/src/internals/plugins/pty/pty/permissions.ts +115 -115
  755. package/src/internals/plugins/pty/pty/session-lifecycle.ts +161 -161
  756. package/src/internals/plugins/pty/pty/tools/kill.ts +41 -41
  757. package/src/internals/plugins/pty/pty/tools/kill.txt +25 -25
  758. package/src/internals/plugins/pty/pty/tools/list.ts +25 -25
  759. package/src/internals/plugins/pty/pty/tools/list.txt +22 -22
  760. package/src/internals/plugins/pty/pty/tools/read.ts +234 -234
  761. package/src/internals/plugins/pty/pty/tools/read.txt +39 -39
  762. package/src/internals/plugins/pty/pty/tools/spawn.ts +71 -71
  763. package/src/internals/plugins/pty/pty/tools/spawn.txt +47 -47
  764. package/src/internals/plugins/pty/pty/tools/write.ts +96 -96
  765. package/src/internals/plugins/pty/pty/tools/write.txt +28 -28
  766. package/src/internals/plugins/pty/pty/types.ts +67 -67
  767. package/src/internals/plugins/pty/pty/utils.ts +21 -21
  768. package/src/internals/plugins/pty/pty/wildcard.ts +62 -62
  769. package/src/internals/plugins/pty/shared/constants.ts +7 -7
  770. package/src/internals/plugins/pty/types.ts +7 -7
  771. package/src/internals/plugins/subtask2/LICENSE +128 -128
  772. package/src/internals/plugins/subtask2/commands/index.ts +7 -7
  773. package/src/internals/plugins/subtask2/commands/loader.ts +39 -39
  774. package/src/internals/plugins/subtask2/commands/manifest.ts +64 -64
  775. package/src/internals/plugins/subtask2/commands/resolver.ts +28 -28
  776. package/src/internals/plugins/subtask2/core/plugin.ts +52 -52
  777. package/src/internals/plugins/subtask2/core/state.ts +764 -764
  778. package/src/internals/plugins/subtask2/features/auto.ts +57 -57
  779. package/src/internals/plugins/subtask2/features/index.ts +9 -9
  780. package/src/internals/plugins/subtask2/features/inline-subtasks.ts +205 -205
  781. package/src/internals/plugins/subtask2/features/parallel.ts +148 -148
  782. package/src/internals/plugins/subtask2/features/results.ts +48 -48
  783. package/src/internals/plugins/subtask2/features/returns.ts +273 -273
  784. package/src/internals/plugins/subtask2/features/turns.ts +190 -190
  785. package/src/internals/plugins/subtask2/hooks/command-hooks.ts +283 -283
  786. package/src/internals/plugins/subtask2/hooks/message-hooks.ts +603 -603
  787. package/src/internals/plugins/subtask2/hooks/session-idle-hook.ts +358 -358
  788. package/src/internals/plugins/subtask2/hooks/tool-hooks.ts +309 -309
  789. package/src/internals/plugins/subtask2/loop.ts +122 -122
  790. package/src/internals/plugins/subtask2/parsing/auto.ts +33 -33
  791. package/src/internals/plugins/subtask2/parsing/commands.ts +154 -154
  792. package/src/internals/plugins/subtask2/parsing/frontmatter.ts +20 -20
  793. package/src/internals/plugins/subtask2/parsing/index.ts +10 -10
  794. package/src/internals/plugins/subtask2/parsing/overrides.ts +68 -68
  795. package/src/internals/plugins/subtask2/parsing/parallel.ts +88 -88
  796. package/src/internals/plugins/subtask2/parsing/turns.ts +78 -78
  797. package/src/internals/plugins/subtask2/types.ts +41 -41
  798. package/src/internals/plugins/subtask2/utils/config.ts +100 -100
  799. package/src/internals/plugins/subtask2/utils/index.ts +7 -7
  800. package/src/internals/plugins/subtask2/utils/logger.ts +67 -67
  801. package/src/internals/plugins/subtask2/utils/prompts.ts +117 -117
  802. package/src/internals/plugins/websearch-cited/LICENSE +214 -214
  803. package/src/internals/plugins/websearch-cited/codex_prompt.txt +79 -79
  804. package/src/internals/plugins/websearch-cited/google.ts +749 -749
  805. package/src/internals/plugins/websearch-cited/index.ts +301 -301
  806. package/src/internals/plugins/websearch-cited/openai.ts +407 -407
  807. package/src/internals/plugins/websearch-cited/openrouter.ts +190 -190
  808. package/src/internals/plugins/websearch-cited/types.ts +7 -7
  809. package/src/lsp/index.ts +15 -15
  810. package/src/mcp/context7.ts +9 -9
  811. package/src/mcp/grep-app.ts +6 -6
  812. package/src/mcp/index.ts +54 -87
  813. package/src/mcp/omo-mcp-index.ts +30 -35
  814. package/src/mcp/registry.ts +132 -0
  815. package/src/mcp/types.ts +19 -9
  816. package/src/mcp/websearch.ts +44 -44
  817. package/src/permissions/index.ts +25 -25
  818. package/src/plugin/AGENTS.md +54 -54
  819. package/src/plugin/available-categories.ts +24 -24
  820. package/src/plugin/chat-headers.ts +141 -141
  821. package/src/plugin/chat-message.ts +309 -309
  822. package/src/plugin/chat-params.ts +182 -182
  823. package/src/plugin/command-execute-before.ts +80 -80
  824. package/src/plugin/event.ts +639 -639
  825. package/src/plugin/hooks/create-continuation-hooks.ts +128 -128
  826. package/src/plugin/hooks/create-core-hooks.ts +47 -47
  827. package/src/plugin/hooks/create-session-hooks.ts +286 -286
  828. package/src/plugin/hooks/create-skill-hooks.ts +50 -50
  829. package/src/plugin/hooks/create-tool-guard-hooks.ts +159 -159
  830. package/src/plugin/hooks/create-transform-hooks.ts +85 -85
  831. package/src/plugin/messages-transform.ts +28 -28
  832. package/src/plugin/normalize-tool-arg-schemas.ts +75 -75
  833. package/src/plugin/recent-synthetic-idles.ts +20 -20
  834. package/src/plugin/session-agent-resolver.ts +37 -37
  835. package/src/plugin/session-status-normalizer.ts +22 -22
  836. package/src/plugin/skill-context.ts +132 -132
  837. package/src/plugin/system-transform.ts +6 -6
  838. package/src/plugin/tool-execute-after.ts +178 -178
  839. package/src/plugin/tool-execute-before.ts +222 -222
  840. package/src/plugin/tool-registry.ts +282 -282
  841. package/src/plugin/types.ts +26 -26
  842. package/src/plugin/ultrawork-db-model-override.ts +142 -142
  843. package/src/plugin/ultrawork-model-override.ts +196 -196
  844. package/src/plugin/ultrawork-variant-availability.ts +51 -51
  845. package/src/plugin/unstable-agent-babysitter.ts +41 -41
  846. package/src/plugin-config.ts +314 -314
  847. package/src/plugin-dispose.ts +51 -51
  848. package/src/plugin-handlers/AGENTS.md +92 -92
  849. package/src/plugin-handlers/agent-config-handler.ts +502 -502
  850. package/src/plugin-handlers/agent-key-remapper.ts +39 -39
  851. package/src/plugin-handlers/agent-override-protection.ts +38 -38
  852. package/src/plugin-handlers/agent-priority-order.ts +63 -63
  853. package/src/plugin-handlers/category-config-resolver.ts +9 -9
  854. package/src/plugin-handlers/command-config-handler.ts +105 -105
  855. package/src/plugin-handlers/config-handler.ts +61 -61
  856. package/src/plugin-handlers/index.ts +10 -10
  857. package/src/plugin-handlers/mcp-config-handler.ts +205 -205
  858. package/src/plugin-handlers/plan-model-inheritance.ts +27 -27
  859. package/src/plugin-handlers/plugin-components-loader.ts +70 -70
  860. package/src/plugin-handlers/provider-config-handler.ts +73 -73
  861. package/src/plugin-handlers/strategist-agent-config-builder.ts +128 -128
  862. package/src/plugin-handlers/tool-config-handler.ts +193 -193
  863. package/src/plugin-interface.ts +83 -83
  864. package/src/plugin-state.ts +18 -18
  865. package/src/shared/AGENTS.md +54 -54
  866. package/src/shared/agent-display-names.ts +182 -182
  867. package/src/shared/agent-tool-restrictions.ts +80 -80
  868. package/src/shared/agent-variant.ts +101 -101
  869. package/src/shared/agents-config-dir.ts +23 -23
  870. package/src/shared/archive-entry-validator.ts +83 -83
  871. package/src/shared/background-output-consumption.ts +69 -69
  872. package/src/shared/binary-downloader.ts +127 -127
  873. package/src/shared/claude-config-dir.ts +16 -16
  874. package/src/shared/closure-protocol.ts +53 -53
  875. package/src/shared/command-executor/embedded-commands.ts +26 -26
  876. package/src/shared/command-executor/execute-command.ts +28 -28
  877. package/src/shared/command-executor/execute-hook-command.ts +129 -129
  878. package/src/shared/command-executor/home-directory.ts +5 -5
  879. package/src/shared/command-executor/resolve-commands-in-text.ts +49 -49
  880. package/src/shared/command-executor/shell-path.ts +27 -27
  881. package/src/shared/command-executor.ts +5 -5
  882. package/src/shared/compaction-agent-config-checkpoint.ts +42 -42
  883. package/src/shared/compaction-marker.ts +61 -61
  884. package/src/shared/config-errors.ts +18 -18
  885. package/src/shared/connected-providers-cache.ts +215 -215
  886. package/src/shared/contains-path.ts +50 -50
  887. package/src/shared/context-limit-resolver.ts +42 -42
  888. package/src/shared/data-path.ts +64 -64
  889. package/src/shared/deep-merge.ts +53 -53
  890. package/src/shared/disabled-tools.ts +19 -19
  891. package/src/shared/dynamic-truncator.ts +222 -222
  892. package/src/shared/external-plugin-detector.ts +139 -139
  893. package/src/shared/fallback-chain-from-models.ts +124 -124
  894. package/src/shared/fallback-model-availability.ts +102 -102
  895. package/src/shared/file-reference-resolver.ts +99 -99
  896. package/src/shared/file-utils.ts +34 -34
  897. package/src/shared/first-message-variant.ts +28 -28
  898. package/src/shared/frontmatter.ts +31 -31
  899. package/src/shared/git-worktree/collect-git-diff-stats.ts +56 -56
  900. package/src/shared/git-worktree/format-file-changes.ts +46 -46
  901. package/src/shared/git-worktree/index.ts +7 -7
  902. package/src/shared/git-worktree/parse-diff-numstat.ts +27 -27
  903. package/src/shared/git-worktree/parse-status-porcelain-line.ts +27 -27
  904. package/src/shared/git-worktree/parse-status-porcelain.ts +15 -15
  905. package/src/shared/git-worktree/types.ts +8 -8
  906. package/src/shared/hook-disabled.ts +22 -22
  907. package/src/shared/index.ts +80 -80
  908. package/src/shared/internal-initiator-marker.ts +18 -18
  909. package/src/shared/is-abort-error.ts +20 -20
  910. package/src/shared/json-file-cache-store.ts +98 -98
  911. package/src/shared/jsonc-parser.ts +98 -98
  912. package/src/shared/known-variants.ts +16 -16
  913. package/src/shared/legacy-plugin-warning.ts +68 -68
  914. package/src/shared/load-opencode-plugins.ts +60 -60
  915. package/src/shared/log-legacy-plugin-startup-warning.ts +46 -46
  916. package/src/shared/logger.ts +48 -48
  917. package/src/shared/merge-categories.ts +18 -18
  918. package/src/shared/migrate-legacy-config-file.ts +66 -66
  919. package/src/shared/migrate-legacy-plugin-entry.ts +75 -75
  920. package/src/shared/migration/agent-category.ts +60 -60
  921. package/src/shared/migration/agent-names.ts +100 -100
  922. package/src/shared/migration/config-migration.ts +210 -210
  923. package/src/shared/migration/hook-names.ts +40 -40
  924. package/src/shared/migration/migrations-sidecar.ts +92 -92
  925. package/src/shared/migration/model-versions.ts +50 -50
  926. package/src/shared/migration.ts +5 -5
  927. package/src/shared/model-availability.ts +294 -294
  928. package/src/shared/model-capabilities/bundled-snapshot.ts +15 -15
  929. package/src/shared/model-capabilities/get-model-capabilities.ts +140 -140
  930. package/src/shared/model-capabilities/index.ts +9 -9
  931. package/src/shared/model-capabilities/runtime-model-readers.ts +190 -190
  932. package/src/shared/model-capabilities/types.ts +80 -80
  933. package/src/shared/model-capabilities-cache.ts +213 -213
  934. package/src/shared/model-capability-aliases.ts +108 -108
  935. package/src/shared/model-capability-guardrails.ts +149 -149
  936. package/src/shared/model-capability-heuristics.ts +32 -32
  937. package/src/shared/model-error-classifier.ts +214 -214
  938. package/src/shared/model-format-normalizer.ts +20 -20
  939. package/src/shared/model-normalization.ts +8 -8
  940. package/src/shared/model-requirements.ts +26 -26
  941. package/src/shared/model-resolution-pipeline.ts +216 -216
  942. package/src/shared/model-resolution-types.ts +41 -41
  943. package/src/shared/model-resolver.ts +106 -106
  944. package/src/shared/model-sanitizer.ts +12 -12
  945. package/src/shared/model-settings-compatibility.ts +200 -200
  946. package/src/shared/model-suggestion-retry.ts +182 -182
  947. package/src/shared/normalize-sdk-response.ts +36 -36
  948. package/src/shared/opencode-command-dirs.ts +36 -36
  949. package/src/shared/opencode-config-dir-types.ts +15 -15
  950. package/src/shared/opencode-config-dir.ts +135 -135
  951. package/src/shared/opencode-http-api.ts +139 -139
  952. package/src/shared/opencode-message-dir.ts +29 -29
  953. package/src/shared/opencode-server-auth.ts +190 -190
  954. package/src/shared/opencode-storage-detection.ts +33 -33
  955. package/src/shared/opencode-storage-paths.ts +6 -6
  956. package/src/shared/opencode-version.ts +80 -80
  957. package/src/shared/parse-tools-config.ts +25 -25
  958. package/src/shared/pattern-matcher.ts +46 -46
  959. package/src/shared/permission-compat.ts +86 -86
  960. package/src/shared/plugin-command-discovery.ts +28 -28
  961. package/src/shared/plugin-entry-migrator.ts +21 -21
  962. package/src/shared/plugin-identity.ts +8 -8
  963. package/src/shared/port-utils.ts +48 -48
  964. package/src/shared/project-discovery-dirs.ts +101 -101
  965. package/src/shared/prompt-timeout-context.ts +49 -49
  966. package/src/shared/prompt-tools.ts +35 -35
  967. package/src/shared/provider-model-id-transform.ts +58 -58
  968. package/src/shared/question-denied-session-permission.ts +9 -9
  969. package/src/shared/record-type-guard.ts +3 -3
  970. package/src/shared/resolve-agent-definition-paths.ts +22 -22
  971. package/src/shared/retry-status-utils.ts +19 -19
  972. package/src/shared/runtime-plugin-config.ts +98 -98
  973. package/src/shared/safe-create-hook.ts +24 -24
  974. package/src/shared/session-category-registry.ts +27 -27
  975. package/src/shared/session-cursor.ts +108 -108
  976. package/src/shared/session-directory-resolver.ts +41 -41
  977. package/src/shared/session-injected-paths.ts +59 -59
  978. package/src/shared/session-model-state.ts +15 -15
  979. package/src/shared/session-prompt-params-helpers.ts +31 -31
  980. package/src/shared/session-prompt-params-state.ts +37 -37
  981. package/src/shared/session-tools-store.ts +18 -18
  982. package/src/shared/session-utils.ts +25 -25
  983. package/src/shared/shell-env.ts +175 -175
  984. package/src/shared/skill-path-resolver.ts +26 -26
  985. package/src/shared/snake-case.ts +44 -44
  986. package/src/shared/spawn-with-windows-hide.ts +84 -84
  987. package/src/shared/system-directive.ts +67 -67
  988. package/src/shared/task-system-enabled.ts +9 -9
  989. package/src/shared/tmux/constants.ts +12 -12
  990. package/src/shared/tmux/index.ts +3 -3
  991. package/src/shared/tmux/tmux-utils/environment.ts +13 -13
  992. package/src/shared/tmux/tmux-utils/layout.ts +96 -96
  993. package/src/shared/tmux/tmux-utils/pane-close.ts +48 -48
  994. package/src/shared/tmux/tmux-utils/pane-dimensions.ts +28 -28
  995. package/src/shared/tmux/tmux-utils/pane-replace.ts +73 -73
  996. package/src/shared/tmux/tmux-utils/pane-spawn.ts +94 -94
  997. package/src/shared/tmux/tmux-utils/server-health.ts +62 -62
  998. package/src/shared/tmux/tmux-utils/session-spawn.ts +145 -145
  999. package/src/shared/tmux/tmux-utils/window-spawn.ts +93 -93
  1000. package/src/shared/tmux/tmux-utils.ts +15 -15
  1001. package/src/shared/tmux/types.ts +4 -4
  1002. package/src/shared/tool-name.ts +27 -27
  1003. package/src/shared/truncate-description.ts +11 -11
  1004. package/src/shared/vision-capable-models-cache.ts +17 -17
  1005. package/src/shared/write-file-atomically.ts +31 -31
  1006. package/src/shared/zip-entry-listing/powershell-zip-entry-listing.ts +99 -99
  1007. package/src/shared/zip-entry-listing/python-zip-entry-listing.ts +55 -55
  1008. package/src/shared/zip-entry-listing/read-zip-symlink-target.ts +23 -23
  1009. package/src/shared/zip-entry-listing/tar-zip-entry-listing.ts +93 -93
  1010. package/src/shared/zip-entry-listing/zipinfo-zip-entry-listing.ts +72 -72
  1011. package/src/shared/zip-entry-listing.ts +13 -13
  1012. package/src/shared/zip-extractor.ts +118 -118
  1013. package/src/skills/index.ts +56 -56
  1014. package/src/testing/module-mock-lifecycle.ts +143 -143
  1015. package/src/tools/AGENTS.md +108 -108
  1016. package/src/tools/ast-grep/cli-binary-path-resolution.ts +60 -60
  1017. package/src/tools/ast-grep/cli.ts +177 -177
  1018. package/src/tools/ast-grep/constants.ts +5 -5
  1019. package/src/tools/ast-grep/downloader.ts +119 -119
  1020. package/src/tools/ast-grep/environment-check.ts +89 -89
  1021. package/src/tools/ast-grep/index.ts +5 -5
  1022. package/src/tools/ast-grep/language-support.ts +63 -63
  1023. package/src/tools/ast-grep/process-output-timeout.ts +28 -28
  1024. package/src/tools/ast-grep/result-formatter.ts +102 -102
  1025. package/src/tools/ast-grep/sg-cli-path.ts +102 -102
  1026. package/src/tools/ast-grep/sg-compact-json-output.ts +54 -54
  1027. package/src/tools/ast-grep/tools.ts +117 -117
  1028. package/src/tools/ast-grep/types.ts +61 -61
  1029. package/src/tools/background-task/AGENTS.md +53 -53
  1030. package/src/tools/background-task/clients.ts +32 -32
  1031. package/src/tools/background-task/constants.ts +9 -9
  1032. package/src/tools/background-task/create-background-cancel.ts +115 -115
  1033. package/src/tools/background-task/create-background-output.ts +159 -159
  1034. package/src/tools/background-task/create-background-task.ts +126 -126
  1035. package/src/tools/background-task/delay.ts +3 -3
  1036. package/src/tools/background-task/full-session-format.ts +148 -148
  1037. package/src/tools/background-task/index.ts +8 -8
  1038. package/src/tools/background-task/message-dir.ts +1 -1
  1039. package/src/tools/background-task/session-messages.ts +22 -22
  1040. package/src/tools/background-task/task-result-format.ts +113 -113
  1041. package/src/tools/background-task/task-status-format.ts +72 -72
  1042. package/src/tools/background-task/time-format.ts +30 -30
  1043. package/src/tools/background-task/tools.ts +11 -11
  1044. package/src/tools/background-task/truncate-text.ts +4 -4
  1045. package/src/tools/background-task/types.ts +72 -72
  1046. package/src/tools/call-omo-agent/AGENTS.md +51 -51
  1047. package/src/tools/call-omo-agent/agent-resolver.ts +64 -64
  1048. package/src/tools/call-omo-agent/background-agent-executor.ts +91 -91
  1049. package/src/tools/call-omo-agent/background-executor.ts +98 -98
  1050. package/src/tools/call-omo-agent/completion-poller.ts +65 -65
  1051. package/src/tools/call-omo-agent/constants.ts +23 -23
  1052. package/src/tools/call-omo-agent/index.ts +3 -3
  1053. package/src/tools/call-omo-agent/message-dir.ts +1 -1
  1054. package/src/tools/call-omo-agent/message-processor.ts +86 -86
  1055. package/src/tools/call-omo-agent/message-storage-directory.ts +1 -1
  1056. package/src/tools/call-omo-agent/session-creator.ts +70 -70
  1057. package/src/tools/call-omo-agent/subagent-session-creator.ts +74 -74
  1058. package/src/tools/call-omo-agent/sync-executor.ts +148 -148
  1059. package/src/tools/call-omo-agent/tool-context-with-metadata.ts +10 -10
  1060. package/src/tools/call-omo-agent/tools.ts +192 -192
  1061. package/src/tools/call-omo-agent/types.ts +34 -34
  1062. package/src/tools/delegate-task/AGENTS.md +58 -58
  1063. package/src/tools/delegate-task/anthropic-categories.ts +62 -62
  1064. package/src/tools/delegate-task/available-models.ts +64 -64
  1065. package/src/tools/delegate-task/background-continuation.ts +68 -68
  1066. package/src/tools/delegate-task/background-task.ts +165 -165
  1067. package/src/tools/delegate-task/builtin-categories.ts +33 -33
  1068. package/src/tools/delegate-task/builtin-category-definition.ts +8 -8
  1069. package/src/tools/delegate-task/cancel-unstable-agent-task.ts +19 -19
  1070. package/src/tools/delegate-task/categories.ts +77 -77
  1071. package/src/tools/delegate-task/category-resolver.ts +310 -310
  1072. package/src/tools/delegate-task/constants.ts +351 -351
  1073. package/src/tools/delegate-task/delegated-model-config.ts +20 -20
  1074. package/src/tools/delegate-task/error-formatting.ts +51 -51
  1075. package/src/tools/delegate-task/executor-types.ts +39 -39
  1076. package/src/tools/delegate-task/executor.ts +16 -16
  1077. package/src/tools/delegate-task/fallback-entry-resolution.ts +27 -27
  1078. package/src/tools/delegate-task/fallback-entry-settings.ts +20 -20
  1079. package/src/tools/delegate-task/google-categories.ts +130 -130
  1080. package/src/tools/delegate-task/index.ts +4 -4
  1081. package/src/tools/delegate-task/kimi-categories.ts +40 -40
  1082. package/src/tools/delegate-task/model-selection.ts +201 -201
  1083. package/src/tools/delegate-task/model-string-parser.ts +63 -63
  1084. package/src/tools/delegate-task/openai-categories.ts +128 -128
  1085. package/src/tools/delegate-task/parent-context-resolver.ts +47 -47
  1086. package/src/tools/delegate-task/prompt-builder.ts +107 -107
  1087. package/src/tools/delegate-task/resolve-call-id.ts +5 -5
  1088. package/src/tools/delegate-task/skill-resolver.ts +22 -22
  1089. package/src/tools/delegate-task/sub-agent.ts +70 -70
  1090. package/src/tools/delegate-task/subagent-discovery.ts +152 -152
  1091. package/src/tools/delegate-task/subagent-resolver.ts +225 -225
  1092. package/src/tools/delegate-task/sync-continuation-deps.ts +9 -9
  1093. package/src/tools/delegate-task/sync-continuation.ts +149 -149
  1094. package/src/tools/delegate-task/sync-prompt-sender.ts +137 -137
  1095. package/src/tools/delegate-task/sync-result-fetcher.ts +60 -60
  1096. package/src/tools/delegate-task/sync-session-creator.ts +29 -29
  1097. package/src/tools/delegate-task/sync-session-poller.ts +188 -188
  1098. package/src/tools/delegate-task/sync-task-deps.ts +13 -13
  1099. package/src/tools/delegate-task/sync-task-fallback.ts +68 -68
  1100. package/src/tools/delegate-task/sync-task.ts +243 -243
  1101. package/src/tools/delegate-task/time-formatter.ts +13 -13
  1102. package/src/tools/delegate-task/timing.ts +46 -46
  1103. package/src/tools/delegate-task/token-limiter.ts +123 -123
  1104. package/src/tools/delegate-task/tools.ts +259 -259
  1105. package/src/tools/delegate-task/types.ts +89 -89
  1106. package/src/tools/delegate-task/unstable-agent-task.ts +243 -243
  1107. package/src/tools/glob/cli.ts +206 -206
  1108. package/src/tools/glob/constants.ts +12 -12
  1109. package/src/tools/glob/index.ts +1 -1
  1110. package/src/tools/glob/result-formatter.ts +26 -26
  1111. package/src/tools/glob/tools.ts +49 -49
  1112. package/src/tools/glob/types.ts +23 -23
  1113. package/src/tools/grep/cli.ts +279 -279
  1114. package/src/tools/grep/constants.ts +141 -141
  1115. package/src/tools/grep/downloader.ts +128 -128
  1116. package/src/tools/grep/index.ts +1 -1
  1117. package/src/tools/grep/result-formatter.ts +60 -60
  1118. package/src/tools/grep/tools.ts +75 -75
  1119. package/src/tools/grep/types.ts +42 -42
  1120. package/src/tools/hashline-edit/AGENTS.md +92 -92
  1121. package/src/tools/hashline-edit/autocorrect-replacement-lines.ts +179 -179
  1122. package/src/tools/hashline-edit/constants.ts +10 -10
  1123. package/src/tools/hashline-edit/diff-utils.ts +53 -53
  1124. package/src/tools/hashline-edit/edit-deduplication.ts +43 -43
  1125. package/src/tools/hashline-edit/edit-operation-primitives.ts +126 -126
  1126. package/src/tools/hashline-edit/edit-operations.ts +103 -103
  1127. package/src/tools/hashline-edit/edit-ordering.ts +56 -56
  1128. package/src/tools/hashline-edit/edit-text-normalization.ts +111 -111
  1129. package/src/tools/hashline-edit/file-text-canonicalization.ts +44 -44
  1130. package/src/tools/hashline-edit/formatter-trigger.ts +132 -132
  1131. package/src/tools/hashline-edit/hash-computation.ts +154 -154
  1132. package/src/tools/hashline-edit/hashline-chunk-formatter.ts +52 -52
  1133. package/src/tools/hashline-edit/hashline-edit-diff.ts +31 -31
  1134. package/src/tools/hashline-edit/hashline-edit-executor.ts +197 -197
  1135. package/src/tools/hashline-edit/index.ts +20 -20
  1136. package/src/tools/hashline-edit/normalize-edits.ts +95 -95
  1137. package/src/tools/hashline-edit/tool-description.ts +95 -95
  1138. package/src/tools/hashline-edit/tools.ts +42 -42
  1139. package/src/tools/hashline-edit/types.ts +20 -20
  1140. package/src/tools/hashline-edit/validation.ts +181 -181
  1141. package/src/tools/index.ts +64 -64
  1142. package/src/tools/interactive-bash/constants.ts +18 -18
  1143. package/src/tools/interactive-bash/index.ts +4 -4
  1144. package/src/tools/interactive-bash/tmux-path-resolver.ts +71 -71
  1145. package/src/tools/interactive-bash/tools.ts +136 -136
  1146. package/src/tools/look-at/assistant-message-extractor.ts +67 -67
  1147. package/src/tools/look-at/constants.ts +3 -3
  1148. package/src/tools/look-at/image-converter.ts +164 -164
  1149. package/src/tools/look-at/index.ts +3 -3
  1150. package/src/tools/look-at/look-at-arguments.ts +34 -34
  1151. package/src/tools/look-at/mime-type-inference.ts +94 -94
  1152. package/src/tools/look-at/multimodal-agent-metadata.ts +166 -166
  1153. package/src/tools/look-at/multimodal-fallback-chain.ts +66 -66
  1154. package/src/tools/look-at/session-poller.ts +42 -42
  1155. package/src/tools/look-at/tools.ts +245 -245
  1156. package/src/tools/look-at/types.ts +5 -5
  1157. package/src/tools/lsp/AGENTS.md +70 -70
  1158. package/src/tools/lsp/client.ts +3 -3
  1159. package/src/tools/lsp/config.ts +3 -3
  1160. package/src/tools/lsp/constants.ts +7 -7
  1161. package/src/tools/lsp/diagnostics-tool.ts +75 -75
  1162. package/src/tools/lsp/directory-diagnostics.ts +163 -163
  1163. package/src/tools/lsp/find-references-tool.ts +43 -43
  1164. package/src/tools/lsp/goto-definition-tool.ts +42 -42
  1165. package/src/tools/lsp/index.ts +9 -9
  1166. package/src/tools/lsp/infer-extension.ts +65 -65
  1167. package/src/tools/lsp/language-config.ts +5 -5
  1168. package/src/tools/lsp/language-mappings.ts +171 -171
  1169. package/src/tools/lsp/lsp-client-connection.ts +66 -66
  1170. package/src/tools/lsp/lsp-client-transport.ts +210 -210
  1171. package/src/tools/lsp/lsp-client-wrapper.ts +116 -116
  1172. package/src/tools/lsp/lsp-client.ts +129 -129
  1173. package/src/tools/lsp/lsp-formatters.ts +193 -193
  1174. package/src/tools/lsp/lsp-manager-process-cleanup.ts +83 -83
  1175. package/src/tools/lsp/lsp-manager-temp-directory-cleanup.ts +29 -29
  1176. package/src/tools/lsp/lsp-process.ts +158 -158
  1177. package/src/tools/lsp/lsp-server.ts +217 -217
  1178. package/src/tools/lsp/rename-tools.ts +53 -53
  1179. package/src/tools/lsp/server-config-loader.ts +116 -116
  1180. package/src/tools/lsp/server-definitions.ts +91 -91
  1181. package/src/tools/lsp/server-installation.ts +58 -58
  1182. package/src/tools/lsp/server-path-bases.ts +16 -16
  1183. package/src/tools/lsp/server-resolution.ts +109 -109
  1184. package/src/tools/lsp/symbols-tool.ts +76 -76
  1185. package/src/tools/lsp/tools.ts +5 -5
  1186. package/src/tools/lsp/types.ts +124 -124
  1187. package/src/tools/lsp/workspace-edit.ts +121 -121
  1188. package/src/tools/session-manager/constants.ts +93 -93
  1189. package/src/tools/session-manager/file-storage.ts +203 -203
  1190. package/src/tools/session-manager/index.ts +3 -3
  1191. package/src/tools/session-manager/sdk-storage.ts +135 -135
  1192. package/src/tools/session-manager/sdk-unavailable.ts +43 -43
  1193. package/src/tools/session-manager/session-formatter.ts +199 -199
  1194. package/src/tools/session-manager/storage.ts +161 -161
  1195. package/src/tools/session-manager/tools.ts +197 -197
  1196. package/src/tools/session-manager/types.ts +99 -99
  1197. package/src/tools/shared/semaphore.ts +32 -32
  1198. package/src/tools/skill/constants.ts +14 -14
  1199. package/src/tools/skill/description-formatter.ts +61 -61
  1200. package/src/tools/skill/index.ts +3 -3
  1201. package/src/tools/skill/mcp-capability-formatter.ts +97 -97
  1202. package/src/tools/skill/native-skills.ts +62 -62
  1203. package/src/tools/skill/scope-priority.ts +17 -17
  1204. package/src/tools/skill/skill-body.ts +26 -26
  1205. package/src/tools/skill/skill-matcher.ts +40 -40
  1206. package/src/tools/skill/tools.ts +196 -196
  1207. package/src/tools/skill/types.ts +48 -48
  1208. package/src/tools/skill-mcp/constants.ts +9 -9
  1209. package/src/tools/skill-mcp/index.ts +3 -3
  1210. package/src/tools/skill-mcp/tools.ts +204 -204
  1211. package/src/tools/skill-mcp/types.ts +8 -8
  1212. package/src/tools/slashcommand/command-discovery.ts +161 -161
  1213. package/src/tools/slashcommand/command-output-formatter.ts +75 -75
  1214. package/src/tools/slashcommand/index.ts +2 -2
  1215. package/src/tools/slashcommand/types.ts +21 -21
  1216. package/src/tools/task/index.ts +7 -7
  1217. package/src/tools/task/task-create.ts +113 -113
  1218. package/src/tools/task/task-get.ts +47 -47
  1219. package/src/tools/task/task-list.ts +79 -79
  1220. package/src/tools/task/task-update.ts +152 -152
  1221. package/src/tools/task/todo-sync.ts +205 -205
  1222. package/src/tools/task/types.ts +77 -77
  1223. package/scripts/check_docs.ts +0 -129
  1224. package/scripts/doctor.ts +0 -522
  1225. package/scripts/measure_prompts.ts +0 -193
  1226. package/scripts/test_routing.ts +0 -294
@@ -1,536 +1,536 @@
1
- import type { BuiltinSkill } from "../types"
2
-
3
- export const reviewWorkSkill: BuiltinSkill = {
4
- name: "review-work",
5
- description:
6
- "Post-implementation review orchestrator. Launches 5 parallel background sub-agents: critic (goal/constraint verification), critic (code quality), critic (security), unspecified-high (hands-on QA execution), researcher (context mining from GitHub/git/Slack/Notion). All must pass for review to pass. MUST USE after completing any significant implementation work. Triggers: 'review work', 'review my work', 'review changes', 'QA my work', 'verify implementation', 'check my work', 'validate changes', 'post-implementation review'.",
7
- template: `# Review Work - 5-Agent Parallel Review Orchestrator
8
-
9
- Launch 5 specialized sub-agents in parallel to review completed implementation work from every angle. All 5 must pass for the review to pass. If even ONE fails, the review fails.
10
-
11
- The 5 agents cover complementary concerns - together they form a comprehensive review that no single reviewer could match:
12
-
13
- | # | Agent | Type | Role | Focus Level |
14
- |---|-------|------|------|-------------|
15
- | 1 | Goal Verifier | critic | Did we build what was asked? | MAIN |
16
- | 2 | QA Executor | unspecified-high | Does it actually work? | MAIN |
17
- | 3 | Code Reviewer | critic | Is the code well-written? | MAIN |
18
- | 4 | Security Auditor | critic | Is it secure? | SUB |
19
- | 5 | Context Miner | researcher | Did we miss any context? | MAIN |
20
-
21
- ---
22
-
23
- ## Phase 0: Gather Review Context
24
-
25
- Before launching agents, collect these inputs. Extract from conversation history first - the user's original request, constraints discussed, and decisions made are usually already in the thread. Only ask if truly missing.
26
-
27
- <required_inputs>
28
-
29
- - **GOAL**: The original objective. What was the user trying to achieve? Pull from the initial request in this conversation.
30
- - **CONSTRAINTS**: Rules, requirements, or limitations. Tech stack restrictions, performance targets, API contracts, design patterns to follow, backward compatibility needs.
31
- - **BACKGROUND**: Why this work was needed. Business context, user stories, related systems, prior decisions that informed the approach.
32
- - **CHANGED_FILES**: Auto-collect via \`git diff --name-only HEAD~1\` or against the appropriate base (branch point, specific commit).
33
- - **DIFF**: Auto-collect via \`git diff HEAD~1\` or against the appropriate base.
34
- - **FILE_CONTENTS**: Read the full content of each changed file (not just the diff). critic agents cannot read files - they need full context in the prompt.
35
- - **RUN_COMMAND**: How to start/run the application. Check \`package.json\` scripts, \`Makefile\`, \`docker-compose.yml\`, or ask the user.
36
-
37
- </required_inputs>
38
-
39
-
40
- **NEVER CHECKOUT A PR BRANCH IN THE MAIN WORKTREE. ALWAYS CREATE A NEW GIT WORKTREE (\`git worktree add\`) AND WORK THERE. THIS PREVENTS CONTAMINATING THE USER'S WORKING DIRECTORY WITH UNRELATED BRANCH STATE.**
41
-
42
- **Auto-collection sequence:**
43
-
44
- \`\`\`bash
45
- # 1. Get changed files
46
- git diff --name-only HEAD~1 # or: git diff --name-only main...HEAD
47
-
48
- # 2. Get diff
49
- git diff HEAD~1 # or: git diff main...HEAD
50
-
51
- # 3. Detect run command
52
- # Check package.json -> "scripts.dev" or "scripts.start"
53
- # Check Makefile -> default target
54
- # Check docker-compose.yml -> services
55
- \`\`\`
56
-
57
- For GOAL, CONSTRAINTS, BACKGROUND - review the full conversation history. The user's original message almost always contains the goal. Constraints often emerge during discussion. If anything critical is ambiguous, ask ONE focused question - not a checklist.
58
-
59
- ---
60
-
61
- ## Phase 1: Launch 5 Agents
62
-
63
- Launch ALL 5 in a single turn. Every agent uses \`run_in_background=true\`. No sequential launches. No waiting between them.
64
-
65
- **Critic agents receive everything in the prompt** (they cannot read files or run commands). Include DIFF + FILE_CONTENTS + all context directly in the prompt text.
66
-
67
- **unspecified-high agents are autonomous** - they can read files, run commands, and use tools. Give them goals and pointers, not raw content dumps.
68
-
69
- ---
70
-
71
- ### Agent 1: Goal & Constraint Verification (Critic) - MAIN
72
-
73
- This agent answers: "Did we build exactly what was asked, within the rules we were given?"
74
-
75
- \`\`\`
76
- task(
77
- subagent_type="critic",
78
- run_in_background=true,
79
- load_skills=[],
80
- description="Verify implementation against original goal and constraints",
81
- prompt="""
82
- <review_type>GOAL & CONSTRAINT VERIFICATION</review_type>
83
-
84
- <original_goal>
85
- {GOAL - paste the user's original request and any clarifications}
86
- </original_goal>
87
-
88
- <constraints>
89
- {CONSTRAINTS - every rule, requirement, or limitation discussed}
90
- </constraints>
91
-
92
- <background>
93
- {BACKGROUND - why this work was needed, broader context}
94
- </background>
95
-
96
- <changed_files>
97
- {CHANGED_FILES - list of modified file paths}
98
- </changed_files>
99
-
100
- <file_contents>
101
- {FILE_CONTENTS - full content of every changed file, clearly delimited per file}
102
- </file_contents>
103
-
104
- <diff>
105
- {DIFF - the actual git diff}
106
- </diff>
107
-
108
- Review whether this implementation correctly and completely achieves the stated goal within the given constraints. Be obsessively thorough - the point of this review is to catch what the implementer missed.
109
-
110
- REVIEW CHECKLIST:
111
-
112
- 1. **Goal Completeness**: Break the goal into every sub-requirement (explicit AND implied). For each, mark ACHIEVED / MISSED / PARTIAL. Missing even one implied requirement that a reasonable engineer would have addressed = PARTIAL at minimum.
113
-
114
- 2. **Constraint Compliance**: List every constraint. For each, verify compliance with specific code evidence. A constraint violated = automatic FAIL.
115
-
116
- 3. **Requirement Gaps**: Requirements the user clearly wanted but didn't spell out. Things implied by the goal or background that a thoughtful engineer would have included.
117
-
118
- 4. **Over-Engineering**: Anything added that wasn't requested - unnecessary abstractions, extra features, premature optimizations, speculative generality. Flag these as scope creep.
119
-
120
- 5. **Edge Cases**: Given the goal, what inputs or scenarios would break this? Trace through at least 5 edge cases mentally.
121
-
122
- 6. **Behavioral Correctness**: Walk through the code logic for 3+ representative scenarios. Does the code actually produce the expected behavior in each case?
123
-
124
- OUTPUT FORMAT:
125
- <verdict>PASS or FAIL</verdict>
126
- <confidence>HIGH / MEDIUM / LOW</confidence>
127
- <summary>1-3 sentence overall assessment</summary>
128
- <goal_breakdown>
129
- For each sub-requirement:
130
- - [ACHIEVED/MISSED/PARTIAL] Requirement description
131
- - Evidence: specific code reference or gap
132
- </goal_breakdown>
133
- <constraint_compliance>
134
- For each constraint:
135
- - [ACHIEVED/MISSED] Constraint description - evidence
136
- </constraint_compliance>
137
- <findings>
138
- - [PASS/FAIL/WARN] Category: Description
139
- - File: path (line range if applicable)
140
- - Evidence: specific code or logic reference
141
- </findings>
142
- <blocking_issues>Issues that MUST be fixed. Empty if PASS.</blocking_issues>
143
- """)
144
- \`\`\`
145
-
146
- ---
147
-
148
- ### Agent 2: QA via App Execution (unspecified-high) - MAIN
149
-
150
- This agent answers: "Does it actually work when you run it?"
151
-
152
- The QA agent follows a structured process: brainstorm scenarios exhaustively first, then self-review and augment, then create a task list, then execute systematically.
153
-
154
- \`\`\`
155
- task(
156
- category="unspecified-high",
157
- run_in_background=true,
158
- load_skills=["playwright", "dev-browser"],
159
- description="QA by actually running and using the application",
160
- prompt="""
161
- <review_type>QA - HANDS-ON APP EXECUTION</review_type>
162
-
163
- <original_goal>
164
- {GOAL}
165
- </original_goal>
166
-
167
- <constraints>
168
- {CONSTRAINTS}
169
- </constraints>
170
-
171
- <changed_files>
172
- {CHANGED_FILES}
173
- </changed_files>
174
-
175
- <run_command>
176
- {RUN_COMMAND - how to start the application, or "unknown" if not determined}
177
- </run_command>
178
-
179
- You are a QA engineer. Your job is to RUN the application and verify it works through hands-on testing. You do not review code - you test behavior.
180
-
181
- MANDATORY PROCESS (follow in order):
182
-
183
- ### Step 1: Scenario Brainstorm
184
-
185
- Before touching the app, write down EVERY test scenario you can think of. Be exhaustive. Think about:
186
-
187
- - **Happy paths**: The primary use cases this implementation enables. What's the main thing the user wanted to do?
188
- - **Boundary conditions**: Empty inputs, maximum-length inputs, zero values, negative numbers, special characters, unicode, very large datasets.
189
- - **Error paths**: Invalid inputs, network failures, missing files, permission denied, timeout conditions.
190
- - **Regression scenarios**: Existing features that touch the same code paths. Things that worked before and must still work.
191
- - **State transitions**: What happens when you do things out of order? Rapid repeated actions? Concurrent usage?
192
- - **UX scenarios** (if applicable): Layout on different sizes, keyboard navigation, screen reader compatibility, loading states, error messages.
193
- - **Integration points**: Does this feature interact with external services, databases, or other modules? Test those boundaries.
194
-
195
- Write each scenario as a one-liner with expected behavior. Aim for 15-30 scenarios minimum.
196
-
197
- ### Step 2: Scenario Augmentation
198
-
199
- Review your scenario list with fresh eyes. For each scenario, ask:
200
- - "What could go wrong here that I haven't considered?"
201
- - "What would a malicious or careless user do?"
202
- - "What environmental conditions could affect this?" (disk full, slow network, expired tokens)
203
-
204
- Add at least 5 more scenarios from this reflection. Group scenarios by priority: P0 (must pass), P1 (should pass), P2 (nice to pass).
205
-
206
- ### Step 3: Create Task List
207
-
208
- Convert your augmented scenario list into a structured task list (use TaskCreate/TaskUpdate or your todo system). Each task = one test scenario with:
209
- - Test name
210
- - Steps to execute
211
- - Expected result
212
- - Priority (P0/P1/P2)
213
-
214
- ### Step 4: Execute Systematically
215
-
216
- Work through the task list in priority order (P0 first). For each test:
217
-
218
- 1. Execute the test steps
219
- 2. Record actual result
220
- 3. Compare with expected result
221
- 4. Mark PASS or FAIL
222
- 5. If FAIL: capture evidence (screenshot, terminal output, error message)
223
- 6. Mark the task complete
224
-
225
- **Execution guidance by app type:**
226
- - **Web app**: Use playwright/dev-browser to navigate, click, fill forms, verify visual output.
227
- - **CLI tool**: Run commands with various arguments, pipe inputs, check exit codes and output.
228
- - **Library/SDK**: Write and execute a test script that imports and exercises the public API.
229
- - **Backend API**: Use curl/httpie to hit endpoints with various payloads, verify response codes and bodies.
230
- - **Mobile/Desktop**: If not directly runnable, write integration tests and execute them.
231
-
232
- If the app cannot be started (build failure), that's an immediate FAIL - no need to continue.
233
-
234
- ### Step 5: Compile Results
235
-
236
- OUTPUT FORMAT:
237
- <verdict>PASS or FAIL</verdict>
238
- <confidence>HIGH / MEDIUM / LOW</confidence>
239
- <summary>1-3 sentence overall assessment</summary>
240
- <scenario_coverage>
241
- Total scenarios: N
242
- P0: X tested, Y passed
243
- P1: X tested, Y passed
244
- P2: X tested, Y passed
245
- </scenario_coverage>
246
- <test_results>
247
- For each test:
248
- - [PASS/FAIL] Test name (Priority)
249
- - Steps: What you did
250
- - Expected: What should happen
251
- - Actual: What actually happened
252
- - Evidence: Screenshot path or terminal output snippet (if FAIL)
253
- </test_results>
254
- <blocking_issues>P0 or P1 failures only. Empty if PASS.</blocking_issues>
255
- """)
256
- \`\`\`
257
-
258
- ---
259
-
260
- ### Agent 3: Code Quality Review (Critic) - MAIN
261
-
262
- This agent answers: "Is the code well-written, maintainable, and consistent with the codebase?"
263
-
264
- \`\`\`
265
- task(
266
- subagent_type="critic",
267
- run_in_background=true,
268
- load_skills=[],
269
- description="Review overall code quality, patterns, and architecture",
270
- prompt="""
271
- <review_type>CODE QUALITY REVIEW</review_type>
272
-
273
- <changed_files>
274
- {CHANGED_FILES}
275
- </changed_files>
276
-
277
- <file_contents>
278
- {FILE_CONTENTS - full content of changed files AND neighboring files that show existing patterns}
279
- </file_contents>
280
-
281
- <diff>
282
- {DIFF}
283
- </diff>
284
-
285
- <background>
286
- {BACKGROUND}
287
- </background>
288
-
289
- You are a senior staff engineer conducting a code review. Your standard: "Would I approve this PR without comments?"
290
-
291
- REVIEW DIMENSIONS (examine each):
292
-
293
- 1. **Correctness**: Logic errors, off-by-one, null/undefined handling, race conditions, resource leaks, unhandled promise rejections.
294
-
295
- 2. **Pattern Consistency**: Does new code follow the codebase's established patterns? Compare with the neighboring files provided. Introducing a new pattern where one already exists = finding.
296
-
297
- 3. **Naming & Readability**: Clear variable/function/type names? Self-documenting code? Would another engineer understand this without explanation?
298
-
299
- 4. **Error Handling**: Errors properly caught, logged, and propagated? No empty catch blocks? No swallowed errors? User-facing errors are helpful?
300
-
301
- 5. **Type Safety**: Any \`as any\`, \`@ts-ignore\`, \`@ts-expect-error\`? Proper generic usage? Correct type narrowing? (If TypeScript/typed language)
302
-
303
- 6. **Performance**: N+1 queries? Unnecessary re-renders? Blocking I/O on hot paths? Memory leaks? Unbounded growth?
304
-
305
- 7. **Abstraction Level**: Right level of abstraction? No copy-paste duplication? But also no premature over-abstraction?
306
-
307
- 8. **Testing**: New behaviors covered by tests? Tests are meaningful, not just coverage padding? Test names describe scenarios?
308
-
309
- 9. **API Design**: Public interfaces clean and consistent with existing APIs? Breaking changes flagged?
310
-
311
- 10. **Tech Debt**: Does this introduce new tech debt? Or create coupling that will be painful to change?
312
-
313
- Categorize each finding by severity:
314
- - **CRITICAL**: Will cause bugs, data loss, or crashes in production
315
- - **MAJOR**: Significant quality issue that should be fixed before merge
316
- - **MINOR**: Improvement worth making but not blocking
317
- - **NITPICK**: Style preference, optional
318
-
319
- OUTPUT FORMAT:
320
- <verdict>PASS or FAIL</verdict>
321
- <confidence>HIGH / MEDIUM / LOW</confidence>
322
- <summary>1-3 sentence overall assessment</summary>
323
- <findings>
324
- - [CRITICAL/MAJOR/MINOR/NITPICK] Category: Description
325
- - File: path (line range)
326
- - Current: what the code does now
327
- - Suggestion: how to improve
328
- </findings>
329
- <blocking_issues>CRITICAL and MAJOR items only. Empty if PASS.</blocking_issues>
330
- """)
331
- \`\`\`
332
-
333
- ---
334
-
335
- ### Agent 4: Security Review (Critic) - SUB
336
-
337
- This agent answers: "Are there security vulnerabilities in these changes?"
338
-
339
- This is supplementary - it focuses exclusively on security. It does NOT comment on code style, architecture, or functionality unless those directly create a security risk.
340
-
341
- \`\`\`
342
- task(
343
- subagent_type="critic",
344
- run_in_background=true,
345
- load_skills=[],
346
- description="Security-focused review of implementation changes",
347
- prompt="""
348
- <review_type>SECURITY REVIEW (supplementary)</review_type>
349
-
350
- <changed_files>
351
- {CHANGED_FILES}
352
- </changed_files>
353
-
354
- <file_contents>
355
- {FILE_CONTENTS - full content of changed files}
356
- </file_contents>
357
-
358
- <diff>
359
- {DIFF}
360
- </diff>
361
-
362
- You are a security engineer. Review this diff exclusively for security vulnerabilities and anti-patterns. Ignore code style, naming, architecture - unless it directly creates a security risk.
363
-
364
- SECURITY CHECKLIST:
365
-
366
- 1. **Input Validation**: User inputs sanitized? SQL injection, XSS, command injection, SSRF vectors?
367
- 2. **Auth & AuthZ**: Authentication checks where needed? Authorization verified for each action? Privilege escalation paths?
368
- 3. **Secrets & Credentials**: Hardcoded secrets, API keys, tokens in code or config? Secrets in logs?
369
- 4. **Data Exposure**: Sensitive data in logs? PII in error messages? Over-exposed API responses?
370
- 5. **Dependencies**: New dependencies added? Known CVEs? Suspicious or unnecessary packages?
371
- 6. **Cryptography**: Proper algorithms? No custom crypto? Secure random? Proper key management?
372
- 7. **File & Path**: Path traversal? Unsafe file operations? Symlink following?
373
- 8. **Network**: CORS configured correctly? Rate limiting? TLS enforced? Certificate validation?
374
- 9. **Error Leakage**: Stack traces exposed to users? Internal details in error responses?
375
- 10. **Supply Chain**: Lockfile updated consistently? Dependency pinning?
376
-
377
- OUTPUT FORMAT:
378
- <verdict>PASS or FAIL</verdict>
379
- <severity>CRITICAL / HIGH / MEDIUM / LOW / NONE</severity>
380
- <summary>1-3 sentence overall assessment</summary>
381
- <findings>
382
- - [CRITICAL/HIGH/MEDIUM/LOW] Category: Description
383
- - File: path (line range)
384
- - Risk: What could an attacker do?
385
- - Remediation: Specific fix
386
- </findings>
387
- <blocking_issues>CRITICAL and HIGH items only. Empty if PASS.</blocking_issues>
388
- """)
389
- \`\`\`
390
-
391
- ---
392
-
393
- ### Agent 5: Context Mining (unspecified-high) - MAIN
394
-
395
- This agent answers: "Did we miss any context that should have informed this implementation?"
396
-
397
- \`\`\`
398
- task(
399
- category="unspecified-high",
400
- run_in_background=true,
401
- load_skills=["git-master"],
402
- description="Mine all accessible contexts for missed requirements or background knowledge",
403
- prompt="""
404
- <review_type>CONTEXT MINING - MISSED REQUIREMENTS & BACKGROUND</review_type>
405
-
406
- <original_goal>
407
- {GOAL}
408
- </original_goal>
409
-
410
- <constraints>
411
- {CONSTRAINTS}
412
- </constraints>
413
-
414
- <changed_files>
415
- {CHANGED_FILES}
416
- </changed_files>
417
-
418
- <background>
419
- {BACKGROUND}
420
- </background>
421
-
422
- You are an investigator. Your mission: search every accessible information source to find context that should have informed this implementation but might have been missed. The question: "Is there something we should have known but didn't?"
423
-
424
- SOURCES TO SEARCH (use every available tool):
425
-
426
- 1. **Git History** (ALWAYS search):
427
- - \`git log --oneline -20 -- {each changed file}\` - recent changes and their reasons
428
- - \`git blame {critical sections}\` - who wrote what and when
429
- - \`git log --all --grep="{keywords from goal}"\` - related commits
430
- - Look for reverted commits, TODO/FIXME/HACK comments in history
431
-
432
- 2. **GitHub** (if \`gh\` CLI available):
433
- - \`gh issue list --search "{keywords}"\` - related open/closed issues
434
- - \`gh pr list --search "{keywords}" --state all\` - related PRs and their review comments
435
- - Check if any issue is specifically linked to this work
436
- - Look at review comments on past PRs touching these files
437
-
438
- 3. **Communication Channels** (if MCP tools available):
439
- - Slack: search for messages mentioning the feature, file names, or related keywords
440
- - Notion: search for design docs, RFCs, ADRs related to this feature
441
- - Discord: relevant discussions
442
-
443
- 4. **Codebase Cross-References** (ALWAYS search):
444
- - Files that import or reference the changed modules
445
- - Tests that might need updating due to behavior changes
446
- - Documentation (README, docs/, comments) that references changed behavior
447
- - Config files that might need corresponding updates
448
- - Related features in the same domain
449
-
450
- WHAT TO LOOK FOR:
451
-
452
- - Requirements mentioned in issues/PRs that the implementation misses
453
- - Past decisions explaining WHY code was written a certain way - and whether new changes respect those reasons
454
- - Related systems or features affected by these changes
455
- - Warnings from previous developers (PR review comments, inline TODOs, commit messages)
456
- - Migration or deprecation notes that affect the changed code
457
- - Design decisions documented outside the codebase (Notion, Slack, ADRs)
458
-
459
- OUTPUT FORMAT:
460
- <verdict>PASS or FAIL</verdict>
461
- <confidence>HIGH / MEDIUM / LOW</confidence>
462
- <summary>1-3 sentence overall assessment</summary>
463
- <sources_searched>
464
- - [SEARCHED/SKIPPED] Source name - what was searched (or why it wasn't accessible)
465
- </sources_searched>
466
- <discovered_context>
467
- For each discovery:
468
- - Source: Where found (git commit abc123, GitHub issue #42, Slack message, etc.)
469
- - Finding: What was found
470
- - Relevance: How it relates to the current work
471
- - Impact: [BLOCKING / IMPORTANT / FYI]
472
- </discovered_context>
473
- <missed_requirements>Requirements the implementation should address but doesn't. Empty if none.</missed_requirements>
474
- <blocking_issues>BLOCKING items only. Empty if PASS.</blocking_issues>
475
- """)
476
- \`\`\`
477
-
478
- ---
479
-
480
- ## Phase 2: Wait & Collect
481
-
482
- After launching all 5 agents in one turn, **end your response**. Wait for system notifications as each agent completes.
483
-
484
- As each completes, collect via \`background_output(task_id="...")\`. Store each verdict:
485
-
486
- | Agent | Verdict | Notes |
487
- |-------|---------|-------|
488
- | 1. Goal Verification | pending | - |
489
- | 2. QA Execution | pending | - |
490
- | 3. Code Quality | pending | - |
491
- | 4. Security | pending | - |
492
- | 5. Context Mining | pending | - |
493
-
494
- Do NOT deliver the final report until ALL 5 have completed.
495
-
496
- ---
497
-
498
- ## Phase 3: Deliver Verdict
499
-
500
- <verdict_logic>
501
-
502
- ALL 5 agents returned PASS → **REVIEW PASSED**
503
- ANY agent returned FAIL → **REVIEW FAILED - criteria not met**
504
-
505
- </verdict_logic>
506
-
507
- Compile the final report in this format:
508
-
509
- \`\`\`markdown
510
- # Review Work - Final Report
511
-
512
- ## Overall Verdict: PASSED / FAILED
513
-
514
- | # | Review Area | Agent Type | Verdict | Confidence |
515
- |---|------------|------------|---------|------------|
516
- | 1 | Goal & Constraint Verification | Critic | PASS/FAIL | HIGH/MED/LOW |
517
- | 2 | QA Execution | unspecified-high | PASS/FAIL | HIGH/MED/LOW |
518
- | 3 | Code Quality | Critic | PASS/FAIL | HIGH/MED/LOW |
519
- | 4 | Security (supplementary) | Critic | PASS/FAIL | Severity |
520
- | 5 | Context Mining | unspecified-high | PASS/FAIL | HIGH/MED/LOW |
521
-
522
- ## Blocking Issues
523
- [Aggregated from all agents - deduplicated, prioritized]
524
-
525
- ## Key Findings
526
- [Top 5-10 most important findings across all agents, grouped by theme]
527
-
528
- ## Recommendations
529
- [If FAILED: exactly what to fix, in priority order]
530
- [If PASSED: non-blocking suggestions worth considering]
531
- \`\`\`
532
-
533
- If FAILED - be specific. The user should know exactly what to fix and in what order. No vague "consider improving X" - state the problem, the file, and the fix.
534
-
535
- If PASSED - keep it short. Highlight any non-blocking suggestions, but don't turn a passing review into a lecture.`,
536
- }
1
+ import type { BuiltinSkill } from "../types"
2
+
3
+ export const reviewWorkSkill: BuiltinSkill = {
4
+ name: "review-work",
5
+ description:
6
+ "Post-implementation review orchestrator. Launches 5 parallel background sub-agents: critic (goal/constraint verification), critic (code quality), critic (security), unspecified-high (hands-on QA execution), researcher (context mining from GitHub/git/Slack/Notion). All must pass for review to pass. MUST USE after completing any significant implementation work. Triggers: 'review work', 'review my work', 'review changes', 'QA my work', 'verify implementation', 'check my work', 'validate changes', 'post-implementation review'.",
7
+ template: `# Review Work - 5-Agent Parallel Review Orchestrator
8
+
9
+ Launch 5 specialized sub-agents in parallel to review completed implementation work from every angle. All 5 must pass for the review to pass. If even ONE fails, the review fails.
10
+
11
+ The 5 agents cover complementary concerns - together they form a comprehensive review that no single reviewer could match:
12
+
13
+ | # | Agent | Type | Role | Focus Level |
14
+ |---|-------|------|------|-------------|
15
+ | 1 | Goal Verifier | critic | Did we build what was asked? | MAIN |
16
+ | 2 | QA Executor | unspecified-high | Does it actually work? | MAIN |
17
+ | 3 | Code Reviewer | critic | Is the code well-written? | MAIN |
18
+ | 4 | Security Auditor | critic | Is it secure? | SUB |
19
+ | 5 | Context Miner | researcher | Did we miss any context? | MAIN |
20
+
21
+ ---
22
+
23
+ ## Phase 0: Gather Review Context
24
+
25
+ Before launching agents, collect these inputs. Extract from conversation history first - the user's original request, constraints discussed, and decisions made are usually already in the thread. Only ask if truly missing.
26
+
27
+ <required_inputs>
28
+
29
+ - **GOAL**: The original objective. What was the user trying to achieve? Pull from the initial request in this conversation.
30
+ - **CONSTRAINTS**: Rules, requirements, or limitations. Tech stack restrictions, performance targets, API contracts, design patterns to follow, backward compatibility needs.
31
+ - **BACKGROUND**: Why this work was needed. Business context, user stories, related systems, prior decisions that informed the approach.
32
+ - **CHANGED_FILES**: Auto-collect via \`git diff --name-only HEAD~1\` or against the appropriate base (branch point, specific commit).
33
+ - **DIFF**: Auto-collect via \`git diff HEAD~1\` or against the appropriate base.
34
+ - **FILE_CONTENTS**: Read the full content of each changed file (not just the diff). critic agents cannot read files - they need full context in the prompt.
35
+ - **RUN_COMMAND**: How to start/run the application. Check \`package.json\` scripts, \`Makefile\`, \`docker-compose.yml\`, or ask the user.
36
+
37
+ </required_inputs>
38
+
39
+
40
+ **NEVER CHECKOUT A PR BRANCH IN THE MAIN WORKTREE. ALWAYS CREATE A NEW GIT WORKTREE (\`git worktree add\`) AND WORK THERE. THIS PREVENTS CONTAMINATING THE USER'S WORKING DIRECTORY WITH UNRELATED BRANCH STATE.**
41
+
42
+ **Auto-collection sequence:**
43
+
44
+ \`\`\`bash
45
+ # 1. Get changed files
46
+ git diff --name-only HEAD~1 # or: git diff --name-only main...HEAD
47
+
48
+ # 2. Get diff
49
+ git diff HEAD~1 # or: git diff main...HEAD
50
+
51
+ # 3. Detect run command
52
+ # Check package.json -> "scripts.dev" or "scripts.start"
53
+ # Check Makefile -> default target
54
+ # Check docker-compose.yml -> services
55
+ \`\`\`
56
+
57
+ For GOAL, CONSTRAINTS, BACKGROUND - review the full conversation history. The user's original message almost always contains the goal. Constraints often emerge during discussion. If anything critical is ambiguous, ask ONE focused question - not a checklist.
58
+
59
+ ---
60
+
61
+ ## Phase 1: Launch 5 Agents
62
+
63
+ Launch ALL 5 in a single turn. Every agent uses \`run_in_background=true\`. No sequential launches. No waiting between them.
64
+
65
+ **Critic agents receive everything in the prompt** (they cannot read files or run commands). Include DIFF + FILE_CONTENTS + all context directly in the prompt text.
66
+
67
+ **unspecified-high agents are autonomous** - they can read files, run commands, and use tools. Give them goals and pointers, not raw content dumps.
68
+
69
+ ---
70
+
71
+ ### Agent 1: Goal & Constraint Verification (Critic) - MAIN
72
+
73
+ This agent answers: "Did we build exactly what was asked, within the rules we were given?"
74
+
75
+ \`\`\`
76
+ task(
77
+ subagent_type="critic",
78
+ run_in_background=true,
79
+ load_skills=[],
80
+ description="Verify implementation against original goal and constraints",
81
+ prompt="""
82
+ <review_type>GOAL & CONSTRAINT VERIFICATION</review_type>
83
+
84
+ <original_goal>
85
+ {GOAL - paste the user's original request and any clarifications}
86
+ </original_goal>
87
+
88
+ <constraints>
89
+ {CONSTRAINTS - every rule, requirement, or limitation discussed}
90
+ </constraints>
91
+
92
+ <background>
93
+ {BACKGROUND - why this work was needed, broader context}
94
+ </background>
95
+
96
+ <changed_files>
97
+ {CHANGED_FILES - list of modified file paths}
98
+ </changed_files>
99
+
100
+ <file_contents>
101
+ {FILE_CONTENTS - full content of every changed file, clearly delimited per file}
102
+ </file_contents>
103
+
104
+ <diff>
105
+ {DIFF - the actual git diff}
106
+ </diff>
107
+
108
+ Review whether this implementation correctly and completely achieves the stated goal within the given constraints. Be obsessively thorough - the point of this review is to catch what the implementer missed.
109
+
110
+ REVIEW CHECKLIST:
111
+
112
+ 1. **Goal Completeness**: Break the goal into every sub-requirement (explicit AND implied). For each, mark ACHIEVED / MISSED / PARTIAL. Missing even one implied requirement that a reasonable engineer would have addressed = PARTIAL at minimum.
113
+
114
+ 2. **Constraint Compliance**: List every constraint. For each, verify compliance with specific code evidence. A constraint violated = automatic FAIL.
115
+
116
+ 3. **Requirement Gaps**: Requirements the user clearly wanted but didn't spell out. Things implied by the goal or background that a thoughtful engineer would have included.
117
+
118
+ 4. **Over-Engineering**: Anything added that wasn't requested - unnecessary abstractions, extra features, premature optimizations, speculative generality. Flag these as scope creep.
119
+
120
+ 5. **Edge Cases**: Given the goal, what inputs or scenarios would break this? Trace through at least 5 edge cases mentally.
121
+
122
+ 6. **Behavioral Correctness**: Walk through the code logic for 3+ representative scenarios. Does the code actually produce the expected behavior in each case?
123
+
124
+ OUTPUT FORMAT:
125
+ <verdict>PASS or FAIL</verdict>
126
+ <confidence>HIGH / MEDIUM / LOW</confidence>
127
+ <summary>1-3 sentence overall assessment</summary>
128
+ <goal_breakdown>
129
+ For each sub-requirement:
130
+ - [ACHIEVED/MISSED/PARTIAL] Requirement description
131
+ - Evidence: specific code reference or gap
132
+ </goal_breakdown>
133
+ <constraint_compliance>
134
+ For each constraint:
135
+ - [ACHIEVED/MISSED] Constraint description - evidence
136
+ </constraint_compliance>
137
+ <findings>
138
+ - [PASS/FAIL/WARN] Category: Description
139
+ - File: path (line range if applicable)
140
+ - Evidence: specific code or logic reference
141
+ </findings>
142
+ <blocking_issues>Issues that MUST be fixed. Empty if PASS.</blocking_issues>
143
+ """)
144
+ \`\`\`
145
+
146
+ ---
147
+
148
+ ### Agent 2: QA via App Execution (unspecified-high) - MAIN
149
+
150
+ This agent answers: "Does it actually work when you run it?"
151
+
152
+ The QA agent follows a structured process: brainstorm scenarios exhaustively first, then self-review and augment, then create a task list, then execute systematically.
153
+
154
+ \`\`\`
155
+ task(
156
+ category="unspecified-high",
157
+ run_in_background=true,
158
+ load_skills=["playwright", "dev-browser"],
159
+ description="QA by actually running and using the application",
160
+ prompt="""
161
+ <review_type>QA - HANDS-ON APP EXECUTION</review_type>
162
+
163
+ <original_goal>
164
+ {GOAL}
165
+ </original_goal>
166
+
167
+ <constraints>
168
+ {CONSTRAINTS}
169
+ </constraints>
170
+
171
+ <changed_files>
172
+ {CHANGED_FILES}
173
+ </changed_files>
174
+
175
+ <run_command>
176
+ {RUN_COMMAND - how to start the application, or "unknown" if not determined}
177
+ </run_command>
178
+
179
+ You are a QA engineer. Your job is to RUN the application and verify it works through hands-on testing. You do not review code - you test behavior.
180
+
181
+ MANDATORY PROCESS (follow in order):
182
+
183
+ ### Step 1: Scenario Brainstorm
184
+
185
+ Before touching the app, write down EVERY test scenario you can think of. Be exhaustive. Think about:
186
+
187
+ - **Happy paths**: The primary use cases this implementation enables. What's the main thing the user wanted to do?
188
+ - **Boundary conditions**: Empty inputs, maximum-length inputs, zero values, negative numbers, special characters, unicode, very large datasets.
189
+ - **Error paths**: Invalid inputs, network failures, missing files, permission denied, timeout conditions.
190
+ - **Regression scenarios**: Existing features that touch the same code paths. Things that worked before and must still work.
191
+ - **State transitions**: What happens when you do things out of order? Rapid repeated actions? Concurrent usage?
192
+ - **UX scenarios** (if applicable): Layout on different sizes, keyboard navigation, screen reader compatibility, loading states, error messages.
193
+ - **Integration points**: Does this feature interact with external services, databases, or other modules? Test those boundaries.
194
+
195
+ Write each scenario as a one-liner with expected behavior. Aim for 15-30 scenarios minimum.
196
+
197
+ ### Step 2: Scenario Augmentation
198
+
199
+ Review your scenario list with fresh eyes. For each scenario, ask:
200
+ - "What could go wrong here that I haven't considered?"
201
+ - "What would a malicious or careless user do?"
202
+ - "What environmental conditions could affect this?" (disk full, slow network, expired tokens)
203
+
204
+ Add at least 5 more scenarios from this reflection. Group scenarios by priority: P0 (must pass), P1 (should pass), P2 (nice to pass).
205
+
206
+ ### Step 3: Create Task List
207
+
208
+ Convert your augmented scenario list into a structured task list (use TaskCreate/TaskUpdate or your todo system). Each task = one test scenario with:
209
+ - Test name
210
+ - Steps to execute
211
+ - Expected result
212
+ - Priority (P0/P1/P2)
213
+
214
+ ### Step 4: Execute Systematically
215
+
216
+ Work through the task list in priority order (P0 first). For each test:
217
+
218
+ 1. Execute the test steps
219
+ 2. Record actual result
220
+ 3. Compare with expected result
221
+ 4. Mark PASS or FAIL
222
+ 5. If FAIL: capture evidence (screenshot, terminal output, error message)
223
+ 6. Mark the task complete
224
+
225
+ **Execution guidance by app type:**
226
+ - **Web app**: Use playwright/dev-browser to navigate, click, fill forms, verify visual output.
227
+ - **CLI tool**: Run commands with various arguments, pipe inputs, check exit codes and output.
228
+ - **Library/SDK**: Write and execute a test script that imports and exercises the public API.
229
+ - **Backend API**: Use curl/httpie to hit endpoints with various payloads, verify response codes and bodies.
230
+ - **Mobile/Desktop**: If not directly runnable, write integration tests and execute them.
231
+
232
+ If the app cannot be started (build failure), that's an immediate FAIL - no need to continue.
233
+
234
+ ### Step 5: Compile Results
235
+
236
+ OUTPUT FORMAT:
237
+ <verdict>PASS or FAIL</verdict>
238
+ <confidence>HIGH / MEDIUM / LOW</confidence>
239
+ <summary>1-3 sentence overall assessment</summary>
240
+ <scenario_coverage>
241
+ Total scenarios: N
242
+ P0: X tested, Y passed
243
+ P1: X tested, Y passed
244
+ P2: X tested, Y passed
245
+ </scenario_coverage>
246
+ <test_results>
247
+ For each test:
248
+ - [PASS/FAIL] Test name (Priority)
249
+ - Steps: What you did
250
+ - Expected: What should happen
251
+ - Actual: What actually happened
252
+ - Evidence: Screenshot path or terminal output snippet (if FAIL)
253
+ </test_results>
254
+ <blocking_issues>P0 or P1 failures only. Empty if PASS.</blocking_issues>
255
+ """)
256
+ \`\`\`
257
+
258
+ ---
259
+
260
+ ### Agent 3: Code Quality Review (Critic) - MAIN
261
+
262
+ This agent answers: "Is the code well-written, maintainable, and consistent with the codebase?"
263
+
264
+ \`\`\`
265
+ task(
266
+ subagent_type="critic",
267
+ run_in_background=true,
268
+ load_skills=[],
269
+ description="Review overall code quality, patterns, and architecture",
270
+ prompt="""
271
+ <review_type>CODE QUALITY REVIEW</review_type>
272
+
273
+ <changed_files>
274
+ {CHANGED_FILES}
275
+ </changed_files>
276
+
277
+ <file_contents>
278
+ {FILE_CONTENTS - full content of changed files AND neighboring files that show existing patterns}
279
+ </file_contents>
280
+
281
+ <diff>
282
+ {DIFF}
283
+ </diff>
284
+
285
+ <background>
286
+ {BACKGROUND}
287
+ </background>
288
+
289
+ You are a senior staff engineer conducting a code review. Your standard: "Would I approve this PR without comments?"
290
+
291
+ REVIEW DIMENSIONS (examine each):
292
+
293
+ 1. **Correctness**: Logic errors, off-by-one, null/undefined handling, race conditions, resource leaks, unhandled promise rejections.
294
+
295
+ 2. **Pattern Consistency**: Does new code follow the codebase's established patterns? Compare with the neighboring files provided. Introducing a new pattern where one already exists = finding.
296
+
297
+ 3. **Naming & Readability**: Clear variable/function/type names? Self-documenting code? Would another engineer understand this without explanation?
298
+
299
+ 4. **Error Handling**: Errors properly caught, logged, and propagated? No empty catch blocks? No swallowed errors? User-facing errors are helpful?
300
+
301
+ 5. **Type Safety**: Any \`as any\`, \`@ts-ignore\`, \`@ts-expect-error\`? Proper generic usage? Correct type narrowing? (If TypeScript/typed language)
302
+
303
+ 6. **Performance**: N+1 queries? Unnecessary re-renders? Blocking I/O on hot paths? Memory leaks? Unbounded growth?
304
+
305
+ 7. **Abstraction Level**: Right level of abstraction? No copy-paste duplication? But also no premature over-abstraction?
306
+
307
+ 8. **Testing**: New behaviors covered by tests? Tests are meaningful, not just coverage padding? Test names describe scenarios?
308
+
309
+ 9. **API Design**: Public interfaces clean and consistent with existing APIs? Breaking changes flagged?
310
+
311
+ 10. **Tech Debt**: Does this introduce new tech debt? Or create coupling that will be painful to change?
312
+
313
+ Categorize each finding by severity:
314
+ - **CRITICAL**: Will cause bugs, data loss, or crashes in production
315
+ - **MAJOR**: Significant quality issue that should be fixed before merge
316
+ - **MINOR**: Improvement worth making but not blocking
317
+ - **NITPICK**: Style preference, optional
318
+
319
+ OUTPUT FORMAT:
320
+ <verdict>PASS or FAIL</verdict>
321
+ <confidence>HIGH / MEDIUM / LOW</confidence>
322
+ <summary>1-3 sentence overall assessment</summary>
323
+ <findings>
324
+ - [CRITICAL/MAJOR/MINOR/NITPICK] Category: Description
325
+ - File: path (line range)
326
+ - Current: what the code does now
327
+ - Suggestion: how to improve
328
+ </findings>
329
+ <blocking_issues>CRITICAL and MAJOR items only. Empty if PASS.</blocking_issues>
330
+ """)
331
+ \`\`\`
332
+
333
+ ---
334
+
335
+ ### Agent 4: Security Review (Critic) - SUB
336
+
337
+ This agent answers: "Are there security vulnerabilities in these changes?"
338
+
339
+ This is supplementary - it focuses exclusively on security. It does NOT comment on code style, architecture, or functionality unless those directly create a security risk.
340
+
341
+ \`\`\`
342
+ task(
343
+ subagent_type="critic",
344
+ run_in_background=true,
345
+ load_skills=[],
346
+ description="Security-focused review of implementation changes",
347
+ prompt="""
348
+ <review_type>SECURITY REVIEW (supplementary)</review_type>
349
+
350
+ <changed_files>
351
+ {CHANGED_FILES}
352
+ </changed_files>
353
+
354
+ <file_contents>
355
+ {FILE_CONTENTS - full content of changed files}
356
+ </file_contents>
357
+
358
+ <diff>
359
+ {DIFF}
360
+ </diff>
361
+
362
+ You are a security engineer. Review this diff exclusively for security vulnerabilities and anti-patterns. Ignore code style, naming, architecture - unless it directly creates a security risk.
363
+
364
+ SECURITY CHECKLIST:
365
+
366
+ 1. **Input Validation**: User inputs sanitized? SQL injection, XSS, command injection, SSRF vectors?
367
+ 2. **Auth & AuthZ**: Authentication checks where needed? Authorization verified for each action? Privilege escalation paths?
368
+ 3. **Secrets & Credentials**: Hardcoded secrets, API keys, tokens in code or config? Secrets in logs?
369
+ 4. **Data Exposure**: Sensitive data in logs? PII in error messages? Over-exposed API responses?
370
+ 5. **Dependencies**: New dependencies added? Known CVEs? Suspicious or unnecessary packages?
371
+ 6. **Cryptography**: Proper algorithms? No custom crypto? Secure random? Proper key management?
372
+ 7. **File & Path**: Path traversal? Unsafe file operations? Symlink following?
373
+ 8. **Network**: CORS configured correctly? Rate limiting? TLS enforced? Certificate validation?
374
+ 9. **Error Leakage**: Stack traces exposed to users? Internal details in error responses?
375
+ 10. **Supply Chain**: Lockfile updated consistently? Dependency pinning?
376
+
377
+ OUTPUT FORMAT:
378
+ <verdict>PASS or FAIL</verdict>
379
+ <severity>CRITICAL / HIGH / MEDIUM / LOW / NONE</severity>
380
+ <summary>1-3 sentence overall assessment</summary>
381
+ <findings>
382
+ - [CRITICAL/HIGH/MEDIUM/LOW] Category: Description
383
+ - File: path (line range)
384
+ - Risk: What could an attacker do?
385
+ - Remediation: Specific fix
386
+ </findings>
387
+ <blocking_issues>CRITICAL and HIGH items only. Empty if PASS.</blocking_issues>
388
+ """)
389
+ \`\`\`
390
+
391
+ ---
392
+
393
+ ### Agent 5: Context Mining (unspecified-high) - MAIN
394
+
395
+ This agent answers: "Did we miss any context that should have informed this implementation?"
396
+
397
+ \`\`\`
398
+ task(
399
+ category="unspecified-high",
400
+ run_in_background=true,
401
+ load_skills=["git-master"],
402
+ description="Mine all accessible contexts for missed requirements or background knowledge",
403
+ prompt="""
404
+ <review_type>CONTEXT MINING - MISSED REQUIREMENTS & BACKGROUND</review_type>
405
+
406
+ <original_goal>
407
+ {GOAL}
408
+ </original_goal>
409
+
410
+ <constraints>
411
+ {CONSTRAINTS}
412
+ </constraints>
413
+
414
+ <changed_files>
415
+ {CHANGED_FILES}
416
+ </changed_files>
417
+
418
+ <background>
419
+ {BACKGROUND}
420
+ </background>
421
+
422
+ You are an investigator. Your mission: search every accessible information source to find context that should have informed this implementation but might have been missed. The question: "Is there something we should have known but didn't?"
423
+
424
+ SOURCES TO SEARCH (use every available tool):
425
+
426
+ 1. **Git History** (ALWAYS search):
427
+ - \`git log --oneline -20 -- {each changed file}\` - recent changes and their reasons
428
+ - \`git blame {critical sections}\` - who wrote what and when
429
+ - \`git log --all --grep="{keywords from goal}"\` - related commits
430
+ - Look for reverted commits, TODO/FIXME/HACK comments in history
431
+
432
+ 2. **GitHub** (if \`gh\` CLI available):
433
+ - \`gh issue list --search "{keywords}"\` - related open/closed issues
434
+ - \`gh pr list --search "{keywords}" --state all\` - related PRs and their review comments
435
+ - Check if any issue is specifically linked to this work
436
+ - Look at review comments on past PRs touching these files
437
+
438
+ 3. **Communication Channels** (if MCP tools available):
439
+ - Slack: search for messages mentioning the feature, file names, or related keywords
440
+ - Notion: search for design docs, RFCs, ADRs related to this feature
441
+ - Discord: relevant discussions
442
+
443
+ 4. **Codebase Cross-References** (ALWAYS search):
444
+ - Files that import or reference the changed modules
445
+ - Tests that might need updating due to behavior changes
446
+ - Documentation (README, docs/, comments) that references changed behavior
447
+ - Config files that might need corresponding updates
448
+ - Related features in the same domain
449
+
450
+ WHAT TO LOOK FOR:
451
+
452
+ - Requirements mentioned in issues/PRs that the implementation misses
453
+ - Past decisions explaining WHY code was written a certain way - and whether new changes respect those reasons
454
+ - Related systems or features affected by these changes
455
+ - Warnings from previous developers (PR review comments, inline TODOs, commit messages)
456
+ - Migration or deprecation notes that affect the changed code
457
+ - Design decisions documented outside the codebase (Notion, Slack, ADRs)
458
+
459
+ OUTPUT FORMAT:
460
+ <verdict>PASS or FAIL</verdict>
461
+ <confidence>HIGH / MEDIUM / LOW</confidence>
462
+ <summary>1-3 sentence overall assessment</summary>
463
+ <sources_searched>
464
+ - [SEARCHED/SKIPPED] Source name - what was searched (or why it wasn't accessible)
465
+ </sources_searched>
466
+ <discovered_context>
467
+ For each discovery:
468
+ - Source: Where found (git commit abc123, GitHub issue #42, Slack message, etc.)
469
+ - Finding: What was found
470
+ - Relevance: How it relates to the current work
471
+ - Impact: [BLOCKING / IMPORTANT / FYI]
472
+ </discovered_context>
473
+ <missed_requirements>Requirements the implementation should address but doesn't. Empty if none.</missed_requirements>
474
+ <blocking_issues>BLOCKING items only. Empty if PASS.</blocking_issues>
475
+ """)
476
+ \`\`\`
477
+
478
+ ---
479
+
480
+ ## Phase 2: Wait & Collect
481
+
482
+ After launching all 5 agents in one turn, **end your response**. Wait for system notifications as each agent completes.
483
+
484
+ As each completes, collect via \`background_output(task_id="...")\`. Store each verdict:
485
+
486
+ | Agent | Verdict | Notes |
487
+ |-------|---------|-------|
488
+ | 1. Goal Verification | pending | - |
489
+ | 2. QA Execution | pending | - |
490
+ | 3. Code Quality | pending | - |
491
+ | 4. Security | pending | - |
492
+ | 5. Context Mining | pending | - |
493
+
494
+ Do NOT deliver the final report until ALL 5 have completed.
495
+
496
+ ---
497
+
498
+ ## Phase 3: Deliver Verdict
499
+
500
+ <verdict_logic>
501
+
502
+ ALL 5 agents returned PASS → **REVIEW PASSED**
503
+ ANY agent returned FAIL → **REVIEW FAILED - criteria not met**
504
+
505
+ </verdict_logic>
506
+
507
+ Compile the final report in this format:
508
+
509
+ \`\`\`markdown
510
+ # Review Work - Final Report
511
+
512
+ ## Overall Verdict: PASSED / FAILED
513
+
514
+ | # | Review Area | Agent Type | Verdict | Confidence |
515
+ |---|------------|------------|---------|------------|
516
+ | 1 | Goal & Constraint Verification | Critic | PASS/FAIL | HIGH/MED/LOW |
517
+ | 2 | QA Execution | unspecified-high | PASS/FAIL | HIGH/MED/LOW |
518
+ | 3 | Code Quality | Critic | PASS/FAIL | HIGH/MED/LOW |
519
+ | 4 | Security (supplementary) | Critic | PASS/FAIL | Severity |
520
+ | 5 | Context Mining | unspecified-high | PASS/FAIL | HIGH/MED/LOW |
521
+
522
+ ## Blocking Issues
523
+ [Aggregated from all agents - deduplicated, prioritized]
524
+
525
+ ## Key Findings
526
+ [Top 5-10 most important findings across all agents, grouped by theme]
527
+
528
+ ## Recommendations
529
+ [If FAILED: exactly what to fix, in priority order]
530
+ [If PASSED: non-blocking suggestions worth considering]
531
+ \`\`\`
532
+
533
+ If FAILED - be specific. The user should know exactly what to fix and in what order. No vague "consider improving X" - state the problem, the file, and the fix.
534
+
535
+ If PASSED - keep it short. Highlight any non-blocking suggestions, but don't turn a passing review into a lecture.`,
536
+ }