@hiai-gg/hiai-opencode 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1226) hide show
  1. package/.env.example +68 -57
  2. package/AGENTS.md +383 -281
  3. package/ARCHITECTURE.md +280 -281
  4. package/LICENSE.md +59 -59
  5. package/README.md +421 -301
  6. package/assets/mcp/mempalace.mjs +196 -153
  7. package/assets/mcp/playwright.mjs +76 -0
  8. package/assets/mcp/rag.mjs +236 -236
  9. package/assets/runtime/npm-package-runner.mjs +54 -54
  10. package/config/hiai-opencode.schema.json +82 -82
  11. package/config/opencode.json +4 -4
  12. package/dist/config/defaults.d.ts +3 -0
  13. package/dist/config/platform-schema.d.ts +2 -0
  14. package/dist/index.js +462 -417
  15. package/dist/mcp/registry.d.ts +14 -0
  16. package/dist/mcp/types.d.ts +6 -0
  17. package/hiai-opencode.json +58 -58
  18. package/package.json +86 -91
  19. package/skills/api-and-interface-design/SKILL.md +294 -294
  20. package/skills/brainstorming/SKILL.md +164 -164
  21. package/skills/brainstorming/scripts/frame-template.html +214 -214
  22. package/skills/brainstorming/scripts/helper.js +88 -88
  23. package/skills/brainstorming/scripts/server.cjs +354 -354
  24. package/skills/brainstorming/scripts/start-server.sh +148 -148
  25. package/skills/brainstorming/scripts/stop-server.sh +56 -56
  26. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -49
  27. package/skills/brainstorming/visual-companion.md +287 -287
  28. package/skills/browser-testing-with-devtools/SKILL.md +302 -302
  29. package/skills/ci-cd-and-automation/SKILL.md +390 -390
  30. package/skills/code-review-and-quality/SKILL.md +347 -347
  31. package/skills/code-simplification/SKILL.md +331 -331
  32. package/skills/context-engineering/SKILL.md +289 -289
  33. package/skills/deprecation-and-migration/SKILL.md +206 -206
  34. package/skills/dispatching-parallel-agents/SKILL.md +182 -182
  35. package/skills/documentation-and-adrs/SKILL.md +278 -278
  36. package/skills/executing-plans/SKILL.md +70 -70
  37. package/skills/finishing-a-development-branch/SKILL.md +200 -200
  38. package/skills/frontend-ui-engineering/SKILL.md +322 -322
  39. package/skills/git-workflow-and-versioning/SKILL.md +300 -300
  40. package/skills/incremental-implementation/SKILL.md +241 -241
  41. package/skills/performance-optimization/SKILL.md +350 -350
  42. package/skills/receiving-code-review/SKILL.md +213 -213
  43. package/skills/requesting-code-review/SKILL.md +105 -105
  44. package/skills/requesting-code-review/code-reviewer.md +146 -146
  45. package/skills/security-and-hardening/SKILL.md +349 -349
  46. package/skills/shipping-and-launch/SKILL.md +309 -309
  47. package/skills/source-driven-development/SKILL.md +194 -194
  48. package/skills/spec-driven-development/SKILL.md +200 -200
  49. package/skills/subagent-driven-development/SKILL.md +277 -277
  50. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -26
  51. package/skills/subagent-driven-development/implementer-prompt.md +113 -113
  52. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -61
  53. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  54. package/skills/systematic-debugging/SKILL.md +596 -596
  55. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  56. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  57. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  58. package/skills/systematic-debugging/find-polluter.sh +63 -63
  59. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  60. package/skills/systematic-debugging/test-academic.md +14 -14
  61. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  62. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  63. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  64. package/skills/test-driven-development/SKILL.md +379 -379
  65. package/skills/using-agent-skills/SKILL.md +174 -174
  66. package/skills/using-git-worktrees/SKILL.md +218 -218
  67. package/skills/using-superpowers/SKILL.md +117 -117
  68. package/skills/using-superpowers/references/codex-tools.md +100 -100
  69. package/skills/using-superpowers/references/copilot-tools.md +52 -52
  70. package/skills/using-superpowers/references/gemini-tools.md +33 -33
  71. package/skills/verification-before-completion/SKILL.md +139 -139
  72. package/skills/writing-plans/SKILL.md +152 -152
  73. package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -49
  74. package/skills/writing-skills/SKILL.md +655 -655
  75. package/skills/writing-skills/anthropic-best-practices.md +1150 -1150
  76. package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
  77. package/skills/writing-skills/graphviz-conventions.dot +171 -171
  78. package/skills/writing-skills/persuasion-principles.md +187 -187
  79. package/skills/writing-skills/render-graphs.js +168 -168
  80. package/skills/writing-skills/testing-skills-with-subagents.md +384 -384
  81. package/src/AGENTS.md +41 -41
  82. package/src/agents/AGENTS.md +74 -74
  83. package/src/agents/agent-builder.ts +50 -50
  84. package/src/agents/bob/AGENTS.md +29 -29
  85. package/src/agents/bob/default.ts +128 -128
  86. package/src/agents/bob/gemini.ts +237 -237
  87. package/src/agents/bob/gpt-pro.ts +430 -430
  88. package/src/agents/bob/index.ts +19 -19
  89. package/src/agents/bob.ts +528 -528
  90. package/src/agents/builtin-agents/agent-overrides.ts +75 -75
  91. package/src/agents/builtin-agents/available-skills.ts +35 -35
  92. package/src/agents/builtin-agents/bob-agent.ts +96 -96
  93. package/src/agents/builtin-agents/coder-agent.ts +98 -98
  94. package/src/agents/builtin-agents/environment-context.ts +16 -16
  95. package/src/agents/builtin-agents/general-agents.ts +122 -122
  96. package/src/agents/builtin-agents/guard-agent.ts +66 -66
  97. package/src/agents/builtin-agents/model-resolution.ts +31 -31
  98. package/src/agents/builtin-agents/resolve-file-uri.ts +42 -42
  99. package/src/agents/builtin-agents.ts +194 -194
  100. package/src/agents/coder/AGENTS.md +34 -34
  101. package/src/agents/coder/agent.ts +162 -162
  102. package/src/agents/coder/gpt-codex.ts +404 -404
  103. package/src/agents/coder/gpt-pro.ts +319 -319
  104. package/src/agents/coder/gpt.ts +253 -253
  105. package/src/agents/coder/index.ts +8 -8
  106. package/src/agents/critic/agent.ts +105 -105
  107. package/src/agents/custom-agent-summaries.ts +61 -61
  108. package/src/agents/dynamic-agent-category-skills-guide.ts +138 -138
  109. package/src/agents/dynamic-agent-core-sections.ts +237 -237
  110. package/src/agents/dynamic-agent-policy-sections.ts +182 -182
  111. package/src/agents/dynamic-agent-prompt-builder.ts +31 -31
  112. package/src/agents/dynamic-agent-prompt-types.ts +24 -24
  113. package/src/agents/dynamic-agent-tool-categorization.ts +45 -45
  114. package/src/agents/env-context.ts +16 -16
  115. package/src/agents/gpt-apply-patch-guard.ts +7 -7
  116. package/src/agents/guard/agent.ts +146 -146
  117. package/src/agents/guard/default-prompt-sections.ts +305 -305
  118. package/src/agents/guard/default.ts +22 -22
  119. package/src/agents/guard/gemini-prompt-sections.ts +293 -293
  120. package/src/agents/guard/gemini.ts +22 -22
  121. package/src/agents/guard/gpt-prompt-sections.ts +296 -296
  122. package/src/agents/guard/gpt.ts +22 -22
  123. package/src/agents/guard/index.ts +2 -2
  124. package/src/agents/guard/prompt-section-builder.ts +104 -104
  125. package/src/agents/guard/shared-prompt.ts +172 -172
  126. package/src/agents/index.ts +5 -5
  127. package/src/agents/platform-adapter.ts +236 -236
  128. package/src/agents/platform-manager.ts +57 -57
  129. package/src/agents/prompt-library/identity.ts +14 -14
  130. package/src/agents/prompt-library/index.ts +7 -7
  131. package/src/agents/prompt-library/intent-gate.ts +149 -149
  132. package/src/agents/prompt-library/orchestration.ts +60 -60
  133. package/src/agents/prompt-library/platform.ts +36 -36
  134. package/src/agents/prompt-library/specialized.ts +39 -39
  135. package/src/agents/prompt-library/strategy.ts +80 -80
  136. package/src/agents/prompt-library/todo-discipline.ts +22 -22
  137. package/src/agents/quality-guardian.ts +76 -76
  138. package/src/agents/researcher.ts +73 -73
  139. package/src/agents/strategist/AGENTS.md +37 -37
  140. package/src/agents/strategist/behavioral-summary.ts +79 -79
  141. package/src/agents/strategist/gemini.ts +333 -333
  142. package/src/agents/strategist/gpt.ts +460 -460
  143. package/src/agents/strategist/high-accuracy-mode.ts +78 -78
  144. package/src/agents/strategist/identity-constraints.ts +336 -336
  145. package/src/agents/strategist/index.ts +6 -6
  146. package/src/agents/strategist/interview-mode.ts +335 -335
  147. package/src/agents/strategist/plan-generation.ts +213 -213
  148. package/src/agents/strategist/plan-template.ts +325 -325
  149. package/src/agents/strategist/system-prompt.ts +68 -68
  150. package/src/agents/sub/agent.ts +141 -141
  151. package/src/agents/sub/default.ts +52 -52
  152. package/src/agents/sub/gemini.ts +194 -194
  153. package/src/agents/sub/gpt-codex.ts +156 -156
  154. package/src/agents/sub/gpt-pro.ts +161 -161
  155. package/src/agents/sub/gpt.ts +157 -157
  156. package/src/agents/sub/index.ts +13 -13
  157. package/src/agents/types.ts +144 -144
  158. package/src/agents/ui.ts +58 -58
  159. package/src/config/data/model-capabilities.json +40690 -40690
  160. package/src/config/defaults.ts +89 -146
  161. package/src/config/hiai-opencode.schema.json +12 -12
  162. package/src/config/index.ts +67 -67
  163. package/src/config/loader.test.ts +65 -65
  164. package/src/config/loader.ts +186 -183
  165. package/src/config/models.ts +32 -32
  166. package/src/config/platform-schema.ts +193 -192
  167. package/src/config/schema/agent-definitions.ts +5 -5
  168. package/src/config/schema/agent-names.ts +66 -66
  169. package/src/config/schema/agent-overrides.ts +95 -95
  170. package/src/config/schema/babysitting.ts +7 -7
  171. package/src/config/schema/background-task.ts +29 -29
  172. package/src/config/schema/bob-agent.ts +11 -11
  173. package/src/config/schema/bob.ts +17 -17
  174. package/src/config/schema/browser-automation.ts +24 -24
  175. package/src/config/schema/categories.ts +45 -45
  176. package/src/config/schema/claude-code.ts +13 -13
  177. package/src/config/schema/commands.ts +14 -14
  178. package/src/config/schema/comment-checker.ts +8 -8
  179. package/src/config/schema/dynamic-context-pruning.ts +53 -53
  180. package/src/config/schema/experimental.ts +27 -27
  181. package/src/config/schema/fallback-models.ts +31 -31
  182. package/src/config/schema/fast-apply.ts +14 -14
  183. package/src/config/schema/git-env-prefix.ts +28 -28
  184. package/src/config/schema/git-master.ts +14 -14
  185. package/src/config/schema/hooks.ts +61 -61
  186. package/src/config/schema/index.ts +52 -52
  187. package/src/config/schema/internal/permission.ts +20 -20
  188. package/src/config/schema/model-capabilities.ts +10 -10
  189. package/src/config/schema/notification.ts +8 -8
  190. package/src/config/schema/oh-my-opencode-config.ts +90 -90
  191. package/src/config/schema/openclaw.ts +50 -50
  192. package/src/config/schema/ralph-loop.ts +11 -11
  193. package/src/config/schema/runtime-fallback.ts +18 -18
  194. package/src/config/schema/skills.ts +39 -39
  195. package/src/config/schema/start-work.ts +7 -7
  196. package/src/config/schema/tmux.ts +28 -28
  197. package/src/config/schema/websearch.ts +15 -15
  198. package/src/config/types.ts +174 -174
  199. package/src/create-hooks.ts +93 -93
  200. package/src/create-managers.ts +116 -116
  201. package/src/create-runtime-tmux-config.ts +18 -18
  202. package/src/create-tools.ts +53 -53
  203. package/src/features/background-agent/AGENTS.md +56 -56
  204. package/src/features/background-agent/abort-with-timeout.ts +35 -35
  205. package/src/features/background-agent/background-task-notification-template.ts +74 -74
  206. package/src/features/background-agent/compaction-aware-message-resolver.ts +164 -164
  207. package/src/features/background-agent/concurrency.ts +137 -137
  208. package/src/features/background-agent/constants.ts +58 -58
  209. package/src/features/background-agent/duration-formatter.ts +14 -14
  210. package/src/features/background-agent/error-classifier.ts +83 -83
  211. package/src/features/background-agent/fallback-retry-handler.ts +134 -134
  212. package/src/features/background-agent/index.ts +2 -2
  213. package/src/features/background-agent/loop-detector.ts +102 -102
  214. package/src/features/background-agent/manager.ts +2220 -2220
  215. package/src/features/background-agent/opencode-client.ts +3 -3
  216. package/src/features/background-agent/process-cleanup.ts +98 -98
  217. package/src/features/background-agent/remove-task-toast-tracking.ts +8 -8
  218. package/src/features/background-agent/session-existence.ts +57 -57
  219. package/src/features/background-agent/session-idle-event-handler.ts +93 -93
  220. package/src/features/background-agent/session-status-classifier.ts +20 -20
  221. package/src/features/background-agent/spawner/parent-directory-resolver.ts +24 -24
  222. package/src/features/background-agent/spawner.ts +327 -327
  223. package/src/features/background-agent/state.ts +199 -199
  224. package/src/features/background-agent/subagent-spawn-limits.ts +97 -97
  225. package/src/features/background-agent/task-history.ts +79 -79
  226. package/src/features/background-agent/task-poller.ts +225 -225
  227. package/src/features/background-agent/types.ts +100 -100
  228. package/src/features/boulder-state/constants.ts +13 -13
  229. package/src/features/boulder-state/index.ts +4 -4
  230. package/src/features/boulder-state/storage.ts +336 -336
  231. package/src/features/boulder-state/top-level-task.ts +78 -78
  232. package/src/features/boulder-state/types.ts +61 -61
  233. package/src/features/builtin-commands/commands.ts +143 -143
  234. package/src/features/builtin-commands/index.ts +2 -2
  235. package/src/features/builtin-commands/templates/handoff.ts +177 -177
  236. package/src/features/builtin-commands/templates/init-deep.ts +305 -305
  237. package/src/features/builtin-commands/templates/ralph-loop.ts +66 -66
  238. package/src/features/builtin-commands/templates/refactor.ts +619 -619
  239. package/src/features/builtin-commands/templates/remove-ai-slops.ts +96 -96
  240. package/src/features/builtin-commands/templates/start-work.ts +128 -128
  241. package/src/features/builtin-commands/templates/stop-continuation.ts +13 -13
  242. package/src/features/builtin-commands/types.ts +9 -9
  243. package/src/features/builtin-skills/index.ts +2 -2
  244. package/src/features/builtin-skills/materialize.ts +338 -338
  245. package/src/features/builtin-skills/skills/ai-slop-remover.ts +145 -145
  246. package/src/features/builtin-skills/skills/dev-browser.ts +221 -221
  247. package/src/features/builtin-skills/skills/frontend-ui-ux.ts +79 -79
  248. package/src/features/builtin-skills/skills/git-master-sections/commit-workflow.ts +509 -509
  249. package/src/features/builtin-skills/skills/git-master-sections/history-search-workflow.ts +229 -229
  250. package/src/features/builtin-skills/skills/git-master-sections/overview.ts +64 -64
  251. package/src/features/builtin-skills/skills/git-master-sections/quick-reference.ts +86 -86
  252. package/src/features/builtin-skills/skills/git-master-sections/rebase-workflow.ts +181 -181
  253. package/src/features/builtin-skills/skills/git-master-skill-metadata.ts +4 -4
  254. package/src/features/builtin-skills/skills/git-master.ts +28 -28
  255. package/src/features/builtin-skills/skills/index.ts +7 -7
  256. package/src/features/builtin-skills/skills/playwright-cli.ts +268 -268
  257. package/src/features/builtin-skills/skills/playwright.ts +466 -466
  258. package/src/features/builtin-skills/skills/review-work.ts +536 -536
  259. package/src/features/builtin-skills/skills.ts +39 -39
  260. package/src/features/builtin-skills/types.ts +16 -16
  261. package/src/features/claude-code-agent-loader/agent-definitions-loader.ts +87 -87
  262. package/src/features/claude-code-agent-loader/claude-model-mapper.ts +53 -53
  263. package/src/features/claude-code-agent-loader/index.ts +5 -5
  264. package/src/features/claude-code-agent-loader/json-agent-loader.ts +53 -53
  265. package/src/features/claude-code-agent-loader/loader.ts +86 -86
  266. package/src/features/claude-code-agent-loader/opencode-config-agents-reader.ts +125 -125
  267. package/src/features/claude-code-agent-loader/types.ts +31 -31
  268. package/src/features/claude-code-command-loader/index.ts +2 -2
  269. package/src/features/claude-code-command-loader/loader.ts +169 -169
  270. package/src/features/claude-code-command-loader/types.ts +46 -46
  271. package/src/features/claude-code-mcp-loader/configure-allowed-env-vars.ts +48 -48
  272. package/src/features/claude-code-mcp-loader/env-expander.ts +51 -51
  273. package/src/features/claude-code-mcp-loader/index.ts +12 -12
  274. package/src/features/claude-code-mcp-loader/loader.ts +156 -156
  275. package/src/features/claude-code-mcp-loader/scope-filter.ts +17 -17
  276. package/src/features/claude-code-mcp-loader/transformer.ts +57 -57
  277. package/src/features/claude-code-mcp-loader/types.ts +51 -51
  278. package/src/features/claude-code-plugin-loader/agent-loader.ts +59 -59
  279. package/src/features/claude-code-plugin-loader/command-loader.ts +53 -53
  280. package/src/features/claude-code-plugin-loader/discovery.ts +251 -251
  281. package/src/features/claude-code-plugin-loader/hook-loader.ts +26 -26
  282. package/src/features/claude-code-plugin-loader/index.ts +10 -10
  283. package/src/features/claude-code-plugin-loader/loader.ts +134 -134
  284. package/src/features/claude-code-plugin-loader/mcp-server-loader.ts +59 -59
  285. package/src/features/claude-code-plugin-loader/plugin-path-resolver.ts +23 -23
  286. package/src/features/claude-code-plugin-loader/scope-filter.ts +29 -29
  287. package/src/features/claude-code-plugin-loader/skill-loader.ts +62 -62
  288. package/src/features/claude-code-plugin-loader/types.ts +255 -255
  289. package/src/features/claude-code-session-state/index.ts +1 -1
  290. package/src/features/claude-code-session-state/state.ts +154 -154
  291. package/src/features/claude-tasks/session-storage.ts +52 -52
  292. package/src/features/claude-tasks/storage.ts +169 -169
  293. package/src/features/claude-tasks/types.ts +20 -20
  294. package/src/features/context-injector/collector.ts +91 -91
  295. package/src/features/context-injector/index.ts +14 -14
  296. package/src/features/context-injector/injector.ts +167 -167
  297. package/src/features/context-injector/types.ts +91 -91
  298. package/src/features/hook-message-injector/constants.ts +1 -1
  299. package/src/features/hook-message-injector/index.ts +11 -11
  300. package/src/features/hook-message-injector/injector.ts +437 -437
  301. package/src/features/hook-message-injector/types.ts +49 -49
  302. package/src/features/mcp-oauth/AGENTS.md +54 -54
  303. package/src/features/mcp-oauth/callback-server.ts +106 -106
  304. package/src/features/mcp-oauth/dcr.ts +98 -98
  305. package/src/features/mcp-oauth/discovery.ts +134 -134
  306. package/src/features/mcp-oauth/oauth-authorization-flow.ts +150 -150
  307. package/src/features/mcp-oauth/provider.ts +215 -215
  308. package/src/features/mcp-oauth/refresh-mutex.ts +58 -58
  309. package/src/features/mcp-oauth/resource-indicator.ts +16 -16
  310. package/src/features/mcp-oauth/schema.ts +8 -8
  311. package/src/features/mcp-oauth/step-up.ts +79 -79
  312. package/src/features/mcp-oauth/storage.ts +155 -155
  313. package/src/features/opencode-skill-loader/AGENTS.md +59 -59
  314. package/src/features/opencode-skill-loader/allowed-tools-parser.ts +9 -9
  315. package/src/features/opencode-skill-loader/async-loader.ts +213 -213
  316. package/src/features/opencode-skill-loader/blocking.ts +62 -62
  317. package/src/features/opencode-skill-loader/config-source-discovery.ts +114 -114
  318. package/src/features/opencode-skill-loader/discover-worker.ts +56 -56
  319. package/src/features/opencode-skill-loader/git-master-template-injection.ts +150 -150
  320. package/src/features/opencode-skill-loader/index.ts +17 -17
  321. package/src/features/opencode-skill-loader/loaded-skill-from-path.ts +73 -73
  322. package/src/features/opencode-skill-loader/loaded-skill-template-extractor.ts +16 -16
  323. package/src/features/opencode-skill-loader/loader.ts +172 -172
  324. package/src/features/opencode-skill-loader/merger/builtin-skill-converter.ts +26 -26
  325. package/src/features/opencode-skill-loader/merger/config-skill-entry-loader.ts +117 -117
  326. package/src/features/opencode-skill-loader/merger/scope-priority.ts +10 -10
  327. package/src/features/opencode-skill-loader/merger/skill-definition-merger.ts +31 -31
  328. package/src/features/opencode-skill-loader/merger/skills-config-normalizer.ts +19 -19
  329. package/src/features/opencode-skill-loader/merger.ts +96 -96
  330. package/src/features/opencode-skill-loader/skill-content.ts +11 -11
  331. package/src/features/opencode-skill-loader/skill-deduplication.ts +13 -13
  332. package/src/features/opencode-skill-loader/skill-definition-record.ts +11 -11
  333. package/src/features/opencode-skill-loader/skill-directory-loader.ts +112 -112
  334. package/src/features/opencode-skill-loader/skill-discovery.ts +76 -76
  335. package/src/features/opencode-skill-loader/skill-mcp-config.ts +45 -45
  336. package/src/features/opencode-skill-loader/skill-resolution-options.ts +9 -9
  337. package/src/features/opencode-skill-loader/skill-template-resolver.ts +97 -97
  338. package/src/features/opencode-skill-loader/types.ts +38 -38
  339. package/src/features/run-continuation-state/constants.ts +1 -1
  340. package/src/features/run-continuation-state/index.ts +3 -3
  341. package/src/features/run-continuation-state/storage.ts +80 -80
  342. package/src/features/run-continuation-state/types.ts +15 -15
  343. package/src/features/skill-mcp-manager/AGENTS.md +111 -111
  344. package/src/features/skill-mcp-manager/cleanup.ts +153 -153
  345. package/src/features/skill-mcp-manager/connection-type.ts +26 -26
  346. package/src/features/skill-mcp-manager/connection.ts +146 -146
  347. package/src/features/skill-mcp-manager/env-cleaner.ts +59 -59
  348. package/src/features/skill-mcp-manager/error-redaction.ts +47 -47
  349. package/src/features/skill-mcp-manager/http-client.ts +126 -126
  350. package/src/features/skill-mcp-manager/index.ts +2 -2
  351. package/src/features/skill-mcp-manager/manager.ts +178 -178
  352. package/src/features/skill-mcp-manager/oauth-handler.ts +160 -160
  353. package/src/features/skill-mcp-manager/stdio-client.ts +112 -112
  354. package/src/features/skill-mcp-manager/types.ts +96 -96
  355. package/src/features/task-toast-manager/index.ts +2 -2
  356. package/src/features/task-toast-manager/manager.ts +251 -251
  357. package/src/features/task-toast-manager/types.ts +29 -29
  358. package/src/features/tmux-subagent/action-executor-core.ts +82 -82
  359. package/src/features/tmux-subagent/action-executor.ts +137 -137
  360. package/src/features/tmux-subagent/cleanup.ts +42 -42
  361. package/src/features/tmux-subagent/decision-engine.ts +22 -22
  362. package/src/features/tmux-subagent/event-handlers.ts +6 -6
  363. package/src/features/tmux-subagent/grid-planning.ts +137 -137
  364. package/src/features/tmux-subagent/index.ts +16 -16
  365. package/src/features/tmux-subagent/manager.ts +969 -969
  366. package/src/features/tmux-subagent/oldest-agent-pane.ts +37 -37
  367. package/src/features/tmux-subagent/pane-split-availability.ts +77 -77
  368. package/src/features/tmux-subagent/pane-state-parser.ts +135 -135
  369. package/src/features/tmux-subagent/pane-state-querier.ts +76 -76
  370. package/src/features/tmux-subagent/polling-constants.ts +6 -6
  371. package/src/features/tmux-subagent/polling-manager.ts +167 -167
  372. package/src/features/tmux-subagent/polling.ts +183 -183
  373. package/src/features/tmux-subagent/session-created-event.ts +44 -44
  374. package/src/features/tmux-subagent/session-created-handler.ts +175 -175
  375. package/src/features/tmux-subagent/session-deleted-handler.ts +50 -50
  376. package/src/features/tmux-subagent/session-message-count.ts +3 -3
  377. package/src/features/tmux-subagent/session-ready-waiter.ts +44 -44
  378. package/src/features/tmux-subagent/session-status-parser.ts +17 -17
  379. package/src/features/tmux-subagent/spawn-action-decider.ts +147 -147
  380. package/src/features/tmux-subagent/spawn-target-finder.ts +146 -146
  381. package/src/features/tmux-subagent/tmux-grid-constants.ts +57 -57
  382. package/src/features/tmux-subagent/tracked-session-state.ts +29 -29
  383. package/src/features/tmux-subagent/types.ts +54 -54
  384. package/src/features/tool-metadata-store/index.ts +7 -7
  385. package/src/features/tool-metadata-store/store.ts +84 -84
  386. package/src/hooks/agent-usage-reminder/constants.ts +52 -52
  387. package/src/hooks/agent-usage-reminder/hook.ts +134 -134
  388. package/src/hooks/agent-usage-reminder/index.ts +1 -1
  389. package/src/hooks/agent-usage-reminder/storage.ts +42 -42
  390. package/src/hooks/agent-usage-reminder/types.ts +6 -6
  391. package/src/hooks/anthropic-context-window-limit-recovery/AGENTS.md +49 -49
  392. package/src/hooks/anthropic-context-window-limit-recovery/aggressive-truncation-strategy.ts +87 -87
  393. package/src/hooks/anthropic-context-window-limit-recovery/client.ts +21 -21
  394. package/src/hooks/anthropic-context-window-limit-recovery/deduplication-recovery.ts +77 -77
  395. package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.ts +199 -199
  396. package/src/hooks/anthropic-context-window-limit-recovery/empty-content-recovery.ts +149 -149
  397. package/src/hooks/anthropic-context-window-limit-recovery/executor.ts +83 -83
  398. package/src/hooks/anthropic-context-window-limit-recovery/index.ts +8 -8
  399. package/src/hooks/anthropic-context-window-limit-recovery/message-builder.ts +190 -190
  400. package/src/hooks/anthropic-context-window-limit-recovery/message-storage-directory.ts +40 -40
  401. package/src/hooks/anthropic-context-window-limit-recovery/parser.ts +209 -209
  402. package/src/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.ts +189 -189
  403. package/src/hooks/anthropic-context-window-limit-recovery/pruning-tool-output-truncation.ts +142 -142
  404. package/src/hooks/anthropic-context-window-limit-recovery/pruning-types.ts +44 -44
  405. package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.ts +119 -119
  406. package/src/hooks/anthropic-context-window-limit-recovery/recovery-hook.ts +193 -193
  407. package/src/hooks/anthropic-context-window-limit-recovery/recovery-strategy.ts +2 -2
  408. package/src/hooks/anthropic-context-window-limit-recovery/session-timeout-map.ts +20 -20
  409. package/src/hooks/anthropic-context-window-limit-recovery/state.ts +78 -78
  410. package/src/hooks/anthropic-context-window-limit-recovery/storage-paths.ts +6 -6
  411. package/src/hooks/anthropic-context-window-limit-recovery/storage.ts +18 -18
  412. package/src/hooks/anthropic-context-window-limit-recovery/summarize-retry-strategy.ts +218 -218
  413. package/src/hooks/anthropic-context-window-limit-recovery/target-token-truncation.ts +196 -196
  414. package/src/hooks/anthropic-context-window-limit-recovery/tool-part-types.ts +38 -38
  415. package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage-sdk.ts +123 -123
  416. package/src/hooks/anthropic-context-window-limit-recovery/tool-result-storage.ts +119 -119
  417. package/src/hooks/anthropic-context-window-limit-recovery/types.ts +44 -44
  418. package/src/hooks/anthropic-effort/hook.ts +93 -93
  419. package/src/hooks/anthropic-effort/index.ts +1 -1
  420. package/src/hooks/auto-slash-command/constants.ts +12 -12
  421. package/src/hooks/auto-slash-command/detector.ts +88 -88
  422. package/src/hooks/auto-slash-command/executor.ts +165 -165
  423. package/src/hooks/auto-slash-command/hook.ts +238 -238
  424. package/src/hooks/auto-slash-command/index.ts +7 -7
  425. package/src/hooks/auto-slash-command/processed-command-store.ts +74 -74
  426. package/src/hooks/auto-slash-command/types.ts +42 -42
  427. package/src/hooks/background-notification/hook.ts +54 -54
  428. package/src/hooks/background-notification/index.ts +2 -2
  429. package/src/hooks/background-notification/types.ts +5 -5
  430. package/src/hooks/bash-file-read-guard.ts +44 -44
  431. package/src/hooks/category-skill-reminder/formatter.ts +37 -37
  432. package/src/hooks/category-skill-reminder/hook.ts +142 -142
  433. package/src/hooks/category-skill-reminder/index.ts +1 -1
  434. package/src/hooks/claude-code-hooks/AGENTS.md +41 -41
  435. package/src/hooks/claude-code-hooks/claude-code-hooks-hook.ts +28 -28
  436. package/src/hooks/claude-code-hooks/config-loader.ts +151 -151
  437. package/src/hooks/claude-code-hooks/config.ts +147 -147
  438. package/src/hooks/claude-code-hooks/dispatch-hook.ts +27 -27
  439. package/src/hooks/claude-code-hooks/execute-http-hook.ts +116 -116
  440. package/src/hooks/claude-code-hooks/handlers/chat-message-handler.ts +140 -140
  441. package/src/hooks/claude-code-hooks/handlers/pre-compact-handler.ts +41 -41
  442. package/src/hooks/claude-code-hooks/handlers/session-event-handler.ts +137 -137
  443. package/src/hooks/claude-code-hooks/handlers/tool-execute-after-handler.ts +160 -160
  444. package/src/hooks/claude-code-hooks/handlers/tool-execute-before-handler.ts +93 -93
  445. package/src/hooks/claude-code-hooks/index.ts +1 -1
  446. package/src/hooks/claude-code-hooks/plugin-config.ts +12 -12
  447. package/src/hooks/claude-code-hooks/post-tool-use.ts +195 -195
  448. package/src/hooks/claude-code-hooks/pre-compact.ts +105 -105
  449. package/src/hooks/claude-code-hooks/pre-tool-use.ts +168 -168
  450. package/src/hooks/claude-code-hooks/session-hook-state.ts +17 -17
  451. package/src/hooks/claude-code-hooks/stop.ts +118 -118
  452. package/src/hooks/claude-code-hooks/todo.ts +76 -76
  453. package/src/hooks/claude-code-hooks/tool-input-cache.ts +82 -82
  454. package/src/hooks/claude-code-hooks/transcript.ts +248 -248
  455. package/src/hooks/claude-code-hooks/types.ts +214 -214
  456. package/src/hooks/claude-code-hooks/user-prompt-submit.ts +121 -121
  457. package/src/hooks/comment-checker/cli-runner.ts +127 -127
  458. package/src/hooks/comment-checker/cli.ts +269 -269
  459. package/src/hooks/comment-checker/downloader.ts +170 -170
  460. package/src/hooks/comment-checker/hook.ts +192 -192
  461. package/src/hooks/comment-checker/index.ts +1 -1
  462. package/src/hooks/comment-checker/pending-calls.ts +45 -45
  463. package/src/hooks/comment-checker/types.ts +33 -33
  464. package/src/hooks/compaction-context-injector/compaction-context-prompt.ts +56 -56
  465. package/src/hooks/compaction-context-injector/constants.ts +5 -5
  466. package/src/hooks/compaction-context-injector/hook.ts +164 -164
  467. package/src/hooks/compaction-context-injector/index.ts +1 -1
  468. package/src/hooks/compaction-context-injector/recovery-prompt-config.ts +77 -77
  469. package/src/hooks/compaction-context-injector/recovery.ts +163 -163
  470. package/src/hooks/compaction-context-injector/session-id.ts +8 -8
  471. package/src/hooks/compaction-context-injector/session-prompt-config-resolver.ts +120 -120
  472. package/src/hooks/compaction-context-injector/tail-monitor.ts +52 -52
  473. package/src/hooks/compaction-context-injector/types.ts +25 -25
  474. package/src/hooks/compaction-context-injector/validated-model.ts +47 -47
  475. package/src/hooks/compaction-todo-preserver/hook.ts +127 -127
  476. package/src/hooks/compaction-todo-preserver/index.ts +2 -2
  477. package/src/hooks/context-window-monitor.ts +113 -113
  478. package/src/hooks/delegate-task-retry/guidance.ts +45 -45
  479. package/src/hooks/delegate-task-retry/hook.ts +22 -22
  480. package/src/hooks/delegate-task-retry/index.ts +4 -4
  481. package/src/hooks/delegate-task-retry/patterns.ts +77 -77
  482. package/src/hooks/directory-agents-injector/constants.ts +7 -7
  483. package/src/hooks/directory-agents-injector/finder.ts +38 -38
  484. package/src/hooks/directory-agents-injector/hook.ts +80 -80
  485. package/src/hooks/directory-agents-injector/index.ts +1 -1
  486. package/src/hooks/directory-agents-injector/injector.ts +59 -59
  487. package/src/hooks/directory-agents-injector/storage.ts +8 -8
  488. package/src/hooks/directory-readme-injector/constants.ts +7 -7
  489. package/src/hooks/directory-readme-injector/finder.ts +33 -33
  490. package/src/hooks/directory-readme-injector/hook.ts +80 -80
  491. package/src/hooks/directory-readme-injector/index.ts +1 -1
  492. package/src/hooks/directory-readme-injector/injector.ts +59 -59
  493. package/src/hooks/directory-readme-injector/storage.ts +8 -8
  494. package/src/hooks/edit-error-recovery/hook.ts +58 -58
  495. package/src/hooks/edit-error-recovery/index.ts +5 -5
  496. package/src/hooks/empty-task-response-detector.ts +27 -27
  497. package/src/hooks/fast-apply/hook.ts +11 -11
  498. package/src/hooks/fast-apply/index.ts +1 -1
  499. package/src/hooks/fast-apply/ollama-client.ts +53 -53
  500. package/src/hooks/fast-apply/tool-execute-before-handler.ts +86 -86
  501. package/src/hooks/guard/AGENTS.md +64 -64
  502. package/src/hooks/guard/background-launch-session-tracking.ts +97 -97
  503. package/src/hooks/guard/bob-path.ts +8 -8
  504. package/src/hooks/guard/boulder-continuation-injector.ts +109 -109
  505. package/src/hooks/guard/boulder-session-lineage.ts +44 -44
  506. package/src/hooks/guard/event-handler.ts +104 -104
  507. package/src/hooks/guard/final-wave-approval-gate.ts +47 -47
  508. package/src/hooks/guard/final-wave-plan-state.ts +60 -60
  509. package/src/hooks/guard/guard-hook.ts +27 -27
  510. package/src/hooks/guard/hook-name.ts +1 -1
  511. package/src/hooks/guard/idle-event.ts +341 -341
  512. package/src/hooks/guard/index.ts +3 -3
  513. package/src/hooks/guard/is-abort-error.ts +20 -20
  514. package/src/hooks/guard/recent-model-resolver.ts +89 -89
  515. package/src/hooks/guard/resolve-active-boulder-session.ts +29 -29
  516. package/src/hooks/guard/session-last-agent.ts +153 -153
  517. package/src/hooks/guard/subagent-session-id.ts +54 -54
  518. package/src/hooks/guard/system-reminder-templates.ts +249 -249
  519. package/src/hooks/guard/task-context.ts +45 -45
  520. package/src/hooks/guard/tool-execute-after.ts +209 -209
  521. package/src/hooks/guard/tool-execute-before.ts +102 -102
  522. package/src/hooks/guard/tsconfig.json +9 -9
  523. package/src/hooks/guard/types.ts +45 -45
  524. package/src/hooks/guard/verification-reminders.ts +197 -197
  525. package/src/hooks/guard/write-edit-tool-policy.ts +5 -5
  526. package/src/hooks/hashline-edit-diff-enhancer/hook.ts +106 -106
  527. package/src/hooks/hashline-read-enhancer/hook.ts +193 -193
  528. package/src/hooks/hashline-read-enhancer/index.ts +1 -1
  529. package/src/hooks/index.ts +58 -58
  530. package/src/hooks/interactive-bash-session/constants.ts +13 -13
  531. package/src/hooks/interactive-bash-session/hook.ts +125 -125
  532. package/src/hooks/interactive-bash-session/index.ts +3 -3
  533. package/src/hooks/interactive-bash-session/interactive-bash-session-tracker.ts +119 -119
  534. package/src/hooks/interactive-bash-session/parser.ts +118 -118
  535. package/src/hooks/interactive-bash-session/state-manager.ts +35 -35
  536. package/src/hooks/interactive-bash-session/storage.ts +59 -59
  537. package/src/hooks/interactive-bash-session/tmux-command-parser.ts +125 -125
  538. package/src/hooks/interactive-bash-session/types.ts +11 -11
  539. package/src/hooks/json-error-recovery/hook.ts +58 -58
  540. package/src/hooks/json-error-recovery/index.ts +6 -6
  541. package/src/hooks/keyword-detector/AGENTS.md +57 -57
  542. package/src/hooks/keyword-detector/analyze/default.ts +28 -28
  543. package/src/hooks/keyword-detector/analyze/index.ts +1 -1
  544. package/src/hooks/keyword-detector/constants.ts +45 -45
  545. package/src/hooks/keyword-detector/detector.ts +53 -53
  546. package/src/hooks/keyword-detector/hook.ts +143 -143
  547. package/src/hooks/keyword-detector/index.ts +5 -5
  548. package/src/hooks/keyword-detector/search/default.ts +20 -20
  549. package/src/hooks/keyword-detector/search/index.ts +1 -1
  550. package/src/hooks/keyword-detector/types.ts +4 -4
  551. package/src/hooks/keyword-detector/ultrawork/default.ts +302 -302
  552. package/src/hooks/keyword-detector/ultrawork/gemini.ts +290 -290
  553. package/src/hooks/keyword-detector/ultrawork/gpt.ts +173 -173
  554. package/src/hooks/keyword-detector/ultrawork/index.ts +56 -56
  555. package/src/hooks/keyword-detector/ultrawork/planner.ts +140 -140
  556. package/src/hooks/keyword-detector/ultrawork/source-detector.ts +65 -65
  557. package/src/hooks/legacy-plugin-toast/auto-migrate-runner.ts +2 -2
  558. package/src/hooks/legacy-plugin-toast/auto-migrate.ts +64 -64
  559. package/src/hooks/legacy-plugin-toast/hook.ts +68 -68
  560. package/src/hooks/legacy-plugin-toast/index.ts +1 -1
  561. package/src/hooks/legacy-plugin-toast/plugin-entry-migrator.ts +1 -1
  562. package/src/hooks/model-fallback/chat-message-fallback-handler.ts +74 -74
  563. package/src/hooks/model-fallback/hook.ts +201 -201
  564. package/src/hooks/model-fallback/next-fallback.ts +84 -84
  565. package/src/hooks/no-bob-gpt/hook.ts +56 -56
  566. package/src/hooks/no-bob-gpt/index.ts +1 -1
  567. package/src/hooks/no-coder-non-gpt/hook.ts +67 -67
  568. package/src/hooks/no-coder-non-gpt/index.ts +1 -1
  569. package/src/hooks/non-interactive-env/constants.ts +70 -70
  570. package/src/hooks/non-interactive-env/detector.ts +19 -19
  571. package/src/hooks/non-interactive-env/index.ts +5 -5
  572. package/src/hooks/non-interactive-env/non-interactive-env-hook.ts +73 -73
  573. package/src/hooks/non-interactive-env/types.ts +3 -3
  574. package/src/hooks/preemptive-compaction-degradation-monitor.ts +212 -212
  575. package/src/hooks/preemptive-compaction-no-text-tail.ts +70 -70
  576. package/src/hooks/preemptive-compaction.ts +218 -218
  577. package/src/hooks/question-label-truncator/hook.ts +62 -62
  578. package/src/hooks/question-label-truncator/index.ts +1 -1
  579. package/src/hooks/ralph-loop/AGENTS.md +62 -62
  580. package/src/hooks/ralph-loop/command-arguments.ts +30 -30
  581. package/src/hooks/ralph-loop/completion-handler.ts +65 -65
  582. package/src/hooks/ralph-loop/completion-promise-detector-test-input.ts +23 -23
  583. package/src/hooks/ralph-loop/completion-promise-detector.ts +165 -165
  584. package/src/hooks/ralph-loop/constants.ts +7 -7
  585. package/src/hooks/ralph-loop/continuation-prompt-builder.ts +77 -77
  586. package/src/hooks/ralph-loop/continuation-prompt-injector.ts +91 -91
  587. package/src/hooks/ralph-loop/index.ts +6 -6
  588. package/src/hooks/ralph-loop/iteration-continuation.ts +64 -64
  589. package/src/hooks/ralph-loop/logician-verification-detector.ts +88 -88
  590. package/src/hooks/ralph-loop/loop-session-recovery.ts +33 -33
  591. package/src/hooks/ralph-loop/loop-state-controller.ts +178 -178
  592. package/src/hooks/ralph-loop/message-storage-directory.ts +1 -1
  593. package/src/hooks/ralph-loop/pending-verification-handler.ts +152 -152
  594. package/src/hooks/ralph-loop/ralph-loop-event-handler.ts +231 -231
  595. package/src/hooks/ralph-loop/ralph-loop-hook.ts +90 -90
  596. package/src/hooks/ralph-loop/session-event-handler.ts +56 -56
  597. package/src/hooks/ralph-loop/session-reset-strategy.ts +69 -69
  598. package/src/hooks/ralph-loop/storage.ts +164 -164
  599. package/src/hooks/ralph-loop/types.ts +25 -25
  600. package/src/hooks/ralph-loop/verification-failure-handler.ts +103 -103
  601. package/src/hooks/ralph-loop/with-timeout.ts +20 -20
  602. package/src/hooks/read-image-resizer/hook.ts +209 -209
  603. package/src/hooks/read-image-resizer/image-dimensions.ts +191 -191
  604. package/src/hooks/read-image-resizer/image-resizer.ts +191 -191
  605. package/src/hooks/read-image-resizer/index.ts +1 -1
  606. package/src/hooks/read-image-resizer/png-fallback-resizer.ts +359 -359
  607. package/src/hooks/read-image-resizer/types.ts +16 -16
  608. package/src/hooks/rules-injector/AGENTS.md +53 -53
  609. package/src/hooks/rules-injector/cache.ts +27 -27
  610. package/src/hooks/rules-injector/constants.ts +31 -31
  611. package/src/hooks/rules-injector/finder.ts +3 -3
  612. package/src/hooks/rules-injector/hook.ts +94 -94
  613. package/src/hooks/rules-injector/index.ts +2 -2
  614. package/src/hooks/rules-injector/injector.ts +189 -189
  615. package/src/hooks/rules-injector/matcher.ts +63 -63
  616. package/src/hooks/rules-injector/output-path.ts +22 -22
  617. package/src/hooks/rules-injector/parser.ts +211 -211
  618. package/src/hooks/rules-injector/project-root-finder.ts +36 -36
  619. package/src/hooks/rules-injector/rule-distance.ts +53 -53
  620. package/src/hooks/rules-injector/rule-file-finder.ts +139 -139
  621. package/src/hooks/rules-injector/rule-file-scanner.ts +55 -55
  622. package/src/hooks/rules-injector/storage.ts +59 -59
  623. package/src/hooks/rules-injector/types.ts +57 -57
  624. package/src/hooks/runtime-fallback/AGENTS.md +102 -102
  625. package/src/hooks/runtime-fallback/agent-resolver.ts +50 -50
  626. package/src/hooks/runtime-fallback/auto-retry-signal.ts +32 -32
  627. package/src/hooks/runtime-fallback/auto-retry.ts +228 -228
  628. package/src/hooks/runtime-fallback/chat-message-handler.ts +62 -62
  629. package/src/hooks/runtime-fallback/constants.ts +47 -47
  630. package/src/hooks/runtime-fallback/error-classifier.ts +183 -183
  631. package/src/hooks/runtime-fallback/event-handler.ts +213 -213
  632. package/src/hooks/runtime-fallback/fallback-bootstrap-model.ts +63 -63
  633. package/src/hooks/runtime-fallback/fallback-models.ts +86 -86
  634. package/src/hooks/runtime-fallback/fallback-retry-dispatcher.ts +55 -55
  635. package/src/hooks/runtime-fallback/fallback-state.ts +74 -74
  636. package/src/hooks/runtime-fallback/hook.ts +87 -87
  637. package/src/hooks/runtime-fallback/index.ts +2 -2
  638. package/src/hooks/runtime-fallback/last-user-retry-parts.ts +20 -20
  639. package/src/hooks/runtime-fallback/message-update-handler.ts +168 -168
  640. package/src/hooks/runtime-fallback/retry-model-payload.ts +30 -30
  641. package/src/hooks/runtime-fallback/session-messages.ts +38 -38
  642. package/src/hooks/runtime-fallback/session-status-handler.ts +126 -126
  643. package/src/hooks/runtime-fallback/types.ts +77 -77
  644. package/src/hooks/runtime-fallback/visible-assistant-response.ts +80 -80
  645. package/src/hooks/session-notification-content.ts +145 -145
  646. package/src/hooks/session-notification-formatting.ts +25 -25
  647. package/src/hooks/session-notification-scheduler.ts +188 -188
  648. package/src/hooks/session-notification-sender.ts +117 -117
  649. package/src/hooks/session-notification-utils.ts +80 -80
  650. package/src/hooks/session-notification.ts +219 -219
  651. package/src/hooks/session-recovery/AGENTS.md +59 -59
  652. package/src/hooks/session-recovery/constants.ts +5 -5
  653. package/src/hooks/session-recovery/detect-error-type.ts +102 -102
  654. package/src/hooks/session-recovery/hook.ts +166 -166
  655. package/src/hooks/session-recovery/index.ts +7 -7
  656. package/src/hooks/session-recovery/recover-empty-content-message-sdk.ts +201 -201
  657. package/src/hooks/session-recovery/recover-thinking-block-order.ts +137 -137
  658. package/src/hooks/session-recovery/recover-thinking-disabled-violation.ts +75 -75
  659. package/src/hooks/session-recovery/recover-tool-result-missing.ts +108 -108
  660. package/src/hooks/session-recovery/recover-unavailable-tool.ts +108 -108
  661. package/src/hooks/session-recovery/resume.ts +49 -49
  662. package/src/hooks/session-recovery/storage/empty-messages.ts +47 -47
  663. package/src/hooks/session-recovery/storage/empty-text.ts +118 -118
  664. package/src/hooks/session-recovery/storage/message-dir.ts +1 -1
  665. package/src/hooks/session-recovery/storage/messages-reader.ts +83 -83
  666. package/src/hooks/session-recovery/storage/orphan-thinking-search.ts +43 -43
  667. package/src/hooks/session-recovery/storage/part-content.ts +28 -28
  668. package/src/hooks/session-recovery/storage/part-id.ts +5 -5
  669. package/src/hooks/session-recovery/storage/parts-reader.ts +56 -56
  670. package/src/hooks/session-recovery/storage/text-part-injector.ts +63 -63
  671. package/src/hooks/session-recovery/storage/thinking-block-search.ts +42 -42
  672. package/src/hooks/session-recovery/storage/thinking-prepend.ts +223 -223
  673. package/src/hooks/session-recovery/storage/thinking-strip.ts +67 -67
  674. package/src/hooks/session-recovery/storage.ts +34 -34
  675. package/src/hooks/session-recovery/types.ts +101 -101
  676. package/src/hooks/session-todo-status.ts +20 -20
  677. package/src/hooks/shared/compaction-model-resolver.ts +34 -34
  678. package/src/hooks/shared/shared/compaction-model-resolver.ts +34 -34
  679. package/src/hooks/start-work/context-info-builder.ts +319 -319
  680. package/src/hooks/start-work/index.ts +4 -4
  681. package/src/hooks/start-work/parse-user-request.ts +32 -32
  682. package/src/hooks/start-work/start-work-hook.ts +135 -135
  683. package/src/hooks/start-work/worktree-block.ts +11 -11
  684. package/src/hooks/start-work/worktree-detector.ts +77 -77
  685. package/src/hooks/stop-continuation-guard/hook.ts +122 -122
  686. package/src/hooks/stop-continuation-guard/index.ts +2 -2
  687. package/src/hooks/strategist-md-only/agent-matcher.ts +5 -5
  688. package/src/hooks/strategist-md-only/agent-resolution.ts +70 -70
  689. package/src/hooks/strategist-md-only/constants.ts +78 -78
  690. package/src/hooks/strategist-md-only/hook.ts +82 -82
  691. package/src/hooks/strategist-md-only/index.ts +2 -2
  692. package/src/hooks/strategist-md-only/path-policy.ts +41 -41
  693. package/src/hooks/sub-notepad/constants.ts +29 -29
  694. package/src/hooks/sub-notepad/hook.ts +44 -44
  695. package/src/hooks/sub-notepad/index.ts +3 -3
  696. package/src/hooks/task-reminder/hook.ts +59 -59
  697. package/src/hooks/task-reminder/index.ts +1 -1
  698. package/src/hooks/task-resume-info/hook.ts +39 -39
  699. package/src/hooks/task-resume-info/index.ts +1 -1
  700. package/src/hooks/tasks-todowrite-disabler/constants.ts +30 -30
  701. package/src/hooks/tasks-todowrite-disabler/hook.ts +34 -34
  702. package/src/hooks/tasks-todowrite-disabler/index.ts +2 -2
  703. package/src/hooks/think-mode/detector.ts +59 -59
  704. package/src/hooks/think-mode/hook.ts +76 -76
  705. package/src/hooks/think-mode/index.ts +5 -5
  706. package/src/hooks/think-mode/switcher.ts +100 -100
  707. package/src/hooks/think-mode/types.ts +16 -16
  708. package/src/hooks/thinking-block-validator/hook.ts +181 -181
  709. package/src/hooks/thinking-block-validator/index.ts +1 -1
  710. package/src/hooks/todo-continuation-enforcer/AGENTS.md +65 -65
  711. package/src/hooks/todo-continuation-enforcer/abort-detection.ts +17 -17
  712. package/src/hooks/todo-continuation-enforcer/compaction-guard.ts +39 -39
  713. package/src/hooks/todo-continuation-enforcer/constants.ts +25 -25
  714. package/src/hooks/todo-continuation-enforcer/continuation-injection.ts +222 -222
  715. package/src/hooks/todo-continuation-enforcer/countdown.ts +86 -86
  716. package/src/hooks/todo-continuation-enforcer/handler.ts +99 -99
  717. package/src/hooks/todo-continuation-enforcer/idle-event.ts +225 -225
  718. package/src/hooks/todo-continuation-enforcer/index.ts +59 -59
  719. package/src/hooks/todo-continuation-enforcer/message-directory.ts +1 -1
  720. package/src/hooks/todo-continuation-enforcer/non-idle-events.ts +107 -107
  721. package/src/hooks/todo-continuation-enforcer/pending-question-detection.ts +40 -40
  722. package/src/hooks/todo-continuation-enforcer/resolve-message-info.ts +48 -48
  723. package/src/hooks/todo-continuation-enforcer/session-state.ts +283 -283
  724. package/src/hooks/todo-continuation-enforcer/stagnation-detection.ts +36 -36
  725. package/src/hooks/todo-continuation-enforcer/todo.ts +11 -11
  726. package/src/hooks/todo-continuation-enforcer/token-limit-detection.ts +38 -38
  727. package/src/hooks/todo-continuation-enforcer/types.ts +74 -74
  728. package/src/hooks/todo-description-override/description.ts +28 -28
  729. package/src/hooks/todo-description-override/hook.ts +14 -14
  730. package/src/hooks/todo-description-override/index.ts +1 -1
  731. package/src/hooks/tool-output-truncator.ts +66 -66
  732. package/src/hooks/tool-pair-validator/hook.ts +184 -184
  733. package/src/hooks/tool-pair-validator/index.ts +1 -1
  734. package/src/hooks/unstable-agent-babysitter/index.ts +9 -9
  735. package/src/hooks/unstable-agent-babysitter/task-message-analyzer.ts +110 -110
  736. package/src/hooks/unstable-agent-babysitter/unstable-agent-babysitter-hook.ts +238 -238
  737. package/src/hooks/webfetch-redirect-guard/constants.ts +11 -11
  738. package/src/hooks/webfetch-redirect-guard/hook.ts +123 -123
  739. package/src/hooks/webfetch-redirect-guard/index.ts +1 -1
  740. package/src/hooks/webfetch-redirect-guard/redirect-resolution.ts +89 -89
  741. package/src/hooks/write-existing-file-guard/hook.ts +108 -108
  742. package/src/hooks/write-existing-file-guard/index.ts +1 -1
  743. package/src/hooks/write-existing-file-guard/session-read-permissions.ts +36 -36
  744. package/src/hooks/write-existing-file-guard/tool-execute-before-handler.ts +176 -176
  745. package/src/index.ts +285 -284
  746. package/src/internals/plugins/pty/LICENSE +21 -21
  747. package/src/internals/plugins/pty/constants.ts +7 -7
  748. package/src/internals/plugins/pty/plugin.ts +28 -28
  749. package/src/internals/plugins/pty/pty/buffer.ts +75 -75
  750. package/src/internals/plugins/pty/pty/formatters.ts +22 -22
  751. package/src/internals/plugins/pty/pty/manager.ts +175 -175
  752. package/src/internals/plugins/pty/pty/notification-manager.ts +75 -75
  753. package/src/internals/plugins/pty/pty/output-manager.ts +29 -29
  754. package/src/internals/plugins/pty/pty/permissions.ts +115 -115
  755. package/src/internals/plugins/pty/pty/session-lifecycle.ts +161 -161
  756. package/src/internals/plugins/pty/pty/tools/kill.ts +41 -41
  757. package/src/internals/plugins/pty/pty/tools/kill.txt +25 -25
  758. package/src/internals/plugins/pty/pty/tools/list.ts +25 -25
  759. package/src/internals/plugins/pty/pty/tools/list.txt +22 -22
  760. package/src/internals/plugins/pty/pty/tools/read.ts +234 -234
  761. package/src/internals/plugins/pty/pty/tools/read.txt +39 -39
  762. package/src/internals/plugins/pty/pty/tools/spawn.ts +71 -71
  763. package/src/internals/plugins/pty/pty/tools/spawn.txt +47 -47
  764. package/src/internals/plugins/pty/pty/tools/write.ts +96 -96
  765. package/src/internals/plugins/pty/pty/tools/write.txt +28 -28
  766. package/src/internals/plugins/pty/pty/types.ts +67 -67
  767. package/src/internals/plugins/pty/pty/utils.ts +21 -21
  768. package/src/internals/plugins/pty/pty/wildcard.ts +62 -62
  769. package/src/internals/plugins/pty/shared/constants.ts +7 -7
  770. package/src/internals/plugins/pty/types.ts +7 -7
  771. package/src/internals/plugins/subtask2/LICENSE +128 -128
  772. package/src/internals/plugins/subtask2/commands/index.ts +7 -7
  773. package/src/internals/plugins/subtask2/commands/loader.ts +39 -39
  774. package/src/internals/plugins/subtask2/commands/manifest.ts +64 -64
  775. package/src/internals/plugins/subtask2/commands/resolver.ts +28 -28
  776. package/src/internals/plugins/subtask2/core/plugin.ts +52 -52
  777. package/src/internals/plugins/subtask2/core/state.ts +764 -764
  778. package/src/internals/plugins/subtask2/features/auto.ts +57 -57
  779. package/src/internals/plugins/subtask2/features/index.ts +9 -9
  780. package/src/internals/plugins/subtask2/features/inline-subtasks.ts +205 -205
  781. package/src/internals/plugins/subtask2/features/parallel.ts +148 -148
  782. package/src/internals/plugins/subtask2/features/results.ts +48 -48
  783. package/src/internals/plugins/subtask2/features/returns.ts +273 -273
  784. package/src/internals/plugins/subtask2/features/turns.ts +190 -190
  785. package/src/internals/plugins/subtask2/hooks/command-hooks.ts +283 -283
  786. package/src/internals/plugins/subtask2/hooks/message-hooks.ts +603 -603
  787. package/src/internals/plugins/subtask2/hooks/session-idle-hook.ts +358 -358
  788. package/src/internals/plugins/subtask2/hooks/tool-hooks.ts +309 -309
  789. package/src/internals/plugins/subtask2/loop.ts +122 -122
  790. package/src/internals/plugins/subtask2/parsing/auto.ts +33 -33
  791. package/src/internals/plugins/subtask2/parsing/commands.ts +154 -154
  792. package/src/internals/plugins/subtask2/parsing/frontmatter.ts +20 -20
  793. package/src/internals/plugins/subtask2/parsing/index.ts +10 -10
  794. package/src/internals/plugins/subtask2/parsing/overrides.ts +68 -68
  795. package/src/internals/plugins/subtask2/parsing/parallel.ts +88 -88
  796. package/src/internals/plugins/subtask2/parsing/turns.ts +78 -78
  797. package/src/internals/plugins/subtask2/types.ts +41 -41
  798. package/src/internals/plugins/subtask2/utils/config.ts +100 -100
  799. package/src/internals/plugins/subtask2/utils/index.ts +7 -7
  800. package/src/internals/plugins/subtask2/utils/logger.ts +67 -67
  801. package/src/internals/plugins/subtask2/utils/prompts.ts +117 -117
  802. package/src/internals/plugins/websearch-cited/LICENSE +214 -214
  803. package/src/internals/plugins/websearch-cited/codex_prompt.txt +79 -79
  804. package/src/internals/plugins/websearch-cited/google.ts +749 -749
  805. package/src/internals/plugins/websearch-cited/index.ts +301 -301
  806. package/src/internals/plugins/websearch-cited/openai.ts +407 -407
  807. package/src/internals/plugins/websearch-cited/openrouter.ts +190 -190
  808. package/src/internals/plugins/websearch-cited/types.ts +7 -7
  809. package/src/lsp/index.ts +15 -15
  810. package/src/mcp/context7.ts +9 -9
  811. package/src/mcp/grep-app.ts +6 -6
  812. package/src/mcp/index.ts +54 -87
  813. package/src/mcp/omo-mcp-index.ts +30 -35
  814. package/src/mcp/registry.ts +132 -0
  815. package/src/mcp/types.ts +19 -9
  816. package/src/mcp/websearch.ts +44 -44
  817. package/src/permissions/index.ts +25 -25
  818. package/src/plugin/AGENTS.md +54 -54
  819. package/src/plugin/available-categories.ts +24 -24
  820. package/src/plugin/chat-headers.ts +141 -141
  821. package/src/plugin/chat-message.ts +309 -309
  822. package/src/plugin/chat-params.ts +182 -182
  823. package/src/plugin/command-execute-before.ts +80 -80
  824. package/src/plugin/event.ts +639 -639
  825. package/src/plugin/hooks/create-continuation-hooks.ts +128 -128
  826. package/src/plugin/hooks/create-core-hooks.ts +47 -47
  827. package/src/plugin/hooks/create-session-hooks.ts +286 -286
  828. package/src/plugin/hooks/create-skill-hooks.ts +50 -50
  829. package/src/plugin/hooks/create-tool-guard-hooks.ts +159 -159
  830. package/src/plugin/hooks/create-transform-hooks.ts +85 -85
  831. package/src/plugin/messages-transform.ts +28 -28
  832. package/src/plugin/normalize-tool-arg-schemas.ts +75 -75
  833. package/src/plugin/recent-synthetic-idles.ts +20 -20
  834. package/src/plugin/session-agent-resolver.ts +37 -37
  835. package/src/plugin/session-status-normalizer.ts +22 -22
  836. package/src/plugin/skill-context.ts +132 -132
  837. package/src/plugin/system-transform.ts +6 -6
  838. package/src/plugin/tool-execute-after.ts +178 -178
  839. package/src/plugin/tool-execute-before.ts +222 -222
  840. package/src/plugin/tool-registry.ts +282 -282
  841. package/src/plugin/types.ts +26 -26
  842. package/src/plugin/ultrawork-db-model-override.ts +142 -142
  843. package/src/plugin/ultrawork-model-override.ts +196 -196
  844. package/src/plugin/ultrawork-variant-availability.ts +51 -51
  845. package/src/plugin/unstable-agent-babysitter.ts +41 -41
  846. package/src/plugin-config.ts +314 -314
  847. package/src/plugin-dispose.ts +51 -51
  848. package/src/plugin-handlers/AGENTS.md +92 -92
  849. package/src/plugin-handlers/agent-config-handler.ts +502 -502
  850. package/src/plugin-handlers/agent-key-remapper.ts +39 -39
  851. package/src/plugin-handlers/agent-override-protection.ts +38 -38
  852. package/src/plugin-handlers/agent-priority-order.ts +63 -63
  853. package/src/plugin-handlers/category-config-resolver.ts +9 -9
  854. package/src/plugin-handlers/command-config-handler.ts +105 -105
  855. package/src/plugin-handlers/config-handler.ts +61 -61
  856. package/src/plugin-handlers/index.ts +10 -10
  857. package/src/plugin-handlers/mcp-config-handler.ts +205 -205
  858. package/src/plugin-handlers/plan-model-inheritance.ts +27 -27
  859. package/src/plugin-handlers/plugin-components-loader.ts +70 -70
  860. package/src/plugin-handlers/provider-config-handler.ts +73 -73
  861. package/src/plugin-handlers/strategist-agent-config-builder.ts +128 -128
  862. package/src/plugin-handlers/tool-config-handler.ts +193 -193
  863. package/src/plugin-interface.ts +83 -83
  864. package/src/plugin-state.ts +18 -18
  865. package/src/shared/AGENTS.md +54 -54
  866. package/src/shared/agent-display-names.ts +182 -182
  867. package/src/shared/agent-tool-restrictions.ts +80 -80
  868. package/src/shared/agent-variant.ts +101 -101
  869. package/src/shared/agents-config-dir.ts +23 -23
  870. package/src/shared/archive-entry-validator.ts +83 -83
  871. package/src/shared/background-output-consumption.ts +69 -69
  872. package/src/shared/binary-downloader.ts +127 -127
  873. package/src/shared/claude-config-dir.ts +16 -16
  874. package/src/shared/closure-protocol.ts +53 -53
  875. package/src/shared/command-executor/embedded-commands.ts +26 -26
  876. package/src/shared/command-executor/execute-command.ts +28 -28
  877. package/src/shared/command-executor/execute-hook-command.ts +129 -129
  878. package/src/shared/command-executor/home-directory.ts +5 -5
  879. package/src/shared/command-executor/resolve-commands-in-text.ts +49 -49
  880. package/src/shared/command-executor/shell-path.ts +27 -27
  881. package/src/shared/command-executor.ts +5 -5
  882. package/src/shared/compaction-agent-config-checkpoint.ts +42 -42
  883. package/src/shared/compaction-marker.ts +61 -61
  884. package/src/shared/config-errors.ts +18 -18
  885. package/src/shared/connected-providers-cache.ts +215 -215
  886. package/src/shared/contains-path.ts +50 -50
  887. package/src/shared/context-limit-resolver.ts +42 -42
  888. package/src/shared/data-path.ts +64 -64
  889. package/src/shared/deep-merge.ts +53 -53
  890. package/src/shared/disabled-tools.ts +19 -19
  891. package/src/shared/dynamic-truncator.ts +222 -222
  892. package/src/shared/external-plugin-detector.ts +139 -139
  893. package/src/shared/fallback-chain-from-models.ts +124 -124
  894. package/src/shared/fallback-model-availability.ts +102 -102
  895. package/src/shared/file-reference-resolver.ts +99 -99
  896. package/src/shared/file-utils.ts +34 -34
  897. package/src/shared/first-message-variant.ts +28 -28
  898. package/src/shared/frontmatter.ts +31 -31
  899. package/src/shared/git-worktree/collect-git-diff-stats.ts +56 -56
  900. package/src/shared/git-worktree/format-file-changes.ts +46 -46
  901. package/src/shared/git-worktree/index.ts +7 -7
  902. package/src/shared/git-worktree/parse-diff-numstat.ts +27 -27
  903. package/src/shared/git-worktree/parse-status-porcelain-line.ts +27 -27
  904. package/src/shared/git-worktree/parse-status-porcelain.ts +15 -15
  905. package/src/shared/git-worktree/types.ts +8 -8
  906. package/src/shared/hook-disabled.ts +22 -22
  907. package/src/shared/index.ts +80 -80
  908. package/src/shared/internal-initiator-marker.ts +18 -18
  909. package/src/shared/is-abort-error.ts +20 -20
  910. package/src/shared/json-file-cache-store.ts +98 -98
  911. package/src/shared/jsonc-parser.ts +98 -98
  912. package/src/shared/known-variants.ts +16 -16
  913. package/src/shared/legacy-plugin-warning.ts +68 -68
  914. package/src/shared/load-opencode-plugins.ts +60 -60
  915. package/src/shared/log-legacy-plugin-startup-warning.ts +46 -46
  916. package/src/shared/logger.ts +48 -48
  917. package/src/shared/merge-categories.ts +18 -18
  918. package/src/shared/migrate-legacy-config-file.ts +66 -66
  919. package/src/shared/migrate-legacy-plugin-entry.ts +75 -75
  920. package/src/shared/migration/agent-category.ts +60 -60
  921. package/src/shared/migration/agent-names.ts +100 -100
  922. package/src/shared/migration/config-migration.ts +210 -210
  923. package/src/shared/migration/hook-names.ts +40 -40
  924. package/src/shared/migration/migrations-sidecar.ts +92 -92
  925. package/src/shared/migration/model-versions.ts +50 -50
  926. package/src/shared/migration.ts +5 -5
  927. package/src/shared/model-availability.ts +294 -294
  928. package/src/shared/model-capabilities/bundled-snapshot.ts +15 -15
  929. package/src/shared/model-capabilities/get-model-capabilities.ts +140 -140
  930. package/src/shared/model-capabilities/index.ts +9 -9
  931. package/src/shared/model-capabilities/runtime-model-readers.ts +190 -190
  932. package/src/shared/model-capabilities/types.ts +80 -80
  933. package/src/shared/model-capabilities-cache.ts +213 -213
  934. package/src/shared/model-capability-aliases.ts +108 -108
  935. package/src/shared/model-capability-guardrails.ts +149 -149
  936. package/src/shared/model-capability-heuristics.ts +32 -32
  937. package/src/shared/model-error-classifier.ts +214 -214
  938. package/src/shared/model-format-normalizer.ts +20 -20
  939. package/src/shared/model-normalization.ts +8 -8
  940. package/src/shared/model-requirements.ts +26 -26
  941. package/src/shared/model-resolution-pipeline.ts +216 -216
  942. package/src/shared/model-resolution-types.ts +41 -41
  943. package/src/shared/model-resolver.ts +106 -106
  944. package/src/shared/model-sanitizer.ts +12 -12
  945. package/src/shared/model-settings-compatibility.ts +200 -200
  946. package/src/shared/model-suggestion-retry.ts +182 -182
  947. package/src/shared/normalize-sdk-response.ts +36 -36
  948. package/src/shared/opencode-command-dirs.ts +36 -36
  949. package/src/shared/opencode-config-dir-types.ts +15 -15
  950. package/src/shared/opencode-config-dir.ts +135 -135
  951. package/src/shared/opencode-http-api.ts +139 -139
  952. package/src/shared/opencode-message-dir.ts +29 -29
  953. package/src/shared/opencode-server-auth.ts +190 -190
  954. package/src/shared/opencode-storage-detection.ts +33 -33
  955. package/src/shared/opencode-storage-paths.ts +6 -6
  956. package/src/shared/opencode-version.ts +80 -80
  957. package/src/shared/parse-tools-config.ts +25 -25
  958. package/src/shared/pattern-matcher.ts +46 -46
  959. package/src/shared/permission-compat.ts +86 -86
  960. package/src/shared/plugin-command-discovery.ts +28 -28
  961. package/src/shared/plugin-entry-migrator.ts +21 -21
  962. package/src/shared/plugin-identity.ts +8 -8
  963. package/src/shared/port-utils.ts +48 -48
  964. package/src/shared/project-discovery-dirs.ts +101 -101
  965. package/src/shared/prompt-timeout-context.ts +49 -49
  966. package/src/shared/prompt-tools.ts +35 -35
  967. package/src/shared/provider-model-id-transform.ts +58 -58
  968. package/src/shared/question-denied-session-permission.ts +9 -9
  969. package/src/shared/record-type-guard.ts +3 -3
  970. package/src/shared/resolve-agent-definition-paths.ts +22 -22
  971. package/src/shared/retry-status-utils.ts +19 -19
  972. package/src/shared/runtime-plugin-config.ts +98 -98
  973. package/src/shared/safe-create-hook.ts +24 -24
  974. package/src/shared/session-category-registry.ts +27 -27
  975. package/src/shared/session-cursor.ts +108 -108
  976. package/src/shared/session-directory-resolver.ts +41 -41
  977. package/src/shared/session-injected-paths.ts +59 -59
  978. package/src/shared/session-model-state.ts +15 -15
  979. package/src/shared/session-prompt-params-helpers.ts +31 -31
  980. package/src/shared/session-prompt-params-state.ts +37 -37
  981. package/src/shared/session-tools-store.ts +18 -18
  982. package/src/shared/session-utils.ts +25 -25
  983. package/src/shared/shell-env.ts +175 -175
  984. package/src/shared/skill-path-resolver.ts +26 -26
  985. package/src/shared/snake-case.ts +44 -44
  986. package/src/shared/spawn-with-windows-hide.ts +84 -84
  987. package/src/shared/system-directive.ts +67 -67
  988. package/src/shared/task-system-enabled.ts +9 -9
  989. package/src/shared/tmux/constants.ts +12 -12
  990. package/src/shared/tmux/index.ts +3 -3
  991. package/src/shared/tmux/tmux-utils/environment.ts +13 -13
  992. package/src/shared/tmux/tmux-utils/layout.ts +96 -96
  993. package/src/shared/tmux/tmux-utils/pane-close.ts +48 -48
  994. package/src/shared/tmux/tmux-utils/pane-dimensions.ts +28 -28
  995. package/src/shared/tmux/tmux-utils/pane-replace.ts +73 -73
  996. package/src/shared/tmux/tmux-utils/pane-spawn.ts +94 -94
  997. package/src/shared/tmux/tmux-utils/server-health.ts +62 -62
  998. package/src/shared/tmux/tmux-utils/session-spawn.ts +145 -145
  999. package/src/shared/tmux/tmux-utils/window-spawn.ts +93 -93
  1000. package/src/shared/tmux/tmux-utils.ts +15 -15
  1001. package/src/shared/tmux/types.ts +4 -4
  1002. package/src/shared/tool-name.ts +27 -27
  1003. package/src/shared/truncate-description.ts +11 -11
  1004. package/src/shared/vision-capable-models-cache.ts +17 -17
  1005. package/src/shared/write-file-atomically.ts +31 -31
  1006. package/src/shared/zip-entry-listing/powershell-zip-entry-listing.ts +99 -99
  1007. package/src/shared/zip-entry-listing/python-zip-entry-listing.ts +55 -55
  1008. package/src/shared/zip-entry-listing/read-zip-symlink-target.ts +23 -23
  1009. package/src/shared/zip-entry-listing/tar-zip-entry-listing.ts +93 -93
  1010. package/src/shared/zip-entry-listing/zipinfo-zip-entry-listing.ts +72 -72
  1011. package/src/shared/zip-entry-listing.ts +13 -13
  1012. package/src/shared/zip-extractor.ts +118 -118
  1013. package/src/skills/index.ts +56 -56
  1014. package/src/testing/module-mock-lifecycle.ts +143 -143
  1015. package/src/tools/AGENTS.md +108 -108
  1016. package/src/tools/ast-grep/cli-binary-path-resolution.ts +60 -60
  1017. package/src/tools/ast-grep/cli.ts +177 -177
  1018. package/src/tools/ast-grep/constants.ts +5 -5
  1019. package/src/tools/ast-grep/downloader.ts +119 -119
  1020. package/src/tools/ast-grep/environment-check.ts +89 -89
  1021. package/src/tools/ast-grep/index.ts +5 -5
  1022. package/src/tools/ast-grep/language-support.ts +63 -63
  1023. package/src/tools/ast-grep/process-output-timeout.ts +28 -28
  1024. package/src/tools/ast-grep/result-formatter.ts +102 -102
  1025. package/src/tools/ast-grep/sg-cli-path.ts +102 -102
  1026. package/src/tools/ast-grep/sg-compact-json-output.ts +54 -54
  1027. package/src/tools/ast-grep/tools.ts +117 -117
  1028. package/src/tools/ast-grep/types.ts +61 -61
  1029. package/src/tools/background-task/AGENTS.md +53 -53
  1030. package/src/tools/background-task/clients.ts +32 -32
  1031. package/src/tools/background-task/constants.ts +9 -9
  1032. package/src/tools/background-task/create-background-cancel.ts +115 -115
  1033. package/src/tools/background-task/create-background-output.ts +159 -159
  1034. package/src/tools/background-task/create-background-task.ts +126 -126
  1035. package/src/tools/background-task/delay.ts +3 -3
  1036. package/src/tools/background-task/full-session-format.ts +148 -148
  1037. package/src/tools/background-task/index.ts +8 -8
  1038. package/src/tools/background-task/message-dir.ts +1 -1
  1039. package/src/tools/background-task/session-messages.ts +22 -22
  1040. package/src/tools/background-task/task-result-format.ts +113 -113
  1041. package/src/tools/background-task/task-status-format.ts +72 -72
  1042. package/src/tools/background-task/time-format.ts +30 -30
  1043. package/src/tools/background-task/tools.ts +11 -11
  1044. package/src/tools/background-task/truncate-text.ts +4 -4
  1045. package/src/tools/background-task/types.ts +72 -72
  1046. package/src/tools/call-omo-agent/AGENTS.md +51 -51
  1047. package/src/tools/call-omo-agent/agent-resolver.ts +64 -64
  1048. package/src/tools/call-omo-agent/background-agent-executor.ts +91 -91
  1049. package/src/tools/call-omo-agent/background-executor.ts +98 -98
  1050. package/src/tools/call-omo-agent/completion-poller.ts +65 -65
  1051. package/src/tools/call-omo-agent/constants.ts +23 -23
  1052. package/src/tools/call-omo-agent/index.ts +3 -3
  1053. package/src/tools/call-omo-agent/message-dir.ts +1 -1
  1054. package/src/tools/call-omo-agent/message-processor.ts +86 -86
  1055. package/src/tools/call-omo-agent/message-storage-directory.ts +1 -1
  1056. package/src/tools/call-omo-agent/session-creator.ts +70 -70
  1057. package/src/tools/call-omo-agent/subagent-session-creator.ts +74 -74
  1058. package/src/tools/call-omo-agent/sync-executor.ts +148 -148
  1059. package/src/tools/call-omo-agent/tool-context-with-metadata.ts +10 -10
  1060. package/src/tools/call-omo-agent/tools.ts +192 -192
  1061. package/src/tools/call-omo-agent/types.ts +34 -34
  1062. package/src/tools/delegate-task/AGENTS.md +58 -58
  1063. package/src/tools/delegate-task/anthropic-categories.ts +62 -62
  1064. package/src/tools/delegate-task/available-models.ts +64 -64
  1065. package/src/tools/delegate-task/background-continuation.ts +68 -68
  1066. package/src/tools/delegate-task/background-task.ts +165 -165
  1067. package/src/tools/delegate-task/builtin-categories.ts +33 -33
  1068. package/src/tools/delegate-task/builtin-category-definition.ts +8 -8
  1069. package/src/tools/delegate-task/cancel-unstable-agent-task.ts +19 -19
  1070. package/src/tools/delegate-task/categories.ts +77 -77
  1071. package/src/tools/delegate-task/category-resolver.ts +310 -310
  1072. package/src/tools/delegate-task/constants.ts +351 -351
  1073. package/src/tools/delegate-task/delegated-model-config.ts +20 -20
  1074. package/src/tools/delegate-task/error-formatting.ts +51 -51
  1075. package/src/tools/delegate-task/executor-types.ts +39 -39
  1076. package/src/tools/delegate-task/executor.ts +16 -16
  1077. package/src/tools/delegate-task/fallback-entry-resolution.ts +27 -27
  1078. package/src/tools/delegate-task/fallback-entry-settings.ts +20 -20
  1079. package/src/tools/delegate-task/google-categories.ts +130 -130
  1080. package/src/tools/delegate-task/index.ts +4 -4
  1081. package/src/tools/delegate-task/kimi-categories.ts +40 -40
  1082. package/src/tools/delegate-task/model-selection.ts +201 -201
  1083. package/src/tools/delegate-task/model-string-parser.ts +63 -63
  1084. package/src/tools/delegate-task/openai-categories.ts +128 -128
  1085. package/src/tools/delegate-task/parent-context-resolver.ts +47 -47
  1086. package/src/tools/delegate-task/prompt-builder.ts +107 -107
  1087. package/src/tools/delegate-task/resolve-call-id.ts +5 -5
  1088. package/src/tools/delegate-task/skill-resolver.ts +22 -22
  1089. package/src/tools/delegate-task/sub-agent.ts +70 -70
  1090. package/src/tools/delegate-task/subagent-discovery.ts +152 -152
  1091. package/src/tools/delegate-task/subagent-resolver.ts +225 -225
  1092. package/src/tools/delegate-task/sync-continuation-deps.ts +9 -9
  1093. package/src/tools/delegate-task/sync-continuation.ts +149 -149
  1094. package/src/tools/delegate-task/sync-prompt-sender.ts +137 -137
  1095. package/src/tools/delegate-task/sync-result-fetcher.ts +60 -60
  1096. package/src/tools/delegate-task/sync-session-creator.ts +29 -29
  1097. package/src/tools/delegate-task/sync-session-poller.ts +188 -188
  1098. package/src/tools/delegate-task/sync-task-deps.ts +13 -13
  1099. package/src/tools/delegate-task/sync-task-fallback.ts +68 -68
  1100. package/src/tools/delegate-task/sync-task.ts +243 -243
  1101. package/src/tools/delegate-task/time-formatter.ts +13 -13
  1102. package/src/tools/delegate-task/timing.ts +46 -46
  1103. package/src/tools/delegate-task/token-limiter.ts +123 -123
  1104. package/src/tools/delegate-task/tools.ts +259 -259
  1105. package/src/tools/delegate-task/types.ts +89 -89
  1106. package/src/tools/delegate-task/unstable-agent-task.ts +243 -243
  1107. package/src/tools/glob/cli.ts +206 -206
  1108. package/src/tools/glob/constants.ts +12 -12
  1109. package/src/tools/glob/index.ts +1 -1
  1110. package/src/tools/glob/result-formatter.ts +26 -26
  1111. package/src/tools/glob/tools.ts +49 -49
  1112. package/src/tools/glob/types.ts +23 -23
  1113. package/src/tools/grep/cli.ts +279 -279
  1114. package/src/tools/grep/constants.ts +141 -141
  1115. package/src/tools/grep/downloader.ts +128 -128
  1116. package/src/tools/grep/index.ts +1 -1
  1117. package/src/tools/grep/result-formatter.ts +60 -60
  1118. package/src/tools/grep/tools.ts +75 -75
  1119. package/src/tools/grep/types.ts +42 -42
  1120. package/src/tools/hashline-edit/AGENTS.md +92 -92
  1121. package/src/tools/hashline-edit/autocorrect-replacement-lines.ts +179 -179
  1122. package/src/tools/hashline-edit/constants.ts +10 -10
  1123. package/src/tools/hashline-edit/diff-utils.ts +53 -53
  1124. package/src/tools/hashline-edit/edit-deduplication.ts +43 -43
  1125. package/src/tools/hashline-edit/edit-operation-primitives.ts +126 -126
  1126. package/src/tools/hashline-edit/edit-operations.ts +103 -103
  1127. package/src/tools/hashline-edit/edit-ordering.ts +56 -56
  1128. package/src/tools/hashline-edit/edit-text-normalization.ts +111 -111
  1129. package/src/tools/hashline-edit/file-text-canonicalization.ts +44 -44
  1130. package/src/tools/hashline-edit/formatter-trigger.ts +132 -132
  1131. package/src/tools/hashline-edit/hash-computation.ts +154 -154
  1132. package/src/tools/hashline-edit/hashline-chunk-formatter.ts +52 -52
  1133. package/src/tools/hashline-edit/hashline-edit-diff.ts +31 -31
  1134. package/src/tools/hashline-edit/hashline-edit-executor.ts +197 -197
  1135. package/src/tools/hashline-edit/index.ts +20 -20
  1136. package/src/tools/hashline-edit/normalize-edits.ts +95 -95
  1137. package/src/tools/hashline-edit/tool-description.ts +95 -95
  1138. package/src/tools/hashline-edit/tools.ts +42 -42
  1139. package/src/tools/hashline-edit/types.ts +20 -20
  1140. package/src/tools/hashline-edit/validation.ts +181 -181
  1141. package/src/tools/index.ts +64 -64
  1142. package/src/tools/interactive-bash/constants.ts +18 -18
  1143. package/src/tools/interactive-bash/index.ts +4 -4
  1144. package/src/tools/interactive-bash/tmux-path-resolver.ts +71 -71
  1145. package/src/tools/interactive-bash/tools.ts +136 -136
  1146. package/src/tools/look-at/assistant-message-extractor.ts +67 -67
  1147. package/src/tools/look-at/constants.ts +3 -3
  1148. package/src/tools/look-at/image-converter.ts +164 -164
  1149. package/src/tools/look-at/index.ts +3 -3
  1150. package/src/tools/look-at/look-at-arguments.ts +34 -34
  1151. package/src/tools/look-at/mime-type-inference.ts +94 -94
  1152. package/src/tools/look-at/multimodal-agent-metadata.ts +166 -166
  1153. package/src/tools/look-at/multimodal-fallback-chain.ts +66 -66
  1154. package/src/tools/look-at/session-poller.ts +42 -42
  1155. package/src/tools/look-at/tools.ts +245 -245
  1156. package/src/tools/look-at/types.ts +5 -5
  1157. package/src/tools/lsp/AGENTS.md +70 -70
  1158. package/src/tools/lsp/client.ts +3 -3
  1159. package/src/tools/lsp/config.ts +3 -3
  1160. package/src/tools/lsp/constants.ts +7 -7
  1161. package/src/tools/lsp/diagnostics-tool.ts +75 -75
  1162. package/src/tools/lsp/directory-diagnostics.ts +163 -163
  1163. package/src/tools/lsp/find-references-tool.ts +43 -43
  1164. package/src/tools/lsp/goto-definition-tool.ts +42 -42
  1165. package/src/tools/lsp/index.ts +9 -9
  1166. package/src/tools/lsp/infer-extension.ts +65 -65
  1167. package/src/tools/lsp/language-config.ts +5 -5
  1168. package/src/tools/lsp/language-mappings.ts +171 -171
  1169. package/src/tools/lsp/lsp-client-connection.ts +66 -66
  1170. package/src/tools/lsp/lsp-client-transport.ts +210 -210
  1171. package/src/tools/lsp/lsp-client-wrapper.ts +116 -116
  1172. package/src/tools/lsp/lsp-client.ts +129 -129
  1173. package/src/tools/lsp/lsp-formatters.ts +193 -193
  1174. package/src/tools/lsp/lsp-manager-process-cleanup.ts +83 -83
  1175. package/src/tools/lsp/lsp-manager-temp-directory-cleanup.ts +29 -29
  1176. package/src/tools/lsp/lsp-process.ts +158 -158
  1177. package/src/tools/lsp/lsp-server.ts +217 -217
  1178. package/src/tools/lsp/rename-tools.ts +53 -53
  1179. package/src/tools/lsp/server-config-loader.ts +116 -116
  1180. package/src/tools/lsp/server-definitions.ts +91 -91
  1181. package/src/tools/lsp/server-installation.ts +58 -58
  1182. package/src/tools/lsp/server-path-bases.ts +16 -16
  1183. package/src/tools/lsp/server-resolution.ts +109 -109
  1184. package/src/tools/lsp/symbols-tool.ts +76 -76
  1185. package/src/tools/lsp/tools.ts +5 -5
  1186. package/src/tools/lsp/types.ts +124 -124
  1187. package/src/tools/lsp/workspace-edit.ts +121 -121
  1188. package/src/tools/session-manager/constants.ts +93 -93
  1189. package/src/tools/session-manager/file-storage.ts +203 -203
  1190. package/src/tools/session-manager/index.ts +3 -3
  1191. package/src/tools/session-manager/sdk-storage.ts +135 -135
  1192. package/src/tools/session-manager/sdk-unavailable.ts +43 -43
  1193. package/src/tools/session-manager/session-formatter.ts +199 -199
  1194. package/src/tools/session-manager/storage.ts +161 -161
  1195. package/src/tools/session-manager/tools.ts +197 -197
  1196. package/src/tools/session-manager/types.ts +99 -99
  1197. package/src/tools/shared/semaphore.ts +32 -32
  1198. package/src/tools/skill/constants.ts +14 -14
  1199. package/src/tools/skill/description-formatter.ts +61 -61
  1200. package/src/tools/skill/index.ts +3 -3
  1201. package/src/tools/skill/mcp-capability-formatter.ts +97 -97
  1202. package/src/tools/skill/native-skills.ts +62 -62
  1203. package/src/tools/skill/scope-priority.ts +17 -17
  1204. package/src/tools/skill/skill-body.ts +26 -26
  1205. package/src/tools/skill/skill-matcher.ts +40 -40
  1206. package/src/tools/skill/tools.ts +196 -196
  1207. package/src/tools/skill/types.ts +48 -48
  1208. package/src/tools/skill-mcp/constants.ts +9 -9
  1209. package/src/tools/skill-mcp/index.ts +3 -3
  1210. package/src/tools/skill-mcp/tools.ts +204 -204
  1211. package/src/tools/skill-mcp/types.ts +8 -8
  1212. package/src/tools/slashcommand/command-discovery.ts +161 -161
  1213. package/src/tools/slashcommand/command-output-formatter.ts +75 -75
  1214. package/src/tools/slashcommand/index.ts +2 -2
  1215. package/src/tools/slashcommand/types.ts +21 -21
  1216. package/src/tools/task/index.ts +7 -7
  1217. package/src/tools/task/task-create.ts +113 -113
  1218. package/src/tools/task/task-get.ts +47 -47
  1219. package/src/tools/task/task-list.ts +79 -79
  1220. package/src/tools/task/task-update.ts +152 -152
  1221. package/src/tools/task/todo-sync.ts +205 -205
  1222. package/src/tools/task/types.ts +77 -77
  1223. package/scripts/check_docs.ts +0 -129
  1224. package/scripts/doctor.ts +0 -522
  1225. package/scripts/measure_prompts.ts +0 -193
  1226. package/scripts/test_routing.ts +0 -294
@@ -1,241 +1,241 @@
1
- ---
2
- name: incremental-implementation
3
- description: Delivers changes incrementally. Use when implementing any feature or change that touches more than one file. Use when you're about to write a large amount of code at once, or when a task feels too big to land in one step.
4
- ---
5
-
6
- # Incremental Implementation
7
-
8
- ## Overview
9
-
10
- Build in thin vertical slices — implement one piece, test it, verify it, then expand. Avoid implementing an entire feature in one pass. Each increment should leave the system in a working, testable state. This is the execution discipline that makes large features manageable.
11
-
12
- ## When to Use
13
-
14
- - Implementing any multi-file change
15
- - Building a new feature from a task breakdown
16
- - Refactoring existing code
17
- - Any time you're tempted to write more than ~100 lines before testing
18
-
19
- **When NOT to use:** Single-file, single-function changes where the scope is already minimal.
20
-
21
- ## The Increment Cycle
22
-
23
- ```
24
- ┌──────────────────────────────────────┐
25
- │ │
26
- │ Implement ──→ Test ──→ Verify ──┐ │
27
- │ ▲ │ │
28
- │ └───── Commit ◄─────────────┘ │
29
- │ │ │
30
- │ ▼ │
31
- │ Next slice │
32
- │ │
33
- └──────────────────────────────────────┘
34
- ```
35
-
36
- For each slice:
37
-
38
- 1. **Implement** the smallest complete piece of functionality
39
- 2. **Test** — run the test suite (or write a test if none exists)
40
- 3. **Verify** — confirm the slice works as expected (tests pass, build succeeds, manual check)
41
- 4. **Commit** -- save your progress with a descriptive message (see `git-workflow-and-versioning` for atomic commit guidance)
42
- 5. **Move to the next slice** — carry forward, don't restart
43
-
44
- ## Slicing Strategies
45
-
46
- ### Vertical Slices (Preferred)
47
-
48
- Build one complete path through the stack:
49
-
50
- ```
51
- Slice 1: Create a task (DB + API + basic UI)
52
- → Tests pass, user can create a task via the UI
53
-
54
- Slice 2: List tasks (query + API + UI)
55
- → Tests pass, user can see their tasks
56
-
57
- Slice 3: Edit a task (update + API + UI)
58
- → Tests pass, user can modify tasks
59
-
60
- Slice 4: Delete a task (delete + API + UI + confirmation)
61
- → Tests pass, full CRUD complete
62
- ```
63
-
64
- Each slice delivers working end-to-end functionality.
65
-
66
- ### Contract-First Slicing
67
-
68
- When backend and frontend need to develop in parallel:
69
-
70
- ```
71
- Slice 0: Define the API contract (types, interfaces, OpenAPI spec)
72
- Slice 1a: Implement backend against the contract + API tests
73
- Slice 1b: Implement frontend against mock data matching the contract
74
- Slice 2: Integrate and test end-to-end
75
- ```
76
-
77
- ### Risk-First Slicing
78
-
79
- Tackle the riskiest or most uncertain piece first:
80
-
81
- ```
82
- Slice 1: Prove the WebSocket connection works (highest risk)
83
- Slice 2: Build real-time task updates on the proven connection
84
- Slice 3: Add offline support and reconnection
85
- ```
86
-
87
- If Slice 1 fails, you discover it before investing in Slices 2 and 3.
88
-
89
- ## Implementation Rules
90
-
91
- ### Rule 0: Simplicity First
92
-
93
- Before writing any code, ask: "What is the simplest thing that could work?"
94
-
95
- After writing code, review it against these checks:
96
- - Can this be done in fewer lines?
97
- - Are these abstractions earning their complexity?
98
- - Would a staff engineer look at this and say "why didn't you just..."?
99
- - Am I building for hypothetical future requirements, or the current task?
100
-
101
- ```
102
- SIMPLICITY CHECK:
103
- ✗ Generic EventBus with middleware pipeline for one notification
104
- ✓ Simple function call
105
-
106
- ✗ Abstract factory pattern for two similar components
107
- ✓ Two straightforward components with shared utilities
108
-
109
- ✗ Config-driven form builder for three forms
110
- ✓ Three form components
111
- ```
112
-
113
- Three similar lines of code is better than a premature abstraction. Implement the naive, obviously-correct version first. Optimize only after correctness is proven with tests.
114
-
115
- ### Rule 0.5: Scope Discipline
116
-
117
- Touch only what the task requires.
118
-
119
- Do NOT:
120
- - "Clean up" code adjacent to your change
121
- - Refactor imports in files you're not modifying
122
- - Remove comments you don't fully understand
123
- - Add features not in the spec because they "seem useful"
124
- - Modernize syntax in files you're only reading
125
-
126
- If you notice something worth improving outside your task scope, note it — don't fix it:
127
-
128
- ```
129
- NOTICED BUT NOT TOUCHING:
130
- - src/utils/format.ts has an unused import (unrelated to this task)
131
- - The auth middleware could use better error messages (separate task)
132
- → Want me to create tasks for these?
133
- ```
134
-
135
- ### Rule 1: One Thing at a Time
136
-
137
- Each increment changes one logical thing. Don't mix concerns:
138
-
139
- **Bad:** One commit that adds a new component, refactors an existing one, and updates the build config.
140
-
141
- **Good:** Three separate commits — one for each change.
142
-
143
- ### Rule 2: Keep It Compilable
144
-
145
- After each increment, the project must build and existing tests must pass. Don't leave the codebase in a broken state between slices.
146
-
147
- ### Rule 3: Feature Flags for Incomplete Features
148
-
149
- If a feature isn't ready for users but you need to merge increments:
150
-
151
- ```typescript
152
- // Feature flag for work-in-progress
153
- const ENABLE_TASK_SHARING = process.env.FEATURE_TASK_SHARING === 'true';
154
-
155
- if (ENABLE_TASK_SHARING) {
156
- // New sharing UI
157
- }
158
- ```
159
-
160
- This lets you merge small increments to the main branch without exposing incomplete work.
161
-
162
- ### Rule 4: Safe Defaults
163
-
164
- New code should default to safe, conservative behavior:
165
-
166
- ```typescript
167
- // Safe: disabled by default, opt-in
168
- export function createTask(data: TaskInput, options?: { notify?: boolean }) {
169
- const shouldNotify = options?.notify ?? false;
170
- // ...
171
- }
172
- ```
173
-
174
- ### Rule 5: Rollback-Friendly
175
-
176
- Each increment should be independently revertable:
177
-
178
- - Additive changes (new files, new functions) are easy to revert
179
- - Modifications to existing code should be minimal and focused
180
- - Database migrations should have corresponding rollback migrations
181
- - Avoid deleting something in one commit and replacing it in the same commit — separate them
182
-
183
- ## Working with Agents
184
-
185
- When directing an agent to implement incrementally:
186
-
187
- ```
188
- "Let's implement Task 3 from the plan.
189
-
190
- Start with just the database schema change and the API endpoint.
191
- Don't touch the UI yet — we'll do that in the next increment.
192
-
193
- After implementing, run `npm test` and `npm run build` to verify
194
- nothing is broken."
195
- ```
196
-
197
- Be explicit about what's in scope and what's NOT in scope for each increment.
198
-
199
- ## Increment Checklist
200
-
201
- After each increment, verify:
202
-
203
- - [ ] The change does one thing and does it completely
204
- - [ ] All existing tests still pass (`npm test`)
205
- - [ ] The build succeeds (`npm run build`)
206
- - [ ] Type checking passes (`npx tsc --noEmit`)
207
- - [ ] Linting passes (`npm run lint`)
208
- - [ ] The new functionality works as expected
209
- - [ ] The change is committed with a descriptive message
210
-
211
- ## Common Rationalizations
212
-
213
- | Rationalization | Reality |
214
- |---|---|
215
- | "I'll test it all at the end" | Bugs compound. A bug in Slice 1 makes Slices 2-5 wrong. Test each slice. |
216
- | "It's faster to do it all at once" | It *feels* faster until something breaks and you can't find which of 500 changed lines caused it. |
217
- | "These changes are too small to commit separately" | Small commits are free. Large commits hide bugs and make rollbacks painful. |
218
- | "I'll add the feature flag later" | If the feature isn't complete, it shouldn't be user-visible. Add the flag now. |
219
- | "This refactor is small enough to include" | Refactors mixed with features make both harder to review and debug. Separate them. |
220
-
221
- ## Red Flags
222
-
223
- - More than 100 lines of code written without running tests
224
- - Multiple unrelated changes in a single increment
225
- - "Let me just quickly add this too" scope expansion
226
- - Skipping the test/verify step to move faster
227
- - Build or tests broken between increments
228
- - Large uncommitted changes accumulating
229
- - Building abstractions before the third use case demands it
230
- - Touching files outside the task scope "while I'm here"
231
- - Creating new utility files for one-time operations
232
-
233
- ## Verification
234
-
235
- After completing all increments for a task:
236
-
237
- - [ ] Each increment was individually tested and committed
238
- - [ ] The full test suite passes
239
- - [ ] The build is clean
240
- - [ ] The feature works end-to-end as specified
241
- - [ ] No uncommitted changes remain
1
+ ---
2
+ name: incremental-implementation
3
+ description: Delivers changes incrementally. Use when implementing any feature or change that touches more than one file. Use when you're about to write a large amount of code at once, or when a task feels too big to land in one step.
4
+ ---
5
+
6
+ # Incremental Implementation
7
+
8
+ ## Overview
9
+
10
+ Build in thin vertical slices — implement one piece, test it, verify it, then expand. Avoid implementing an entire feature in one pass. Each increment should leave the system in a working, testable state. This is the execution discipline that makes large features manageable.
11
+
12
+ ## When to Use
13
+
14
+ - Implementing any multi-file change
15
+ - Building a new feature from a task breakdown
16
+ - Refactoring existing code
17
+ - Any time you're tempted to write more than ~100 lines before testing
18
+
19
+ **When NOT to use:** Single-file, single-function changes where the scope is already minimal.
20
+
21
+ ## The Increment Cycle
22
+
23
+ ```
24
+ ┌──────────────────────────────────────┐
25
+ │ │
26
+ │ Implement ──→ Test ──→ Verify ──┐ │
27
+ │ ▲ │ │
28
+ │ └───── Commit ◄─────────────┘ │
29
+ │ │ │
30
+ │ ▼ │
31
+ │ Next slice │
32
+ │ │
33
+ └──────────────────────────────────────┘
34
+ ```
35
+
36
+ For each slice:
37
+
38
+ 1. **Implement** the smallest complete piece of functionality
39
+ 2. **Test** — run the test suite (or write a test if none exists)
40
+ 3. **Verify** — confirm the slice works as expected (tests pass, build succeeds, manual check)
41
+ 4. **Commit** -- save your progress with a descriptive message (see `git-workflow-and-versioning` for atomic commit guidance)
42
+ 5. **Move to the next slice** — carry forward, don't restart
43
+
44
+ ## Slicing Strategies
45
+
46
+ ### Vertical Slices (Preferred)
47
+
48
+ Build one complete path through the stack:
49
+
50
+ ```
51
+ Slice 1: Create a task (DB + API + basic UI)
52
+ → Tests pass, user can create a task via the UI
53
+
54
+ Slice 2: List tasks (query + API + UI)
55
+ → Tests pass, user can see their tasks
56
+
57
+ Slice 3: Edit a task (update + API + UI)
58
+ → Tests pass, user can modify tasks
59
+
60
+ Slice 4: Delete a task (delete + API + UI + confirmation)
61
+ → Tests pass, full CRUD complete
62
+ ```
63
+
64
+ Each slice delivers working end-to-end functionality.
65
+
66
+ ### Contract-First Slicing
67
+
68
+ When backend and frontend need to develop in parallel:
69
+
70
+ ```
71
+ Slice 0: Define the API contract (types, interfaces, OpenAPI spec)
72
+ Slice 1a: Implement backend against the contract + API tests
73
+ Slice 1b: Implement frontend against mock data matching the contract
74
+ Slice 2: Integrate and test end-to-end
75
+ ```
76
+
77
+ ### Risk-First Slicing
78
+
79
+ Tackle the riskiest or most uncertain piece first:
80
+
81
+ ```
82
+ Slice 1: Prove the WebSocket connection works (highest risk)
83
+ Slice 2: Build real-time task updates on the proven connection
84
+ Slice 3: Add offline support and reconnection
85
+ ```
86
+
87
+ If Slice 1 fails, you discover it before investing in Slices 2 and 3.
88
+
89
+ ## Implementation Rules
90
+
91
+ ### Rule 0: Simplicity First
92
+
93
+ Before writing any code, ask: "What is the simplest thing that could work?"
94
+
95
+ After writing code, review it against these checks:
96
+ - Can this be done in fewer lines?
97
+ - Are these abstractions earning their complexity?
98
+ - Would a staff engineer look at this and say "why didn't you just..."?
99
+ - Am I building for hypothetical future requirements, or the current task?
100
+
101
+ ```
102
+ SIMPLICITY CHECK:
103
+ ✗ Generic EventBus with middleware pipeline for one notification
104
+ ✓ Simple function call
105
+
106
+ ✗ Abstract factory pattern for two similar components
107
+ ✓ Two straightforward components with shared utilities
108
+
109
+ ✗ Config-driven form builder for three forms
110
+ ✓ Three form components
111
+ ```
112
+
113
+ Three similar lines of code is better than a premature abstraction. Implement the naive, obviously-correct version first. Optimize only after correctness is proven with tests.
114
+
115
+ ### Rule 0.5: Scope Discipline
116
+
117
+ Touch only what the task requires.
118
+
119
+ Do NOT:
120
+ - "Clean up" code adjacent to your change
121
+ - Refactor imports in files you're not modifying
122
+ - Remove comments you don't fully understand
123
+ - Add features not in the spec because they "seem useful"
124
+ - Modernize syntax in files you're only reading
125
+
126
+ If you notice something worth improving outside your task scope, note it — don't fix it:
127
+
128
+ ```
129
+ NOTICED BUT NOT TOUCHING:
130
+ - src/utils/format.ts has an unused import (unrelated to this task)
131
+ - The auth middleware could use better error messages (separate task)
132
+ → Want me to create tasks for these?
133
+ ```
134
+
135
+ ### Rule 1: One Thing at a Time
136
+
137
+ Each increment changes one logical thing. Don't mix concerns:
138
+
139
+ **Bad:** One commit that adds a new component, refactors an existing one, and updates the build config.
140
+
141
+ **Good:** Three separate commits — one for each change.
142
+
143
+ ### Rule 2: Keep It Compilable
144
+
145
+ After each increment, the project must build and existing tests must pass. Don't leave the codebase in a broken state between slices.
146
+
147
+ ### Rule 3: Feature Flags for Incomplete Features
148
+
149
+ If a feature isn't ready for users but you need to merge increments:
150
+
151
+ ```typescript
152
+ // Feature flag for work-in-progress
153
+ const ENABLE_TASK_SHARING = process.env.FEATURE_TASK_SHARING === 'true';
154
+
155
+ if (ENABLE_TASK_SHARING) {
156
+ // New sharing UI
157
+ }
158
+ ```
159
+
160
+ This lets you merge small increments to the main branch without exposing incomplete work.
161
+
162
+ ### Rule 4: Safe Defaults
163
+
164
+ New code should default to safe, conservative behavior:
165
+
166
+ ```typescript
167
+ // Safe: disabled by default, opt-in
168
+ export function createTask(data: TaskInput, options?: { notify?: boolean }) {
169
+ const shouldNotify = options?.notify ?? false;
170
+ // ...
171
+ }
172
+ ```
173
+
174
+ ### Rule 5: Rollback-Friendly
175
+
176
+ Each increment should be independently revertable:
177
+
178
+ - Additive changes (new files, new functions) are easy to revert
179
+ - Modifications to existing code should be minimal and focused
180
+ - Database migrations should have corresponding rollback migrations
181
+ - Avoid deleting something in one commit and replacing it in the same commit — separate them
182
+
183
+ ## Working with Agents
184
+
185
+ When directing an agent to implement incrementally:
186
+
187
+ ```
188
+ "Let's implement Task 3 from the plan.
189
+
190
+ Start with just the database schema change and the API endpoint.
191
+ Don't touch the UI yet — we'll do that in the next increment.
192
+
193
+ After implementing, run `npm test` and `npm run build` to verify
194
+ nothing is broken."
195
+ ```
196
+
197
+ Be explicit about what's in scope and what's NOT in scope for each increment.
198
+
199
+ ## Increment Checklist
200
+
201
+ After each increment, verify:
202
+
203
+ - [ ] The change does one thing and does it completely
204
+ - [ ] All existing tests still pass (`npm test`)
205
+ - [ ] The build succeeds (`npm run build`)
206
+ - [ ] Type checking passes (`npx tsc --noEmit`)
207
+ - [ ] Linting passes (`npm run lint`)
208
+ - [ ] The new functionality works as expected
209
+ - [ ] The change is committed with a descriptive message
210
+
211
+ ## Common Rationalizations
212
+
213
+ | Rationalization | Reality |
214
+ |---|---|
215
+ | "I'll test it all at the end" | Bugs compound. A bug in Slice 1 makes Slices 2-5 wrong. Test each slice. |
216
+ | "It's faster to do it all at once" | It *feels* faster until something breaks and you can't find which of 500 changed lines caused it. |
217
+ | "These changes are too small to commit separately" | Small commits are free. Large commits hide bugs and make rollbacks painful. |
218
+ | "I'll add the feature flag later" | If the feature isn't complete, it shouldn't be user-visible. Add the flag now. |
219
+ | "This refactor is small enough to include" | Refactors mixed with features make both harder to review and debug. Separate them. |
220
+
221
+ ## Red Flags
222
+
223
+ - More than 100 lines of code written without running tests
224
+ - Multiple unrelated changes in a single increment
225
+ - "Let me just quickly add this too" scope expansion
226
+ - Skipping the test/verify step to move faster
227
+ - Build or tests broken between increments
228
+ - Large uncommitted changes accumulating
229
+ - Building abstractions before the third use case demands it
230
+ - Touching files outside the task scope "while I'm here"
231
+ - Creating new utility files for one-time operations
232
+
233
+ ## Verification
234
+
235
+ After completing all increments for a task:
236
+
237
+ - [ ] Each increment was individually tested and committed
238
+ - [ ] The full test suite passes
239
+ - [ ] The build is clean
240
+ - [ ] The feature works end-to-end as specified
241
+ - [ ] No uncommitted changes remain