edsger 0.76.0 → 0.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (853) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +95 -210
  3. package/assets/LICENSE +21 -0
  4. package/assets/README.md +104 -0
  5. package/assets/benchmark/base.yaml +286 -0
  6. package/assets/benchmark/csharp.yaml +68 -0
  7. package/assets/benchmark/dart.yaml +70 -0
  8. package/assets/benchmark/go.yaml +71 -0
  9. package/assets/benchmark/java.yaml +68 -0
  10. package/assets/benchmark/python.yaml +72 -0
  11. package/assets/benchmark/typescript.yaml +71 -0
  12. package/assets/languages.yaml +35 -0
  13. package/assets/manifest.yaml +39 -0
  14. package/assets/review/base.yaml +111 -0
  15. package/assets/review/csharp.yaml +38 -0
  16. package/assets/review/dart.yaml +40 -0
  17. package/assets/review/go.yaml +40 -0
  18. package/assets/review/java.yaml +40 -0
  19. package/assets/review/python.yaml +41 -0
  20. package/assets/review/typescript.yaml +40 -0
  21. package/assets/schema/benchmark.schema.json +87 -0
  22. package/assets/schema/review.schema.json +73 -0
  23. package/assets/skills/benchmark/SKILL.md +66 -0
  24. package/assets/skills/pr-resolve/SKILL.md +58 -0
  25. package/assets/skills/pr-review/SKILL.md +66 -0
  26. package/dist/index.js +1339 -1218
  27. package/dist/index.js.map +1 -0
  28. package/package.json +58 -53
  29. package/dist/api/adr.d.ts +0 -48
  30. package/dist/api/adr.js +0 -139
  31. package/dist/api/app-store-iap.d.ts +0 -60
  32. package/dist/api/app-store-iap.js +0 -145
  33. package/dist/api/app-store.d.ts +0 -93
  34. package/dist/api/app-store.js +0 -206
  35. package/dist/api/chat.d.ts +0 -72
  36. package/dist/api/chat.js +0 -272
  37. package/dist/api/cross-product.d.ts +0 -33
  38. package/dist/api/cross-product.js +0 -127
  39. package/dist/api/financing.d.ts +0 -47
  40. package/dist/api/financing.js +0 -37
  41. package/dist/api/github.d.ts +0 -86
  42. package/dist/api/github.js +0 -203
  43. package/dist/api/growth.d.ts +0 -81
  44. package/dist/api/growth.js +0 -75
  45. package/dist/api/intelligence-normalize.d.ts +0 -25
  46. package/dist/api/intelligence-normalize.js +0 -103
  47. package/dist/api/intelligence.d.ts +0 -187
  48. package/dist/api/intelligence.js +0 -402
  49. package/dist/api/issues/approval-checker.d.ts +0 -22
  50. package/dist/api/issues/approval-checker.js +0 -141
  51. package/dist/api/issues/batch-operations.d.ts +0 -17
  52. package/dist/api/issues/batch-operations.js +0 -100
  53. package/dist/api/issues/get-issue.d.ts +0 -5
  54. package/dist/api/issues/get-issue.js +0 -47
  55. package/dist/api/issues/index.d.ts +0 -8
  56. package/dist/api/issues/index.js +0 -10
  57. package/dist/api/issues/issue-utils.d.ts +0 -25
  58. package/dist/api/issues/issue-utils.js +0 -133
  59. package/dist/api/issues/status-updater.d.ts +0 -68
  60. package/dist/api/issues/status-updater.js +0 -190
  61. package/dist/api/issues/test-cases.d.ts +0 -29
  62. package/dist/api/issues/test-cases.js +0 -185
  63. package/dist/api/issues/update-issue.d.ts +0 -25
  64. package/dist/api/issues/update-issue.js +0 -127
  65. package/dist/api/issues/user-stories.d.ts +0 -21
  66. package/dist/api/issues/user-stories.js +0 -163
  67. package/dist/api/mcp-client.d.ts +0 -22
  68. package/dist/api/mcp-client.js +0 -75
  69. package/dist/api/products/test-cases.d.ts +0 -18
  70. package/dist/api/products/test-cases.js +0 -51
  71. package/dist/api/products.d.ts +0 -15
  72. package/dist/api/products.js +0 -45
  73. package/dist/api/release-test-cases.d.ts +0 -7
  74. package/dist/api/release-test-cases.js +0 -59
  75. package/dist/api/releases.d.ts +0 -41
  76. package/dist/api/releases.js +0 -117
  77. package/dist/api/run-sheets.d.ts +0 -22
  78. package/dist/api/run-sheets.js +0 -13
  79. package/dist/api/storage.d.ts +0 -13
  80. package/dist/api/storage.js +0 -29
  81. package/dist/api/tasks.d.ts +0 -26
  82. package/dist/api/tasks.js +0 -81
  83. package/dist/api/test-reports.d.ts +0 -9
  84. package/dist/api/test-reports.js +0 -43
  85. package/dist/api/user-psychology.d.ts +0 -101
  86. package/dist/api/user-psychology.js +0 -143
  87. package/dist/api/web-deploy.d.ts +0 -67
  88. package/dist/api/web-deploy.js +0 -199
  89. package/dist/auth/auth-store.d.ts +0 -98
  90. package/dist/auth/auth-store.js +0 -194
  91. package/dist/auth/env-store.d.ts +0 -41
  92. package/dist/auth/env-store.js +0 -127
  93. package/dist/auth/login.d.ts +0 -18
  94. package/dist/auth/login.js +0 -179
  95. package/dist/commands/adr/index.d.ts +0 -13
  96. package/dist/commands/adr/index.js +0 -31
  97. package/dist/commands/agent-workflow/chat-worker.d.ts +0 -16
  98. package/dist/commands/agent-workflow/chat-worker.js +0 -465
  99. package/dist/commands/agent-workflow/index.d.ts +0 -13
  100. package/dist/commands/agent-workflow/index.js +0 -107
  101. package/dist/commands/agent-workflow/issue-worker.d.ts +0 -14
  102. package/dist/commands/agent-workflow/issue-worker.js +0 -65
  103. package/dist/commands/agent-workflow/processor.d.ts +0 -95
  104. package/dist/commands/agent-workflow/processor.js +0 -519
  105. package/dist/commands/analyze-logs/index.d.ts +0 -7
  106. package/dist/commands/analyze-logs/index.js +0 -34
  107. package/dist/commands/app-store/index.d.ts +0 -12
  108. package/dist/commands/app-store/index.js +0 -69
  109. package/dist/commands/architecture-diagram/index.d.ts +0 -8
  110. package/dist/commands/architecture-diagram/index.js +0 -10
  111. package/dist/commands/build/detect-project.d.ts +0 -52
  112. package/dist/commands/build/detect-project.js +0 -277
  113. package/dist/commands/build/index.d.ts +0 -66
  114. package/dist/commands/build/index.js +0 -544
  115. package/dist/commands/chat-serve/chat-server.d.ts +0 -114
  116. package/dist/commands/chat-serve/chat-server.js +0 -339
  117. package/dist/commands/chat-serve/index.d.ts +0 -20
  118. package/dist/commands/chat-serve/index.js +0 -58
  119. package/dist/commands/checklists/index.d.ts +0 -16
  120. package/dist/commands/checklists/index.js +0 -187
  121. package/dist/commands/checklists/tools.d.ts +0 -17
  122. package/dist/commands/checklists/tools.js +0 -19
  123. package/dist/commands/class-diagram/index.d.ts +0 -7
  124. package/dist/commands/class-diagram/index.js +0 -9
  125. package/dist/commands/code-review/index.d.ts +0 -2
  126. package/dist/commands/code-review/index.js +0 -37
  127. package/dist/commands/code-review/reviewer.d.ts +0 -3
  128. package/dist/commands/code-review/reviewer.js +0 -205
  129. package/dist/commands/config/index.d.ts +0 -16
  130. package/dist/commands/config/index.js +0 -60
  131. package/dist/commands/data-flow/index.d.ts +0 -19
  132. package/dist/commands/data-flow/index.js +0 -55
  133. package/dist/commands/diagram-shared/index.d.ts +0 -21
  134. package/dist/commands/diagram-shared/index.js +0 -37
  135. package/dist/commands/discover/index.d.ts +0 -14
  136. package/dist/commands/discover/index.js +0 -29
  137. package/dist/commands/er-diagram/index.d.ts +0 -19
  138. package/dist/commands/er-diagram/index.js +0 -55
  139. package/dist/commands/features/index.d.ts +0 -15
  140. package/dist/commands/features/index.js +0 -34
  141. package/dist/commands/financing-deck/index.d.ts +0 -8
  142. package/dist/commands/financing-deck/index.js +0 -66
  143. package/dist/commands/find-architecture/index.d.ts +0 -15
  144. package/dist/commands/find-architecture/index.js +0 -50
  145. package/dist/commands/find-bugs/index.d.ts +0 -13
  146. package/dist/commands/find-bugs/index.js +0 -48
  147. package/dist/commands/find-features/index.d.ts +0 -14
  148. package/dist/commands/find-features/index.js +0 -42
  149. package/dist/commands/find-smells/index.d.ts +0 -23
  150. package/dist/commands/find-smells/index.js +0 -74
  151. package/dist/commands/flowchart/index.d.ts +0 -8
  152. package/dist/commands/flowchart/index.js +0 -10
  153. package/dist/commands/growth-analysis/index.d.ts +0 -7
  154. package/dist/commands/growth-analysis/index.js +0 -89
  155. package/dist/commands/init/index.d.ts +0 -5
  156. package/dist/commands/init/index.js +0 -152
  157. package/dist/commands/init/prompts.d.ts +0 -9
  158. package/dist/commands/init/prompts.js +0 -128
  159. package/dist/commands/init/templates.d.ts +0 -9
  160. package/dist/commands/init/templates.js +0 -264
  161. package/dist/commands/intelligence/index.d.ts +0 -15
  162. package/dist/commands/intelligence/index.js +0 -138
  163. package/dist/commands/issue-analysis/index.d.ts +0 -5
  164. package/dist/commands/issue-analysis/index.js +0 -9
  165. package/dist/commands/pr-resolve/index.d.ts +0 -13
  166. package/dist/commands/pr-resolve/index.js +0 -50
  167. package/dist/commands/pr-review/index.d.ts +0 -12
  168. package/dist/commands/pr-review/index.js +0 -47
  169. package/dist/commands/product-techniques/index.d.ts +0 -15
  170. package/dist/commands/product-techniques/index.js +0 -37
  171. package/dist/commands/product-test-cases/index.d.ts +0 -12
  172. package/dist/commands/product-test-cases/index.js +0 -40
  173. package/dist/commands/quality-benchmark/index.d.ts +0 -40
  174. package/dist/commands/quality-benchmark/index.js +0 -219
  175. package/dist/commands/recipes/index.d.ts +0 -17
  176. package/dist/commands/recipes/index.js +0 -40
  177. package/dist/commands/refactor/refactor.d.ts +0 -2
  178. package/dist/commands/refactor/refactor.js +0 -134
  179. package/dist/commands/release-sync/index.d.ts +0 -5
  180. package/dist/commands/release-sync/index.js +0 -38
  181. package/dist/commands/run-sheet/index.d.ts +0 -6
  182. package/dist/commands/run-sheet/index.js +0 -48
  183. package/dist/commands/screen-flow/index.d.ts +0 -18
  184. package/dist/commands/screen-flow/index.js +0 -54
  185. package/dist/commands/sequence-diagram/index.d.ts +0 -19
  186. package/dist/commands/sequence-diagram/index.js +0 -55
  187. package/dist/commands/session-serve/index.d.ts +0 -32
  188. package/dist/commands/session-serve/index.js +0 -100
  189. package/dist/commands/session-turn/index.d.ts +0 -73
  190. package/dist/commands/session-turn/index.js +0 -254
  191. package/dist/commands/smoke-test/index.d.ts +0 -5
  192. package/dist/commands/smoke-test/index.js +0 -40
  193. package/dist/commands/state-diagram/index.d.ts +0 -7
  194. package/dist/commands/state-diagram/index.js +0 -9
  195. package/dist/commands/sync-aws/index.d.ts +0 -16
  196. package/dist/commands/sync-aws/index.js +0 -214
  197. package/dist/commands/sync-datadog/index.d.ts +0 -16
  198. package/dist/commands/sync-datadog/index.js +0 -236
  199. package/dist/commands/sync-github-issues/index.d.ts +0 -11
  200. package/dist/commands/sync-github-issues/index.js +0 -42
  201. package/dist/commands/sync-github-pull-requests/index.d.ts +0 -11
  202. package/dist/commands/sync-github-pull-requests/index.js +0 -42
  203. package/dist/commands/sync-org-repos/index.d.ts +0 -12
  204. package/dist/commands/sync-org-repos/index.js +0 -60
  205. package/dist/commands/sync-sentry-issues/index.d.ts +0 -14
  206. package/dist/commands/sync-sentry-issues/index.js +0 -73
  207. package/dist/commands/sync-terraform/index.d.ts +0 -16
  208. package/dist/commands/sync-terraform/index.js +0 -248
  209. package/dist/commands/task-worker/index.d.ts +0 -8
  210. package/dist/commands/task-worker/index.js +0 -34
  211. package/dist/commands/task-worker/processor.d.ts +0 -23
  212. package/dist/commands/task-worker/processor.js +0 -84
  213. package/dist/commands/technical-design/index.d.ts +0 -5
  214. package/dist/commands/technical-design/index.js +0 -9
  215. package/dist/commands/test-cases-analysis/index.d.ts +0 -5
  216. package/dist/commands/test-cases-analysis/index.js +0 -9
  217. package/dist/commands/user-psychology/index.d.ts +0 -7
  218. package/dist/commands/user-psychology/index.js +0 -51
  219. package/dist/commands/user-stories-analysis/index.d.ts +0 -5
  220. package/dist/commands/user-stories-analysis/index.js +0 -9
  221. package/dist/commands/workflow/config/phase-configs.d.ts +0 -5
  222. package/dist/commands/workflow/config/phase-configs.js +0 -132
  223. package/dist/commands/workflow/core/index.d.ts +0 -8
  224. package/dist/commands/workflow/core/index.js +0 -12
  225. package/dist/commands/workflow/core/issue-filter.d.ts +0 -16
  226. package/dist/commands/workflow/core/issue-filter.js +0 -47
  227. package/dist/commands/workflow/core/pipeline-evaluator.d.ts +0 -24
  228. package/dist/commands/workflow/core/pipeline-evaluator.js +0 -32
  229. package/dist/commands/workflow/core/state-manager.d.ts +0 -24
  230. package/dist/commands/workflow/core/state-manager.js +0 -42
  231. package/dist/commands/workflow/core/workflow-logger.d.ts +0 -23
  232. package/dist/commands/workflow/core/workflow-logger.js +0 -77
  233. package/dist/commands/workflow/executors/phase-executor.d.ts +0 -8
  234. package/dist/commands/workflow/executors/phase-executor.js +0 -338
  235. package/dist/commands/workflow/index.d.ts +0 -2
  236. package/dist/commands/workflow/index.js +0 -34
  237. package/dist/commands/workflow/issue-coordinator.d.ts +0 -18
  238. package/dist/commands/workflow/issue-coordinator.js +0 -161
  239. package/dist/commands/workflow/phase-orchestrator.d.ts +0 -26
  240. package/dist/commands/workflow/phase-orchestrator.js +0 -699
  241. package/dist/commands/workflow/processor.d.ts +0 -47
  242. package/dist/commands/workflow/processor.js +0 -149
  243. package/dist/config/issue-status.d.ts +0 -29
  244. package/dist/config/issue-status.js +0 -44
  245. package/dist/config.d.ts +0 -3
  246. package/dist/config.js +0 -79
  247. package/dist/constants.d.ts +0 -10
  248. package/dist/constants.js +0 -36
  249. package/dist/errors/index.d.ts +0 -68
  250. package/dist/errors/index.js +0 -129
  251. package/dist/index.d.ts +0 -4
  252. package/dist/phases/adr-generation/agent.d.ts +0 -6
  253. package/dist/phases/adr-generation/agent.js +0 -69
  254. package/dist/phases/adr-generation/index.d.ts +0 -15
  255. package/dist/phases/adr-generation/index.js +0 -66
  256. package/dist/phases/adr-generation/parse.d.ts +0 -12
  257. package/dist/phases/adr-generation/parse.js +0 -123
  258. package/dist/phases/adr-generation/prompts.d.ts +0 -8
  259. package/dist/phases/adr-generation/prompts.js +0 -35
  260. package/dist/phases/analyze-logs/agent.d.ts +0 -11
  261. package/dist/phases/analyze-logs/agent.js +0 -66
  262. package/dist/phases/analyze-logs/index.d.ts +0 -23
  263. package/dist/phases/analyze-logs/index.js +0 -152
  264. package/dist/phases/analyze-logs/prompts.d.ts +0 -3
  265. package/dist/phases/analyze-logs/prompts.js +0 -27
  266. package/dist/phases/app-store-generation/agent.d.ts +0 -2
  267. package/dist/phases/app-store-generation/agent.js +0 -177
  268. package/dist/phases/app-store-generation/assets/inter-latin-ext.woff2 +0 -0
  269. package/dist/phases/app-store-generation/assets/inter-latin.woff2 +0 -0
  270. package/dist/phases/app-store-generation/context.d.ts +0 -21
  271. package/dist/phases/app-store-generation/context.js +0 -78
  272. package/dist/phases/app-store-generation/index.d.ts +0 -20
  273. package/dist/phases/app-store-generation/index.js +0 -157
  274. package/dist/phases/app-store-generation/inter-font.d.ts +0 -20
  275. package/dist/phases/app-store-generation/inter-font.js +0 -49
  276. package/dist/phases/app-store-generation/prompts.d.ts +0 -43
  277. package/dist/phases/app-store-generation/prompts.js +0 -73
  278. package/dist/phases/app-store-generation/screenshot-composer.d.ts +0 -41
  279. package/dist/phases/app-store-generation/screenshot-composer.js +0 -516
  280. package/dist/phases/app-store-generation/uploader.d.ts +0 -19
  281. package/dist/phases/app-store-generation/uploader.js +0 -150
  282. package/dist/phases/architecture-diagram/index.d.ts +0 -15
  283. package/dist/phases/architecture-diagram/index.js +0 -51
  284. package/dist/phases/autonomous/index.d.ts +0 -32
  285. package/dist/phases/autonomous/index.js +0 -412
  286. package/dist/phases/autonomous/prompts.d.ts +0 -5
  287. package/dist/phases/autonomous/prompts.js +0 -31
  288. package/dist/phases/branch-planning/context.d.ts +0 -14
  289. package/dist/phases/branch-planning/context.js +0 -43
  290. package/dist/phases/branch-planning/index.d.ts +0 -25
  291. package/dist/phases/branch-planning/index.js +0 -404
  292. package/dist/phases/branch-planning/outcome.d.ts +0 -28
  293. package/dist/phases/branch-planning/outcome.js +0 -115
  294. package/dist/phases/branch-planning/prompts.d.ts +0 -41
  295. package/dist/phases/branch-planning/prompts.js +0 -157
  296. package/dist/phases/bug-fixing/analyzer.d.ts +0 -17
  297. package/dist/phases/bug-fixing/analyzer.js +0 -247
  298. package/dist/phases/bug-fixing/context-fetcher.d.ts +0 -22
  299. package/dist/phases/bug-fixing/context-fetcher.js +0 -137
  300. package/dist/phases/bug-fixing/index.d.ts +0 -7
  301. package/dist/phases/bug-fixing/index.js +0 -7
  302. package/dist/phases/bug-fixing/mcp-server.d.ts +0 -18
  303. package/dist/phases/bug-fixing/mcp-server.js +0 -19
  304. package/dist/phases/bug-fixing/prompts.d.ts +0 -2
  305. package/dist/phases/bug-fixing/prompts.js +0 -9
  306. package/dist/phases/chat-processor/context.d.ts +0 -38
  307. package/dist/phases/chat-processor/context.js +0 -91
  308. package/dist/phases/chat-processor/index.d.ts +0 -49
  309. package/dist/phases/chat-processor/index.js +0 -482
  310. package/dist/phases/chat-processor/product-context.d.ts +0 -36
  311. package/dist/phases/chat-processor/product-context.js +0 -113
  312. package/dist/phases/chat-processor/product-prompts.d.ts +0 -4
  313. package/dist/phases/chat-processor/product-prompts.js +0 -65
  314. package/dist/phases/chat-processor/product-tools.d.ts +0 -8
  315. package/dist/phases/chat-processor/product-tools.js +0 -11
  316. package/dist/phases/chat-processor/prompts.d.ts +0 -35
  317. package/dist/phases/chat-processor/prompts.js +0 -213
  318. package/dist/phases/chat-processor/tools.d.ts +0 -8
  319. package/dist/phases/chat-processor/tools.js +0 -11
  320. package/dist/phases/class-diagram/index.d.ts +0 -14
  321. package/dist/phases/class-diagram/index.js +0 -76
  322. package/dist/phases/code-implementation/branch-pr-creator.d.ts +0 -31
  323. package/dist/phases/code-implementation/branch-pr-creator.js +0 -172
  324. package/dist/phases/code-implementation/context.d.ts +0 -17
  325. package/dist/phases/code-implementation/context.js +0 -88
  326. package/dist/phases/code-implementation/index.d.ts +0 -33
  327. package/dist/phases/code-implementation/index.js +0 -926
  328. package/dist/phases/code-implementation/outcome.d.ts +0 -47
  329. package/dist/phases/code-implementation/outcome.js +0 -53
  330. package/dist/phases/code-implementation/prompts.d.ts +0 -8
  331. package/dist/phases/code-implementation/prompts.js +0 -166
  332. package/dist/phases/code-implementation-verification/agent.d.ts +0 -32
  333. package/dist/phases/code-implementation-verification/agent.js +0 -225
  334. package/dist/phases/code-implementation-verification/index.d.ts +0 -27
  335. package/dist/phases/code-implementation-verification/index.js +0 -121
  336. package/dist/phases/code-implementation-verification/prompts.d.ts +0 -10
  337. package/dist/phases/code-implementation-verification/prompts.js +0 -90
  338. package/dist/phases/code-refine/context.d.ts +0 -99
  339. package/dist/phases/code-refine/context.js +0 -457
  340. package/dist/phases/code-refine/index.d.ts +0 -59
  341. package/dist/phases/code-refine/index.js +0 -348
  342. package/dist/phases/code-refine/prompts.d.ts +0 -5
  343. package/dist/phases/code-refine/prompts.js +0 -162
  344. package/dist/phases/code-refine/refine-iteration.d.ts +0 -33
  345. package/dist/phases/code-refine/refine-iteration.js +0 -166
  346. package/dist/phases/code-refine/retry-handler.d.ts +0 -17
  347. package/dist/phases/code-refine/retry-handler.js +0 -87
  348. package/dist/phases/code-refine-verification/github.d.ts +0 -54
  349. package/dist/phases/code-refine-verification/github.js +0 -328
  350. package/dist/phases/code-refine-verification/index.d.ts +0 -11
  351. package/dist/phases/code-refine-verification/index.js +0 -260
  352. package/dist/phases/code-refine-verification/llm-analyzer.d.ts +0 -22
  353. package/dist/phases/code-refine-verification/llm-analyzer.js +0 -152
  354. package/dist/phases/code-refine-verification/prompts.d.ts +0 -5
  355. package/dist/phases/code-refine-verification/prompts.js +0 -119
  356. package/dist/phases/code-refine-verification/types.d.ts +0 -74
  357. package/dist/phases/code-refine-verification/types.js +0 -4
  358. package/dist/phases/code-review/context.d.ts +0 -96
  359. package/dist/phases/code-review/context.js +0 -278
  360. package/dist/phases/code-review/diff-utils.d.ts +0 -36
  361. package/dist/phases/code-review/diff-utils.js +0 -100
  362. package/dist/phases/code-review/index.d.ts +0 -40
  363. package/dist/phases/code-review/index.js +0 -627
  364. package/dist/phases/code-testing/analyzer.d.ts +0 -19
  365. package/dist/phases/code-testing/analyzer.js +0 -215
  366. package/dist/phases/code-testing/context-fetcher.d.ts +0 -16
  367. package/dist/phases/code-testing/context-fetcher.js +0 -83
  368. package/dist/phases/code-testing/index.d.ts +0 -2
  369. package/dist/phases/code-testing/index.js +0 -2
  370. package/dist/phases/code-testing/prompts.d.ts +0 -3
  371. package/dist/phases/code-testing/prompts.js +0 -63
  372. package/dist/phases/data-flow/index.d.ts +0 -28
  373. package/dist/phases/data-flow/index.js +0 -286
  374. package/dist/phases/data-flow/mcp-server.d.ts +0 -85
  375. package/dist/phases/data-flow/mcp-server.js +0 -140
  376. package/dist/phases/data-flow/prompts.d.ts +0 -14
  377. package/dist/phases/data-flow/prompts.js +0 -36
  378. package/dist/phases/data-flow/types.d.ts +0 -71
  379. package/dist/phases/data-flow/types.js +0 -86
  380. package/dist/phases/diagram-shared/clone-repos.d.ts +0 -63
  381. package/dist/phases/diagram-shared/clone-repos.js +0 -153
  382. package/dist/phases/diagram-shared/generate.d.ts +0 -42
  383. package/dist/phases/diagram-shared/generate.js +0 -162
  384. package/dist/phases/diagram-shared/graph.d.ts +0 -62
  385. package/dist/phases/diagram-shared/graph.js +0 -169
  386. package/dist/phases/diagram-shared/mcp.d.ts +0 -35
  387. package/dist/phases/diagram-shared/mcp.js +0 -68
  388. package/dist/phases/diagram-shared/prompts.d.ts +0 -23
  389. package/dist/phases/diagram-shared/prompts.js +0 -35
  390. package/dist/phases/discover-services/index.d.ts +0 -29
  391. package/dist/phases/discover-services/index.js +0 -528
  392. package/dist/phases/er-diagram/index.d.ts +0 -28
  393. package/dist/phases/er-diagram/index.js +0 -290
  394. package/dist/phases/er-diagram/mcp-server.d.ts +0 -77
  395. package/dist/phases/er-diagram/mcp-server.js +0 -144
  396. package/dist/phases/er-diagram/prompts.d.ts +0 -14
  397. package/dist/phases/er-diagram/prompts.js +0 -36
  398. package/dist/phases/er-diagram/types.d.ts +0 -76
  399. package/dist/phases/er-diagram/types.js +0 -84
  400. package/dist/phases/features/index.d.ts +0 -65
  401. package/dist/phases/features/index.js +0 -292
  402. package/dist/phases/features/mcp-server.d.ts +0 -61
  403. package/dist/phases/features/mcp-server.js +0 -165
  404. package/dist/phases/features/prompts.d.ts +0 -32
  405. package/dist/phases/features/prompts.js +0 -92
  406. package/dist/phases/features/types.d.ts +0 -34
  407. package/dist/phases/features/types.js +0 -15
  408. package/dist/phases/financing-deck/agent.d.ts +0 -1
  409. package/dist/phases/financing-deck/agent.js +0 -96
  410. package/dist/phases/financing-deck/context.d.ts +0 -13
  411. package/dist/phases/financing-deck/context.js +0 -69
  412. package/dist/phases/financing-deck/index.d.ts +0 -15
  413. package/dist/phases/financing-deck/index.js +0 -89
  414. package/dist/phases/financing-deck/prompts.d.ts +0 -2
  415. package/dist/phases/financing-deck/prompts.js +0 -94
  416. package/dist/phases/find-architecture/index.d.ts +0 -47
  417. package/dist/phases/find-architecture/index.js +0 -261
  418. package/dist/phases/find-architecture/prompts.d.ts +0 -31
  419. package/dist/phases/find-architecture/prompts.js +0 -128
  420. package/dist/phases/find-architecture/state.d.ts +0 -21
  421. package/dist/phases/find-architecture/state.js +0 -17
  422. package/dist/phases/find-architecture/types.d.ts +0 -55
  423. package/dist/phases/find-architecture/types.js +0 -69
  424. package/dist/phases/find-bugs/index.d.ts +0 -33
  425. package/dist/phases/find-bugs/index.js +0 -236
  426. package/dist/phases/find-bugs/prompts.d.ts +0 -22
  427. package/dist/phases/find-bugs/prompts.js +0 -101
  428. package/dist/phases/find-bugs/state.d.ts +0 -19
  429. package/dist/phases/find-bugs/state.js +0 -13
  430. package/dist/phases/find-bugs/types.d.ts +0 -21
  431. package/dist/phases/find-bugs/types.js +0 -16
  432. package/dist/phases/find-features/index.d.ts +0 -40
  433. package/dist/phases/find-features/index.js +0 -328
  434. package/dist/phases/find-features/prompts.d.ts +0 -43
  435. package/dist/phases/find-features/prompts.js +0 -138
  436. package/dist/phases/find-features/state.d.ts +0 -25
  437. package/dist/phases/find-features/state.js +0 -22
  438. package/dist/phases/find-features/types.d.ts +0 -27
  439. package/dist/phases/find-features/types.js +0 -16
  440. package/dist/phases/find-shared/git.d.ts +0 -24
  441. package/dist/phases/find-shared/git.js +0 -60
  442. package/dist/phases/find-shared/mcp.d.ts +0 -48
  443. package/dist/phases/find-shared/mcp.js +0 -125
  444. package/dist/phases/find-shared/scan-state.d.ts +0 -33
  445. package/dist/phases/find-shared/scan-state.js +0 -112
  446. package/dist/phases/find-smells/index.d.ts +0 -50
  447. package/dist/phases/find-smells/index.js +0 -298
  448. package/dist/phases/find-smells/prompts.d.ts +0 -30
  449. package/dist/phases/find-smells/prompts.js +0 -129
  450. package/dist/phases/find-smells/state.d.ts +0 -21
  451. package/dist/phases/find-smells/state.js +0 -17
  452. package/dist/phases/find-smells/types.d.ts +0 -51
  453. package/dist/phases/find-smells/types.js +0 -64
  454. package/dist/phases/flow-shared/clone-repos.d.ts +0 -63
  455. package/dist/phases/flow-shared/clone-repos.js +0 -153
  456. package/dist/phases/flowchart/index.d.ts +0 -15
  457. package/dist/phases/flowchart/index.js +0 -50
  458. package/dist/phases/functional-testing/analyzer.d.ts +0 -46
  459. package/dist/phases/functional-testing/analyzer.js +0 -622
  460. package/dist/phases/functional-testing/context-fetcher.d.ts +0 -16
  461. package/dist/phases/functional-testing/context-fetcher.js +0 -83
  462. package/dist/phases/functional-testing/http-fallback.d.ts +0 -10
  463. package/dist/phases/functional-testing/http-fallback.js +0 -156
  464. package/dist/phases/functional-testing/index.d.ts +0 -4
  465. package/dist/phases/functional-testing/index.js +0 -4
  466. package/dist/phases/functional-testing/mcp-server.d.ts +0 -9
  467. package/dist/phases/functional-testing/mcp-server.js +0 -13
  468. package/dist/phases/functional-testing/prompts.d.ts +0 -2
  469. package/dist/phases/functional-testing/prompts.js +0 -58
  470. package/dist/phases/functional-testing/test-report-creator.d.ts +0 -68
  471. package/dist/phases/functional-testing/test-report-creator.js +0 -306
  472. package/dist/phases/functional-testing/test-retry-handler.d.ts +0 -16
  473. package/dist/phases/functional-testing/test-retry-handler.js +0 -70
  474. package/dist/phases/growth-analysis/agent.d.ts +0 -2
  475. package/dist/phases/growth-analysis/agent.js +0 -107
  476. package/dist/phases/growth-analysis/context.d.ts +0 -23
  477. package/dist/phases/growth-analysis/context.js +0 -137
  478. package/dist/phases/growth-analysis/index.d.ts +0 -32
  479. package/dist/phases/growth-analysis/index.js +0 -226
  480. package/dist/phases/growth-analysis/prompts.d.ts +0 -2
  481. package/dist/phases/growth-analysis/prompts.js +0 -45
  482. package/dist/phases/intelligence-analysis/agent.d.ts +0 -2
  483. package/dist/phases/intelligence-analysis/agent.js +0 -338
  484. package/dist/phases/intelligence-analysis/context.d.ts +0 -23
  485. package/dist/phases/intelligence-analysis/context.js +0 -142
  486. package/dist/phases/intelligence-analysis/index.d.ts +0 -58
  487. package/dist/phases/intelligence-analysis/index.js +0 -244
  488. package/dist/phases/intelligence-analysis/prompts.d.ts +0 -2
  489. package/dist/phases/intelligence-analysis/prompts.js +0 -62
  490. package/dist/phases/issue-analysis/agent.d.ts +0 -21
  491. package/dist/phases/issue-analysis/agent.js +0 -153
  492. package/dist/phases/issue-analysis/context.d.ts +0 -20
  493. package/dist/phases/issue-analysis/context.js +0 -93
  494. package/dist/phases/issue-analysis/index.d.ts +0 -8
  495. package/dist/phases/issue-analysis/index.js +0 -147
  496. package/dist/phases/issue-analysis/outcome.d.ts +0 -10
  497. package/dist/phases/issue-analysis/outcome.js +0 -42
  498. package/dist/phases/issue-analysis/prompts.d.ts +0 -8
  499. package/dist/phases/issue-analysis/prompts.js +0 -99
  500. package/dist/phases/issue-analysis-verification/agent.d.ts +0 -33
  501. package/dist/phases/issue-analysis-verification/agent.js +0 -124
  502. package/dist/phases/issue-analysis-verification/index.d.ts +0 -27
  503. package/dist/phases/issue-analysis-verification/index.js +0 -79
  504. package/dist/phases/issue-analysis-verification/prompts.d.ts +0 -9
  505. package/dist/phases/issue-analysis-verification/prompts.js +0 -75
  506. package/dist/phases/output-contracts.d.ts +0 -7
  507. package/dist/phases/output-contracts.js +0 -1201
  508. package/dist/phases/pr-execution/context.d.ts +0 -32
  509. package/dist/phases/pr-execution/context.js +0 -246
  510. package/dist/phases/pr-execution/file-assigner.d.ts +0 -57
  511. package/dist/phases/pr-execution/file-assigner.js +0 -287
  512. package/dist/phases/pr-execution/index.d.ts +0 -22
  513. package/dist/phases/pr-execution/index.js +0 -401
  514. package/dist/phases/pr-execution/outcome.d.ts +0 -24
  515. package/dist/phases/pr-execution/outcome.js +0 -34
  516. package/dist/phases/pr-execution/pr-executor.d.ts +0 -42
  517. package/dist/phases/pr-execution/pr-executor.js +0 -78
  518. package/dist/phases/pr-execution/prompts.d.ts +0 -27
  519. package/dist/phases/pr-execution/prompts.js +0 -131
  520. package/dist/phases/pr-resolve/checklist-learner.d.ts +0 -28
  521. package/dist/phases/pr-resolve/checklist-learner.js +0 -153
  522. package/dist/phases/pr-resolve/github-reply.d.ts +0 -16
  523. package/dist/phases/pr-resolve/github-reply.js +0 -75
  524. package/dist/phases/pr-resolve/index.d.ts +0 -33
  525. package/dist/phases/pr-resolve/index.js +0 -272
  526. package/dist/phases/pr-resolve/prompts.d.ts +0 -17
  527. package/dist/phases/pr-resolve/prompts.js +0 -107
  528. package/dist/phases/pr-resolve/types.d.ts +0 -18
  529. package/dist/phases/pr-resolve/types.js +0 -14
  530. package/dist/phases/pr-resolve/workspace.d.ts +0 -45
  531. package/dist/phases/pr-resolve/workspace.js +0 -174
  532. package/dist/phases/pr-review/index.d.ts +0 -27
  533. package/dist/phases/pr-review/index.js +0 -209
  534. package/dist/phases/pr-review/prompts.d.ts +0 -5
  535. package/dist/phases/pr-review/prompts.js +0 -87
  536. package/dist/phases/pr-shared/agent-utils.d.ts +0 -47
  537. package/dist/phases/pr-shared/agent-utils.js +0 -112
  538. package/dist/phases/pr-shared/context.d.ts +0 -24
  539. package/dist/phases/pr-shared/context.js +0 -78
  540. package/dist/phases/pr-shared/status.d.ts +0 -18
  541. package/dist/phases/pr-shared/status.js +0 -37
  542. package/dist/phases/pr-splitting/context.d.ts +0 -28
  543. package/dist/phases/pr-splitting/context.js +0 -182
  544. package/dist/phases/pr-splitting/import-dep-validator.d.ts +0 -67
  545. package/dist/phases/pr-splitting/import-dep-validator.js +0 -255
  546. package/dist/phases/pr-splitting/index.d.ts +0 -36
  547. package/dist/phases/pr-splitting/index.js +0 -413
  548. package/dist/phases/pr-splitting/outcome.d.ts +0 -24
  549. package/dist/phases/pr-splitting/outcome.js +0 -114
  550. package/dist/phases/pr-splitting/prompts.d.ts +0 -43
  551. package/dist/phases/pr-splitting/prompts.js +0 -154
  552. package/dist/phases/product-techniques/index.d.ts +0 -52
  553. package/dist/phases/product-techniques/index.js +0 -268
  554. package/dist/phases/product-techniques/mcp-server.d.ts +0 -41
  555. package/dist/phases/product-techniques/mcp-server.js +0 -96
  556. package/dist/phases/product-techniques/prompts.d.ts +0 -19
  557. package/dist/phases/product-techniques/prompts.js +0 -66
  558. package/dist/phases/product-techniques/types.d.ts +0 -13
  559. package/dist/phases/product-techniques/types.js +0 -13
  560. package/dist/phases/product-test-cases/index.d.ts +0 -25
  561. package/dist/phases/product-test-cases/index.js +0 -174
  562. package/dist/phases/product-test-cases/prompts.d.ts +0 -24
  563. package/dist/phases/product-test-cases/prompts.js +0 -80
  564. package/dist/phases/product-test-cases/types.d.ts +0 -17
  565. package/dist/phases/product-test-cases/types.js +0 -27
  566. package/dist/phases/pull-request/creator.d.ts +0 -30
  567. package/dist/phases/pull-request/creator.js +0 -319
  568. package/dist/phases/pull-request/handler.d.ts +0 -15
  569. package/dist/phases/pull-request/handler.js +0 -92
  570. package/dist/phases/quality-benchmark/index.d.ts +0 -65
  571. package/dist/phases/quality-benchmark/index.js +0 -194
  572. package/dist/phases/quality-benchmark/mcp-server.d.ts +0 -46
  573. package/dist/phases/quality-benchmark/mcp-server.js +0 -252
  574. package/dist/phases/quality-benchmark/parsers.d.ts +0 -22
  575. package/dist/phases/quality-benchmark/parsers.js +0 -1101
  576. package/dist/phases/quality-benchmark/prompts.d.ts +0 -31
  577. package/dist/phases/quality-benchmark/prompts.js +0 -154
  578. package/dist/phases/quality-benchmark/rubric.md +0 -1174
  579. package/dist/phases/quality-benchmark/tool-catalog.d.ts +0 -33
  580. package/dist/phases/quality-benchmark/tool-catalog.js +0 -636
  581. package/dist/phases/quality-benchmark/tool-runner.d.ts +0 -69
  582. package/dist/phases/quality-benchmark/tool-runner.js +0 -399
  583. package/dist/phases/quality-benchmark/types.d.ts +0 -312
  584. package/dist/phases/quality-benchmark/types.js +0 -23
  585. package/dist/phases/quality-benchmark/workspace.d.ts +0 -31
  586. package/dist/phases/quality-benchmark/workspace.js +0 -110
  587. package/dist/phases/recipes/index.d.ts +0 -63
  588. package/dist/phases/recipes/index.js +0 -358
  589. package/dist/phases/recipes/mcp-server.d.ts +0 -66
  590. package/dist/phases/recipes/mcp-server.js +0 -229
  591. package/dist/phases/recipes/prompts.d.ts +0 -35
  592. package/dist/phases/recipes/prompts.js +0 -105
  593. package/dist/phases/recipes/types.d.ts +0 -42
  594. package/dist/phases/recipes/types.js +0 -16
  595. package/dist/phases/release-sync/github.d.ts +0 -66
  596. package/dist/phases/release-sync/github.js +0 -140
  597. package/dist/phases/release-sync/index.d.ts +0 -24
  598. package/dist/phases/release-sync/index.js +0 -156
  599. package/dist/phases/release-sync/snapshot.d.ts +0 -27
  600. package/dist/phases/release-sync/snapshot.js +0 -158
  601. package/dist/phases/run-sheet/agent.d.ts +0 -49
  602. package/dist/phases/run-sheet/agent.js +0 -156
  603. package/dist/phases/run-sheet/index.d.ts +0 -57
  604. package/dist/phases/run-sheet/index.js +0 -392
  605. package/dist/phases/screen-flow/index.d.ts +0 -26
  606. package/dist/phases/screen-flow/index.js +0 -349
  607. package/dist/phases/screen-flow/mcp-server.d.ts +0 -201
  608. package/dist/phases/screen-flow/mcp-server.js +0 -272
  609. package/dist/phases/screen-flow/prompts.d.ts +0 -19
  610. package/dist/phases/screen-flow/prompts.js +0 -43
  611. package/dist/phases/screen-flow/theme.d.ts +0 -19
  612. package/dist/phases/screen-flow/theme.js +0 -193
  613. package/dist/phases/screen-flow/types.d.ts +0 -137
  614. package/dist/phases/screen-flow/types.js +0 -81
  615. package/dist/phases/sequence-diagram/index.d.ts +0 -30
  616. package/dist/phases/sequence-diagram/index.js +0 -290
  617. package/dist/phases/sequence-diagram/mcp-server.d.ts +0 -64
  618. package/dist/phases/sequence-diagram/mcp-server.js +0 -134
  619. package/dist/phases/sequence-diagram/prompts.d.ts +0 -14
  620. package/dist/phases/sequence-diagram/prompts.js +0 -36
  621. package/dist/phases/sequence-diagram/types.d.ts +0 -52
  622. package/dist/phases/sequence-diagram/types.js +0 -93
  623. package/dist/phases/smoke-test/agent.d.ts +0 -12
  624. package/dist/phases/smoke-test/agent.js +0 -93
  625. package/dist/phases/smoke-test/index.d.ts +0 -22
  626. package/dist/phases/smoke-test/index.js +0 -241
  627. package/dist/phases/smoke-test/prompts.d.ts +0 -15
  628. package/dist/phases/smoke-test/prompts.js +0 -35
  629. package/dist/phases/state-diagram/index.d.ts +0 -15
  630. package/dist/phases/state-diagram/index.js +0 -53
  631. package/dist/phases/sync-github-issues/index.d.ts +0 -41
  632. package/dist/phases/sync-github-issues/index.js +0 -187
  633. package/dist/phases/sync-github-issues/state.d.ts +0 -26
  634. package/dist/phases/sync-github-issues/state.js +0 -18
  635. package/dist/phases/sync-github-issues/types.d.ts +0 -35
  636. package/dist/phases/sync-github-issues/types.js +0 -6
  637. package/dist/phases/sync-github-pull-requests/index.d.ts +0 -23
  638. package/dist/phases/sync-github-pull-requests/index.js +0 -210
  639. package/dist/phases/sync-github-pull-requests/state.d.ts +0 -24
  640. package/dist/phases/sync-github-pull-requests/state.js +0 -16
  641. package/dist/phases/sync-github-pull-requests/types.d.ts +0 -22
  642. package/dist/phases/sync-github-pull-requests/types.js +0 -1
  643. package/dist/phases/sync-org-repos/index.d.ts +0 -28
  644. package/dist/phases/sync-org-repos/index.js +0 -133
  645. package/dist/phases/sync-sentry-issues/index.d.ts +0 -29
  646. package/dist/phases/sync-sentry-issues/index.js +0 -153
  647. package/dist/phases/sync-sentry-issues/sentry-client.d.ts +0 -66
  648. package/dist/phases/sync-sentry-issues/sentry-client.js +0 -221
  649. package/dist/phases/sync-sentry-issues/state.d.ts +0 -23
  650. package/dist/phases/sync-sentry-issues/state.js +0 -18
  651. package/dist/phases/sync-sentry-issues/types.d.ts +0 -46
  652. package/dist/phases/sync-sentry-issues/types.js +0 -6
  653. package/dist/phases/sync-shared/mcp.d.ts +0 -81
  654. package/dist/phases/sync-shared/mcp.js +0 -111
  655. package/dist/phases/task/agent.d.ts +0 -10
  656. package/dist/phases/task/agent.js +0 -83
  657. package/dist/phases/task/context.d.ts +0 -16
  658. package/dist/phases/task/context.js +0 -50
  659. package/dist/phases/task/index.d.ts +0 -17
  660. package/dist/phases/task/index.js +0 -54
  661. package/dist/phases/task/prompts.d.ts +0 -9
  662. package/dist/phases/task/prompts.js +0 -21
  663. package/dist/phases/technical-design/context.d.ts +0 -12
  664. package/dist/phases/technical-design/context.js +0 -39
  665. package/dist/phases/technical-design/index.d.ts +0 -21
  666. package/dist/phases/technical-design/index.js +0 -456
  667. package/dist/phases/technical-design/outcome.d.ts +0 -25
  668. package/dist/phases/technical-design/outcome.js +0 -41
  669. package/dist/phases/technical-design/prompts.d.ts +0 -8
  670. package/dist/phases/technical-design/prompts.js +0 -210
  671. package/dist/phases/technical-design-verification/agent.d.ts +0 -53
  672. package/dist/phases/technical-design-verification/agent.js +0 -186
  673. package/dist/phases/technical-design-verification/index.d.ts +0 -38
  674. package/dist/phases/technical-design-verification/index.js +0 -152
  675. package/dist/phases/technical-design-verification/prompts.d.ts +0 -12
  676. package/dist/phases/technical-design-verification/prompts.js +0 -143
  677. package/dist/phases/test-cases-analysis/agent.d.ts +0 -9
  678. package/dist/phases/test-cases-analysis/agent.js +0 -105
  679. package/dist/phases/test-cases-analysis/context.d.ts +0 -15
  680. package/dist/phases/test-cases-analysis/context.js +0 -86
  681. package/dist/phases/test-cases-analysis/formatters.d.ts +0 -6
  682. package/dist/phases/test-cases-analysis/formatters.js +0 -35
  683. package/dist/phases/test-cases-analysis/index.d.ts +0 -9
  684. package/dist/phases/test-cases-analysis/index.js +0 -175
  685. package/dist/phases/test-cases-analysis/outcome.d.ts +0 -27
  686. package/dist/phases/test-cases-analysis/outcome.js +0 -146
  687. package/dist/phases/test-cases-analysis/prompts.d.ts +0 -7
  688. package/dist/phases/test-cases-analysis/prompts.js +0 -171
  689. package/dist/phases/user-psychology/agent.d.ts +0 -16
  690. package/dist/phases/user-psychology/agent.js +0 -105
  691. package/dist/phases/user-psychology/context.d.ts +0 -10
  692. package/dist/phases/user-psychology/context.js +0 -65
  693. package/dist/phases/user-psychology/index.d.ts +0 -18
  694. package/dist/phases/user-psychology/index.js +0 -96
  695. package/dist/phases/user-psychology/prompts.d.ts +0 -2
  696. package/dist/phases/user-psychology/prompts.js +0 -41
  697. package/dist/phases/user-stories-analysis/agent.d.ts +0 -9
  698. package/dist/phases/user-stories-analysis/agent.js +0 -105
  699. package/dist/phases/user-stories-analysis/context.d.ts +0 -15
  700. package/dist/phases/user-stories-analysis/context.js +0 -86
  701. package/dist/phases/user-stories-analysis/formatters.d.ts +0 -6
  702. package/dist/phases/user-stories-analysis/formatters.js +0 -32
  703. package/dist/phases/user-stories-analysis/index.d.ts +0 -9
  704. package/dist/phases/user-stories-analysis/index.js +0 -175
  705. package/dist/phases/user-stories-analysis/outcome.d.ts +0 -27
  706. package/dist/phases/user-stories-analysis/outcome.js +0 -146
  707. package/dist/phases/user-stories-analysis/prompts.d.ts +0 -7
  708. package/dist/phases/user-stories-analysis/prompts.js +0 -194
  709. package/dist/services/audit-logs.d.ts +0 -73
  710. package/dist/services/audit-logs.js +0 -174
  711. package/dist/services/branches.d.ts +0 -103
  712. package/dist/services/branches.js +0 -391
  713. package/dist/services/checklist.d.ts +0 -100
  714. package/dist/services/checklist.js +0 -259
  715. package/dist/services/coaching/coaching-agent.d.ts +0 -39
  716. package/dist/services/coaching/coaching-agent.js +0 -308
  717. package/dist/services/coaching/coaching-loop.d.ts +0 -62
  718. package/dist/services/coaching/coaching-loop.js +0 -265
  719. package/dist/services/coaching/index.d.ts +0 -8
  720. package/dist/services/coaching/index.js +0 -8
  721. package/dist/services/coaching/phase-coaching.d.ts +0 -47
  722. package/dist/services/coaching/phase-coaching.js +0 -60
  723. package/dist/services/coaching/self-rating.d.ts +0 -26
  724. package/dist/services/coaching/self-rating.js +0 -153
  725. package/dist/services/feedbacks.d.ts +0 -57
  726. package/dist/services/feedbacks.js +0 -264
  727. package/dist/services/phase-hooks/bindings-fetcher.d.ts +0 -21
  728. package/dist/services/phase-hooks/bindings-fetcher.js +0 -53
  729. package/dist/services/phase-hooks/hook-executor.d.ts +0 -36
  730. package/dist/services/phase-hooks/hook-executor.js +0 -167
  731. package/dist/services/phase-hooks/hook-logging.d.ts +0 -14
  732. package/dist/services/phase-hooks/hook-logging.js +0 -41
  733. package/dist/services/phase-hooks/hook-runner.d.ts +0 -19
  734. package/dist/services/phase-hooks/hook-runner.js +0 -83
  735. package/dist/services/phase-hooks/index.d.ts +0 -10
  736. package/dist/services/phase-hooks/index.js +0 -9
  737. package/dist/services/phase-hooks/plugin-loader.d.ts +0 -31
  738. package/dist/services/phase-hooks/plugin-loader.js +0 -207
  739. package/dist/services/phase-hooks/types.d.ts +0 -69
  740. package/dist/services/phase-hooks/types.js +0 -8
  741. package/dist/services/phase-ratings.d.ts +0 -70
  742. package/dist/services/phase-ratings.js +0 -143
  743. package/dist/services/product-logs.d.ts +0 -31
  744. package/dist/services/product-logs.js +0 -94
  745. package/dist/services/pull-requests.d.ts +0 -57
  746. package/dist/services/pull-requests.js +0 -186
  747. package/dist/services/quality-reports.d.ts +0 -45
  748. package/dist/services/quality-reports.js +0 -93
  749. package/dist/services/repo-config.d.ts +0 -17
  750. package/dist/services/repo-config.js +0 -50
  751. package/dist/services/skill-resolver.d.ts +0 -46
  752. package/dist/services/skill-resolver.js +0 -123
  753. package/dist/services/video/device-frames.d.ts +0 -34
  754. package/dist/services/video/device-frames.js +0 -513
  755. package/dist/services/video/index.d.ts +0 -66
  756. package/dist/services/video/index.js +0 -238
  757. package/dist/services/video/retry.d.ts +0 -20
  758. package/dist/services/video/retry.js +0 -76
  759. package/dist/services/video/screenshot-generator.d.ts +0 -69
  760. package/dist/services/video/screenshot-generator.js +0 -259
  761. package/dist/services/video/tts-generator.d.ts +0 -40
  762. package/dist/services/video/tts-generator.js +0 -121
  763. package/dist/services/video/video-assembler.d.ts +0 -45
  764. package/dist/services/video/video-assembler.js +0 -351
  765. package/dist/services/video/video-uploader.d.ts +0 -28
  766. package/dist/services/video/video-uploader.js +0 -108
  767. package/dist/skills/phase/adr-generation/SKILL.md +0 -51
  768. package/dist/skills/phase/analyze-logs/SKILL.md +0 -24
  769. package/dist/skills/phase/app-store-generation/SKILL.md +0 -60
  770. package/dist/skills/phase/architecture-diagram/SKILL.md +0 -41
  771. package/dist/skills/phase/autonomous/SKILL.md +0 -52
  772. package/dist/skills/phase/branch-planning/SKILL.md +0 -55
  773. package/dist/skills/phase/bug-fixing/SKILL.md +0 -47
  774. package/dist/skills/phase/class-diagram/SKILL.md +0 -44
  775. package/dist/skills/phase/code-implementation/SKILL.md +0 -68
  776. package/dist/skills/phase/code-implementation-verification/SKILL.md +0 -76
  777. package/dist/skills/phase/code-refine/SKILL.md +0 -62
  778. package/dist/skills/phase/code-testing/SKILL.md +0 -78
  779. package/dist/skills/phase/data-flow/SKILL.md +0 -82
  780. package/dist/skills/phase/er-diagram/SKILL.md +0 -71
  781. package/dist/skills/phase/flowchart/SKILL.md +0 -38
  782. package/dist/skills/phase/functional-testing/SKILL.md +0 -62
  783. package/dist/skills/phase/growth-analysis/SKILL.md +0 -97
  784. package/dist/skills/phase/incremental-sync/SKILL.md +0 -59
  785. package/dist/skills/phase/intelligence-analysis/SKILL.md +0 -52
  786. package/dist/skills/phase/issue-analysis/SKILL.md +0 -73
  787. package/dist/skills/phase/issue-analysis-verification/SKILL.md +0 -61
  788. package/dist/skills/phase/pr-execution/SKILL.md +0 -69
  789. package/dist/skills/phase/pr-splitting/SKILL.md +0 -78
  790. package/dist/skills/phase/screen-flow/SKILL.md +0 -78
  791. package/dist/skills/phase/sequence-diagram/SKILL.md +0 -67
  792. package/dist/skills/phase/smoke-test/SKILL.md +0 -80
  793. package/dist/skills/phase/state-diagram/SKILL.md +0 -38
  794. package/dist/skills/phase/task/SKILL.md +0 -19
  795. package/dist/skills/phase/technical-design/SKILL.md +0 -75
  796. package/dist/skills/phase/technical-design-verification/SKILL.md +0 -43
  797. package/dist/skills/phase/test-cases-analysis/SKILL.md +0 -88
  798. package/dist/skills/phase/user-psychology/SKILL.md +0 -135
  799. package/dist/skills/phase/user-stories-analysis/SKILL.md +0 -118
  800. package/dist/supabase/client.d.ts +0 -34
  801. package/dist/supabase/client.js +0 -123
  802. package/dist/system/session-manager.d.ts +0 -67
  803. package/dist/system/session-manager.js +0 -300
  804. package/dist/system/sleep-notification.d.ts +0 -15
  805. package/dist/system/sleep-notification.js +0 -108
  806. package/dist/system/sleep-prevention.d.ts +0 -20
  807. package/dist/system/sleep-prevention.js +0 -112
  808. package/dist/tools/bootstrap.d.ts +0 -45
  809. package/dist/tools/bootstrap.js +0 -50
  810. package/dist/types/external-sources.d.ts +0 -22
  811. package/dist/types/external-sources.js +0 -23
  812. package/dist/types/index.d.ts +0 -206
  813. package/dist/types/index.js +0 -1
  814. package/dist/types/issues.d.ts +0 -37
  815. package/dist/types/issues.js +0 -1
  816. package/dist/types/llm-responses.d.ts +0 -114
  817. package/dist/types/llm-responses.js +0 -9
  818. package/dist/types/pipeline.d.ts +0 -28
  819. package/dist/types/pipeline.js +0 -4
  820. package/dist/updater/auto-updater.d.ts +0 -39
  821. package/dist/updater/auto-updater.js +0 -134
  822. package/dist/utils/conflict-resolver.d.ts +0 -49
  823. package/dist/utils/conflict-resolver.js +0 -201
  824. package/dist/utils/formatters.d.ts +0 -42
  825. package/dist/utils/formatters.js +0 -166
  826. package/dist/utils/git-branch-manager-async.d.ts +0 -127
  827. package/dist/utils/git-branch-manager-async.js +0 -425
  828. package/dist/utils/git-branch-manager.d.ts +0 -160
  829. package/dist/utils/git-branch-manager.js +0 -613
  830. package/dist/utils/git-push.d.ts +0 -43
  831. package/dist/utils/git-push.js +0 -136
  832. package/dist/utils/github-repo-info.d.ts +0 -26
  833. package/dist/utils/github-repo-info.js +0 -45
  834. package/dist/utils/image-downloader.d.ts +0 -32
  835. package/dist/utils/image-downloader.js +0 -152
  836. package/dist/utils/issue-phase-cli.d.ts +0 -26
  837. package/dist/utils/issue-phase-cli.js +0 -44
  838. package/dist/utils/json-extract.d.ts +0 -6
  839. package/dist/utils/json-extract.js +0 -44
  840. package/dist/utils/json-extractor.d.ts +0 -27
  841. package/dist/utils/json-extractor.js +0 -102
  842. package/dist/utils/logger.d.ts +0 -35
  843. package/dist/utils/logger.js +0 -167
  844. package/dist/utils/pipeline-logger.d.ts +0 -8
  845. package/dist/utils/pipeline-logger.js +0 -38
  846. package/dist/utils/validation.d.ts +0 -68
  847. package/dist/utils/validation.js +0 -229
  848. package/dist/utils/workflow-utils.d.ts +0 -22
  849. package/dist/utils/workflow-utils.js +0 -48
  850. package/dist/workspace/session-workspace.d.ts +0 -43
  851. package/dist/workspace/session-workspace.js +0 -90
  852. package/dist/workspace/workspace-manager.d.ts +0 -105
  853. package/dist/workspace/workspace-manager.js +0 -280
@@ -1,926 +0,0 @@
1
- /* eslint-disable max-lines -- orchestration module with inline prompt generation and agent execution */
2
- import { query } from '@anthropic-ai/claude-agent-sdk';
3
- import { getGitHubConfig } from '../../api/github.js';
4
- import { getIssue } from '../../api/issues/index.js';
5
- import { DEFAULT_MODEL } from '../../constants.js';
6
- import { logIssuePhaseEvent } from '../../services/audit-logs.js';
7
- import { createBranches, getBaseBranchInfo, getBranches, getCurrentBranch, updateBranch, } from '../../services/branches.js';
8
- import { formatChecklistsForContext, } from '../../services/checklist.js';
9
- import { extractChecklistItems, runPhaseCoaching, } from '../../services/coaching/index.js';
10
- import { formatFeedbacksForContext, getFeedbacksForPhase, } from '../../services/feedbacks.js';
11
- import { getDefaultBranchForIssue } from '../../services/repo-config.js';
12
- import { prepareCustomBranchGitEnvironmentAsync, syncFeatBranchWithMain, } from '../../utils/git-branch-manager.js';
13
- import { gitPush } from '../../utils/git-push.js';
14
- import { extractJsonFromResponse } from '../../utils/json-extractor.js';
15
- import { logDebug, logError, logInfo } from '../../utils/logger.js';
16
- import { performVerificationCycle } from '../code-implementation-verification/index.js';
17
- import { createBranchPullRequest, } from './branch-pr-creator.js';
18
- import { fetchCodeImplementationContext, formatContextForPrompt, } from './context.js';
19
- import { buildImplementationResult, buildNoResultsError, buildVerificationFailureResult, } from './outcome.js';
20
- /**
21
- * Truncate text to a maximum length, adding ellipsis if truncated
22
- */
23
- function truncateText(text, maxLength) {
24
- if (text.length <= maxLength) {
25
- return text;
26
- }
27
- return `${text.slice(0, maxLength - 3)}...`;
28
- }
29
- function userMessage(content) {
30
- return {
31
- type: 'user',
32
- message: { role: 'user', content },
33
- };
34
- }
35
- async function* prompt(implementationPrompt) {
36
- yield userMessage(implementationPrompt);
37
- await new Promise((res) => {
38
- setTimeout(res, 10000);
39
- });
40
- }
41
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
- function processAssistantContent(content, verbose) {
43
- let text = '';
44
- for (const item of content) {
45
- if (item.type === 'text') {
46
- text += `${item.text}\n`;
47
- logDebug(`🤖 ${item.text}`, verbose);
48
- }
49
- else if (item.type === 'tool_use') {
50
- logDebug(`🔧 ${item.name}: ${item.input.description || 'Running...'}`, verbose);
51
- }
52
- }
53
- return text;
54
- }
55
- /**
56
- * Log debug details about the response text for checklist analysis
57
- */
58
- function logResponseDebugInfo(responseText, hasMessageResult, hasAssistantResponse, verbose) {
59
- logDebug('Code Implementation Response Analysis', verbose);
60
- logDebug(`message.result exists: ${hasMessageResult}`, verbose);
61
- logDebug(`lastAssistantResponse exists: ${hasAssistantResponse}`, verbose);
62
- logDebug(`responseText length: ${responseText.length}`, verbose);
63
- logDebug(`responseText first 200 chars: ${JSON.stringify(responseText.substring(0, 200))}`, verbose);
64
- logDebug(`responseText last 200 chars: ${JSON.stringify(responseText.substring(responseText.length - 200))}`, verbose);
65
- logDebug(`Contains \`\`\`json: ${responseText.includes('```json')}`, verbose);
66
- logDebug(`Contains implementation_result: ${responseText.includes('"implementation_result"')}`, verbose);
67
- logDebug('Checklist Content in Response', verbose);
68
- logDebug(`Contains "checklist": ${responseText.toLowerCase().includes('checklist')}`, verbose);
69
- logDebug(`Contains "checklist_item_results": ${responseText.includes('checklist_item_results')}`, verbose);
70
- logDebug(`Contains checklist_item_id: ${responseText.includes('checklist_item_id')}`, verbose);
71
- logDebug(`Contains is_passed: ${responseText.includes('is_passed')}`, verbose);
72
- const checklistMatches = responseText.match(/checklist/gi) || [];
73
- const checklistItemMatches = responseText.match(/checklist_item/gi) || [];
74
- logDebug(`Total "checklist" mentions: ${checklistMatches.length}`, verbose);
75
- logDebug(`Total "checklist_item" mentions: ${checklistItemMatches.length}`, verbose);
76
- }
77
- /**
78
- * Log debug details about checklist items in the implementation result
79
- */
80
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
- function logChecklistDebugInfo(implResult, verbose) {
82
- logDebug(`Keys in implementation_result: ${Object.keys(implResult)}`, verbose);
83
- logDebug(`Has checklist_item_results field: ${'checklist_item_results' in implResult}`, verbose);
84
- logDebug(`checklist_item_results value type: ${typeof implResult.checklist_item_results}`, verbose);
85
- logDebug(`checklist_item_results is array: ${Array.isArray(implResult.checklist_item_results)}`, verbose);
86
- if (implResult.checklist_item_results) {
87
- logDebug(`checklist_item_results length: ${implResult.checklist_item_results.length}`, verbose);
88
- if (implResult.checklist_item_results.length > 0) {
89
- logDebug(`First checklist item keys: ${Object.keys(implResult.checklist_item_results[0])}`, verbose);
90
- logDebug(`First checklist item sample: ${JSON.stringify(implResult.checklist_item_results[0], null, 2)}`, verbose);
91
- }
92
- }
93
- else {
94
- logDebug('checklist_item_results is null/undefined/empty', verbose);
95
- }
96
- }
97
- /**
98
- * Parse and extract the implementation result from a successful query response
99
- */
100
- function parseSuccessResponse(responseText, hasMessageResult, hasAssistantResponse, issueId, verbose
101
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
- ) {
103
- logResponseDebugInfo(responseText, hasMessageResult, hasAssistantResponse, verbose);
104
- try {
105
- const jsonBlockMatch = responseText.match(/```json\s*\n([\s\S]*?)\n\s*```/);
106
- logDebug(`jsonBlockMatch found: ${!!jsonBlockMatch}`, verbose);
107
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
108
- let jsonResult = null;
109
- if (jsonBlockMatch) {
110
- logDebug(`Matched JSON length: ${jsonBlockMatch[1].length}`, verbose);
111
- logDebug(`Matched JSON first 100 chars: ${JSON.stringify(jsonBlockMatch[1].substring(0, 100))}`, verbose);
112
- jsonResult = JSON.parse(jsonBlockMatch[1]);
113
- }
114
- else {
115
- logDebug('Trying direct JSON parse', verbose);
116
- jsonResult = JSON.parse(responseText);
117
- }
118
- logDebug(`jsonResult exists: ${!!jsonResult}`, verbose);
119
- logDebug(`jsonResult has implementation_result: ${!!(jsonResult && jsonResult.implementation_result)}`, verbose);
120
- if (jsonResult && jsonResult.implementation_result) {
121
- logChecklistDebugInfo(jsonResult.implementation_result, verbose);
122
- logDebug('Successfully extracted implementation_result', verbose);
123
- return jsonResult.implementation_result;
124
- }
125
- logDebug('Invalid JSON structure - missing implementation_result', verbose);
126
- throw new Error('Invalid JSON structure');
127
- }
128
- catch (error) {
129
- const nonSyntaxErrorType = error instanceof Error ? error.constructor.name : 'Unknown';
130
- const errorType = error instanceof SyntaxError ? 'SyntaxError' : nonSyntaxErrorType;
131
- const errorMsg = error instanceof Error ? error.message : String(error);
132
- logDebug(`JSON Parsing Failed - ${errorType}: ${errorMsg}`, verbose);
133
- logError(`Failed to parse structured implementation result: ${error}`);
134
- logDebug('Using Fallback Parsing', verbose);
135
- const parsedResult = parseImplementationResponse(responseText, issueId, verbose);
136
- logDebug(`Fallback parsed result: branchName=${parsedResult.branchName}, filesModified=${parsedResult.filesModified?.length || 0}, hasSummary=${!!parsedResult.summary}, commitHash=${parsedResult.commitHash}`, verbose);
137
- return {
138
- branch_name: parsedResult.branchName,
139
- files_modified: parsedResult.filesModified,
140
- commit_hash: parsedResult.commitHash,
141
- summary: parsedResult.summary || 'Implementation completed',
142
- tests_passed: true,
143
- pre_commit_passed: true,
144
- checklist_item_results: parsedResult.checklist_item_results || [],
145
- };
146
- }
147
- }
148
- /**
149
- * Process the query result message and extract implementation result
150
- */
151
- function processQueryResult(
152
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
153
- message, lastAssistantResponse, issueId, verbose
154
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
155
- ) {
156
- if (message.subtype === 'success') {
157
- logInfo('\n💻 Code implementation completed, parsing results...');
158
- const responseText = message.result || lastAssistantResponse;
159
- return parseSuccessResponse(responseText, !!message.result, !!lastAssistantResponse, issueId, verbose);
160
- }
161
- logError(`\n⚠️ Code implementation incomplete: ${message.subtype}`);
162
- if (message.subtype === 'error_max_turns') {
163
- logError('💡 Try breaking down the issue into smaller tasks');
164
- }
165
- if (lastAssistantResponse) {
166
- logDebug(`Fallback for incomplete result, subtype: ${message.subtype}`, verbose);
167
- const fallbackJson = extractJsonFromResponse(lastAssistantResponse, '"implementation_result"');
168
- if (fallbackJson?.implementation_result) {
169
- return fallbackJson.implementation_result;
170
- }
171
- }
172
- return null;
173
- }
174
- export const implementIssueCode = async (options, config, checklistContext) => {
175
- const { issueId, verbose } = options;
176
- // Resolve the repo's default branch (handles forks where default is master, etc.).
177
- // Caller may override via options.baseBranch (e.g. branch-chained PR base).
178
- const baseBranch = options.baseBranch ?? (await getDefaultBranchForIssue(issueId, verbose));
179
- if (verbose) {
180
- logInfo(`Starting code implementation for issue ID: ${issueId}`);
181
- logInfo(`Base branch: ${baseBranch}`);
182
- }
183
- // Check for issue branches - use current branch if available
184
- // If no branches exist (no branch planning), create a default branch record
185
- let currentBranch = null;
186
- try {
187
- currentBranch = await getCurrentBranch({ issueId, verbose });
188
- if (currentBranch && verbose) {
189
- logInfo(`📋 Using issue branch: ${currentBranch.name}`);
190
- logInfo(` Branch name: ${currentBranch.branch_name || 'To be created'}`);
191
- logInfo(` Status: ${currentBranch.status}`);
192
- logInfo(` Description: ${currentBranch.description || 'No description'}`);
193
- }
194
- }
195
- catch (_error) {
196
- // Issue branches not available or error - continue with default behavior
197
- if (verbose) {
198
- logInfo('No issue branches found, using default branch naming');
199
- }
200
- }
201
- // If no branch exists (no branch planning phase), create a default branch record
202
- if (!currentBranch) {
203
- try {
204
- if (verbose) {
205
- logInfo(`📋 Creating default branch record for issue: ${issueId}`);
206
- }
207
- // Fetch issue info to get the issue name for branch naming
208
- let issueName = 'Issue Implementation';
209
- try {
210
- const issueInfo = await getIssue(issueId, verbose);
211
- if (issueInfo?.name) {
212
- // Truncate issue name for branch display (max 100 chars)
213
- issueName = truncateText(issueInfo.name, 100);
214
- }
215
- }
216
- catch (error) {
217
- if (verbose) {
218
- logInfo(`Could not fetch issue name, using default: ${error}`);
219
- }
220
- }
221
- const defaultBranchName = `dev/${issueId}`;
222
- const createdBranches = await createBranches({ issueId, verbose }, [
223
- {
224
- name: issueName,
225
- description: `Implementation branch for: ${issueName}`,
226
- branch_name: defaultBranchName,
227
- status: 'pending',
228
- },
229
- ]);
230
- if (createdBranches.length > 0) {
231
- currentBranch = createdBranches[0];
232
- if (verbose) {
233
- logInfo(`✅ Created default branch: ${currentBranch.branch_name}`);
234
- }
235
- }
236
- }
237
- catch (error) {
238
- if (verbose) {
239
- logError(`Failed to create default branch record: ${error}`);
240
- logInfo('Continuing without branch record...');
241
- }
242
- }
243
- }
244
- // Update issue branch status to in_progress if we have one
245
- if (currentBranch && currentBranch.status === 'pending') {
246
- try {
247
- await updateBranch(currentBranch.id, { status: 'in_progress' }, verbose);
248
- if (verbose) {
249
- logInfo(`✅ Updated issue branch status to in_progress`);
250
- }
251
- }
252
- catch (error) {
253
- if (verbose) {
254
- logError(`Failed to update issue branch status: ${error}`);
255
- }
256
- }
257
- }
258
- // Determine the actual base branch for branch chaining
259
- // If the current issue branch depends on another branch, use that as the base
260
- let actualBaseBranch = baseBranch;
261
- let rebaseTargetBranch;
262
- let originalBaseBranch;
263
- let baseBranchCompleted = false;
264
- if (currentBranch && currentBranch.base_branch_id) {
265
- try {
266
- const allBranches = await getBranches({
267
- issueId,
268
- verbose: false,
269
- });
270
- const baseBranchInfo = getBaseBranchInfo(currentBranch, allBranches, baseBranch);
271
- actualBaseBranch = baseBranchInfo.baseBranch;
272
- ({ rebaseTargetBranch, originalBaseBranch } = baseBranchInfo);
273
- baseBranchCompleted = baseBranchInfo.baseBranchCompleted || false;
274
- if (verbose) {
275
- logInfo(`🔗 Branch chaining detected:`);
276
- logInfo(` Current branch: ${currentBranch.name}`);
277
- logInfo(` Base branch (for new branches): ${actualBaseBranch}`);
278
- if (rebaseTargetBranch) {
279
- logInfo(` Rebase target: ${rebaseTargetBranch}`);
280
- }
281
- if (originalBaseBranch) {
282
- logInfo(` Original base branch: ${originalBaseBranch} (for --onto rebase)`);
283
- }
284
- if (baseBranchInfo.baseBranchMerged) {
285
- logInfo(` Parent branch merged: yes`);
286
- }
287
- else {
288
- logInfo(` Parent branch merged: no (using parent branch)`);
289
- }
290
- }
291
- }
292
- catch (error) {
293
- if (verbose) {
294
- logError(`Failed to compute base branch info: ${error}`);
295
- logInfo(` Falling back to default base branch: ${baseBranch}`);
296
- }
297
- }
298
- }
299
- // Prepare git environment: switch to issue branch and rebase with base
300
- // Branch names are stored as dev/... (development branch)
301
- // PR will be created from dev/... to feat/... after implementation
302
- const devBranchName = currentBranch?.branch_name || `dev/${issueId}`;
303
- if (verbose && currentBranch) {
304
- logInfo(`🔄 Using dev branch for development: ${devBranchName}`);
305
- }
306
- // Sync feat branch to main before rebase to ensure it's up to date
307
- // This prevents the PR (dev → feat) from showing extra commits
308
- let featSyncedToMain = false;
309
- let githubTokenForPush;
310
- if (devBranchName.startsWith('dev/')) {
311
- try {
312
- const githubConfig = await getGitHubConfig(issueId, verbose);
313
- if (githubConfig.configured &&
314
- githubConfig.token &&
315
- githubConfig.owner &&
316
- githubConfig.repo) {
317
- githubTokenForPush = githubConfig.token;
318
- const { devBranchToFeatBranch } = await import('./branch-pr-creator.js');
319
- const featBranchName = devBranchToFeatBranch(devBranchName);
320
- if (verbose) {
321
- logInfo(`📥 Syncing ${featBranchName} with main before rebase...`);
322
- }
323
- featSyncedToMain = await syncFeatBranchWithMain({
324
- featBranch: featBranchName,
325
- githubToken: githubConfig.token,
326
- owner: githubConfig.owner,
327
- repo: githubConfig.repo,
328
- baseBranch,
329
- verbose,
330
- });
331
- }
332
- }
333
- catch (error) {
334
- // Don't fail the phase if sync fails
335
- if (verbose) {
336
- logInfo(`⚠️ Could not sync feat branch: ${error instanceof Error ? error.message : String(error)}`);
337
- }
338
- }
339
- }
340
- // Use async version to support --onto rebase for branch chaining
341
- // This correctly handles cases where base branch was squash-merged
342
- const { cleanup: cleanupGit } = await prepareCustomBranchGitEnvironmentAsync({
343
- issueBranch: devBranchName,
344
- baseBranch: actualBaseBranch,
345
- rebaseTargetBranch, // For --onto rebase target (e.g., main) when base branch is merged
346
- originalBaseBranch, // For --onto rebase starting point when base branch was squash-merged
347
- verbose,
348
- resolveConflicts: true,
349
- conflictResolverConfig: {
350
- model: DEFAULT_MODEL,
351
- },
352
- forcePushAfterRebase: featSyncedToMain, // Trigger GitHub to recalculate PR diff
353
- baseBranchCompleted, // Tell conflict resolver to use --theirs for all conflicts
354
- githubToken: githubTokenForPush,
355
- });
356
- try {
357
- // Fetch all required context information via MCP endpoints
358
- if (verbose) {
359
- logInfo('Fetching code implementation context via MCP endpoints...');
360
- }
361
- const context = await fetchCodeImplementationContext(issueId, verbose);
362
- // Fetch feedbacks for code implementation phase
363
- // For multi-branch issues, filter by the current branch to get branch-specific feedbacks
364
- let feedbacksInfo;
365
- try {
366
- const feedbacksContext = await getFeedbacksForPhase({ issueId, verbose }, 'code_implementation', currentBranch?.id // Pass branch_id if we have a current branch
367
- );
368
- if (feedbacksContext.feedbacks.length > 0) {
369
- feedbacksInfo = await formatFeedbacksForContext(feedbacksContext);
370
- if (verbose) {
371
- logInfo(`Added ${feedbacksContext.feedbacks.length} human feedbacks to implementation context${currentBranch ? ` (including branch-specific for "${currentBranch.name}")` : ''}`);
372
- }
373
- }
374
- }
375
- catch (error) {
376
- // Don't fail if feedbacks fetch fails - just log and continue
377
- if (verbose) {
378
- logInfo(`Note: Could not fetch feedbacks (${error instanceof Error ? error.message : String(error)})`);
379
- }
380
- }
381
- // Use the dev branch name for development (already computed above)
382
- const branchName = devBranchName;
383
- const systemPrompt = createSystemPrompt(config, actualBaseBranch, // Use computed base branch for branch chaining
384
- issueId, branchName);
385
- const initialImplementationPrompt = createImplementationPromptWithContext({
386
- issueId,
387
- context,
388
- baseBranch: actualBaseBranch, // Use computed base branch for branch chaining
389
- checklistContext,
390
- verbose,
391
- feedbacksInfo,
392
- issueBranch: currentBranch,
393
- });
394
- const maxIterations = options.maxVerificationIterations || 10;
395
- let currentIteration = 0;
396
- let currentPrompt = initialImplementationPrompt;
397
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
398
- let structuredImplementationResult = null;
399
- let verificationResult = null;
400
- if (verbose) {
401
- logInfo('Starting Claude Code query with pre-fetched information...');
402
- }
403
- let executionSessionId = '';
404
- // Iterative improvement loop: implement → verify → improve → re-implement
405
- while (currentIteration < maxIterations) {
406
- currentIteration++;
407
- if (verbose && currentIteration > 1) {
408
- logInfo(`\n🔄 Iteration ${currentIteration}/${maxIterations}: Improving implementation based on code review feedback...`);
409
- }
410
- // Log iteration start (for iterations after the first)
411
- if (currentIteration > 1) {
412
- await logIssuePhaseEvent({
413
- issueId,
414
- eventType: 'phase_started',
415
- phase: 'code_implementation',
416
- result: 'info',
417
- metadata: {
418
- iteration: currentIteration,
419
- max_iterations: maxIterations,
420
- re_implementation: true,
421
- timestamp: new Date().toISOString(),
422
- },
423
- }, verbose);
424
- }
425
- let lastAssistantResponse = '';
426
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
427
- let newImplementationResult = null;
428
- // Log checklist context before query
429
- logDebug('Checklist Context Before Claude Query', verbose);
430
- logDebug(`Has checklistContext: ${!!checklistContext}`, verbose);
431
- if (checklistContext) {
432
- logDebug(`Number of checklists: ${checklistContext.checklists.length}`, verbose);
433
- const totalItems = checklistContext.checklists.reduce((sum, checklist) => sum + (checklist.items?.length || 0), 0);
434
- logDebug(`Total checklist items: ${totalItems}`, verbose);
435
- }
436
- logDebug(`Implementation prompt includes checklist: ${currentPrompt.includes('checklist')}`, verbose);
437
- logDebug(`System prompt includes checklist: ${systemPrompt.includes('checklist')}`, verbose);
438
- // Execute implementation query
439
- for await (const message of query({
440
- prompt: prompt(currentPrompt),
441
- options: {
442
- systemPrompt: {
443
- type: 'preset',
444
- preset: 'claude_code',
445
- append: systemPrompt,
446
- },
447
- model: DEFAULT_MODEL,
448
- maxTurns: 3000,
449
- permissionMode: 'bypassPermissions',
450
- },
451
- })) {
452
- if (verbose) {
453
- logInfo(`Received message type: ${message.type}`);
454
- }
455
- // Stream the implementation process
456
- if (message.type === 'assistant') {
457
- lastAssistantResponse += processAssistantContent(message.message?.content ?? [], verbose);
458
- continue;
459
- }
460
- if (message.type !== 'result') {
461
- continue;
462
- }
463
- // Capture session ID for coaching loop
464
- executionSessionId = message.session_id || executionSessionId;
465
- newImplementationResult = processQueryResult(message, lastAssistantResponse, issueId, verbose);
466
- }
467
- // Check if implementation produced results
468
- if (!newImplementationResult) {
469
- if (verbose) {
470
- logError('⚠️ Implementation failed in this iteration');
471
- }
472
- break;
473
- }
474
- // Update with new implementation result
475
- structuredImplementationResult = newImplementationResult;
476
- // Log implementation completion for this iteration
477
- await logIssuePhaseEvent({
478
- issueId,
479
- eventType: 'phase_completed',
480
- phase: 'code_implementation',
481
- result: 'success',
482
- metadata: {
483
- iteration: currentIteration,
484
- max_iterations: maxIterations,
485
- implementation_step: 'completed',
486
- branch_name: structuredImplementationResult.branch_name,
487
- files_modified: structuredImplementationResult.files_modified || [],
488
- commit_hash: structuredImplementationResult.commit_hash || '',
489
- timestamp: new Date().toISOString(),
490
- },
491
- }, verbose);
492
- // Coaching loop: self-rate → coach → improve → repeat (between execute and verify)
493
- // Runs before push so any improvements are committed and pushed together
494
- const coaching = await runPhaseCoaching({
495
- issueId,
496
- phase: 'code_implementation',
497
- phaseResult: { execution_session_id: executionSessionId },
498
- checklistItems: extractChecklistItems(checklistContext),
499
- verbose,
500
- });
501
- executionSessionId = coaching.executionSessionId || executionSessionId;
502
- // Push code to remote after commit + coaching improvements
503
- if (verbose) {
504
- logInfo(`📤 Pushing code to remote repository...`);
505
- }
506
- const pushResult = gitPush({
507
- branchName: structuredImplementationResult.branch_name || branchName,
508
- token: githubTokenForPush,
509
- verbose,
510
- });
511
- if (!pushResult.success && verbose) {
512
- logError(`⚠️ Failed to push to remote: ${pushResult.error}`);
513
- logInfo(' Code is committed locally and will be reviewed. Manual push may be needed.');
514
- }
515
- else if (verbose) {
516
- logInfo('✅ Code pushed to remote successfully');
517
- }
518
- // Perform verification cycle
519
- const verificationCycle = await performVerificationCycle({
520
- branchName: structuredImplementationResult.branch_name || branchName,
521
- baseBranch: actualBaseBranch, // Use computed base branch for branch chaining
522
- checklistContext: checklistContext || null,
523
- issueId,
524
- issueName: context.issue.name,
525
- issueDescription: context.issue.description,
526
- config,
527
- currentIteration,
528
- maxIterations,
529
- verbose,
530
- });
531
- ({ verificationResult } = verificationCycle);
532
- // If verification passed, exit
533
- if (verificationCycle.passed) {
534
- if (verbose) {
535
- logInfo('✅ Verification passed! Code implementation complete.');
536
- }
537
- break;
538
- }
539
- // Verification failed
540
- if (currentIteration < maxIterations && verificationCycle.nextPrompt) {
541
- // We have more iterations - retry with improvement prompt
542
- if (verbose) {
543
- logInfo(`🔄 Will improve implementation in next iteration (${maxIterations - currentIteration} attempts remaining)`);
544
- }
545
- currentPrompt = verificationCycle.nextPrompt;
546
- }
547
- else {
548
- // Max iterations reached or no next prompt - exit loop
549
- if (verbose) {
550
- logInfo('⚠️ Max iterations reached. Last implementation committed.');
551
- }
552
- break;
553
- }
554
- }
555
- // Handle results
556
- if (!structuredImplementationResult) {
557
- return buildNoResultsError(issueId, branchName);
558
- }
559
- const { branch_name, files_modified, commit_hash, summary, checklist_results, checklist_item_results, } = structuredImplementationResult;
560
- // Check if verification failed after all iterations
561
- if (verificationResult &&
562
- verificationResult.rejected_count > 0 &&
563
- checklistContext &&
564
- checklistContext.checklists.length > 0) {
565
- logError(`❌ Final result: Code verification FAILED after ${currentIteration} iterations`);
566
- logError(` Code committed for manual review`);
567
- return buildVerificationFailureResult({
568
- issueId,
569
- branchName: branch_name || branchName,
570
- implementationSummary: summary || 'Implementation completed with verification failures',
571
- filesModified: files_modified || [],
572
- commitHash: commit_hash || '',
573
- verificationResult,
574
- iterations: currentIteration,
575
- });
576
- }
577
- // Create pull request from dev/ branch to feat/ branch if this is a multi-branch issue
578
- let pullRequestUrl = null;
579
- let pullRequestNumber = null;
580
- if (currentBranch && devBranchName.startsWith('dev/')) {
581
- // Get GitHub configuration from developer settings via MCP
582
- const githubConfig = await getGitHubConfig(issueId, verbose);
583
- if (githubConfig.configured &&
584
- githubConfig.token &&
585
- githubConfig.owner &&
586
- githubConfig.repo) {
587
- const prConfig = {
588
- githubToken: githubConfig.token,
589
- owner: githubConfig.owner,
590
- repo: githubConfig.repo,
591
- verbose,
592
- };
593
- // Derive feat/ branch name from dev/ branch name for PR target
594
- const { devBranchToFeatBranch } = await import('./branch-pr-creator.js');
595
- const featBranchName = devBranchToFeatBranch(devBranchName);
596
- if (verbose) {
597
- logInfo(`📝 Creating pull request from ${devBranchName} to ${featBranchName}...`);
598
- }
599
- const prResult = await createBranchPullRequest(prConfig, devBranchName, currentBranch.name, currentBranch.description || 'Issue branch implementation', baseBranch);
600
- if (prResult.success) {
601
- pullRequestUrl = prResult.pullRequestUrl || null;
602
- pullRequestNumber = prResult.pullRequestNumber || null;
603
- if (verbose) {
604
- logInfo(`✅ Pull request created: ${pullRequestUrl}`);
605
- }
606
- }
607
- else if (verbose) {
608
- logError(`⚠️ Failed to create pull request: ${prResult.error}`);
609
- logInfo(' Implementation is complete, but PR was not created.');
610
- }
611
- }
612
- else if (verbose) {
613
- logInfo('⚠️ GitHub configuration not available, skipping PR creation');
614
- logInfo(` ${githubConfig.message || 'Please configure GitHub App in product developer settings.'}`);
615
- }
616
- }
617
- // Update issue branch status to ready_for_review if we have one
618
- if (currentBranch) {
619
- try {
620
- // Note: branch_name is stored as dev/... and used directly by all phases.
621
- // The feat/ branch name is derived at runtime using devBranchToFeatBranch() for PR targets.
622
- await updateBranch(currentBranch.id, {
623
- status: 'ready_for_review',
624
- pull_request_url: pullRequestUrl,
625
- pull_request_number: pullRequestNumber,
626
- }, verbose);
627
- if (verbose) {
628
- logInfo(`✅ Updated issue branch status to ready_for_review`);
629
- }
630
- }
631
- catch (error) {
632
- if (verbose) {
633
- logError(`Failed to update issue branch status: ${error}`);
634
- }
635
- }
636
- }
637
- // Return success result with session ID for coaching
638
- const implResult = buildImplementationResult({
639
- issueId,
640
- branchName: branch_name || branchName,
641
- implementationSummary: summary || 'Implementation completed successfully',
642
- filesModified: files_modified || [],
643
- commitHash: commit_hash || '',
644
- iterations: currentIteration,
645
- checklistResults: checklist_results,
646
- checklistItemResults: checklist_item_results,
647
- });
648
- return {
649
- ...implResult,
650
- data: {
651
- ...implResult.data,
652
- execution_session_id: executionSessionId || undefined,
653
- },
654
- };
655
- }
656
- catch (error) {
657
- logError(`Code implementation failed: ${error instanceof Error ? error.message : String(error)}`);
658
- return {
659
- issueId,
660
- branchName: `dev/${issueId}`,
661
- implementationSummary: null,
662
- status: 'error',
663
- message: `Implementation failed: ${error instanceof Error ? error.message : String(error)}`,
664
- };
665
- }
666
- finally {
667
- // Always return to main branch after phase completion
668
- cleanupGit();
669
- }
670
- };
671
- const createSystemPrompt = (_config, baseBranch, issueId, branchName) => {
672
- const mcpInstructions = `
673
-
674
- **MANDATORY Checklist Compliance**:
675
- If you are provided with checklists in the context, you MUST satisfy ALL of them during your implementation work. Checklists are mandatory requirements that define quality standards and cannot be ignored or skipped.
676
-
677
- - Review each checklist carefully and ensure your implementation addresses every requirement
678
- - You MUST include ALL provided checklist item IDs in the "checklist_item_results" field of your JSON response
679
- - CRITICAL: Use the exact UUID from the "ID:" field in each checklist ITEM, NOT the item title or description
680
- - Set "is_passed": true for each checklist item you have completed successfully
681
- - Provide appropriate "value" based on the item type (boolean: true/false, text: descriptive text, number: numeric value)
682
- - If you cannot satisfy a checklist item requirement, set "is_passed": false and explain why in the "notes" field
683
- - The system will validate that all checklists have been addressed - missing checklists will cause the pipeline to fail
684
-
685
- CRITICAL: Checklists are not optional suggestions - they are mandatory quality gates that must be satisfied.`;
686
- return `You are an expert full-stack developer implementing issues based on specifications. Your task is to implement complete, production-ready code based on issue requirements, user stories, test cases, and technical design.
687
-
688
- **Your Role**: Implement complete, working issues based on provided specifications and requirements.
689
-
690
- **Available Tools**:
691
- - Bash: Git operations, running commands, tests, and builds
692
- - Glob: Find files and understand project structure
693
- - Read: Examine existing code, configuration, and documentation files
694
- - Edit: Modify existing files
695
- - Write: Create new files
696
- - TodoWrite: Track implementation tasks (use proactively)${mcpInstructions}
697
-
698
- **CRITICAL WORKFLOW - YOU MUST FOLLOW THESE STEPS IN ORDER**:
699
-
700
- 1. **GIT PULL REBASE**: First, ensure main branch is up to date with remote:
701
- - git checkout ${baseBranch}
702
- - git pull origin ${baseBranch} --rebase
703
- 2. **CREATE BRANCH**: Create issue branch \`${branchName}\` from ${baseBranch}
704
- 3. **ANALYZE CODEBASE**: Use Glob and Read to understand the existing code structure
705
- 4. **IMPLEMENT CODE**: Write the actual implementation using Edit/Write tools
706
- 5. **FIX ISSUES**: Address any lint or build failures
707
- 6. **COMMIT**: Commit your changes with a descriptive message
708
- 7. **HANDLE PRE-COMMIT**: This project has strict pre-commit hooks - handle them properly:
709
- - If lint-staged fails: Fix formatting and linting issues, then retry commit
710
- - If AI code review fails: Either fix code quality issues or use SKIP_REVIEW=1
711
- - If other issues persist: Only use --no-verify as last resort after confirming code quality
712
-
713
- **Important Rules**:
714
- 1. **Git Workflow**:
715
- - ALWAYS pull latest changes from main before creating branch: git pull origin ${baseBranch} --rebase
716
- - ALWAYS create branch \`${branchName}\` before making changes: git checkout -b ${branchName}
717
- - Use descriptive commit messages that explain what and why
718
- - Handle pre-commit checks properly: fix issues first, use workarounds only when necessary
719
-
720
- 2. **Code Quality**:
721
- - Follow existing code patterns and conventions in the repository
722
- - Ensure proper TypeScript types and interfaces
723
- - Add appropriate error handling and validation
724
- - Write clean, maintainable code with proper comments where necessary
725
-
726
- 3. **Pre-commit Handling**:
727
- - This project has strict pre-commit hooks including lint-staged, linting, and AI code review
728
- - When pre-commit hooks fail, READ the error messages carefully
729
- - Fix ALL issues reported (lint errors, type errors, formatting, code quality)
730
- - Re-run the commit after fixing issues
731
- - If you encounter persistent issues with AI code review or non-critical pre-commit failures:
732
- * First attempt to fix the actual issues
733
- * Only use --no-verify as a last resort if you are 100% confident your code is correct
734
- * When using --no-verify, add a comment explaining why it was necessary
735
- - IMPORTANT: AI code review can be skipped with SKIP_REVIEW=1 environment variable if needed
736
-
737
- 5. **File Modification**:
738
- - Prefer modifying existing files over creating new ones
739
- - Follow the existing file structure and naming conventions
740
- - Use the appropriate tools (Edit for existing files, Write for new files)
741
-
742
- **CRITICAL - Result Format**:
743
- You MUST end your response with a JSON object containing the implementation results in this EXACT format:
744
-
745
- \`\`\`json
746
- {
747
- "implementation_result": {
748
- "issue_id": "ISSUE_ID_PLACEHOLDER",
749
- "branch_name": "dev/ISSUE_ID",
750
- "files_modified": ["file1.ts", "file2.tsx"],
751
- "commit_hash": "abc123...",
752
- "summary": "Brief description of what was implemented",
753
- "tests_passed": true,
754
- "pre_commit_passed": true,
755
- "checklist_item_results": [
756
- {
757
- "checklist_item_id": "EXACT_CHECKLIST_ITEM_UUID_FROM_ID_FIELD",
758
- "is_passed": true,
759
- "value": "Result value based on item type (boolean, text, number, etc.)",
760
- "notes": "Optional notes about this specific checklist item"
761
- }
762
- ]
763
- }
764
- }
765
- \`\`\`
766
-
767
- MANDATORY: If checklists are provided in the context, you MUST include checklist_item_results for ALL checklist items. Every checklist item ID must be addressed - either passed or with explanation in notes why it cannot be satisfied. Missing any checklist item will cause the pipeline to fail.
768
-
769
- IMPORTANT: In the checklist context, look for lines that say "ID: [UUID]" in the items list - use these exact UUIDs as checklist_item_id values. Do NOT use the item title or description as the checklist_item_id.
770
-
771
- Remember: Quality over speed. It's better to implement correctly than to rush and create bugs.`;
772
- };
773
- const createImplementationPromptWithContext = (opts) => {
774
- const { issueId, context, baseBranch, checklistContext, verbose, feedbacksInfo, issueBranch, } = opts;
775
- const contextInfo = formatContextForPrompt(context);
776
- let finalContextInfo = contextInfo;
777
- // Add issue branch context if available
778
- if (issueBranch) {
779
- const branchContext = `
780
- ## Current Issue Branch
781
-
782
- This is a **multi-branch issue** - the issue has been split into multiple branches for incremental development.
783
-
784
- **Current Branch Information:**
785
- - **Name**: ${issueBranch.name}
786
- - **Branch**: ${issueBranch.branch_name || 'To be created'}
787
- - **Description**: ${issueBranch.description || 'No description'}
788
-
789
- **Important**: Focus ONLY on implementing the scope defined for this specific branch. Do not implement functionality that belongs to other branches.
790
- `;
791
- finalContextInfo = `${branchContext}\n${finalContextInfo}`;
792
- }
793
- // Add feedbacks context to the implementation prompt
794
- if (feedbacksInfo) {
795
- finalContextInfo = `${finalContextInfo}\n\n${feedbacksInfo}`;
796
- }
797
- // Add checklist context to the implementation prompt
798
- let checklistInstructions = '';
799
- if (checklistContext && checklistContext.checklists.length > 0) {
800
- const checklistInfo = formatChecklistsForContext(checklistContext);
801
- finalContextInfo = `${finalContextInfo}\n\n${checklistInfo}`;
802
- // Log checklist context details
803
- logDebug('Checklist Context for Code Implementation', verbose);
804
- logDebug(`Number of checklists: ${checklistContext.checklists.length}`, verbose);
805
- logDebug(`Checklist info length: ${checklistInfo.length}`, verbose);
806
- logDebug(`Checklist info preview: ${checklistInfo.substring(0, 300)}`, verbose);
807
- checklistContext.checklists.forEach((checklist, index) => {
808
- logDebug(`Checklist ${index + 1}: id=${checklist.id}, name=${checklist.name}, phases=${checklist.phases?.join(',')}, role=${checklist.role}, itemCount=${checklist.items?.length || 0}`, verbose);
809
- if (checklist.items) {
810
- checklist.items.forEach((item, itemIndex) => {
811
- logDebug(` Item ${itemIndex + 1}: id=${item.id}, title=${item.title?.substring(0, 50) || 'No title'}, description=${item.description?.substring(0, 50) || 'No description'}`, verbose);
812
- });
813
- }
814
- });
815
- // Add specific instructions for creating checklist results
816
- checklistInstructions = `
817
-
818
- ## MANDATORY Checklist Compliance
819
-
820
- **CRITICAL**: You MUST address ALL checklists provided in the context above. Checklists are mandatory quality requirements that cannot be ignored.
821
-
822
- - Review each checklist carefully during your implementation
823
- - Ensure your code and processes satisfy every checklist requirement
824
- - Include ALL checklist item IDs in your final JSON response under "checklist_item_results" (use the exact UUID from "ID:" field in items list)
825
- - Set "is_passed": true for completed checklist items, or explain in "notes" why a requirement cannot be met
826
- - Missing any checklist will cause the entire pipeline to fail
827
-
828
- Remember: Checklists are not suggestions - they are mandatory quality gates.`;
829
- if (verbose) {
830
- logInfo(`Added ${checklistContext.checklists.length} checklists to implementation context`);
831
- }
832
- }
833
- // Determine branch name
834
- const branchName = issueBranch?.branch_name || `dev/${issueId}`;
835
- const branchDescription = issueBranch
836
- ? `\n\n**Note**: This is a multi-branch issue. Focus only on the scope defined for this branch.`
837
- : '';
838
- return `Implement the ${issueBranch ? `"${issueBranch.name}" branch of` : 'complete'} issue for issue ID: ${issueId}${branchDescription}
839
-
840
- ${finalContextInfo}
841
-
842
- ## Implementation Instructions
843
-
844
- Follow this systematic approach:
845
-
846
- 1. **GIT PULL REBASE**: First ensure ${baseBranch} is up to date:
847
- \`git checkout ${baseBranch}\`
848
- \`git pull origin ${baseBranch} --rebase\`
849
-
850
- 2. **CREATE BRANCH**: Create git branch from ${baseBranch}:
851
- \`git checkout -b ${branchName}\`
852
-
853
- 3. **ANALYZE CODEBASE**: Study the existing codebase structure to understand:
854
- - Technology stack and architecture
855
- - Existing patterns and conventions
856
- - Where to place new components/files
857
- - How to integrate with existing systems
858
-
859
- 4. **IMPLEMENT ISSUE**: Based on the context above, implement the issue by:
860
- - Following the technical design (if available)
861
- - Satisfying all user stories${issueBranch ? ' relevant to this branch' : ''}
862
- - Creating components, services, APIs, database changes as needed
863
- - Following existing code patterns and conventions
864
- - Adding proper error handling and validation
865
-
866
- 5. **COMMIT CHANGES**: Commit your work with a descriptive message
867
- - This project has strict pre-commit hooks (lint-staged, linting, AI code review)
868
- - If hooks fail, try these approaches in order:
869
- 1. Fix the reported issues (preferred)
870
- 2. For AI code review issues: SKIP_REVIEW=1 git commit -m "message"
871
- 3. Last resort only: git commit --no-verify -m "message" (explain why in commit message)
872
-
873
- ## Important Notes
874
- ${issueBranch ? `- Focus ONLY on implementing the scope for this branch: "${issueBranch.name}"` : '- Focus on implementing ALL user stories completely'}
875
- - Follow the technical design if provided, or create your own approach
876
- - Maintain existing code quality and patterns
877
- - Never skip pre-commit checks - always fix the issues
878
- - Focus on implementation only - automated tests will be written in a separate phase
879
-
880
- ${checklistInstructions}
881
-
882
- Begin by creating the issue branch and analyzing the codebase structure.`;
883
- };
884
- const parseImplementationResponse = (response, issueId, verbose) => {
885
- logDebug('Parsing implementation response...', verbose);
886
- try {
887
- // Try to find JSON in the response
888
- const jsonMatch = response.match(/```json\s*([\s\S]*?)\s*```/) ||
889
- response.match(/\{[\s\S]*"implementation_result"[\s\S]*\}/);
890
- if (jsonMatch) {
891
- const jsonStr = jsonMatch[1] || jsonMatch[0];
892
- const parsed = JSON.parse(jsonStr);
893
- if (parsed.implementation_result) {
894
- const result = parsed.implementation_result;
895
- return {
896
- branchName: result.branch_name || `dev/${issueId}`,
897
- filesModified: result.files_modified || [],
898
- commitHash: result.commit_hash || '',
899
- summary: result.summary || '',
900
- checklist_item_results: result.checklist_item_results || [],
901
- };
902
- }
903
- }
904
- // Fallback: try to extract information from the text
905
- const branchMatch = response.match(/branch[:\s]+(\S+)/i);
906
- const filesMatch = response.match(/files?[:\s]+([^\n]+)/i);
907
- const commitMatch = response.match(/commit[:\s]+([a-f0-9]{7,})/i);
908
- return {
909
- branchName: branchMatch?.[1] || `dev/${issueId}`,
910
- filesModified: filesMatch
911
- ? filesMatch[1].split(/[,\s]+/).filter((f) => f)
912
- : [],
913
- commitHash: commitMatch?.[1] || '',
914
- summary: 'Implementation completed',
915
- };
916
- }
917
- catch (error) {
918
- logError(`Response parsing failed: ${error}`);
919
- return {
920
- branchName: `dev/${issueId}`,
921
- filesModified: [],
922
- commitHash: '',
923
- summary: 'Implementation completed',
924
- };
925
- }
926
- };