@hiai-gg/hiai-opencode 0.1.0 → 0.1.1

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 (1236) hide show
  1. package/.env.example +57 -57
  2. package/AGENTS.md +281 -281
  3. package/ARCHITECTURE.md +281 -281
  4. package/LICENSE.md +59 -59
  5. package/README.md +301 -301
  6. package/assets/mcp/mempalace.mjs +153 -153
  7. package/assets/mcp/rag.mjs +236 -236
  8. package/assets/runtime/npm-package-runner.mjs +54 -54
  9. package/config/hiai-opencode.schema.json +82 -82
  10. package/config/opencode.json +4 -4
  11. package/dist/index.js +242 -242
  12. package/hiai-opencode.json +57 -57
  13. package/package.json +91 -91
  14. package/scripts/check_docs.ts +128 -128
  15. package/scripts/doctor.ts +522 -522
  16. package/scripts/measure_prompts.ts +192 -192
  17. package/scripts/test_routing.ts +294 -294
  18. package/skills/api-and-interface-design/SKILL.md +294 -294
  19. package/skills/brainstorming/SKILL.md +164 -164
  20. package/skills/brainstorming/scripts/frame-template.html +214 -214
  21. package/skills/brainstorming/scripts/helper.js +88 -88
  22. package/skills/brainstorming/scripts/server.cjs +354 -354
  23. package/skills/brainstorming/scripts/start-server.sh +148 -148
  24. package/skills/brainstorming/scripts/stop-server.sh +56 -56
  25. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -49
  26. package/skills/brainstorming/visual-companion.md +287 -287
  27. package/skills/browser-testing-with-devtools/SKILL.md +302 -302
  28. package/skills/ci-cd-and-automation/SKILL.md +390 -390
  29. package/skills/code-review-and-quality/SKILL.md +347 -347
  30. package/skills/code-simplification/SKILL.md +331 -331
  31. package/skills/context-engineering/SKILL.md +289 -289
  32. package/skills/deprecation-and-migration/SKILL.md +206 -206
  33. package/skills/dispatching-parallel-agents/SKILL.md +182 -182
  34. package/skills/documentation-and-adrs/SKILL.md +278 -278
  35. package/skills/executing-plans/SKILL.md +70 -70
  36. package/skills/finishing-a-development-branch/SKILL.md +200 -200
  37. package/skills/frontend-ui-engineering/SKILL.md +322 -322
  38. package/skills/git-workflow-and-versioning/SKILL.md +300 -300
  39. package/skills/incremental-implementation/SKILL.md +241 -241
  40. package/skills/performance-optimization/SKILL.md +350 -350
  41. package/skills/receiving-code-review/SKILL.md +213 -213
  42. package/skills/requesting-code-review/SKILL.md +105 -105
  43. package/skills/requesting-code-review/code-reviewer.md +146 -146
  44. package/skills/security-and-hardening/SKILL.md +349 -349
  45. package/skills/shipping-and-launch/SKILL.md +309 -309
  46. package/skills/source-driven-development/SKILL.md +194 -194
  47. package/skills/spec-driven-development/SKILL.md +200 -200
  48. package/skills/subagent-driven-development/SKILL.md +277 -277
  49. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -26
  50. package/skills/subagent-driven-development/implementer-prompt.md +113 -113
  51. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -61
  52. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  53. package/skills/systematic-debugging/SKILL.md +596 -596
  54. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  55. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  56. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  57. package/skills/systematic-debugging/find-polluter.sh +63 -63
  58. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  59. package/skills/systematic-debugging/test-academic.md +14 -14
  60. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  61. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  62. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  63. package/skills/test-driven-development/SKILL.md +379 -379
  64. package/skills/using-agent-skills/SKILL.md +174 -174
  65. package/skills/using-git-worktrees/SKILL.md +218 -218
  66. package/skills/using-superpowers/SKILL.md +117 -117
  67. package/skills/using-superpowers/references/codex-tools.md +100 -100
  68. package/skills/using-superpowers/references/copilot-tools.md +52 -52
  69. package/skills/using-superpowers/references/gemini-tools.md +33 -33
  70. package/skills/verification-before-completion/SKILL.md +139 -139
  71. package/skills/writing-plans/SKILL.md +152 -152
  72. package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -49
  73. package/skills/writing-skills/SKILL.md +655 -655
  74. package/skills/writing-skills/anthropic-best-practices.md +1150 -1150
  75. package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
  76. package/skills/writing-skills/graphviz-conventions.dot +171 -171
  77. package/skills/writing-skills/persuasion-principles.md +187 -187
  78. package/skills/writing-skills/render-graphs.js +168 -168
  79. package/skills/writing-skills/testing-skills-with-subagents.md +384 -384
  80. package/src/AGENTS.md +41 -41
  81. package/src/agents/AGENTS.md +74 -74
  82. package/src/agents/agent-builder.ts +50 -50
  83. package/src/agents/bob/AGENTS.md +29 -29
  84. package/src/agents/bob/default.ts +128 -128
  85. package/src/agents/bob/gemini.ts +237 -237
  86. package/src/agents/bob/gpt-pro.ts +430 -430
  87. package/src/agents/bob/index.ts +19 -19
  88. package/src/agents/bob.ts +528 -528
  89. package/src/agents/builtin-agents/agent-overrides.ts +75 -75
  90. package/src/agents/builtin-agents/available-skills.ts +35 -35
  91. package/src/agents/builtin-agents/bob-agent.ts +96 -96
  92. package/src/agents/builtin-agents/coder-agent.ts +98 -98
  93. package/src/agents/builtin-agents/environment-context.ts +16 -16
  94. package/src/agents/builtin-agents/general-agents.ts +122 -122
  95. package/src/agents/builtin-agents/guard-agent.ts +66 -66
  96. package/src/agents/builtin-agents/model-resolution.ts +31 -31
  97. package/src/agents/builtin-agents/resolve-file-uri.ts +42 -42
  98. package/src/agents/builtin-agents.ts +194 -194
  99. package/src/agents/coder/AGENTS.md +34 -34
  100. package/src/agents/coder/agent.ts +162 -162
  101. package/src/agents/coder/gpt-codex.ts +404 -404
  102. package/src/agents/coder/gpt-pro.ts +319 -319
  103. package/src/agents/coder/gpt.ts +253 -253
  104. package/src/agents/coder/index.ts +8 -8
  105. package/src/agents/critic/agent.ts +105 -105
  106. package/src/agents/custom-agent-summaries.ts +61 -61
  107. package/src/agents/dynamic-agent-category-skills-guide.ts +138 -138
  108. package/src/agents/dynamic-agent-core-sections.ts +237 -237
  109. package/src/agents/dynamic-agent-policy-sections.ts +182 -182
  110. package/src/agents/dynamic-agent-prompt-builder.ts +31 -31
  111. package/src/agents/dynamic-agent-prompt-types.ts +24 -24
  112. package/src/agents/dynamic-agent-tool-categorization.ts +45 -45
  113. package/src/agents/env-context.ts +16 -16
  114. package/src/agents/gpt-apply-patch-guard.ts +7 -7
  115. package/src/agents/guard/agent.ts +146 -146
  116. package/src/agents/guard/default-prompt-sections.ts +305 -305
  117. package/src/agents/guard/default.ts +22 -22
  118. package/src/agents/guard/gemini-prompt-sections.ts +293 -293
  119. package/src/agents/guard/gemini.ts +22 -22
  120. package/src/agents/guard/gpt-prompt-sections.ts +296 -296
  121. package/src/agents/guard/gpt.ts +22 -22
  122. package/src/agents/guard/index.ts +2 -2
  123. package/src/agents/guard/prompt-section-builder.ts +104 -104
  124. package/src/agents/guard/shared-prompt.ts +172 -172
  125. package/src/agents/index.ts +5 -5
  126. package/src/agents/platform-adapter.ts +236 -236
  127. package/src/agents/platform-manager.ts +57 -57
  128. package/src/agents/prompt-library/identity.ts +14 -14
  129. package/src/agents/prompt-library/index.ts +7 -7
  130. package/src/agents/prompt-library/intent-gate.ts +149 -149
  131. package/src/agents/prompt-library/orchestration.ts +60 -60
  132. package/src/agents/prompt-library/platform.ts +36 -36
  133. package/src/agents/prompt-library/specialized.ts +39 -39
  134. package/src/agents/prompt-library/strategy.ts +80 -80
  135. package/src/agents/prompt-library/todo-discipline.ts +22 -22
  136. package/src/agents/quality-guardian.ts +76 -76
  137. package/src/agents/researcher.ts +73 -73
  138. package/src/agents/strategist/AGENTS.md +37 -37
  139. package/src/agents/strategist/behavioral-summary.ts +79 -79
  140. package/src/agents/strategist/gemini.ts +333 -333
  141. package/src/agents/strategist/gpt.ts +460 -460
  142. package/src/agents/strategist/high-accuracy-mode.ts +78 -78
  143. package/src/agents/strategist/identity-constraints.ts +336 -336
  144. package/src/agents/strategist/index.ts +6 -6
  145. package/src/agents/strategist/interview-mode.ts +335 -335
  146. package/src/agents/strategist/plan-generation.ts +213 -213
  147. package/src/agents/strategist/plan-template.ts +325 -325
  148. package/src/agents/strategist/system-prompt.ts +68 -68
  149. package/src/agents/sub/agent.ts +141 -141
  150. package/src/agents/sub/default.ts +52 -52
  151. package/src/agents/sub/gemini.ts +194 -194
  152. package/src/agents/sub/gpt-codex.ts +156 -156
  153. package/src/agents/sub/gpt-pro.ts +161 -161
  154. package/src/agents/sub/gpt.ts +157 -157
  155. package/src/agents/sub/index.ts +13 -13
  156. package/src/agents/types.ts +144 -144
  157. package/src/agents/ui.ts +58 -58
  158. package/src/config/data/model-capabilities.json +40690 -40690
  159. package/src/config/defaults.ts +146 -146
  160. package/src/config/hiai-opencode.schema.json +12 -12
  161. package/src/config/index.ts +67 -67
  162. package/src/config/loader.test.ts +65 -65
  163. package/src/config/loader.ts +183 -183
  164. package/src/config/models.ts +32 -32
  165. package/src/config/platform-schema.ts +192 -192
  166. package/src/config/schema/agent-definitions.ts +5 -5
  167. package/src/config/schema/agent-names.ts +66 -66
  168. package/src/config/schema/agent-overrides.ts +95 -95
  169. package/src/config/schema/babysitting.ts +7 -7
  170. package/src/config/schema/background-task.ts +29 -29
  171. package/src/config/schema/bob-agent.ts +11 -11
  172. package/src/config/schema/bob.ts +17 -17
  173. package/src/config/schema/browser-automation.ts +24 -24
  174. package/src/config/schema/categories.ts +45 -45
  175. package/src/config/schema/claude-code.ts +13 -13
  176. package/src/config/schema/commands.ts +14 -14
  177. package/src/config/schema/comment-checker.ts +8 -8
  178. package/src/config/schema/dynamic-context-pruning.ts +53 -53
  179. package/src/config/schema/experimental.ts +27 -27
  180. package/src/config/schema/fallback-models.ts +31 -31
  181. package/src/config/schema/fast-apply.ts +14 -14
  182. package/src/config/schema/git-env-prefix.ts +28 -28
  183. package/src/config/schema/git-master.ts +14 -14
  184. package/src/config/schema/hooks.ts +61 -61
  185. package/src/config/schema/index.ts +52 -52
  186. package/src/config/schema/internal/permission.ts +20 -20
  187. package/src/config/schema/model-capabilities.ts +10 -10
  188. package/src/config/schema/notification.ts +8 -8
  189. package/src/config/schema/oh-my-opencode-config.ts +90 -90
  190. package/src/config/schema/openclaw.ts +50 -50
  191. package/src/config/schema/ralph-loop.ts +11 -11
  192. package/src/config/schema/runtime-fallback.ts +18 -18
  193. package/src/config/schema/skills.ts +39 -39
  194. package/src/config/schema/start-work.ts +7 -7
  195. package/src/config/schema/tmux.ts +28 -28
  196. package/src/config/schema/websearch.ts +15 -15
  197. package/src/config/types.ts +174 -174
  198. package/src/create-hooks.ts +93 -93
  199. package/src/create-managers.ts +116 -116
  200. package/src/create-runtime-tmux-config.ts +18 -18
  201. package/src/create-tools.ts +53 -53
  202. package/src/features/background-agent/AGENTS.md +56 -56
  203. package/src/features/background-agent/abort-with-timeout.ts +35 -35
  204. package/src/features/background-agent/background-task-notification-template.ts +74 -74
  205. package/src/features/background-agent/compaction-aware-message-resolver.ts +164 -164
  206. package/src/features/background-agent/concurrency.ts +137 -137
  207. package/src/features/background-agent/constants.ts +58 -58
  208. package/src/features/background-agent/duration-formatter.ts +14 -14
  209. package/src/features/background-agent/error-classifier.ts +83 -83
  210. package/src/features/background-agent/fallback-retry-handler.ts +134 -134
  211. package/src/features/background-agent/index.ts +2 -2
  212. package/src/features/background-agent/loop-detector.ts +102 -102
  213. package/src/features/background-agent/manager.ts +2220 -2220
  214. package/src/features/background-agent/opencode-client.ts +3 -3
  215. package/src/features/background-agent/process-cleanup.ts +98 -98
  216. package/src/features/background-agent/remove-task-toast-tracking.ts +8 -8
  217. package/src/features/background-agent/session-existence.ts +57 -57
  218. package/src/features/background-agent/session-idle-event-handler.ts +93 -93
  219. package/src/features/background-agent/session-status-classifier.ts +20 -20
  220. package/src/features/background-agent/spawner/parent-directory-resolver.ts +24 -24
  221. package/src/features/background-agent/spawner.ts +327 -327
  222. package/src/features/background-agent/state.ts +199 -199
  223. package/src/features/background-agent/subagent-spawn-limits.ts +97 -97
  224. package/src/features/background-agent/task-history.ts +79 -79
  225. package/src/features/background-agent/task-poller.ts +225 -225
  226. package/src/features/background-agent/types.ts +100 -100
  227. package/src/features/boulder-state/constants.ts +13 -13
  228. package/src/features/boulder-state/index.ts +4 -4
  229. package/src/features/boulder-state/storage.ts +336 -336
  230. package/src/features/boulder-state/top-level-task.ts +78 -78
  231. package/src/features/boulder-state/types.ts +61 -61
  232. package/src/features/builtin-commands/commands.ts +143 -143
  233. package/src/features/builtin-commands/index.ts +2 -2
  234. package/src/features/builtin-commands/templates/handoff.ts +177 -177
  235. package/src/features/builtin-commands/templates/init-deep.ts +305 -305
  236. package/src/features/builtin-commands/templates/ralph-loop.ts +66 -66
  237. package/src/features/builtin-commands/templates/refactor.ts +619 -619
  238. package/src/features/builtin-commands/templates/remove-ai-slops.ts +96 -96
  239. package/src/features/builtin-commands/templates/start-work.ts +128 -128
  240. package/src/features/builtin-commands/templates/stop-continuation.ts +13 -13
  241. package/src/features/builtin-commands/types.ts +9 -9
  242. package/src/features/builtin-skills/index.ts +2 -2
  243. package/src/features/builtin-skills/materialize.ts +338 -338
  244. package/src/features/builtin-skills/skills/ai-slop-remover.ts +145 -145
  245. package/src/features/builtin-skills/skills/dev-browser.ts +221 -221
  246. package/src/features/builtin-skills/skills/frontend-ui-ux.ts +79 -79
  247. package/src/features/builtin-skills/skills/git-master-sections/commit-workflow.ts +509 -509
  248. package/src/features/builtin-skills/skills/git-master-sections/history-search-workflow.ts +229 -229
  249. package/src/features/builtin-skills/skills/git-master-sections/overview.ts +64 -64
  250. package/src/features/builtin-skills/skills/git-master-sections/quick-reference.ts +86 -86
  251. package/src/features/builtin-skills/skills/git-master-sections/rebase-workflow.ts +181 -181
  252. package/src/features/builtin-skills/skills/git-master-skill-metadata.ts +4 -4
  253. package/src/features/builtin-skills/skills/git-master.ts +28 -28
  254. package/src/features/builtin-skills/skills/index.ts +7 -7
  255. package/src/features/builtin-skills/skills/playwright-cli.ts +268 -268
  256. package/src/features/builtin-skills/skills/playwright.ts +466 -466
  257. package/src/features/builtin-skills/skills/review-work.ts +536 -536
  258. package/src/features/builtin-skills/skills.ts +39 -39
  259. package/src/features/builtin-skills/types.ts +16 -16
  260. package/src/features/claude-code-agent-loader/agent-definitions-loader.ts +87 -87
  261. package/src/features/claude-code-agent-loader/claude-model-mapper.ts +53 -53
  262. package/src/features/claude-code-agent-loader/index.ts +5 -5
  263. package/src/features/claude-code-agent-loader/json-agent-loader.ts +53 -53
  264. package/src/features/claude-code-agent-loader/loader.ts +86 -86
  265. package/src/features/claude-code-agent-loader/opencode-config-agents-reader.ts +125 -125
  266. package/src/features/claude-code-agent-loader/types.ts +31 -31
  267. package/src/features/claude-code-command-loader/index.ts +2 -2
  268. package/src/features/claude-code-command-loader/loader.ts +169 -169
  269. package/src/features/claude-code-command-loader/types.ts +46 -46
  270. package/src/features/claude-code-mcp-loader/configure-allowed-env-vars.ts +48 -48
  271. package/src/features/claude-code-mcp-loader/env-expander.ts +51 -51
  272. package/src/features/claude-code-mcp-loader/index.ts +12 -12
  273. package/src/features/claude-code-mcp-loader/loader.ts +156 -156
  274. package/src/features/claude-code-mcp-loader/scope-filter.ts +17 -17
  275. package/src/features/claude-code-mcp-loader/transformer.ts +57 -57
  276. package/src/features/claude-code-mcp-loader/types.ts +51 -51
  277. package/src/features/claude-code-plugin-loader/agent-loader.ts +59 -59
  278. package/src/features/claude-code-plugin-loader/command-loader.ts +53 -53
  279. package/src/features/claude-code-plugin-loader/discovery.ts +251 -251
  280. package/src/features/claude-code-plugin-loader/hook-loader.ts +26 -26
  281. package/src/features/claude-code-plugin-loader/index.ts +10 -10
  282. package/src/features/claude-code-plugin-loader/loader.ts +134 -134
  283. package/src/features/claude-code-plugin-loader/mcp-server-loader.ts +59 -59
  284. package/src/features/claude-code-plugin-loader/plugin-path-resolver.ts +23 -23
  285. package/src/features/claude-code-plugin-loader/scope-filter.ts +29 -29
  286. package/src/features/claude-code-plugin-loader/skill-loader.ts +62 -62
  287. package/src/features/claude-code-plugin-loader/types.ts +255 -255
  288. package/src/features/claude-code-session-state/index.ts +1 -1
  289. package/src/features/claude-code-session-state/state.ts +154 -154
  290. package/src/features/claude-tasks/session-storage.ts +52 -52
  291. package/src/features/claude-tasks/storage.ts +169 -169
  292. package/src/features/claude-tasks/types.ts +20 -20
  293. package/src/features/context-injector/collector.ts +91 -91
  294. package/src/features/context-injector/index.ts +14 -14
  295. package/src/features/context-injector/injector.ts +167 -167
  296. package/src/features/context-injector/types.ts +91 -91
  297. package/src/features/hook-message-injector/constants.ts +1 -1
  298. package/src/features/hook-message-injector/index.ts +11 -11
  299. package/src/features/hook-message-injector/injector.ts +437 -437
  300. package/src/features/hook-message-injector/types.ts +49 -49
  301. package/src/features/mcp-oauth/AGENTS.md +54 -54
  302. package/src/features/mcp-oauth/callback-server.ts +106 -106
  303. package/src/features/mcp-oauth/dcr.ts +98 -98
  304. package/src/features/mcp-oauth/discovery.ts +134 -134
  305. package/src/features/mcp-oauth/oauth-authorization-flow.ts +150 -150
  306. package/src/features/mcp-oauth/provider.ts +215 -215
  307. package/src/features/mcp-oauth/refresh-mutex.ts +58 -58
  308. package/src/features/mcp-oauth/resource-indicator.ts +16 -16
  309. package/src/features/mcp-oauth/schema.ts +8 -8
  310. package/src/features/mcp-oauth/step-up.ts +79 -79
  311. package/src/features/mcp-oauth/storage.ts +155 -155
  312. package/src/features/opencode-skill-loader/AGENTS.md +59 -59
  313. package/src/features/opencode-skill-loader/allowed-tools-parser.ts +9 -9
  314. package/src/features/opencode-skill-loader/async-loader.ts +213 -213
  315. package/src/features/opencode-skill-loader/blocking.ts +62 -62
  316. package/src/features/opencode-skill-loader/config-source-discovery.ts +114 -114
  317. package/src/features/opencode-skill-loader/discover-worker.ts +56 -56
  318. package/src/features/opencode-skill-loader/git-master-template-injection.ts +150 -150
  319. package/src/features/opencode-skill-loader/index.ts +17 -17
  320. package/src/features/opencode-skill-loader/loaded-skill-from-path.ts +73 -73
  321. package/src/features/opencode-skill-loader/loaded-skill-template-extractor.ts +16 -16
  322. package/src/features/opencode-skill-loader/loader.ts +172 -172
  323. package/src/features/opencode-skill-loader/merger/builtin-skill-converter.ts +26 -26
  324. package/src/features/opencode-skill-loader/merger/config-skill-entry-loader.ts +117 -117
  325. package/src/features/opencode-skill-loader/merger/scope-priority.ts +10 -10
  326. package/src/features/opencode-skill-loader/merger/skill-definition-merger.ts +31 -31
  327. package/src/features/opencode-skill-loader/merger/skills-config-normalizer.ts +19 -19
  328. package/src/features/opencode-skill-loader/merger.ts +96 -96
  329. package/src/features/opencode-skill-loader/skill-content.ts +11 -11
  330. package/src/features/opencode-skill-loader/skill-deduplication.ts +13 -13
  331. package/src/features/opencode-skill-loader/skill-definition-record.ts +11 -11
  332. package/src/features/opencode-skill-loader/skill-directory-loader.ts +112 -112
  333. package/src/features/opencode-skill-loader/skill-discovery.ts +76 -76
  334. package/src/features/opencode-skill-loader/skill-mcp-config.ts +45 -45
  335. package/src/features/opencode-skill-loader/skill-resolution-options.ts +9 -9
  336. package/src/features/opencode-skill-loader/skill-template-resolver.ts +97 -97
  337. package/src/features/opencode-skill-loader/types.ts +38 -38
  338. package/src/features/run-continuation-state/constants.ts +1 -1
  339. package/src/features/run-continuation-state/index.ts +3 -3
  340. package/src/features/run-continuation-state/storage.ts +80 -80
  341. package/src/features/run-continuation-state/types.ts +15 -15
  342. package/src/features/skill-mcp-manager/AGENTS.md +111 -111
  343. package/src/features/skill-mcp-manager/cleanup.ts +153 -153
  344. package/src/features/skill-mcp-manager/connection-type.ts +26 -26
  345. package/src/features/skill-mcp-manager/connection.ts +146 -146
  346. package/src/features/skill-mcp-manager/env-cleaner.ts +59 -59
  347. package/src/features/skill-mcp-manager/error-redaction.ts +47 -47
  348. package/src/features/skill-mcp-manager/http-client.ts +126 -126
  349. package/src/features/skill-mcp-manager/index.ts +2 -2
  350. package/src/features/skill-mcp-manager/manager.ts +178 -178
  351. package/src/features/skill-mcp-manager/oauth-handler.ts +160 -160
  352. package/src/features/skill-mcp-manager/stdio-client.ts +112 -112
  353. package/src/features/skill-mcp-manager/types.ts +96 -96
  354. package/src/features/task-toast-manager/index.ts +2 -2
  355. package/src/features/task-toast-manager/manager.ts +251 -251
  356. package/src/features/task-toast-manager/types.ts +29 -29
  357. package/src/features/tmux-subagent/action-executor-core.ts +82 -82
  358. package/src/features/tmux-subagent/action-executor.ts +137 -137
  359. package/src/features/tmux-subagent/cleanup.ts +42 -42
  360. package/src/features/tmux-subagent/decision-engine.ts +22 -22
  361. package/src/features/tmux-subagent/event-handlers.ts +6 -6
  362. package/src/features/tmux-subagent/grid-planning.ts +137 -137
  363. package/src/features/tmux-subagent/index.ts +16 -16
  364. package/src/features/tmux-subagent/manager.ts +969 -969
  365. package/src/features/tmux-subagent/oldest-agent-pane.ts +37 -37
  366. package/src/features/tmux-subagent/pane-split-availability.ts +77 -77
  367. package/src/features/tmux-subagent/pane-state-parser.ts +135 -135
  368. package/src/features/tmux-subagent/pane-state-querier.ts +76 -76
  369. package/src/features/tmux-subagent/polling-constants.ts +6 -6
  370. package/src/features/tmux-subagent/polling-manager.ts +167 -167
  371. package/src/features/tmux-subagent/polling.ts +183 -183
  372. package/src/features/tmux-subagent/session-created-event.ts +44 -44
  373. package/src/features/tmux-subagent/session-created-handler.ts +175 -175
  374. package/src/features/tmux-subagent/session-deleted-handler.ts +50 -50
  375. package/src/features/tmux-subagent/session-message-count.ts +3 -3
  376. package/src/features/tmux-subagent/session-ready-waiter.ts +44 -44
  377. package/src/features/tmux-subagent/session-status-parser.ts +17 -17
  378. package/src/features/tmux-subagent/spawn-action-decider.ts +147 -147
  379. package/src/features/tmux-subagent/spawn-target-finder.ts +146 -146
  380. package/src/features/tmux-subagent/tmux-grid-constants.ts +57 -57
  381. package/src/features/tmux-subagent/tracked-session-state.ts +29 -29
  382. package/src/features/tmux-subagent/types.ts +54 -54
  383. package/src/features/tool-metadata-store/index.ts +7 -7
  384. package/src/features/tool-metadata-store/store.ts +84 -84
  385. package/src/hooks/agent-usage-reminder/constants.ts +52 -52
  386. package/src/hooks/agent-usage-reminder/hook.ts +134 -134
  387. package/src/hooks/agent-usage-reminder/index.ts +1 -1
  388. package/src/hooks/agent-usage-reminder/storage.ts +42 -42
  389. package/src/hooks/agent-usage-reminder/types.ts +6 -6
  390. package/src/hooks/anthropic-context-window-limit-recovery/AGENTS.md +49 -49
  391. package/src/hooks/anthropic-context-window-limit-recovery/aggressive-truncation-strategy.ts +87 -87
  392. package/src/hooks/anthropic-context-window-limit-recovery/client.ts +21 -21
  393. package/src/hooks/anthropic-context-window-limit-recovery/deduplication-recovery.ts +77 -77
  394. package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.ts +199 -199
  395. package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery.ts +149 -149
  396. package/src/hooks/anthropic-context-window-limit-recovery/executor.ts +83 -83
  397. package/src/hooks/anthropic-context-window-limit-recovery/index.ts +8 -8
  398. package/src/hooks/anthropic-context-window-limit-recovery/message-builder.ts +190 -190
  399. package/src/hooks/anthropic-context-window-limit-recovery/message-storage-directory.ts +40 -40
  400. package/src/hooks/anthropic-context-window-limit-recovery/parser.ts +209 -209
  401. package/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts +189 -189
  402. package/src/hooks/anthropic-context-window-limit-recovery/pruning-tool-output-truncation.ts +142 -142
  403. package/src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts +44 -44
  404. package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.ts +119 -119
  405. package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.ts +193 -193
  406. package/src/hooks/anthropic-context-window-limit-recovery/recovery-strategy.ts +2 -2
  407. package/src/hooks/anthropic-context-window-limit-recovery/session-timeout-map.ts +20 -20
  408. package/src/hooks/anthropic-context-window-limit-recovery/state.ts +78 -78
  409. package/src/hooks/anthropic-context-window-limit-recovery/storage-paths.ts +6 -6
  410. package/src/hooks/anthropic-context-window-limit-recovery/storage.ts +18 -18
  411. package/src/hooks/anthropic-context-window-limit-recovery/summarize-retry-strategy.ts +218 -218
  412. package/src/hooks/anthropic-context-window-limit-recovery/target-token-truncation.ts +196 -196
  413. package/src/hooks/anthropic-context-window-limit-recovery/tool-part-types.ts +38 -38
  414. package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage-sdk.ts +123 -123
  415. package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage.ts +119 -119
  416. package/src/hooks/anthropic-context-window-limit-recovery/types.ts +44 -44
  417. package/src/hooks/anthropic-effort/hook.ts +93 -93
  418. package/src/hooks/anthropic-effort/index.ts +1 -1
  419. package/src/hooks/auto-slash-command/constants.ts +12 -12
  420. package/src/hooks/auto-slash-command/detector.ts +88 -88
  421. package/src/hooks/auto-slash-command/executor.ts +165 -165
  422. package/src/hooks/auto-slash-command/hook.ts +238 -238
  423. package/src/hooks/auto-slash-command/index.ts +7 -7
  424. package/src/hooks/auto-slash-command/processed-command-store.ts +74 -74
  425. package/src/hooks/auto-slash-command/types.ts +42 -42
  426. package/src/hooks/background-notification/hook.ts +54 -54
  427. package/src/hooks/background-notification/index.ts +2 -2
  428. package/src/hooks/background-notification/types.ts +5 -5
  429. package/src/hooks/bash-file-read-guard.ts +44 -44
  430. package/src/hooks/category-skill-reminder/formatter.ts +37 -37
  431. package/src/hooks/category-skill-reminder/hook.ts +142 -142
  432. package/src/hooks/category-skill-reminder/index.ts +1 -1
  433. package/src/hooks/claude-code-hooks/AGENTS.md +41 -41
  434. package/src/hooks/claude-code-hooks/claude-code-hooks-hook.ts +28 -28
  435. package/src/hooks/claude-code-hooks/config-loader.ts +151 -151
  436. package/src/hooks/claude-code-hooks/config.ts +147 -147
  437. package/src/hooks/claude-code-hooks/dispatch-hook.ts +27 -27
  438. package/src/hooks/claude-code-hooks/execute-http-hook.ts +116 -116
  439. package/src/hooks/claude-code-hooks/handlers/chat-message-handler.ts +140 -140
  440. package/src/hooks/claude-code-hooks/handlers/pre-compact-handler.ts +41 -41
  441. package/src/hooks/claude-code-hooks/handlers/session-event-handler.ts +137 -137
  442. package/src/hooks/claude-code-hooks/handlers/tool-execute-after-handler.ts +160 -160
  443. package/src/hooks/claude-code-hooks/handlers/tool-execute-before-handler.ts +93 -93
  444. package/src/hooks/claude-code-hooks/index.ts +1 -1
  445. package/src/hooks/claude-code-hooks/plugin-config.ts +12 -12
  446. package/src/hooks/claude-code-hooks/post-tool-use.ts +195 -195
  447. package/src/hooks/claude-code-hooks/pre-compact.ts +105 -105
  448. package/src/hooks/claude-code-hooks/pre-tool-use.ts +168 -168
  449. package/src/hooks/claude-code-hooks/session-hook-state.ts +17 -17
  450. package/src/hooks/claude-code-hooks/stop.ts +118 -118
  451. package/src/hooks/claude-code-hooks/todo.ts +76 -76
  452. package/src/hooks/claude-code-hooks/tool-input-cache.ts +82 -82
  453. package/src/hooks/claude-code-hooks/transcript.ts +248 -248
  454. package/src/hooks/claude-code-hooks/types.ts +214 -214
  455. package/src/hooks/claude-code-hooks/user-prompt-submit.ts +121 -121
  456. package/src/hooks/comment-checker/cli-runner.ts +127 -127
  457. package/src/hooks/comment-checker/cli.ts +269 -269
  458. package/src/hooks/comment-checker/downloader.ts +170 -170
  459. package/src/hooks/comment-checker/hook.ts +192 -192
  460. package/src/hooks/comment-checker/index.ts +1 -1
  461. package/src/hooks/comment-checker/pending-calls.ts +45 -45
  462. package/src/hooks/comment-checker/types.ts +33 -33
  463. package/src/hooks/compaction-context-injector/compaction-context-prompt.ts +56 -56
  464. package/src/hooks/compaction-context-injector/constants.ts +5 -5
  465. package/src/hooks/compaction-context-injector/hook.ts +164 -164
  466. package/src/hooks/compaction-context-injector/index.ts +1 -1
  467. package/src/hooks/compaction-context-injector/recovery-prompt-config.ts +77 -77
  468. package/src/hooks/compaction-context-injector/recovery.ts +163 -163
  469. package/src/hooks/compaction-context-injector/session-id.ts +8 -8
  470. package/src/hooks/compaction-context-injector/session-prompt-config-resolver.ts +120 -120
  471. package/src/hooks/compaction-context-injector/tail-monitor.ts +52 -52
  472. package/src/hooks/compaction-context-injector/types.ts +25 -25
  473. package/src/hooks/compaction-context-injector/validated-model.ts +47 -47
  474. package/src/hooks/compaction-todo-preserver/hook.ts +127 -127
  475. package/src/hooks/compaction-todo-preserver/index.ts +2 -2
  476. package/src/hooks/context-window-monitor.ts +113 -113
  477. package/src/hooks/delegate-task-retry/guidance.ts +45 -45
  478. package/src/hooks/delegate-task-retry/hook.ts +22 -22
  479. package/src/hooks/delegate-task-retry/index.ts +4 -4
  480. package/src/hooks/delegate-task-retry/patterns.ts +77 -77
  481. package/src/hooks/directory-agents-injector/constants.ts +7 -7
  482. package/src/hooks/directory-agents-injector/finder.ts +38 -38
  483. package/src/hooks/directory-agents-injector/hook.ts +80 -80
  484. package/src/hooks/directory-agents-injector/index.ts +1 -1
  485. package/src/hooks/directory-agents-injector/injector.ts +59 -59
  486. package/src/hooks/directory-agents-injector/storage.ts +8 -8
  487. package/src/hooks/directory-readme-injector/constants.ts +7 -7
  488. package/src/hooks/directory-readme-injector/finder.ts +33 -33
  489. package/src/hooks/directory-readme-injector/hook.ts +80 -80
  490. package/src/hooks/directory-readme-injector/index.ts +1 -1
  491. package/src/hooks/directory-readme-injector/injector.ts +59 -59
  492. package/src/hooks/directory-readme-injector/storage.ts +8 -8
  493. package/src/hooks/edit-error-recovery/hook.ts +58 -58
  494. package/src/hooks/edit-error-recovery/index.ts +5 -5
  495. package/src/hooks/empty-task-response-detector.ts +27 -27
  496. package/src/hooks/fast-apply/hook.ts +11 -11
  497. package/src/hooks/fast-apply/index.ts +1 -1
  498. package/src/hooks/fast-apply/ollama-client.ts +53 -53
  499. package/src/hooks/fast-apply/tool-execute-before-handler.ts +86 -86
  500. package/src/hooks/guard/AGENTS.md +64 -64
  501. package/src/hooks/guard/background-launch-session-tracking.ts +97 -97
  502. package/src/hooks/guard/bob-path.ts +8 -8
  503. package/src/hooks/guard/boulder-continuation-injector.ts +109 -109
  504. package/src/hooks/guard/boulder-session-lineage.ts +44 -44
  505. package/src/hooks/guard/event-handler.ts +104 -104
  506. package/src/hooks/guard/final-wave-approval-gate.ts +47 -47
  507. package/src/hooks/guard/final-wave-plan-state.ts +60 -60
  508. package/src/hooks/guard/guard-hook.ts +27 -27
  509. package/src/hooks/guard/hook-name.ts +1 -1
  510. package/src/hooks/guard/idle-event.ts +341 -341
  511. package/src/hooks/guard/index.ts +3 -3
  512. package/src/hooks/guard/is-abort-error.ts +20 -20
  513. package/src/hooks/guard/recent-model-resolver.ts +89 -89
  514. package/src/hooks/guard/resolve-active-boulder-session.ts +29 -29
  515. package/src/hooks/guard/session-last-agent.ts +153 -153
  516. package/src/hooks/guard/subagent-session-id.ts +54 -54
  517. package/src/hooks/guard/system-reminder-templates.ts +249 -249
  518. package/src/hooks/guard/task-context.ts +45 -45
  519. package/src/hooks/guard/tool-execute-after.ts +209 -209
  520. package/src/hooks/guard/tool-execute-before.ts +102 -102
  521. package/src/hooks/guard/tsconfig.json +9 -9
  522. package/src/hooks/guard/types.ts +45 -45
  523. package/src/hooks/guard/verification-reminders.ts +197 -197
  524. package/src/hooks/guard/write-edit-tool-policy.ts +5 -5
  525. package/src/hooks/hashline-edit-diff-enhancer/hook.ts +106 -106
  526. package/src/hooks/hashline-read-enhancer/hook.ts +193 -193
  527. package/src/hooks/hashline-read-enhancer/index.ts +1 -1
  528. package/src/hooks/index.ts +58 -58
  529. package/src/hooks/interactive-bash-session/constants.ts +13 -13
  530. package/src/hooks/interactive-bash-session/hook.ts +125 -125
  531. package/src/hooks/interactive-bash-session/index.ts +3 -3
  532. package/src/hooks/interactive-bash-session/interactive-bash-session-tracker.ts +119 -119
  533. package/src/hooks/interactive-bash-session/parser.ts +118 -118
  534. package/src/hooks/interactive-bash-session/state-manager.ts +35 -35
  535. package/src/hooks/interactive-bash-session/storage.ts +59 -59
  536. package/src/hooks/interactive-bash-session/tmux-command-parser.ts +125 -125
  537. package/src/hooks/interactive-bash-session/types.ts +11 -11
  538. package/src/hooks/json-error-recovery/hook.ts +58 -58
  539. package/src/hooks/json-error-recovery/index.ts +6 -6
  540. package/src/hooks/keyword-detector/AGENTS.md +57 -57
  541. package/src/hooks/keyword-detector/analyze/default.ts +28 -28
  542. package/src/hooks/keyword-detector/analyze/index.ts +1 -1
  543. package/src/hooks/keyword-detector/constants.ts +45 -45
  544. package/src/hooks/keyword-detector/detector.ts +53 -53
  545. package/src/hooks/keyword-detector/hook.ts +143 -143
  546. package/src/hooks/keyword-detector/index.ts +5 -5
  547. package/src/hooks/keyword-detector/search/default.ts +20 -20
  548. package/src/hooks/keyword-detector/search/index.ts +1 -1
  549. package/src/hooks/keyword-detector/types.ts +4 -4
  550. package/src/hooks/keyword-detector/ultrawork/default.ts +302 -302
  551. package/src/hooks/keyword-detector/ultrawork/gemini.ts +290 -290
  552. package/src/hooks/keyword-detector/ultrawork/gpt.ts +173 -173
  553. package/src/hooks/keyword-detector/ultrawork/index.ts +56 -56
  554. package/src/hooks/keyword-detector/ultrawork/planner.ts +140 -140
  555. package/src/hooks/keyword-detector/ultrawork/source-detector.ts +65 -65
  556. package/src/hooks/legacy-plugin-toast/auto-migrate-runner.ts +2 -2
  557. package/src/hooks/legacy-plugin-toast/auto-migrate.ts +64 -64
  558. package/src/hooks/legacy-plugin-toast/hook.ts +68 -68
  559. package/src/hooks/legacy-plugin-toast/index.ts +1 -1
  560. package/src/hooks/legacy-plugin-toast/plugin-entry-migrator.ts +1 -1
  561. package/src/hooks/model-fallback/chat-message-fallback-handler.ts +74 -74
  562. package/src/hooks/model-fallback/hook.ts +201 -201
  563. package/src/hooks/model-fallback/next-fallback.ts +84 -84
  564. package/src/hooks/no-bob-gpt/hook.ts +56 -56
  565. package/src/hooks/no-bob-gpt/index.ts +1 -1
  566. package/src/hooks/no-coder-non-gpt/hook.ts +67 -67
  567. package/src/hooks/no-coder-non-gpt/index.ts +1 -1
  568. package/src/hooks/non-interactive-env/constants.ts +70 -70
  569. package/src/hooks/non-interactive-env/detector.ts +19 -19
  570. package/src/hooks/non-interactive-env/index.ts +5 -5
  571. package/src/hooks/non-interactive-env/non-interactive-env-hook.ts +73 -73
  572. package/src/hooks/non-interactive-env/types.ts +3 -3
  573. package/src/hooks/preemptive-compaction-degradation-monitor.ts +212 -212
  574. package/src/hooks/preemptive-compaction-no-text-tail.ts +70 -70
  575. package/src/hooks/preemptive-compaction.ts +218 -218
  576. package/src/hooks/question-label-truncator/hook.ts +62 -62
  577. package/src/hooks/question-label-truncator/index.ts +1 -1
  578. package/src/hooks/ralph-loop/AGENTS.md +62 -62
  579. package/src/hooks/ralph-loop/command-arguments.ts +30 -30
  580. package/src/hooks/ralph-loop/completion-handler.ts +65 -65
  581. package/src/hooks/ralph-loop/completion-promise-detector-test-input.ts +23 -23
  582. package/src/hooks/ralph-loop/completion-promise-detector.ts +165 -165
  583. package/src/hooks/ralph-loop/constants.ts +7 -7
  584. package/src/hooks/ralph-loop/continuation-prompt-builder.ts +77 -77
  585. package/src/hooks/ralph-loop/continuation-prompt-injector.ts +91 -91
  586. package/src/hooks/ralph-loop/index.ts +6 -6
  587. package/src/hooks/ralph-loop/iteration-continuation.ts +64 -64
  588. package/src/hooks/ralph-loop/logician-verification-detector.ts +88 -88
  589. package/src/hooks/ralph-loop/loop-session-recovery.ts +33 -33
  590. package/src/hooks/ralph-loop/loop-state-controller.ts +178 -178
  591. package/src/hooks/ralph-loop/message-storage-directory.ts +1 -1
  592. package/src/hooks/ralph-loop/pending-verification-handler.ts +152 -152
  593. package/src/hooks/ralph-loop/ralph-loop-event-handler.ts +231 -231
  594. package/src/hooks/ralph-loop/ralph-loop-hook.ts +90 -90
  595. package/src/hooks/ralph-loop/session-event-handler.ts +56 -56
  596. package/src/hooks/ralph-loop/session-reset-strategy.ts +69 -69
  597. package/src/hooks/ralph-loop/storage.ts +164 -164
  598. package/src/hooks/ralph-loop/types.ts +25 -25
  599. package/src/hooks/ralph-loop/verification-failure-handler.ts +103 -103
  600. package/src/hooks/ralph-loop/with-timeout.ts +20 -20
  601. package/src/hooks/read-image-resizer/hook.ts +209 -209
  602. package/src/hooks/read-image-resizer/image-dimensions.ts +191 -191
  603. package/src/hooks/read-image-resizer/image-resizer.ts +191 -191
  604. package/src/hooks/read-image-resizer/index.ts +1 -1
  605. package/src/hooks/read-image-resizer/png-fallback-resizer.ts +359 -359
  606. package/src/hooks/read-image-resizer/types.ts +16 -16
  607. package/src/hooks/rules-injector/AGENTS.md +53 -53
  608. package/src/hooks/rules-injector/cache.ts +27 -27
  609. package/src/hooks/rules-injector/constants.ts +31 -31
  610. package/src/hooks/rules-injector/finder.ts +3 -3
  611. package/src/hooks/rules-injector/hook.ts +94 -94
  612. package/src/hooks/rules-injector/index.ts +2 -2
  613. package/src/hooks/rules-injector/injector.ts +189 -189
  614. package/src/hooks/rules-injector/matcher.ts +63 -63
  615. package/src/hooks/rules-injector/output-path.ts +22 -22
  616. package/src/hooks/rules-injector/parser.ts +211 -211
  617. package/src/hooks/rules-injector/project-root-finder.ts +36 -36
  618. package/src/hooks/rules-injector/rule-distance.ts +53 -53
  619. package/src/hooks/rules-injector/rule-file-finder.ts +139 -139
  620. package/src/hooks/rules-injector/rule-file-scanner.ts +55 -55
  621. package/src/hooks/rules-injector/storage.ts +59 -59
  622. package/src/hooks/rules-injector/types.ts +57 -57
  623. package/src/hooks/runtime-fallback/AGENTS.md +102 -102
  624. package/src/hooks/runtime-fallback/agent-resolver.ts +50 -50
  625. package/src/hooks/runtime-fallback/auto-retry-signal.ts +32 -32
  626. package/src/hooks/runtime-fallback/auto-retry.ts +228 -228
  627. package/src/hooks/runtime-fallback/chat-message-handler.ts +62 -62
  628. package/src/hooks/runtime-fallback/constants.ts +47 -47
  629. package/src/hooks/runtime-fallback/error-classifier.ts +183 -183
  630. package/src/hooks/runtime-fallback/event-handler.ts +213 -213
  631. package/src/hooks/runtime-fallback/fallback-bootstrap-model.ts +63 -63
  632. package/src/hooks/runtime-fallback/fallback-models.ts +86 -86
  633. package/src/hooks/runtime-fallback/fallback-retry-dispatcher.ts +55 -55
  634. package/src/hooks/runtime-fallback/fallback-state.ts +74 -74
  635. package/src/hooks/runtime-fallback/hook.ts +87 -87
  636. package/src/hooks/runtime-fallback/index.ts +2 -2
  637. package/src/hooks/runtime-fallback/last-user-retry-parts.ts +20 -20
  638. package/src/hooks/runtime-fallback/message-update-handler.ts +168 -168
  639. package/src/hooks/runtime-fallback/retry-model-payload.ts +30 -30
  640. package/src/hooks/runtime-fallback/session-messages.ts +38 -38
  641. package/src/hooks/runtime-fallback/session-status-handler.ts +126 -126
  642. package/src/hooks/runtime-fallback/types.ts +77 -77
  643. package/src/hooks/runtime-fallback/visible-assistant-response.ts +80 -80
  644. package/src/hooks/session-notification-content.ts +145 -145
  645. package/src/hooks/session-notification-formatting.ts +25 -25
  646. package/src/hooks/session-notification-scheduler.ts +188 -188
  647. package/src/hooks/session-notification-sender.ts +117 -117
  648. package/src/hooks/session-notification-utils.ts +80 -80
  649. package/src/hooks/session-notification.ts +219 -219
  650. package/src/hooks/session-recovery/AGENTS.md +59 -59
  651. package/src/hooks/session-recovery/constants.ts +5 -5
  652. package/src/hooks/session-recovery/detect-error-type.ts +102 -102
  653. package/src/hooks/session-recovery/hook.ts +166 -166
  654. package/src/hooks/session-recovery/index.ts +7 -7
  655. package/src/hooks/session-recovery/recover-empty-content-message-sdk.ts +201 -201
  656. package/src/hooks/session-recovery/recover-thinking-block-order.ts +137 -137
  657. package/src/hooks/session-recovery/recover-thinking-disabled-violation.ts +75 -75
  658. package/src/hooks/session-recovery/recover-tool-result-missing.ts +108 -108
  659. package/src/hooks/session-recovery/recover-unavailable-tool.ts +108 -108
  660. package/src/hooks/session-recovery/resume.ts +49 -49
  661. package/src/hooks/session-recovery/storage/empty-messages.ts +47 -47
  662. package/src/hooks/session-recovery/storage/empty-text.ts +118 -118
  663. package/src/hooks/session-recovery/storage/message-dir.ts +1 -1
  664. package/src/hooks/session-recovery/storage/messages-reader.ts +83 -83
  665. package/src/hooks/session-recovery/storage/orphan-thinking-search.ts +43 -43
  666. package/src/hooks/session-recovery/storage/part-content.ts +28 -28
  667. package/src/hooks/session-recovery/storage/part-id.ts +5 -5
  668. package/src/hooks/session-recovery/storage/parts-reader.ts +56 -56
  669. package/src/hooks/session-recovery/storage/text-part-injector.ts +63 -63
  670. package/src/hooks/session-recovery/storage/thinking-block-search.ts +42 -42
  671. package/src/hooks/session-recovery/storage/thinking-prepend.ts +223 -223
  672. package/src/hooks/session-recovery/storage/thinking-strip.ts +67 -67
  673. package/src/hooks/session-recovery/storage.ts +34 -34
  674. package/src/hooks/session-recovery/types.ts +101 -101
  675. package/src/hooks/session-todo-status.ts +20 -20
  676. package/src/hooks/shared/compaction-model-resolver.ts +34 -34
  677. package/src/hooks/shared/shared/compaction-model-resolver.ts +34 -34
  678. package/src/hooks/start-work/context-info-builder.ts +319 -319
  679. package/src/hooks/start-work/index.ts +4 -4
  680. package/src/hooks/start-work/parse-user-request.ts +32 -32
  681. package/src/hooks/start-work/start-work-hook.ts +135 -135
  682. package/src/hooks/start-work/worktree-block.ts +11 -11
  683. package/src/hooks/start-work/worktree-detector.ts +77 -77
  684. package/src/hooks/stop-continuation-guard/hook.ts +122 -122
  685. package/src/hooks/stop-continuation-guard/index.ts +2 -2
  686. package/src/hooks/strategist-md-only/agent-matcher.ts +5 -5
  687. package/src/hooks/strategist-md-only/agent-resolution.ts +70 -70
  688. package/src/hooks/strategist-md-only/constants.ts +78 -78
  689. package/src/hooks/strategist-md-only/hook.ts +82 -82
  690. package/src/hooks/strategist-md-only/index.ts +2 -2
  691. package/src/hooks/strategist-md-only/path-policy.ts +41 -41
  692. package/src/hooks/sub-notepad/constants.ts +29 -29
  693. package/src/hooks/sub-notepad/hook.ts +44 -44
  694. package/src/hooks/sub-notepad/index.ts +3 -3
  695. package/src/hooks/task-reminder/hook.ts +59 -59
  696. package/src/hooks/task-reminder/index.ts +1 -1
  697. package/src/hooks/task-resume-info/hook.ts +39 -39
  698. package/src/hooks/task-resume-info/index.ts +1 -1
  699. package/src/hooks/tasks-todowrite-disabler/constants.ts +30 -30
  700. package/src/hooks/tasks-todowrite-disabler/hook.ts +34 -34
  701. package/src/hooks/tasks-todowrite-disabler/index.ts +2 -2
  702. package/src/hooks/think-mode/detector.ts +59 -59
  703. package/src/hooks/think-mode/hook.ts +76 -76
  704. package/src/hooks/think-mode/index.ts +5 -5
  705. package/src/hooks/think-mode/switcher.ts +100 -100
  706. package/src/hooks/think-mode/types.ts +16 -16
  707. package/src/hooks/thinking-block-validator/hook.ts +181 -181
  708. package/src/hooks/thinking-block-validator/index.ts +1 -1
  709. package/src/hooks/todo-continuation-enforcer/AGENTS.md +65 -65
  710. package/src/hooks/todo-continuation-enforcer/abort-detection.ts +17 -17
  711. package/src/hooks/todo-continuation-enforcer/compaction-guard.ts +39 -39
  712. package/src/hooks/todo-continuation-enforcer/constants.ts +25 -25
  713. package/src/hooks/todo-continuation-enforcer/continuation-injection.ts +222 -222
  714. package/src/hooks/todo-continuation-enforcer/countdown.ts +86 -86
  715. package/src/hooks/todo-continuation-enforcer/handler.ts +99 -99
  716. package/src/hooks/todo-continuation-enforcer/idle-event.ts +225 -225
  717. package/src/hooks/todo-continuation-enforcer/index.ts +59 -59
  718. package/src/hooks/todo-continuation-enforcer/message-directory.ts +1 -1
  719. package/src/hooks/todo-continuation-enforcer/non-idle-events.ts +107 -107
  720. package/src/hooks/todo-continuation-enforcer/pending-question-detection.ts +40 -40
  721. package/src/hooks/todo-continuation-enforcer/resolve-message-info.ts +48 -48
  722. package/src/hooks/todo-continuation-enforcer/session-state.ts +283 -283
  723. package/src/hooks/todo-continuation-enforcer/stagnation-detection.ts +36 -36
  724. package/src/hooks/todo-continuation-enforcer/todo.ts +11 -11
  725. package/src/hooks/todo-continuation-enforcer/token-limit-detection.ts +38 -38
  726. package/src/hooks/todo-continuation-enforcer/types.ts +74 -74
  727. package/src/hooks/todo-description-override/description.ts +28 -28
  728. package/src/hooks/todo-description-override/hook.ts +14 -14
  729. package/src/hooks/todo-description-override/index.ts +1 -1
  730. package/src/hooks/tool-output-truncator.ts +66 -66
  731. package/src/hooks/tool-pair-validator/hook.ts +184 -184
  732. package/src/hooks/tool-pair-validator/index.ts +1 -1
  733. package/src/hooks/unstable-agent-babysitter/index.ts +9 -9
  734. package/src/hooks/unstable-agent-babysitter/task-message-analyzer.ts +110 -110
  735. package/src/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.ts +238 -238
  736. package/src/hooks/webfetch-redirect-guard/constants.ts +11 -11
  737. package/src/hooks/webfetch-redirect-guard/hook.ts +123 -123
  738. package/src/hooks/webfetch-redirect-guard/index.ts +1 -1
  739. package/src/hooks/webfetch-redirect-guard/redirect-resolution.ts +89 -89
  740. package/src/hooks/write-existing-file-guard/hook.ts +108 -108
  741. package/src/hooks/write-existing-file-guard/index.ts +1 -1
  742. package/src/hooks/write-existing-file-guard/session-read-permissions.ts +36 -36
  743. package/src/hooks/write-existing-file-guard/tool-execute-before-handler.ts +176 -176
  744. package/src/index.ts +284 -284
  745. package/src/internals/plugins/pty/LICENSE +21 -21
  746. package/src/internals/plugins/pty/constants.ts +7 -7
  747. package/src/internals/plugins/pty/plugin.ts +28 -28
  748. package/src/internals/plugins/pty/pty/buffer.ts +75 -75
  749. package/src/internals/plugins/pty/pty/formatters.ts +22 -22
  750. package/src/internals/plugins/pty/pty/manager.ts +175 -175
  751. package/src/internals/plugins/pty/pty/notification-manager.ts +75 -75
  752. package/src/internals/plugins/pty/pty/output-manager.ts +29 -29
  753. package/src/internals/plugins/pty/pty/permissions.ts +115 -115
  754. package/src/internals/plugins/pty/pty/session-lifecycle.ts +161 -161
  755. package/src/internals/plugins/pty/pty/tools/kill.ts +41 -41
  756. package/src/internals/plugins/pty/pty/tools/kill.txt +25 -25
  757. package/src/internals/plugins/pty/pty/tools/list.ts +25 -25
  758. package/src/internals/plugins/pty/pty/tools/list.txt +22 -22
  759. package/src/internals/plugins/pty/pty/tools/read.ts +234 -234
  760. package/src/internals/plugins/pty/pty/tools/read.txt +39 -39
  761. package/src/internals/plugins/pty/pty/tools/spawn.ts +71 -71
  762. package/src/internals/plugins/pty/pty/tools/spawn.txt +47 -47
  763. package/src/internals/plugins/pty/pty/tools/write.ts +96 -96
  764. package/src/internals/plugins/pty/pty/tools/write.txt +28 -28
  765. package/src/internals/plugins/pty/pty/types.ts +67 -67
  766. package/src/internals/plugins/pty/pty/utils.ts +21 -21
  767. package/src/internals/plugins/pty/pty/wildcard.ts +62 -62
  768. package/src/internals/plugins/pty/shared/constants.ts +7 -7
  769. package/src/internals/plugins/pty/types.ts +7 -7
  770. package/src/internals/plugins/subtask2/LICENSE +128 -128
  771. package/src/internals/plugins/subtask2/commands/index.ts +7 -7
  772. package/src/internals/plugins/subtask2/commands/loader.ts +39 -39
  773. package/src/internals/plugins/subtask2/commands/manifest.ts +64 -64
  774. package/src/internals/plugins/subtask2/commands/resolver.ts +28 -28
  775. package/src/internals/plugins/subtask2/core/plugin.ts +52 -52
  776. package/src/internals/plugins/subtask2/core/state.ts +764 -764
  777. package/src/internals/plugins/subtask2/features/auto.ts +57 -57
  778. package/src/internals/plugins/subtask2/features/index.ts +9 -9
  779. package/src/internals/plugins/subtask2/features/inline-subtasks.ts +205 -205
  780. package/src/internals/plugins/subtask2/features/parallel.ts +148 -148
  781. package/src/internals/plugins/subtask2/features/results.ts +48 -48
  782. package/src/internals/plugins/subtask2/features/returns.ts +273 -273
  783. package/src/internals/plugins/subtask2/features/turns.ts +190 -190
  784. package/src/internals/plugins/subtask2/hooks/command-hooks.ts +283 -283
  785. package/src/internals/plugins/subtask2/hooks/message-hooks.ts +603 -603
  786. package/src/internals/plugins/subtask2/hooks/session-idle-hook.ts +358 -358
  787. package/src/internals/plugins/subtask2/hooks/tool-hooks.ts +309 -309
  788. package/src/internals/plugins/subtask2/loop.ts +122 -122
  789. package/src/internals/plugins/subtask2/parsing/auto.ts +33 -33
  790. package/src/internals/plugins/subtask2/parsing/commands.ts +154 -154
  791. package/src/internals/plugins/subtask2/parsing/frontmatter.ts +20 -20
  792. package/src/internals/plugins/subtask2/parsing/index.ts +10 -10
  793. package/src/internals/plugins/subtask2/parsing/overrides.ts +68 -68
  794. package/src/internals/plugins/subtask2/parsing/parallel.ts +88 -88
  795. package/src/internals/plugins/subtask2/parsing/turns.ts +78 -78
  796. package/src/internals/plugins/subtask2/types.ts +41 -41
  797. package/src/internals/plugins/subtask2/utils/config.ts +100 -100
  798. package/src/internals/plugins/subtask2/utils/index.ts +7 -7
  799. package/src/internals/plugins/subtask2/utils/logger.ts +67 -67
  800. package/src/internals/plugins/subtask2/utils/prompts.ts +117 -117
  801. package/src/internals/plugins/websearch-cited/LICENSE +214 -214
  802. package/src/internals/plugins/websearch-cited/codex_prompt.txt +79 -79
  803. package/src/internals/plugins/websearch-cited/google.ts +749 -749
  804. package/src/internals/plugins/websearch-cited/index.ts +301 -301
  805. package/src/internals/plugins/websearch-cited/openai.ts +407 -407
  806. package/src/internals/plugins/websearch-cited/openrouter.ts +190 -190
  807. package/src/internals/plugins/websearch-cited/types.ts +7 -7
  808. package/src/lsp/index.ts +15 -15
  809. package/src/mcp/context7.ts +9 -9
  810. package/src/mcp/grep-app.ts +6 -6
  811. package/src/mcp/index.ts +87 -87
  812. package/src/mcp/omo-mcp-index.ts +35 -35
  813. package/src/mcp/types.ts +9 -9
  814. package/src/mcp/websearch.ts +44 -44
  815. package/src/permissions/index.ts +25 -25
  816. package/src/plugin/AGENTS.md +54 -54
  817. package/src/plugin/available-categories.ts +24 -24
  818. package/src/plugin/chat-headers.ts +141 -141
  819. package/src/plugin/chat-message.ts +309 -309
  820. package/src/plugin/chat-params.ts +182 -182
  821. package/src/plugin/command-execute-before.ts +80 -80
  822. package/src/plugin/event.ts +639 -639
  823. package/src/plugin/hooks/create-continuation-hooks.ts +128 -128
  824. package/src/plugin/hooks/create-core-hooks.ts +47 -47
  825. package/src/plugin/hooks/create-session-hooks.ts +286 -286
  826. package/src/plugin/hooks/create-skill-hooks.ts +50 -50
  827. package/src/plugin/hooks/create-tool-guard-hooks.ts +159 -159
  828. package/src/plugin/hooks/create-transform-hooks.ts +85 -85
  829. package/src/plugin/messages-transform.ts +28 -28
  830. package/src/plugin/normalize-tool-arg-schemas.ts +75 -75
  831. package/src/plugin/recent-synthetic-idles.ts +20 -20
  832. package/src/plugin/session-agent-resolver.ts +37 -37
  833. package/src/plugin/session-status-normalizer.ts +22 -22
  834. package/src/plugin/skill-context.ts +132 -132
  835. package/src/plugin/system-transform.ts +6 -6
  836. package/src/plugin/tool-execute-after.ts +178 -178
  837. package/src/plugin/tool-execute-before.ts +222 -222
  838. package/src/plugin/tool-registry.ts +282 -282
  839. package/src/plugin/types.ts +26 -26
  840. package/src/plugin/ultrawork-db-model-override.ts +142 -142
  841. package/src/plugin/ultrawork-model-override.ts +196 -196
  842. package/src/plugin/ultrawork-variant-availability.ts +51 -51
  843. package/src/plugin/unstable-agent-babysitter.ts +41 -41
  844. package/src/plugin-config.ts +314 -314
  845. package/src/plugin-dispose.ts +51 -51
  846. package/src/plugin-handlers/AGENTS.md +92 -92
  847. package/src/plugin-handlers/agent-config-handler.ts +502 -502
  848. package/src/plugin-handlers/agent-key-remapper.ts +39 -39
  849. package/src/plugin-handlers/agent-override-protection.ts +38 -38
  850. package/src/plugin-handlers/agent-priority-order.ts +63 -63
  851. package/src/plugin-handlers/category-config-resolver.ts +9 -9
  852. package/src/plugin-handlers/command-config-handler.ts +105 -105
  853. package/src/plugin-handlers/config-handler.ts +61 -61
  854. package/src/plugin-handlers/index.ts +10 -10
  855. package/src/plugin-handlers/mcp-config-handler.ts +205 -205
  856. package/src/plugin-handlers/plan-model-inheritance.ts +27 -27
  857. package/src/plugin-handlers/plugin-components-loader.ts +70 -70
  858. package/src/plugin-handlers/provider-config-handler.ts +73 -73
  859. package/src/plugin-handlers/strategist-agent-config-builder.ts +128 -128
  860. package/src/plugin-handlers/tool-config-handler.ts +193 -193
  861. package/src/plugin-interface.ts +83 -83
  862. package/src/plugin-state.ts +18 -18
  863. package/src/shared/AGENTS.md +54 -54
  864. package/src/shared/agent-display-names.ts +182 -182
  865. package/src/shared/agent-tool-restrictions.ts +80 -80
  866. package/src/shared/agent-variant.ts +101 -101
  867. package/src/shared/agents-config-dir.ts +23 -23
  868. package/src/shared/archive-entry-validator.ts +83 -83
  869. package/src/shared/background-output-consumption.ts +69 -69
  870. package/src/shared/binary-downloader.ts +127 -127
  871. package/src/shared/claude-config-dir.ts +16 -16
  872. package/src/shared/closure-protocol.ts +53 -53
  873. package/src/shared/command-executor/embedded-commands.ts +26 -26
  874. package/src/shared/command-executor/execute-command.ts +28 -28
  875. package/src/shared/command-executor/execute-hook-command.ts +129 -129
  876. package/src/shared/command-executor/home-directory.ts +5 -5
  877. package/src/shared/command-executor/resolve-commands-in-text.ts +49 -49
  878. package/src/shared/command-executor/shell-path.ts +27 -27
  879. package/src/shared/command-executor.ts +5 -5
  880. package/src/shared/compaction-agent-config-checkpoint.ts +42 -42
  881. package/src/shared/compaction-marker.ts +61 -61
  882. package/src/shared/config-errors.ts +18 -18
  883. package/src/shared/connected-providers-cache.ts +215 -215
  884. package/src/shared/contains-path.ts +50 -50
  885. package/src/shared/context-limit-resolver.ts +42 -42
  886. package/src/shared/data-path.ts +64 -64
  887. package/src/shared/deep-merge.ts +53 -53
  888. package/src/shared/disabled-tools.ts +19 -19
  889. package/src/shared/dynamic-truncator.ts +222 -222
  890. package/src/shared/external-plugin-detector.ts +139 -139
  891. package/src/shared/fallback-chain-from-models.ts +124 -124
  892. package/src/shared/fallback-model-availability.ts +102 -102
  893. package/src/shared/file-reference-resolver.ts +99 -99
  894. package/src/shared/file-utils.ts +34 -34
  895. package/src/shared/first-message-variant.ts +28 -28
  896. package/src/shared/frontmatter.ts +31 -31
  897. package/src/shared/git-worktree/collect-git-diff-stats.ts +56 -56
  898. package/src/shared/git-worktree/format-file-changes.ts +46 -46
  899. package/src/shared/git-worktree/index.ts +7 -7
  900. package/src/shared/git-worktree/parse-diff-numstat.ts +27 -27
  901. package/src/shared/git-worktree/parse-status-porcelain-line.ts +27 -27
  902. package/src/shared/git-worktree/parse-status-porcelain.ts +15 -15
  903. package/src/shared/git-worktree/types.ts +8 -8
  904. package/src/shared/hook-disabled.ts +22 -22
  905. package/src/shared/index.ts +80 -80
  906. package/src/shared/internal-initiator-marker.ts +18 -18
  907. package/src/shared/is-abort-error.ts +20 -20
  908. package/src/shared/json-file-cache-store.ts +98 -98
  909. package/src/shared/jsonc-parser.ts +98 -98
  910. package/src/shared/known-variants.ts +16 -16
  911. package/src/shared/legacy-plugin-warning.ts +68 -68
  912. package/src/shared/load-opencode-plugins.ts +60 -60
  913. package/src/shared/log-legacy-plugin-startup-warning.ts +46 -46
  914. package/src/shared/logger.ts +48 -48
  915. package/src/shared/merge-categories.ts +18 -18
  916. package/src/shared/migrate-legacy-config-file.ts +66 -66
  917. package/src/shared/migrate-legacy-plugin-entry.ts +75 -75
  918. package/src/shared/migration/agent-category.ts +60 -60
  919. package/src/shared/migration/agent-names.ts +100 -100
  920. package/src/shared/migration/config-migration.ts +210 -210
  921. package/src/shared/migration/hook-names.ts +40 -40
  922. package/src/shared/migration/migrations-sidecar.ts +92 -92
  923. package/src/shared/migration/model-versions.ts +50 -50
  924. package/src/shared/migration.ts +5 -5
  925. package/src/shared/model-availability.ts +294 -294
  926. package/src/shared/model-capabilities/bundled-snapshot.ts +15 -15
  927. package/src/shared/model-capabilities/get-model-capabilities.ts +140 -140
  928. package/src/shared/model-capabilities/index.ts +9 -9
  929. package/src/shared/model-capabilities/runtime-model-readers.ts +190 -190
  930. package/src/shared/model-capabilities/types.ts +80 -80
  931. package/src/shared/model-capabilities-cache.ts +213 -213
  932. package/src/shared/model-capability-aliases.ts +108 -108
  933. package/src/shared/model-capability-guardrails.ts +149 -149
  934. package/src/shared/model-capability-heuristics.ts +32 -32
  935. package/src/shared/model-error-classifier.ts +214 -214
  936. package/src/shared/model-format-normalizer.ts +20 -20
  937. package/src/shared/model-normalization.ts +8 -8
  938. package/src/shared/model-requirements.ts +26 -26
  939. package/src/shared/model-resolution-pipeline.ts +216 -216
  940. package/src/shared/model-resolution-types.ts +41 -41
  941. package/src/shared/model-resolver.ts +106 -106
  942. package/src/shared/model-sanitizer.ts +12 -12
  943. package/src/shared/model-settings-compatibility.ts +200 -200
  944. package/src/shared/model-suggestion-retry.ts +182 -182
  945. package/src/shared/normalize-sdk-response.ts +36 -36
  946. package/src/shared/opencode-command-dirs.ts +36 -36
  947. package/src/shared/opencode-config-dir-types.ts +15 -15
  948. package/src/shared/opencode-config-dir.ts +135 -135
  949. package/src/shared/opencode-http-api.ts +139 -139
  950. package/src/shared/opencode-message-dir.ts +29 -29
  951. package/src/shared/opencode-server-auth.ts +190 -190
  952. package/src/shared/opencode-storage-detection.ts +33 -33
  953. package/src/shared/opencode-storage-paths.ts +6 -6
  954. package/src/shared/opencode-version.ts +80 -80
  955. package/src/shared/parse-tools-config.ts +25 -25
  956. package/src/shared/pattern-matcher.ts +46 -46
  957. package/src/shared/permission-compat.ts +86 -86
  958. package/src/shared/plugin-command-discovery.ts +28 -28
  959. package/src/shared/plugin-entry-migrator.ts +21 -21
  960. package/src/shared/plugin-identity.ts +8 -8
  961. package/src/shared/port-utils.ts +48 -48
  962. package/src/shared/project-discovery-dirs.ts +101 -101
  963. package/src/shared/prompt-timeout-context.ts +49 -49
  964. package/src/shared/prompt-tools.ts +35 -35
  965. package/src/shared/provider-model-id-transform.ts +58 -58
  966. package/src/shared/question-denied-session-permission.ts +9 -9
  967. package/src/shared/record-type-guard.ts +3 -3
  968. package/src/shared/resolve-agent-definition-paths.ts +22 -22
  969. package/src/shared/retry-status-utils.ts +19 -19
  970. package/src/shared/runtime-plugin-config.ts +98 -98
  971. package/src/shared/safe-create-hook.ts +24 -24
  972. package/src/shared/session-category-registry.ts +27 -27
  973. package/src/shared/session-cursor.ts +108 -108
  974. package/src/shared/session-directory-resolver.ts +41 -41
  975. package/src/shared/session-injected-paths.ts +59 -59
  976. package/src/shared/session-model-state.ts +15 -15
  977. package/src/shared/session-prompt-params-helpers.ts +31 -31
  978. package/src/shared/session-prompt-params-state.ts +37 -37
  979. package/src/shared/session-tools-store.ts +18 -18
  980. package/src/shared/session-utils.ts +25 -25
  981. package/src/shared/shell-env.ts +175 -175
  982. package/src/shared/skill-path-resolver.ts +26 -26
  983. package/src/shared/snake-case.ts +44 -44
  984. package/src/shared/spawn-with-windows-hide.ts +84 -84
  985. package/src/shared/system-directive.ts +67 -67
  986. package/src/shared/task-system-enabled.ts +9 -9
  987. package/src/shared/tmux/constants.ts +12 -12
  988. package/src/shared/tmux/index.ts +3 -3
  989. package/src/shared/tmux/tmux-utils/environment.ts +13 -13
  990. package/src/shared/tmux/tmux-utils/layout.ts +96 -96
  991. package/src/shared/tmux/tmux-utils/pane-close.ts +48 -48
  992. package/src/shared/tmux/tmux-utils/pane-dimensions.ts +28 -28
  993. package/src/shared/tmux/tmux-utils/pane-replace.ts +73 -73
  994. package/src/shared/tmux/tmux-utils/pane-spawn.ts +94 -94
  995. package/src/shared/tmux/tmux-utils/server-health.ts +62 -62
  996. package/src/shared/tmux/tmux-utils/session-spawn.ts +145 -145
  997. package/src/shared/tmux/tmux-utils/window-spawn.ts +93 -93
  998. package/src/shared/tmux/tmux-utils.ts +15 -15
  999. package/src/shared/tmux/types.ts +4 -4
  1000. package/src/shared/tool-name.ts +27 -27
  1001. package/src/shared/truncate-description.ts +11 -11
  1002. package/src/shared/vision-capable-models-cache.ts +17 -17
  1003. package/src/shared/write-file-atomically.ts +31 -31
  1004. package/src/shared/zip-entry-listing/powershell-zip-entry-listing.ts +99 -99
  1005. package/src/shared/zip-entry-listing/python-zip-entry-listing.ts +55 -55
  1006. package/src/shared/zip-entry-listing/read-zip-symlink-target.ts +23 -23
  1007. package/src/shared/zip-entry-listing/tar-zip-entry-listing.ts +93 -93
  1008. package/src/shared/zip-entry-listing/zipinfo-zip-entry-listing.ts +72 -72
  1009. package/src/shared/zip-entry-listing.ts +13 -13
  1010. package/src/shared/zip-extractor.ts +118 -118
  1011. package/src/skills/index.ts +56 -56
  1012. package/src/testing/module-mock-lifecycle.ts +143 -143
  1013. package/src/tools/AGENTS.md +108 -108
  1014. package/src/tools/ast-grep/cli-binary-path-resolution.ts +60 -60
  1015. package/src/tools/ast-grep/cli.ts +177 -177
  1016. package/src/tools/ast-grep/constants.ts +5 -5
  1017. package/src/tools/ast-grep/downloader.ts +119 -119
  1018. package/src/tools/ast-grep/environment-check.ts +89 -89
  1019. package/src/tools/ast-grep/index.ts +5 -5
  1020. package/src/tools/ast-grep/language-support.ts +63 -63
  1021. package/src/tools/ast-grep/process-output-timeout.ts +28 -28
  1022. package/src/tools/ast-grep/result-formatter.ts +102 -102
  1023. package/src/tools/ast-grep/sg-cli-path.ts +102 -102
  1024. package/src/tools/ast-grep/sg-compact-json-output.ts +54 -54
  1025. package/src/tools/ast-grep/tools.ts +117 -117
  1026. package/src/tools/ast-grep/types.ts +61 -61
  1027. package/src/tools/background-task/AGENTS.md +53 -53
  1028. package/src/tools/background-task/clients.ts +32 -32
  1029. package/src/tools/background-task/constants.ts +9 -9
  1030. package/src/tools/background-task/create-background-cancel.ts +115 -115
  1031. package/src/tools/background-task/create-background-output.ts +159 -159
  1032. package/src/tools/background-task/create-background-task.ts +126 -126
  1033. package/src/tools/background-task/delay.ts +3 -3
  1034. package/src/tools/background-task/full-session-format.ts +148 -148
  1035. package/src/tools/background-task/index.ts +8 -8
  1036. package/src/tools/background-task/message-dir.ts +1 -1
  1037. package/src/tools/background-task/session-messages.ts +22 -22
  1038. package/src/tools/background-task/task-result-format.ts +113 -113
  1039. package/src/tools/background-task/task-status-format.ts +72 -72
  1040. package/src/tools/background-task/time-format.ts +30 -30
  1041. package/src/tools/background-task/tools.ts +11 -11
  1042. package/src/tools/background-task/truncate-text.ts +4 -4
  1043. package/src/tools/background-task/types.ts +72 -72
  1044. package/src/tools/call-omo-agent/AGENTS.md +51 -51
  1045. package/src/tools/call-omo-agent/agent-resolver.ts +64 -64
  1046. package/src/tools/call-omo-agent/background-agent-executor.ts +91 -91
  1047. package/src/tools/call-omo-agent/background-executor.ts +98 -98
  1048. package/src/tools/call-omo-agent/completion-poller.ts +65 -65
  1049. package/src/tools/call-omo-agent/constants.ts +23 -23
  1050. package/src/tools/call-omo-agent/index.ts +3 -3
  1051. package/src/tools/call-omo-agent/message-dir.ts +1 -1
  1052. package/src/tools/call-omo-agent/message-processor.ts +86 -86
  1053. package/src/tools/call-omo-agent/message-storage-directory.ts +1 -1
  1054. package/src/tools/call-omo-agent/session-creator.ts +70 -70
  1055. package/src/tools/call-omo-agent/subagent-session-creator.ts +74 -74
  1056. package/src/tools/call-omo-agent/sync-executor.ts +148 -148
  1057. package/src/tools/call-omo-agent/tool-context-with-metadata.ts +10 -10
  1058. package/src/tools/call-omo-agent/tools.ts +192 -192
  1059. package/src/tools/call-omo-agent/types.ts +34 -34
  1060. package/src/tools/delegate-task/AGENTS.md +58 -58
  1061. package/src/tools/delegate-task/anthropic-categories.ts +62 -62
  1062. package/src/tools/delegate-task/available-models.ts +64 -64
  1063. package/src/tools/delegate-task/background-continuation.ts +68 -68
  1064. package/src/tools/delegate-task/background-task.ts +165 -165
  1065. package/src/tools/delegate-task/builtin-categories.ts +33 -33
  1066. package/src/tools/delegate-task/builtin-category-definition.ts +8 -8
  1067. package/src/tools/delegate-task/cancel-unstable-agent-task.ts +19 -19
  1068. package/src/tools/delegate-task/categories.ts +77 -77
  1069. package/src/tools/delegate-task/category-resolver.ts +310 -310
  1070. package/src/tools/delegate-task/constants.ts +351 -351
  1071. package/src/tools/delegate-task/delegated-model-config.ts +20 -20
  1072. package/src/tools/delegate-task/error-formatting.ts +51 -51
  1073. package/src/tools/delegate-task/executor-types.ts +39 -39
  1074. package/src/tools/delegate-task/executor.ts +16 -16
  1075. package/src/tools/delegate-task/fallback-entry-resolution.ts +27 -27
  1076. package/src/tools/delegate-task/fallback-entry-settings.ts +20 -20
  1077. package/src/tools/delegate-task/google-categories.ts +130 -130
  1078. package/src/tools/delegate-task/index.ts +4 -4
  1079. package/src/tools/delegate-task/kimi-categories.ts +40 -40
  1080. package/src/tools/delegate-task/model-selection.ts +201 -201
  1081. package/src/tools/delegate-task/model-string-parser.ts +63 -63
  1082. package/src/tools/delegate-task/openai-categories.ts +128 -128
  1083. package/src/tools/delegate-task/parent-context-resolver.ts +47 -47
  1084. package/src/tools/delegate-task/prompt-builder.ts +107 -107
  1085. package/src/tools/delegate-task/resolve-call-id.ts +5 -5
  1086. package/src/tools/delegate-task/skill-resolver.ts +22 -22
  1087. package/src/tools/delegate-task/sub-agent.ts +70 -70
  1088. package/src/tools/delegate-task/subagent-discovery.ts +152 -152
  1089. package/src/tools/delegate-task/subagent-resolver.ts +225 -225
  1090. package/src/tools/delegate-task/sync-continuation-deps.ts +9 -9
  1091. package/src/tools/delegate-task/sync-continuation.ts +149 -149
  1092. package/src/tools/delegate-task/sync-prompt-sender.ts +137 -137
  1093. package/src/tools/delegate-task/sync-result-fetcher.ts +60 -60
  1094. package/src/tools/delegate-task/sync-session-creator.ts +29 -29
  1095. package/src/tools/delegate-task/sync-session-poller.ts +188 -188
  1096. package/src/tools/delegate-task/sync-task-deps.ts +13 -13
  1097. package/src/tools/delegate-task/sync-task-fallback.ts +68 -68
  1098. package/src/tools/delegate-task/sync-task.ts +243 -243
  1099. package/src/tools/delegate-task/time-formatter.ts +13 -13
  1100. package/src/tools/delegate-task/timing.ts +46 -46
  1101. package/src/tools/delegate-task/token-limiter.ts +123 -123
  1102. package/src/tools/delegate-task/tools.ts +259 -259
  1103. package/src/tools/delegate-task/types.ts +89 -89
  1104. package/src/tools/delegate-task/unstable-agent-task.ts +243 -243
  1105. package/src/tools/glob/cli.ts +206 -206
  1106. package/src/tools/glob/constants.ts +12 -12
  1107. package/src/tools/glob/index.ts +1 -1
  1108. package/src/tools/glob/result-formatter.ts +26 -26
  1109. package/src/tools/glob/tools.ts +49 -49
  1110. package/src/tools/glob/types.ts +23 -23
  1111. package/src/tools/grep/cli.ts +279 -279
  1112. package/src/tools/grep/constants.ts +141 -141
  1113. package/src/tools/grep/downloader.ts +128 -128
  1114. package/src/tools/grep/index.ts +1 -1
  1115. package/src/tools/grep/result-formatter.ts +60 -60
  1116. package/src/tools/grep/tools.ts +75 -75
  1117. package/src/tools/grep/types.ts +42 -42
  1118. package/src/tools/hashline-edit/AGENTS.md +92 -92
  1119. package/src/tools/hashline-edit/autocorrect-replacement-lines.ts +179 -179
  1120. package/src/tools/hashline-edit/constants.ts +10 -10
  1121. package/src/tools/hashline-edit/diff-utils.ts +53 -53
  1122. package/src/tools/hashline-edit/edit-deduplication.ts +43 -43
  1123. package/src/tools/hashline-edit/edit-operation-primitives.ts +126 -126
  1124. package/src/tools/hashline-edit/edit-operations.ts +103 -103
  1125. package/src/tools/hashline-edit/edit-ordering.ts +56 -56
  1126. package/src/tools/hashline-edit/edit-text-normalization.ts +111 -111
  1127. package/src/tools/hashline-edit/file-text-canonicalization.ts +44 -44
  1128. package/src/tools/hashline-edit/formatter-trigger.ts +132 -132
  1129. package/src/tools/hashline-edit/hash-computation.ts +154 -154
  1130. package/src/tools/hashline-edit/hashline-chunk-formatter.ts +52 -52
  1131. package/src/tools/hashline-edit/hashline-edit-diff.ts +31 -31
  1132. package/src/tools/hashline-edit/hashline-edit-executor.ts +197 -197
  1133. package/src/tools/hashline-edit/index.ts +20 -20
  1134. package/src/tools/hashline-edit/normalize-edits.ts +95 -95
  1135. package/src/tools/hashline-edit/tool-description.ts +95 -95
  1136. package/src/tools/hashline-edit/tools.ts +42 -42
  1137. package/src/tools/hashline-edit/types.ts +20 -20
  1138. package/src/tools/hashline-edit/validation.ts +181 -181
  1139. package/src/tools/index.ts +64 -64
  1140. package/src/tools/interactive-bash/constants.ts +18 -18
  1141. package/src/tools/interactive-bash/index.ts +4 -4
  1142. package/src/tools/interactive-bash/tmux-path-resolver.ts +71 -71
  1143. package/src/tools/interactive-bash/tools.ts +136 -136
  1144. package/src/tools/look-at/assistant-message-extractor.ts +67 -67
  1145. package/src/tools/look-at/constants.ts +3 -3
  1146. package/src/tools/look-at/image-converter.ts +164 -164
  1147. package/src/tools/look-at/index.ts +3 -3
  1148. package/src/tools/look-at/look-at-arguments.ts +34 -34
  1149. package/src/tools/look-at/mime-type-inference.ts +94 -94
  1150. package/src/tools/look-at/multimodal-agent-metadata.ts +166 -166
  1151. package/src/tools/look-at/multimodal-fallback-chain.ts +66 -66
  1152. package/src/tools/look-at/session-poller.ts +42 -42
  1153. package/src/tools/look-at/tools.ts +245 -245
  1154. package/src/tools/look-at/types.ts +5 -5
  1155. package/src/tools/lsp/AGENTS.md +70 -70
  1156. package/src/tools/lsp/client.ts +3 -3
  1157. package/src/tools/lsp/config.ts +3 -3
  1158. package/src/tools/lsp/constants.ts +7 -7
  1159. package/src/tools/lsp/diagnostics-tool.ts +75 -75
  1160. package/src/tools/lsp/directory-diagnostics.ts +163 -163
  1161. package/src/tools/lsp/find-references-tool.ts +43 -43
  1162. package/src/tools/lsp/goto-definition-tool.ts +42 -42
  1163. package/src/tools/lsp/index.ts +9 -9
  1164. package/src/tools/lsp/infer-extension.ts +65 -65
  1165. package/src/tools/lsp/language-config.ts +5 -5
  1166. package/src/tools/lsp/language-mappings.ts +171 -171
  1167. package/src/tools/lsp/lsp-client-connection.ts +66 -66
  1168. package/src/tools/lsp/lsp-client-transport.ts +210 -210
  1169. package/src/tools/lsp/lsp-client-wrapper.ts +116 -116
  1170. package/src/tools/lsp/lsp-client.ts +129 -129
  1171. package/src/tools/lsp/lsp-formatters.ts +193 -193
  1172. package/src/tools/lsp/lsp-manager-process-cleanup.ts +83 -83
  1173. package/src/tools/lsp/lsp-manager-temp-directory-cleanup.ts +29 -29
  1174. package/src/tools/lsp/lsp-process.ts +158 -158
  1175. package/src/tools/lsp/lsp-server.ts +217 -217
  1176. package/src/tools/lsp/rename-tools.ts +53 -53
  1177. package/src/tools/lsp/server-config-loader.ts +116 -116
  1178. package/src/tools/lsp/server-definitions.ts +91 -91
  1179. package/src/tools/lsp/server-installation.ts +58 -58
  1180. package/src/tools/lsp/server-path-bases.ts +16 -16
  1181. package/src/tools/lsp/server-resolution.ts +109 -109
  1182. package/src/tools/lsp/symbols-tool.ts +76 -76
  1183. package/src/tools/lsp/tools.ts +5 -5
  1184. package/src/tools/lsp/types.ts +124 -124
  1185. package/src/tools/lsp/workspace-edit.ts +121 -121
  1186. package/src/tools/session-manager/constants.ts +93 -93
  1187. package/src/tools/session-manager/file-storage.ts +203 -203
  1188. package/src/tools/session-manager/index.ts +3 -3
  1189. package/src/tools/session-manager/sdk-storage.ts +135 -135
  1190. package/src/tools/session-manager/sdk-unavailable.ts +43 -43
  1191. package/src/tools/session-manager/session-formatter.ts +199 -199
  1192. package/src/tools/session-manager/storage.ts +161 -161
  1193. package/src/tools/session-manager/tools.ts +197 -197
  1194. package/src/tools/session-manager/types.ts +99 -99
  1195. package/src/tools/shared/semaphore.ts +32 -32
  1196. package/src/tools/skill/constants.ts +14 -14
  1197. package/src/tools/skill/description-formatter.ts +61 -61
  1198. package/src/tools/skill/index.ts +3 -3
  1199. package/src/tools/skill/mcp-capability-formatter.ts +97 -97
  1200. package/src/tools/skill/native-skills.ts +62 -62
  1201. package/src/tools/skill/scope-priority.ts +17 -17
  1202. package/src/tools/skill/skill-body.ts +26 -26
  1203. package/src/tools/skill/skill-matcher.ts +40 -40
  1204. package/src/tools/skill/tools.ts +196 -196
  1205. package/src/tools/skill/types.ts +48 -48
  1206. package/src/tools/skill-mcp/constants.ts +9 -9
  1207. package/src/tools/skill-mcp/index.ts +3 -3
  1208. package/src/tools/skill-mcp/tools.ts +204 -204
  1209. package/src/tools/skill-mcp/types.ts +8 -8
  1210. package/src/tools/slashcommand/command-discovery.ts +161 -161
  1211. package/src/tools/slashcommand/command-output-formatter.ts +75 -75
  1212. package/src/tools/slashcommand/index.ts +2 -2
  1213. package/src/tools/slashcommand/types.ts +21 -21
  1214. package/src/tools/task/index.ts +7 -7
  1215. package/src/tools/task/task-create.ts +113 -113
  1216. package/src/tools/task/task-get.ts +47 -47
  1217. package/src/tools/task/task-list.ts +79 -79
  1218. package/src/tools/task/task-update.ts +152 -152
  1219. package/src/tools/task/todo-sync.ts +205 -205
  1220. package/src/tools/task/types.ts +77 -77
  1221. package/dist/ast-grep-napi.linux-x64-gnu-d8zfa2q0.node +0 -0
  1222. package/dist/ast-grep-napi.linux-x64-musl-0wywtr8y.node +0 -0
  1223. package/dist/prompt-snapshots/bob.default.md +0 -514
  1224. package/dist/prompt-snapshots/bob.gemini.md +0 -725
  1225. package/dist/prompt-snapshots/bob.gpt-pro.md +0 -514
  1226. package/dist/prompt-snapshots/coder.gpt-codex.md +0 -299
  1227. package/dist/prompt-snapshots/coder.gpt-pro.md +0 -315
  1228. package/dist/prompt-snapshots/coder.gpt.md +0 -315
  1229. package/dist/prompt-snapshots/critic.md +0 -68
  1230. package/dist/prompt-snapshots/guard.md +0 -599
  1231. package/dist/prompt-snapshots/multimodal.md +0 -39
  1232. package/dist/prompt-snapshots/platform-manager.md +0 -222
  1233. package/dist/prompt-snapshots/quality-guardian.md +0 -32
  1234. package/dist/prompt-snapshots/researcher.md +0 -29
  1235. package/dist/prompt-snapshots/strategist.md +0 -573
  1236. package/dist/prompt-snapshots/sub.md +0 -105
@@ -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
+ }