edsger 0.50.0 → 0.52.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 (470) hide show
  1. package/.claude/settings.local.json +23 -3
  2. package/.env.local +12 -0
  3. package/README.md +25 -25
  4. package/dist/api/chat.d.ts +7 -7
  5. package/dist/api/chat.js +13 -13
  6. package/dist/api/cross-product.d.ts +10 -10
  7. package/dist/api/cross-product.js +30 -30
  8. package/dist/api/github.d.ts +5 -5
  9. package/dist/api/github.js +10 -10
  10. package/dist/api/intelligence.d.ts +3 -3
  11. package/dist/api/issues/approval-checker.d.ts +20 -0
  12. package/dist/api/{features → issues}/approval-checker.js +16 -16
  13. package/dist/api/issues/get-issue.d.ts +5 -0
  14. package/dist/api/issues/get-issue.js +21 -0
  15. package/dist/api/issues/index.d.ts +8 -0
  16. package/dist/api/issues/index.js +10 -0
  17. package/dist/api/issues/issue-utils.d.ts +23 -0
  18. package/dist/api/issues/issue-utils.js +80 -0
  19. package/dist/api/issues/status-updater.d.ts +41 -0
  20. package/dist/api/{features → issues}/status-updater.js +23 -23
  21. package/dist/api/{features → issues}/test-cases.d.ts +7 -7
  22. package/dist/api/{features → issues}/test-cases.js +12 -12
  23. package/dist/api/issues/update-issue.d.ts +20 -0
  24. package/dist/api/{features/update-feature.js → issues/update-issue.js} +22 -22
  25. package/dist/api/{features → issues}/user-stories.d.ts +5 -5
  26. package/dist/api/{features → issues}/user-stories.js +8 -8
  27. package/dist/api/products.d.ts +1 -1
  28. package/dist/api/tasks.d.ts +1 -1
  29. package/dist/api/test-reports.d.ts +2 -2
  30. package/dist/api/test-reports.js +4 -4
  31. package/dist/auth/login.js +1 -1
  32. package/dist/commands/agent-workflow/chat-worker.d.ts +7 -7
  33. package/dist/commands/agent-workflow/chat-worker.js +50 -50
  34. package/dist/commands/agent-workflow/index.d.ts +2 -2
  35. package/dist/commands/agent-workflow/index.js +3 -3
  36. package/dist/commands/agent-workflow/{feature-worker.d.ts → issue-worker.d.ts} +4 -4
  37. package/dist/commands/agent-workflow/{feature-worker.js → issue-worker.js} +12 -12
  38. package/dist/commands/agent-workflow/processor.d.ts +9 -9
  39. package/dist/commands/agent-workflow/processor.js +90 -90
  40. package/dist/commands/build/index.js +2 -2
  41. package/dist/commands/find-bugs/index.d.ts +11 -0
  42. package/dist/commands/find-bugs/index.js +39 -0
  43. package/dist/commands/find-features/index.d.ts +14 -0
  44. package/dist/commands/find-features/index.js +42 -0
  45. package/dist/commands/find-smells/index.d.ts +21 -0
  46. package/dist/commands/find-smells/index.js +65 -0
  47. package/dist/commands/init/prompts.js +1 -1
  48. package/dist/commands/init/templates.d.ts +1 -1
  49. package/dist/commands/init/templates.js +4 -4
  50. package/dist/commands/workflow/config/phase-configs.js +17 -17
  51. package/dist/commands/workflow/core/index.d.ts +1 -1
  52. package/dist/commands/workflow/core/index.js +2 -2
  53. package/dist/commands/workflow/core/issue-filter.d.ts +16 -0
  54. package/dist/commands/workflow/core/issue-filter.js +47 -0
  55. package/dist/commands/workflow/core/state-manager.d.ts +10 -10
  56. package/dist/commands/workflow/core/state-manager.js +10 -10
  57. package/dist/commands/workflow/core/workflow-logger.d.ts +9 -9
  58. package/dist/commands/workflow/core/workflow-logger.js +21 -21
  59. package/dist/commands/workflow/executors/phase-executor.d.ts +2 -2
  60. package/dist/commands/workflow/executors/phase-executor.js +32 -32
  61. package/dist/commands/workflow/issue-coordinator.d.ts +18 -0
  62. package/dist/commands/workflow/{feature-coordinator.js → issue-coordinator.js} +29 -29
  63. package/dist/commands/workflow/phase-orchestrator.d.ts +2 -2
  64. package/dist/commands/workflow/phase-orchestrator.js +82 -82
  65. package/dist/commands/workflow/processor.d.ts +7 -7
  66. package/dist/commands/workflow/processor.js +44 -44
  67. package/dist/config/{feature-status.d.ts → issue-status.d.ts} +14 -14
  68. package/dist/config/{feature-status.js → issue-status.js} +14 -14
  69. package/dist/errors/index.d.ts +6 -6
  70. package/dist/errors/index.js +11 -11
  71. package/dist/index.js +90 -1
  72. package/dist/phases/app-store-generation/context.js +6 -6
  73. package/dist/phases/app-store-generation/index.js +2 -2
  74. package/dist/phases/app-store-generation/prompts.js +2 -2
  75. package/dist/phases/autonomous/index.d.ts +3 -3
  76. package/dist/phases/autonomous/index.js +37 -37
  77. package/dist/phases/autonomous/prompts.d.ts +2 -2
  78. package/dist/phases/autonomous/prompts.js +4 -4
  79. package/dist/phases/branch-planning/context.d.ts +3 -3
  80. package/dist/phases/branch-planning/context.js +12 -12
  81. package/dist/phases/branch-planning/index.d.ts +3 -3
  82. package/dist/phases/branch-planning/index.js +32 -32
  83. package/dist/phases/branch-planning/outcome.d.ts +5 -5
  84. package/dist/phases/branch-planning/outcome.js +12 -12
  85. package/dist/phases/branch-planning/prompts.d.ts +3 -3
  86. package/dist/phases/branch-planning/prompts.js +13 -13
  87. package/dist/phases/bug-fixing/analyzer.d.ts +2 -2
  88. package/dist/phases/bug-fixing/analyzer.js +13 -13
  89. package/dist/phases/bug-fixing/context-fetcher.d.ts +3 -3
  90. package/dist/phases/bug-fixing/context-fetcher.js +18 -18
  91. package/dist/phases/bug-fixing/mcp-server.js +17 -18
  92. package/dist/phases/chat-processor/context.d.ts +5 -5
  93. package/dist/phases/chat-processor/context.js +17 -17
  94. package/dist/phases/chat-processor/index.d.ts +4 -4
  95. package/dist/phases/chat-processor/index.js +17 -17
  96. package/dist/phases/chat-processor/product-context.d.ts +3 -3
  97. package/dist/phases/chat-processor/product-context.js +16 -16
  98. package/dist/phases/chat-processor/product-prompts.d.ts +1 -1
  99. package/dist/phases/chat-processor/product-prompts.js +10 -10
  100. package/dist/phases/chat-processor/product-tools.d.ts +2 -2
  101. package/dist/phases/chat-processor/product-tools.js +33 -33
  102. package/dist/phases/chat-processor/prompts.d.ts +3 -3
  103. package/dist/phases/chat-processor/prompts.js +22 -22
  104. package/dist/phases/chat-processor/tools.js +46 -46
  105. package/dist/phases/code-implementation/branch-pr-creator.d.ts +3 -3
  106. package/dist/phases/code-implementation/branch-pr-creator.js +5 -5
  107. package/dist/phases/code-implementation/context.d.ts +3 -3
  108. package/dist/phases/code-implementation/context.js +18 -18
  109. package/dist/phases/code-implementation/index.d.ts +4 -4
  110. package/dist/phases/code-implementation/index.js +88 -88
  111. package/dist/phases/code-implementation/outcome.d.ts +3 -3
  112. package/dist/phases/code-implementation/outcome.js +6 -6
  113. package/dist/phases/code-implementation/prompts.d.ts +1 -1
  114. package/dist/phases/code-implementation/prompts.js +6 -6
  115. package/dist/phases/code-implementation-verification/agent.d.ts +3 -3
  116. package/dist/phases/code-implementation-verification/agent.js +5 -5
  117. package/dist/phases/code-implementation-verification/index.d.ts +3 -3
  118. package/dist/phases/code-implementation-verification/index.js +11 -11
  119. package/dist/phases/code-implementation-verification/prompts.d.ts +3 -3
  120. package/dist/phases/code-implementation-verification/prompts.js +7 -7
  121. package/dist/phases/code-refine/context.d.ts +8 -8
  122. package/dist/phases/code-refine/context.js +29 -29
  123. package/dist/phases/code-refine/index.d.ts +2 -2
  124. package/dist/phases/code-refine/index.js +20 -20
  125. package/dist/phases/code-refine/prompts.d.ts +1 -1
  126. package/dist/phases/code-refine/prompts.js +3 -3
  127. package/dist/phases/code-refine/refine-iteration.d.ts +1 -1
  128. package/dist/phases/code-refine/refine-iteration.js +4 -4
  129. package/dist/phases/code-refine/retry-handler.js +2 -2
  130. package/dist/phases/code-refine-verification/index.js +10 -10
  131. package/dist/phases/code-refine-verification/types.d.ts +2 -2
  132. package/dist/phases/code-review/context.d.ts +8 -8
  133. package/dist/phases/code-review/context.js +25 -25
  134. package/dist/phases/code-review/diff-utils.d.ts +1 -1
  135. package/dist/phases/code-review/diff-utils.js +1 -1
  136. package/dist/phases/code-review/index.d.ts +2 -2
  137. package/dist/phases/code-review/index.js +26 -26
  138. package/dist/phases/code-testing/analyzer.d.ts +2 -2
  139. package/dist/phases/code-testing/analyzer.js +18 -18
  140. package/dist/phases/code-testing/context-fetcher.d.ts +3 -3
  141. package/dist/phases/code-testing/context-fetcher.js +16 -16
  142. package/dist/phases/code-testing/prompts.d.ts +1 -1
  143. package/dist/phases/code-testing/prompts.js +5 -5
  144. package/dist/phases/find-bugs/index.d.ts +30 -0
  145. package/dist/phases/find-bugs/index.js +216 -0
  146. package/dist/phases/find-bugs/prompts.d.ts +22 -0
  147. package/dist/phases/find-bugs/prompts.js +101 -0
  148. package/dist/phases/find-bugs/state.d.ts +19 -0
  149. package/dist/phases/find-bugs/state.js +13 -0
  150. package/dist/phases/find-bugs/types.d.ts +21 -0
  151. package/dist/phases/find-bugs/types.js +16 -0
  152. package/dist/phases/find-features/index.d.ts +40 -0
  153. package/dist/phases/find-features/index.js +279 -0
  154. package/dist/phases/find-features/prompts.d.ts +43 -0
  155. package/dist/phases/find-features/prompts.js +138 -0
  156. package/dist/phases/find-features/state.d.ts +25 -0
  157. package/dist/phases/find-features/state.js +22 -0
  158. package/dist/phases/find-features/types.d.ts +27 -0
  159. package/dist/phases/find-features/types.js +16 -0
  160. package/dist/phases/find-shared/git.d.ts +24 -0
  161. package/dist/phases/find-shared/git.js +60 -0
  162. package/dist/phases/find-shared/mcp.d.ts +33 -0
  163. package/dist/phases/find-shared/mcp.js +69 -0
  164. package/dist/phases/find-shared/scan-state.d.ts +33 -0
  165. package/dist/phases/find-shared/scan-state.js +112 -0
  166. package/dist/phases/find-smells/index.d.ts +47 -0
  167. package/dist/phases/find-smells/index.js +278 -0
  168. package/dist/phases/find-smells/prompts.d.ts +30 -0
  169. package/dist/phases/find-smells/prompts.js +129 -0
  170. package/dist/phases/find-smells/state.d.ts +21 -0
  171. package/dist/phases/find-smells/state.js +17 -0
  172. package/dist/phases/find-smells/types.d.ts +51 -0
  173. package/dist/phases/find-smells/types.js +64 -0
  174. package/dist/phases/functional-testing/analyzer.d.ts +2 -2
  175. package/dist/phases/functional-testing/analyzer.js +40 -40
  176. package/dist/phases/functional-testing/context-fetcher.d.ts +3 -3
  177. package/dist/phases/functional-testing/context-fetcher.js +16 -16
  178. package/dist/phases/functional-testing/http-fallback.d.ts +2 -2
  179. package/dist/phases/functional-testing/http-fallback.js +9 -9
  180. package/dist/phases/functional-testing/mcp-server.js +23 -24
  181. package/dist/phases/functional-testing/prompts.d.ts +1 -1
  182. package/dist/phases/functional-testing/prompts.js +4 -4
  183. package/dist/phases/functional-testing/test-report-creator.d.ts +2 -2
  184. package/dist/phases/functional-testing/test-report-creator.js +10 -10
  185. package/dist/phases/functional-testing/test-retry-handler.js +3 -3
  186. package/dist/phases/growth-analysis/context.js +6 -6
  187. package/dist/phases/growth-analysis/index.js +2 -2
  188. package/dist/phases/growth-analysis/prompts.js +2 -2
  189. package/dist/phases/intelligence-analysis/context.js +7 -7
  190. package/dist/phases/intelligence-analysis/index.js +3 -3
  191. package/dist/phases/{feature-analysis → issue-analysis}/agent.js +1 -1
  192. package/dist/phases/issue-analysis/context.d.ts +24 -0
  193. package/dist/phases/{feature-analysis → issue-analysis}/context.js +30 -30
  194. package/dist/phases/issue-analysis/index.d.ts +8 -0
  195. package/dist/phases/{feature-analysis → issue-analysis}/index.js +29 -29
  196. package/dist/phases/issue-analysis/outcome.d.ts +40 -0
  197. package/dist/phases/{feature-analysis → issue-analysis}/outcome.js +17 -17
  198. package/dist/phases/{feature-analysis → issue-analysis}/prompts.d.ts +3 -3
  199. package/dist/phases/{feature-analysis → issue-analysis}/prompts.js +12 -12
  200. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/agent.d.ts +2 -2
  201. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/agent.js +1 -1
  202. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/index.d.ts +5 -5
  203. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/index.js +9 -9
  204. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/prompts.d.ts +2 -2
  205. package/dist/phases/{feature-analysis-verification → issue-analysis-verification}/prompts.js +7 -7
  206. package/dist/phases/output-contracts.js +37 -37
  207. package/dist/phases/pr-execution/context.d.ts +3 -3
  208. package/dist/phases/pr-execution/context.js +14 -14
  209. package/dist/phases/pr-execution/index.d.ts +2 -2
  210. package/dist/phases/pr-execution/index.js +22 -22
  211. package/dist/phases/pr-execution/outcome.d.ts +4 -4
  212. package/dist/phases/pr-execution/outcome.js +6 -6
  213. package/dist/phases/pr-execution/prompts.d.ts +4 -4
  214. package/dist/phases/pr-execution/prompts.js +6 -6
  215. package/dist/phases/pr-resolve/checklist-learner.js +2 -2
  216. package/dist/phases/pr-review/index.d.ts +1 -1
  217. package/dist/phases/pr-review/index.js +1 -1
  218. package/dist/phases/pr-review/prompts.d.ts +1 -1
  219. package/dist/phases/pr-review/prompts.js +1 -1
  220. package/dist/phases/pr-shared/context.d.ts +3 -3
  221. package/dist/phases/pr-shared/context.js +3 -3
  222. package/dist/phases/pr-splitting/context.d.ts +3 -3
  223. package/dist/phases/pr-splitting/context.js +16 -16
  224. package/dist/phases/pr-splitting/index.d.ts +4 -4
  225. package/dist/phases/pr-splitting/index.js +29 -29
  226. package/dist/phases/pr-splitting/outcome.d.ts +3 -3
  227. package/dist/phases/pr-splitting/outcome.js +7 -7
  228. package/dist/phases/pr-splitting/prompts.d.ts +3 -3
  229. package/dist/phases/pr-splitting/prompts.js +11 -11
  230. package/dist/phases/pull-request/creator.d.ts +4 -4
  231. package/dist/phases/pull-request/creator.js +25 -25
  232. package/dist/phases/pull-request/handler.d.ts +3 -3
  233. package/dist/phases/pull-request/handler.js +16 -16
  234. package/dist/phases/release-sync/index.js +2 -2
  235. package/dist/phases/run-sheet/agent.js +1 -2
  236. package/dist/phases/run-sheet/index.js +3 -3
  237. package/dist/phases/smoke-test/index.js +2 -2
  238. package/dist/phases/technical-design/context.d.ts +3 -3
  239. package/dist/phases/technical-design/context.js +11 -11
  240. package/dist/phases/technical-design/index.d.ts +2 -2
  241. package/dist/phases/technical-design/index.js +27 -27
  242. package/dist/phases/technical-design/outcome.d.ts +4 -4
  243. package/dist/phases/technical-design/outcome.js +6 -6
  244. package/dist/phases/technical-design/prompts.d.ts +2 -2
  245. package/dist/phases/technical-design/prompts.js +10 -10
  246. package/dist/phases/technical-design-verification/agent.d.ts +3 -3
  247. package/dist/phases/technical-design-verification/agent.js +4 -4
  248. package/dist/phases/technical-design-verification/index.d.ts +4 -4
  249. package/dist/phases/technical-design-verification/index.js +12 -12
  250. package/dist/phases/technical-design-verification/prompts.d.ts +3 -3
  251. package/dist/phases/technical-design-verification/prompts.js +6 -6
  252. package/dist/phases/test-cases-analysis/context.d.ts +5 -5
  253. package/dist/phases/test-cases-analysis/context.js +18 -18
  254. package/dist/phases/test-cases-analysis/formatters.js +7 -7
  255. package/dist/phases/test-cases-analysis/index.d.ts +1 -1
  256. package/dist/phases/test-cases-analysis/index.js +21 -21
  257. package/dist/phases/test-cases-analysis/outcome.d.ts +7 -7
  258. package/dist/phases/test-cases-analysis/outcome.js +13 -13
  259. package/dist/phases/test-cases-analysis/prompts.d.ts +3 -3
  260. package/dist/phases/test-cases-analysis/prompts.js +6 -6
  261. package/dist/phases/user-stories-analysis/context.d.ts +5 -5
  262. package/dist/phases/user-stories-analysis/context.js +18 -18
  263. package/dist/phases/user-stories-analysis/formatters.js +7 -7
  264. package/dist/phases/user-stories-analysis/index.d.ts +1 -1
  265. package/dist/phases/user-stories-analysis/index.js +21 -21
  266. package/dist/phases/user-stories-analysis/outcome.d.ts +7 -7
  267. package/dist/phases/user-stories-analysis/outcome.js +13 -13
  268. package/dist/phases/user-stories-analysis/prompts.d.ts +3 -3
  269. package/dist/phases/user-stories-analysis/prompts.js +10 -10
  270. package/dist/services/audit-logs.d.ts +10 -10
  271. package/dist/services/audit-logs.js +12 -12
  272. package/dist/services/branches.d.ts +6 -6
  273. package/dist/services/branches.js +16 -16
  274. package/dist/services/checklist.d.ts +3 -3
  275. package/dist/services/checklist.js +11 -11
  276. package/dist/services/coaching/coaching-agent.js +2 -2
  277. package/dist/services/coaching/coaching-loop.d.ts +1 -1
  278. package/dist/services/coaching/coaching-loop.js +2 -2
  279. package/dist/services/coaching/phase-coaching.d.ts +2 -2
  280. package/dist/services/coaching/phase-coaching.js +3 -3
  281. package/dist/services/coaching/self-rating.js +1 -1
  282. package/dist/services/feedbacks.d.ts +4 -4
  283. package/dist/services/feedbacks.js +8 -8
  284. package/dist/services/phase-hooks/bindings-fetcher.d.ts +4 -4
  285. package/dist/services/phase-hooks/bindings-fetcher.js +8 -8
  286. package/dist/services/phase-hooks/hook-executor.js +1 -1
  287. package/dist/services/phase-hooks/hook-logging.d.ts +2 -2
  288. package/dist/services/phase-hooks/hook-logging.js +4 -4
  289. package/dist/services/phase-hooks/hook-runner.d.ts +1 -1
  290. package/dist/services/phase-hooks/hook-runner.js +4 -4
  291. package/dist/services/phase-hooks/types.d.ts +3 -3
  292. package/dist/services/phase-ratings.d.ts +7 -7
  293. package/dist/services/phase-ratings.js +8 -8
  294. package/dist/services/pull-requests.d.ts +4 -4
  295. package/dist/services/pull-requests.js +11 -11
  296. package/dist/services/skill-resolver.d.ts +1 -1
  297. package/dist/services/skill-resolver.js +1 -1
  298. package/dist/skills/phase/app-store-generation/SKILL.md +9 -9
  299. package/dist/skills/phase/autonomous/SKILL.md +2 -2
  300. package/dist/skills/phase/branch-planning/SKILL.md +12 -12
  301. package/dist/skills/phase/bug-fixing/SKILL.md +1 -1
  302. package/dist/skills/phase/code-implementation/SKILL.md +6 -6
  303. package/dist/skills/phase/code-implementation-verification/SKILL.md +3 -3
  304. package/dist/skills/phase/code-testing/SKILL.md +5 -5
  305. package/dist/skills/phase/functional-testing/SKILL.md +3 -3
  306. package/dist/skills/phase/growth-analysis/SKILL.md +8 -8
  307. package/dist/skills/phase/incremental-sync/SKILL.md +6 -6
  308. package/dist/skills/phase/intelligence-analysis/SKILL.md +7 -7
  309. package/dist/skills/phase/{feature-analysis → issue-analysis}/SKILL.md +8 -8
  310. package/dist/skills/phase/pr-execution/SKILL.md +7 -7
  311. package/dist/skills/phase/pr-splitting/SKILL.md +14 -14
  312. package/dist/skills/phase/smoke-test/SKILL.md +1 -1
  313. package/dist/skills/phase/technical-design/SKILL.md +5 -5
  314. package/dist/skills/phase/test-cases-analysis/SKILL.md +4 -4
  315. package/dist/skills/phase/user-stories-analysis/SKILL.md +13 -13
  316. package/dist/system/session-manager.d.ts +3 -3
  317. package/dist/system/session-manager.js +3 -3
  318. package/dist/system/sleep-notification.js +2 -2
  319. package/dist/system/sleep-prevention.js +1 -1
  320. package/dist/types/index.d.ts +21 -21
  321. package/dist/types/{features.d.ts → issues.d.ts} +3 -3
  322. package/dist/types/pipeline.d.ts +4 -4
  323. package/dist/updater/auto-updater.d.ts +2 -2
  324. package/dist/updater/auto-updater.js +3 -3
  325. package/dist/utils/conflict-resolver.d.ts +1 -1
  326. package/dist/utils/conflict-resolver.js +5 -5
  327. package/dist/utils/formatters.d.ts +4 -4
  328. package/dist/utils/formatters.js +29 -29
  329. package/dist/utils/git-branch-manager-async.d.ts +6 -6
  330. package/dist/utils/git-branch-manager-async.js +41 -41
  331. package/dist/utils/git-branch-manager.d.ts +11 -11
  332. package/dist/utils/git-branch-manager.js +42 -42
  333. package/dist/utils/image-downloader.d.ts +4 -4
  334. package/dist/utils/image-downloader.js +17 -17
  335. package/dist/utils/pipeline-logger.d.ts +1 -1
  336. package/dist/utils/pipeline-logger.js +5 -5
  337. package/dist/workspace/workspace-manager.d.ts +17 -17
  338. package/dist/workspace/workspace-manager.js +21 -21
  339. package/package.json +1 -1
  340. package/vitest.config.ts +4 -0
  341. package/dist/api/__tests__/app-store.test.d.ts +0 -7
  342. package/dist/api/__tests__/app-store.test.js +0 -60
  343. package/dist/api/__tests__/intelligence.test.d.ts +0 -11
  344. package/dist/api/__tests__/intelligence.test.js +0 -315
  345. package/dist/api/features/__tests__/feature-utils.test.d.ts +0 -4
  346. package/dist/api/features/__tests__/feature-utils.test.js +0 -370
  347. package/dist/api/features/__tests__/status-updater.test.d.ts +0 -4
  348. package/dist/api/features/__tests__/status-updater.test.js +0 -88
  349. package/dist/api/features/approval-checker.d.ts +0 -20
  350. package/dist/api/features/feature-utils.d.ts +0 -23
  351. package/dist/api/features/feature-utils.js +0 -80
  352. package/dist/api/features/get-feature.d.ts +0 -5
  353. package/dist/api/features/get-feature.js +0 -21
  354. package/dist/api/features/index.d.ts +0 -8
  355. package/dist/api/features/index.js +0 -10
  356. package/dist/api/features/status-updater.d.ts +0 -41
  357. package/dist/api/features/update-feature.d.ts +0 -20
  358. package/dist/commands/build/__tests__/build.test.d.ts +0 -5
  359. package/dist/commands/build/__tests__/build.test.js +0 -206
  360. package/dist/commands/build/__tests__/detect-project.test.d.ts +0 -6
  361. package/dist/commands/build/__tests__/detect-project.test.js +0 -160
  362. package/dist/commands/build/__tests__/run-build.test.d.ts +0 -6
  363. package/dist/commands/build/__tests__/run-build.test.js +0 -433
  364. package/dist/commands/intelligence/__tests__/command.test.d.ts +0 -4
  365. package/dist/commands/intelligence/__tests__/command.test.js +0 -48
  366. package/dist/commands/workflow/core/__tests__/feature-filter.test.d.ts +0 -5
  367. package/dist/commands/workflow/core/__tests__/feature-filter.test.js +0 -316
  368. package/dist/commands/workflow/core/__tests__/pipeline-evaluator.test.d.ts +0 -4
  369. package/dist/commands/workflow/core/__tests__/pipeline-evaluator.test.js +0 -397
  370. package/dist/commands/workflow/core/__tests__/state-manager.test.d.ts +0 -4
  371. package/dist/commands/workflow/core/__tests__/state-manager.test.js +0 -384
  372. package/dist/commands/workflow/core/feature-filter.d.ts +0 -16
  373. package/dist/commands/workflow/core/feature-filter.js +0 -47
  374. package/dist/commands/workflow/feature-coordinator.d.ts +0 -18
  375. package/dist/config/__tests__/config.test.d.ts +0 -4
  376. package/dist/config/__tests__/config.test.js +0 -286
  377. package/dist/config/__tests__/feature-status.test.d.ts +0 -4
  378. package/dist/config/__tests__/feature-status.test.js +0 -111
  379. package/dist/errors/__tests__/index.test.d.ts +0 -4
  380. package/dist/errors/__tests__/index.test.js +0 -349
  381. package/dist/phases/app-store-generation/__tests__/agent.test.d.ts +0 -5
  382. package/dist/phases/app-store-generation/__tests__/agent.test.js +0 -142
  383. package/dist/phases/app-store-generation/__tests__/context.test.d.ts +0 -4
  384. package/dist/phases/app-store-generation/__tests__/context.test.js +0 -284
  385. package/dist/phases/app-store-generation/__tests__/prompts.test.d.ts +0 -4
  386. package/dist/phases/app-store-generation/__tests__/prompts.test.js +0 -122
  387. package/dist/phases/app-store-generation/__tests__/screenshot-composer.test.d.ts +0 -5
  388. package/dist/phases/app-store-generation/__tests__/screenshot-composer.test.js +0 -826
  389. package/dist/phases/code-review/__tests__/diff-utils.test.js +0 -101
  390. package/dist/phases/feature-analysis/context.d.ts +0 -24
  391. package/dist/phases/feature-analysis/index.d.ts +0 -8
  392. package/dist/phases/feature-analysis/outcome.d.ts +0 -40
  393. package/dist/phases/intelligence-analysis/__tests__/context.test.d.ts +0 -4
  394. package/dist/phases/intelligence-analysis/__tests__/context.test.js +0 -192
  395. package/dist/phases/intelligence-analysis/__tests__/matching.test.d.ts +0 -13
  396. package/dist/phases/intelligence-analysis/__tests__/matching.test.js +0 -154
  397. package/dist/phases/intelligence-analysis/__tests__/orchestration.test.d.ts +0 -5
  398. package/dist/phases/intelligence-analysis/__tests__/orchestration.test.js +0 -378
  399. package/dist/phases/intelligence-analysis/__tests__/prompts.test.d.ts +0 -4
  400. package/dist/phases/intelligence-analysis/__tests__/prompts.test.js +0 -33
  401. package/dist/phases/pr-execution/__tests__/file-assigner.test.d.ts +0 -1
  402. package/dist/phases/pr-execution/__tests__/file-assigner.test.js +0 -303
  403. package/dist/phases/pr-resolve/__tests__/checklist-learner.test.d.ts +0 -1
  404. package/dist/phases/pr-resolve/__tests__/checklist-learner.test.js +0 -157
  405. package/dist/phases/pr-resolve/__tests__/prompts.test.d.ts +0 -1
  406. package/dist/phases/pr-resolve/__tests__/prompts.test.js +0 -116
  407. package/dist/phases/pr-resolve/__tests__/resolve-mapping.test.d.ts +0 -1
  408. package/dist/phases/pr-resolve/__tests__/resolve-mapping.test.js +0 -138
  409. package/dist/phases/pr-resolve/__tests__/types.test.d.ts +0 -1
  410. package/dist/phases/pr-resolve/__tests__/types.test.js +0 -43
  411. package/dist/phases/pr-resolve/__tests__/workspace.test.d.ts +0 -1
  412. package/dist/phases/pr-resolve/__tests__/workspace.test.js +0 -111
  413. package/dist/phases/pr-review/__tests__/prompts.test.d.ts +0 -1
  414. package/dist/phases/pr-review/__tests__/prompts.test.js +0 -49
  415. package/dist/phases/pr-review/__tests__/review-comments.test.d.ts +0 -1
  416. package/dist/phases/pr-review/__tests__/review-comments.test.js +0 -110
  417. package/dist/phases/pr-shared/__tests__/agent-utils.test.d.ts +0 -1
  418. package/dist/phases/pr-shared/__tests__/agent-utils.test.js +0 -91
  419. package/dist/phases/pr-shared/__tests__/context.test.d.ts +0 -1
  420. package/dist/phases/pr-shared/__tests__/context.test.js +0 -94
  421. package/dist/phases/pr-splitting/__tests__/import-dep-validator.test.d.ts +0 -1
  422. package/dist/phases/pr-splitting/__tests__/import-dep-validator.test.js +0 -331
  423. package/dist/phases/run-sheet/render.d.ts +0 -60
  424. package/dist/phases/run-sheet/render.js +0 -297
  425. package/dist/phases/smoke-test/__tests__/agent.test.d.ts +0 -4
  426. package/dist/phases/smoke-test/__tests__/agent.test.js +0 -84
  427. package/dist/phases/smoke-test/__tests__/github.test.d.ts +0 -9
  428. package/dist/phases/smoke-test/__tests__/github.test.js +0 -120
  429. package/dist/phases/smoke-test/__tests__/snapshot.test.d.ts +0 -8
  430. package/dist/phases/smoke-test/__tests__/snapshot.test.js +0 -93
  431. package/dist/phases/smoke-test/github.d.ts +0 -54
  432. package/dist/phases/smoke-test/github.js +0 -101
  433. package/dist/phases/smoke-test/snapshot.d.ts +0 -27
  434. package/dist/phases/smoke-test/snapshot.js +0 -157
  435. package/dist/services/coaching/__tests__/coaching-agent.test.d.ts +0 -1
  436. package/dist/services/coaching/__tests__/coaching-agent.test.js +0 -74
  437. package/dist/services/coaching/__tests__/coaching-loop.test.d.ts +0 -1
  438. package/dist/services/coaching/__tests__/coaching-loop.test.js +0 -59
  439. package/dist/services/coaching/__tests__/self-rating.test.d.ts +0 -1
  440. package/dist/services/coaching/__tests__/self-rating.test.js +0 -188
  441. package/dist/services/lifecycle-agent/__tests__/phase-criteria.test.d.ts +0 -4
  442. package/dist/services/lifecycle-agent/__tests__/phase-criteria.test.js +0 -133
  443. package/dist/services/lifecycle-agent/__tests__/transition-rules.test.d.ts +0 -4
  444. package/dist/services/lifecycle-agent/__tests__/transition-rules.test.js +0 -336
  445. package/dist/services/lifecycle-agent/index.d.ts +0 -24
  446. package/dist/services/lifecycle-agent/index.js +0 -25
  447. package/dist/services/lifecycle-agent/phase-criteria.d.ts +0 -57
  448. package/dist/services/lifecycle-agent/phase-criteria.js +0 -335
  449. package/dist/services/lifecycle-agent/transition-rules.d.ts +0 -60
  450. package/dist/services/lifecycle-agent/transition-rules.js +0 -184
  451. package/dist/services/lifecycle-agent/types.d.ts +0 -190
  452. package/dist/services/lifecycle-agent/types.js +0 -12
  453. package/dist/services/phase-hooks/__tests__/bindings-fetcher.test.d.ts +0 -1
  454. package/dist/services/phase-hooks/__tests__/bindings-fetcher.test.js +0 -122
  455. package/dist/services/phase-hooks/__tests__/hook-executor.test.d.ts +0 -1
  456. package/dist/services/phase-hooks/__tests__/hook-executor.test.js +0 -321
  457. package/dist/services/phase-hooks/__tests__/hook-runner.test.d.ts +0 -1
  458. package/dist/services/phase-hooks/__tests__/hook-runner.test.js +0 -261
  459. package/dist/services/phase-hooks/__tests__/plugin-loader.test.d.ts +0 -1
  460. package/dist/services/phase-hooks/__tests__/plugin-loader.test.js +0 -158
  461. package/dist/services/video/__tests__/video-pipeline.test.d.ts +0 -6
  462. package/dist/services/video/__tests__/video-pipeline.test.js +0 -249
  463. package/dist/types/features.js +0 -1
  464. package/dist/workspace/__tests__/workspace-manager.test.d.ts +0 -7
  465. package/dist/workspace/__tests__/workspace-manager.test.js +0 -52
  466. /package/dist/api/{features → issues}/batch-operations.d.ts +0 -0
  467. /package/dist/api/{features → issues}/batch-operations.js +0 -0
  468. /package/dist/phases/{feature-analysis → issue-analysis}/agent.d.ts +0 -0
  469. /package/dist/skills/phase/{feature-analysis-verification → issue-analysis-verification}/SKILL.md +0 -0
  470. /package/dist/{phases/code-review/__tests__/diff-utils.test.d.ts → types/issues.js} +0 -0
@@ -1,26 +1,26 @@
1
- import { logFeaturePhaseEvent } from '../../services/audit-logs.js';
1
+ import { logIssuePhaseEvent } from '../../services/audit-logs.js';
2
2
  import { extractChecklistItems, runPhaseCoaching, } from '../../services/coaching/index.js';
3
3
  import { logError, logInfo, logWarning } from '../../utils/logger.js';
4
- import { performVerificationCycle } from '../feature-analysis-verification/index.js';
4
+ import { performVerificationCycle } from '../issue-analysis-verification/index.js';
5
5
  import { executeAnalysisQuery, parseAnalysisResult } from './agent.js';
6
6
  import { prepareAnalysisContext } from './context.js';
7
7
  import { buildAnalysisResult, deleteArtifacts, deleteSpecificArtifacts, getAllDraftArtifactIds, resetReadyArtifactsToDraft, saveAnalysisArtifactsAsDraft, updateArtifactsToReady, } from './outcome.js';
8
- import { createFeatureAnalysisSystemPrompt } from './prompts.js';
8
+ import { createIssueAnalysisSystemPrompt } from './prompts.js';
9
9
  // eslint-disable-next-line complexity
10
- export const analyseFeature = async (options, config, checklistContext) => {
11
- const { featureId, verbose } = options;
10
+ export const analyseIssue = async (options, config, checklistContext) => {
11
+ const { issueId, verbose } = options;
12
12
  if (verbose) {
13
- logInfo(`Starting feature analysis for feature ID: ${featureId}`);
13
+ logInfo(`Starting issue analysis for issue ID: ${issueId}`);
14
14
  }
15
15
  try {
16
16
  // Reset pending_approval artifacts to draft so AI can manage them on re-run
17
- const resetResult = await resetReadyArtifactsToDraft(featureId, verbose);
17
+ const resetResult = await resetReadyArtifactsToDraft(issueId, verbose);
18
18
  if (verbose &&
19
19
  (resetResult.resetUserStories > 0 || resetResult.resetTestCases > 0)) {
20
20
  logInfo(`✅ Reset ${resetResult.resetUserStories} user stories and ${resetResult.resetTestCases} test cases to draft for re-analysis`);
21
21
  }
22
- const context = await prepareAnalysisContext(featureId, checklistContext, verbose);
23
- const systemPrompt = await createFeatureAnalysisSystemPrompt();
22
+ const context = await prepareAnalysisContext(issueId, checklistContext, verbose);
23
+ const systemPrompt = await createIssueAnalysisSystemPrompt();
24
24
  const initialAnalysisPrompt = context.analysisPrompt;
25
25
  const maxIterations = options.maxVerificationIterations || 10;
26
26
  let currentIteration = 0;
@@ -41,10 +41,10 @@ export const analyseFeature = async (options, config, checklistContext) => {
41
41
  }
42
42
  // Log iteration start (for iterations after the first)
43
43
  if (currentIteration > 1) {
44
- await logFeaturePhaseEvent({
45
- featureId,
44
+ await logIssuePhaseEvent({
45
+ issueId,
46
46
  eventType: 'phase_started',
47
- phase: 'feature_analysis',
47
+ phase: 'issue_analysis',
48
48
  result: 'info',
49
49
  metadata: {
50
50
  iteration: currentIteration,
@@ -59,10 +59,10 @@ export const analyseFeature = async (options, config, checklistContext) => {
59
59
  if (!structuredAnalysisResult) {
60
60
  break;
61
61
  }
62
- await logFeaturePhaseEvent({
63
- featureId,
62
+ await logIssuePhaseEvent({
63
+ issueId,
64
64
  eventType: 'phase_completed',
65
- phase: 'feature_analysis',
65
+ phase: 'issue_analysis',
66
66
  result: 'success',
67
67
  metadata: {
68
68
  iteration: currentIteration,
@@ -81,16 +81,16 @@ export const analyseFeature = async (options, config, checklistContext) => {
81
81
  if (verbose) {
82
82
  logInfo('🗑️ Processing deletions identified by AI during analysis...');
83
83
  }
84
- await deleteSpecificArtifacts(featureId, structuredAnalysisResult.deleted_user_story_ids || [], structuredAnalysisResult.deleted_test_case_ids || [], structuredAnalysisResult.deletion_reasons || {}, verbose);
84
+ await deleteSpecificArtifacts(issueId, structuredAnalysisResult.deleted_user_story_ids || [], structuredAnalysisResult.deleted_test_case_ids || [], structuredAnalysisResult.deletion_reasons || {}, verbose);
85
85
  }
86
86
  // Save artifacts as draft and get their IDs
87
- const { userStoryIds, testCaseIds } = await saveAnalysisArtifactsAsDraft(featureId, structuredAnalysisResult.created_user_stories || [], structuredAnalysisResult.created_test_cases || [], verbose);
87
+ const { userStoryIds, testCaseIds } = await saveAnalysisArtifactsAsDraft(issueId, structuredAnalysisResult.created_user_stories || [], structuredAnalysisResult.created_test_cases || [], verbose);
88
88
  currentDraftUserStoryIds = userStoryIds;
89
89
  currentDraftTestCaseIds = testCaseIds;
90
90
  // Coaching loop between execute and verify
91
91
  await runPhaseCoaching({
92
- featureId,
93
- phase: 'feature_analysis',
92
+ issueId,
93
+ phase: 'issue_analysis',
94
94
  phaseResult: structuredAnalysisResult,
95
95
  checklistItems: extractChecklistItems(checklistContext),
96
96
  onImproved: async (_sessionId, responseText) => {
@@ -98,13 +98,13 @@ export const analyseFeature = async (options, config, checklistContext) => {
98
98
  if (parsed.analysis) {
99
99
  // Delete old drafts and save improved ones
100
100
  await deleteArtifacts(currentDraftUserStoryIds, currentDraftTestCaseIds, verbose);
101
- const { userStoryIds: newUserStoryIds, testCaseIds: newTestCaseIds, } = await saveAnalysisArtifactsAsDraft(featureId, parsed.analysis.created_user_stories || [], parsed.analysis.created_test_cases || [], verbose);
101
+ const { userStoryIds: newUserStoryIds, testCaseIds: newTestCaseIds, } = await saveAnalysisArtifactsAsDraft(issueId, parsed.analysis.created_user_stories || [], parsed.analysis.created_test_cases || [], verbose);
102
102
  currentDraftUserStoryIds = newUserStoryIds;
103
103
  currentDraftTestCaseIds = newTestCaseIds;
104
104
  structuredAnalysisResult = parsed.analysis;
105
105
  }
106
106
  else {
107
- logWarning(`Coaching improvement response could not be parsed for feature-analysis. Keeping previous drafts. ${parsed.error || ''}`);
107
+ logWarning(`Coaching improvement response could not be parsed for issue-analysis. Keeping previous drafts. ${parsed.error || ''}`);
108
108
  }
109
109
  },
110
110
  verbose,
@@ -113,11 +113,11 @@ export const analyseFeature = async (options, config, checklistContext) => {
113
113
  const verificationCycle = await performVerificationCycle({
114
114
  structuredAnalysisResult,
115
115
  checklistContext: checklistContext || null,
116
- context: context.featureContext,
116
+ context: context.issueContext,
117
117
  config,
118
118
  currentIteration,
119
119
  maxIterations,
120
- featureId,
120
+ issueId,
121
121
  verbose,
122
122
  });
123
123
  ({ verificationResult } = verificationCycle);
@@ -126,7 +126,7 @@ export const analyseFeature = async (options, config, checklistContext) => {
126
126
  if (verbose) {
127
127
  logInfo('✅ Verification passed! Updating all draft artifacts to pending_approval status...');
128
128
  }
129
- const allDrafts = await getAllDraftArtifactIds(featureId, verbose);
129
+ const allDrafts = await getAllDraftArtifactIds(issueId, verbose);
130
130
  await updateArtifactsToReady(allDrafts.userStoryIds, allDrafts.testCaseIds, verbose);
131
131
  break;
132
132
  }
@@ -157,7 +157,7 @@ export const analyseFeature = async (options, config, checklistContext) => {
157
157
  if (!checklistContext ||
158
158
  checklistContext.checklists.length === 0 ||
159
159
  !verificationResult) {
160
- const allDrafts = await getAllDraftArtifactIds(featureId, verbose);
160
+ const allDrafts = await getAllDraftArtifactIds(issueId, verbose);
161
161
  if (allDrafts.userStoryIds.length > 0 ||
162
162
  allDrafts.testCaseIds.length > 0) {
163
163
  if (verbose) {
@@ -180,14 +180,14 @@ export const analyseFeature = async (options, config, checklistContext) => {
180
180
  // Return success result
181
181
  // Note: Artifacts have already been saved and updated to 'pending_approval' status (if verification passed)
182
182
  // or remain as draft (if verification failed)
183
- return buildAnalysisResult(featureId, context.featureContext, structuredAnalysisResult, currentIteration);
183
+ return buildAnalysisResult(issueId, context.issueContext, structuredAnalysisResult, currentIteration);
184
184
  }
185
185
  catch (error) {
186
- logError(`Feature analysis failed: ${error instanceof Error ? error.message : String(error)}`);
186
+ logError(`Issue analysis failed: ${error instanceof Error ? error.message : String(error)}`);
187
187
  return {
188
- featureId,
188
+ issueId,
189
189
  productInfo: null,
190
- featureInfo: null,
190
+ issueInfo: null,
191
191
  existingUserStories: [],
192
192
  existingTestCases: [],
193
193
  createdUserStories: [],
@@ -0,0 +1,40 @@
1
+ import { type IssueAnalysisResult } from '../../types/index.js';
2
+ import { type IssueAnalysisContext } from './context.js';
3
+ /**
4
+ * Reset ready user stories and test cases to draft for re-analysis
5
+ */
6
+ export declare function resetReadyArtifactsToDraft(issueId: string, verbose?: boolean): Promise<{
7
+ resetUserStories: number;
8
+ resetTestCases: number;
9
+ }>;
10
+ /**
11
+ * Get all draft artifact IDs for an issue
12
+ */
13
+ export declare function getAllDraftArtifactIds(issueId: string, verbose?: boolean): Promise<{
14
+ userStoryIds: string[];
15
+ testCaseIds: string[];
16
+ }>;
17
+ /**
18
+ * Delete artifacts after verification failure
19
+ */
20
+ export declare function deleteArtifacts(userStoryIds: string[], testCaseIds: string[], verbose?: boolean): Promise<void>;
21
+ /**
22
+ * Delete specific artifacts identified by AI during analysis
23
+ * Only deletes artifacts with status 'draft'
24
+ */
25
+ export declare function deleteSpecificArtifacts(issueId: string, deletedUserStoryIds: string[], deletedTestCaseIds: string[], deletionReasons: Record<string, string>, verbose?: boolean): Promise<void>;
26
+ /**
27
+ * Update artifacts to pending_approval status after successful verification
28
+ */
29
+ export declare function updateArtifactsToReady(userStoryIds: string[], testCaseIds: string[], verbose?: boolean): Promise<void>;
30
+ /**
31
+ * Save analysis artifacts as draft and return their IDs
32
+ */
33
+ export declare function saveAnalysisArtifactsAsDraft(issueId: string, createdUserStories: Record<string, unknown>[], createdTestCases: Record<string, unknown>[], verbose?: boolean): Promise<{
34
+ userStoryIds: string[];
35
+ testCaseIds: string[];
36
+ }>;
37
+ /**
38
+ * Build the final analysis result object
39
+ */
40
+ export declare function buildAnalysisResult(issueId: string, context: IssueAnalysisContext, structuredAnalysisResult: any, currentIteration: number): IssueAnalysisResult;
@@ -1,13 +1,13 @@
1
- import { batchDeleteTestCases, batchDeleteUserStories, batchUpdateTestCaseStatus, batchUpdateUserStoryStatus, getTestCases, getUserStories, } from '../../api/features/index.js';
1
+ import { batchDeleteTestCases, batchDeleteUserStories, batchUpdateTestCaseStatus, batchUpdateUserStoryStatus, getTestCases, getUserStories, } from '../../api/issues/index.js';
2
2
  import { callMcpEndpoint } from '../../api/mcp-client.js';
3
3
  import { logError, logInfo } from '../../utils/logger.js';
4
4
  /**
5
5
  * Reset ready user stories and test cases to draft for re-analysis
6
6
  */
7
- export async function resetReadyArtifactsToDraft(featureId, verbose) {
7
+ export async function resetReadyArtifactsToDraft(issueId, verbose) {
8
8
  const [stories, testCases] = await Promise.all([
9
- getUserStories(featureId, false),
10
- getTestCases(featureId, false),
9
+ getUserStories(issueId, false),
10
+ getTestCases(issueId, false),
11
11
  ]);
12
12
  const readyStoryIds = stories
13
13
  .filter((s) => s.status === 'pending_approval')
@@ -33,12 +33,12 @@ export async function resetReadyArtifactsToDraft(featureId, verbose) {
33
33
  };
34
34
  }
35
35
  /**
36
- * Get all draft artifact IDs for a feature
36
+ * Get all draft artifact IDs for an issue
37
37
  */
38
- export async function getAllDraftArtifactIds(featureId, verbose) {
38
+ export async function getAllDraftArtifactIds(issueId, verbose) {
39
39
  const [stories, testCases] = await Promise.all([
40
- getUserStories(featureId, false),
41
- getTestCases(featureId, false),
40
+ getUserStories(issueId, false),
41
+ getTestCases(issueId, false),
42
42
  ]);
43
43
  const userStoryIds = stories
44
44
  .filter((s) => s.status === 'draft')
@@ -79,11 +79,11 @@ function isValidUUID(id) {
79
79
  * Delete specific artifacts identified by AI during analysis
80
80
  * Only deletes artifacts with status 'draft'
81
81
  */
82
- export async function deleteSpecificArtifacts(featureId, deletedUserStoryIds, deletedTestCaseIds, deletionReasons, verbose) {
82
+ export async function deleteSpecificArtifacts(issueId, deletedUserStoryIds, deletedTestCaseIds, deletionReasons, verbose) {
83
83
  // Fetch current artifacts to verify their status
84
84
  const [currentUserStories, currentTestCases] = await Promise.all([
85
- getUserStories(featureId, false),
86
- getTestCases(featureId, false),
85
+ getUserStories(issueId, false),
86
+ getTestCases(issueId, false),
87
87
  ]);
88
88
  // Create maps for quick lookup
89
89
  const userStoryStatusMap = new Map(currentUserStories.map((story) => [story.id, story.status]));
@@ -163,7 +163,7 @@ export async function updateArtifactsToReady(userStoryIds, testCaseIds, verbose)
163
163
  /**
164
164
  * Save analysis artifacts as draft and return their IDs
165
165
  */
166
- export async function saveAnalysisArtifactsAsDraft(featureId, createdUserStories, createdTestCases, verbose) {
166
+ export async function saveAnalysisArtifactsAsDraft(issueId, createdUserStories, createdTestCases, verbose) {
167
167
  const userStoryIds = [];
168
168
  const testCaseIds = [];
169
169
  // Save user stories as draft
@@ -173,7 +173,7 @@ export async function saveAnalysisArtifactsAsDraft(featureId, createdUserStories
173
173
  }
174
174
  try {
175
175
  const result = (await callMcpEndpoint('user_stories/create', {
176
- feature_id: featureId,
176
+ issue_id: issueId,
177
177
  user_stories: createdUserStories.map((story) => ({
178
178
  title: story.title,
179
179
  description: story.description,
@@ -198,7 +198,7 @@ export async function saveAnalysisArtifactsAsDraft(featureId, createdUserStories
198
198
  }
199
199
  try {
200
200
  const result = (await callMcpEndpoint('test_cases/create', {
201
- feature_id: featureId,
201
+ issue_id: issueId,
202
202
  test_cases: createdTestCases.map((testCase) => ({
203
203
  name: testCase.name,
204
204
  description: testCase.description,
@@ -222,14 +222,14 @@ export async function saveAnalysisArtifactsAsDraft(featureId, createdUserStories
222
222
  /**
223
223
  * Build the final analysis result object
224
224
  */
225
- export function buildAnalysisResult(featureId, context,
225
+ export function buildAnalysisResult(issueId, context,
226
226
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
227
227
  structuredAnalysisResult, currentIteration) {
228
228
  const { created_user_stories, created_test_cases, deleted_user_story_ids, deleted_test_case_ids, deletion_reasons, checklist_results, checklist_item_results, } = structuredAnalysisResult;
229
229
  return {
230
- featureId,
230
+ issueId,
231
231
  productInfo: context.product,
232
- featureInfo: context.feature,
232
+ issueInfo: context.issue,
233
233
  existingUserStories: context.existing_user_stories.map((story) => {
234
234
  const approvedOrDraft = story.status === 'approved' ? 'approved' : 'draft';
235
235
  return {
@@ -1,6 +1,6 @@
1
- import { type ChecklistVerificationResult } from '../feature-analysis-verification/agent.js';
2
- export declare const createFeatureAnalysisSystemPrompt: (projectDir?: string) => Promise<string>;
3
- export declare const createFeatureAnalysisPromptWithContext: (featureId: string, contextInfo: string) => string;
1
+ import { type ChecklistVerificationResult } from '../issue-analysis-verification/agent.js';
2
+ export declare const createIssueAnalysisSystemPrompt: (projectDir?: string) => Promise<string>;
3
+ export declare const createIssueAnalysisPromptWithContext: (issueId: string, contextInfo: string) => string;
4
4
  /**
5
5
  * Create a prompt for the analysis agent to improve based on verification feedback
6
6
  */
@@ -1,14 +1,14 @@
1
1
  import { resolveSkill } from '../../services/skill-resolver.js';
2
2
  import { OUTPUT_CONTRACTS } from '../output-contracts.js';
3
- export const createFeatureAnalysisSystemPrompt = async (projectDir) => {
4
- const skill = await resolveSkill('phase/feature-analysis', { projectDir });
3
+ export const createIssueAnalysisSystemPrompt = async (projectDir) => {
4
+ const skill = await resolveSkill('phase/issue-analysis', { projectDir });
5
5
  if (!skill) {
6
- throw new Error('Failed to load skill: phase/feature-analysis');
6
+ throw new Error('Failed to load skill: phase/issue-analysis');
7
7
  }
8
- return `${skill.prompt}\n\n${OUTPUT_CONTRACTS['feature-analysis']}`;
8
+ return `${skill.prompt}\n\n${OUTPUT_CONTRACTS['issue-analysis']}`;
9
9
  };
10
- export const createFeatureAnalysisPromptWithContext = (featureId, contextInfo) => {
11
- return `Please conduct comprehensive business analysis for feature ID: ${featureId}
10
+ export const createIssueAnalysisPromptWithContext = (issueId, contextInfo) => {
11
+ return `Please conduct comprehensive business analysis for issue ID: ${issueId}
12
12
 
13
13
  ${contextInfo}
14
14
 
@@ -16,19 +16,19 @@ ${contextInfo}
16
16
 
17
17
  Follow this systematic approach:
18
18
 
19
- 1. **Review Feature Context**: Analyze the feature information, product context, and technical design above
19
+ 1. **Review Issue Context**: Analyze the issue information, product context, and technical design above
20
20
 
21
21
  2. **Review Existing Items**: Study the existing user stories and test cases to understand:
22
22
  - What scenarios are already covered
23
23
  - What user perspectives are already addressed
24
24
  - Where gaps might exist
25
25
 
26
- 3. **Business Analysis**: Think about the feature from a business perspective:
26
+ 3. **Business Analysis**: Think about the issue from a business perspective:
27
27
  - Who are the different types of users?
28
- - What problems does this feature solve?
28
+ - What problems does this issue solve?
29
29
  - What are the different use cases and user workflows?
30
30
  - What edge cases and error scenarios might occur?
31
- - How does this integrate with other features?
31
+ - How does this integrate with other issues?
32
32
 
33
33
  4. **Create New User Stories**: Generate user stories that ADD VALUE by covering:
34
34
  - Different user types or personas not yet covered
@@ -52,7 +52,7 @@ Follow this systematic approach:
52
52
  - Avoid duplicating existing user stories and test cases
53
53
  - Consider different user types (admin, regular user, guest, etc.)
54
54
  - Think about accessibility, security, and performance implications
55
- - The feature should already have some design - you're analyzing business requirements
55
+ - The issue should already have some design - you're analyzing business requirements
56
56
  - Be thorough but focus on practical, testable scenarios
57
57
 
58
58
  Begin your systematic analysis based on the above context.`;
@@ -152,7 +152,7 @@ You MUST return ONLY the JSON object below. Do NOT include any explanatory text,
152
152
  \`\`\`json
153
153
  {
154
154
  "analysis": {
155
- "feature_id": "...",
155
+ "issue_id": "...",
156
156
  "status": "success",
157
157
  "summary": "Improved analysis based on verification feedback",
158
158
  "created_user_stories": [
@@ -1,6 +1,6 @@
1
1
  import { type ChecklistPhaseContext } from '../../services/checklist.js';
2
2
  import { type EdsgerConfig } from '../../types/index.js';
3
- import { type FeatureAnalysisContext } from '../feature-analysis/context.js';
3
+ import { type IssueAnalysisContext } from '../issue-analysis/context.js';
4
4
  export interface ChecklistItemVerificationResult {
5
5
  checklist_item_id: string;
6
6
  is_satisfied: boolean;
@@ -21,7 +21,7 @@ export interface ChecklistVerificationResult {
21
21
  }
22
22
  export interface VerifyChecklistOptions {
23
23
  checklistContext: ChecklistPhaseContext;
24
- analysisContext: FeatureAnalysisContext;
24
+ analysisContext: IssueAnalysisContext;
25
25
  createdUserStories: any[];
26
26
  createdTestCases: any[];
27
27
  verbose?: boolean;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Checklist verification agent for feature analysis
2
+ * Checklist verification agent for issue analysis
3
3
  * This agent independently reviews checklist compliance to ensure objectivity
4
4
  */
5
5
  import { query } from '@anthropic-ai/claude-agent-sdk';
@@ -1,6 +1,6 @@
1
1
  import { type ChecklistPhaseContext } from '../../services/checklist.js';
2
2
  import { type EdsgerConfig } from '../../types/index.js';
3
- import { type FeatureAnalysisContext } from '../feature-analysis/context.js';
3
+ import { type IssueAnalysisContext } from '../issue-analysis/context.js';
4
4
  import { type ChecklistVerificationResult } from './agent.js';
5
5
  interface VerificationCycleResult {
6
6
  passed: boolean;
@@ -11,15 +11,15 @@ interface VerificationCycleResult {
11
11
  * Perform verification and determine if iteration should continue
12
12
  * This function only verifies - it does NOT manage artifacts (save/delete/update)
13
13
  */
14
- export interface FeatureAnalysisVerificationOptions {
14
+ export interface IssueAnalysisVerificationOptions {
15
15
  structuredAnalysisResult: Record<string, unknown>;
16
16
  checklistContext: ChecklistPhaseContext | null;
17
- context: FeatureAnalysisContext;
17
+ context: IssueAnalysisContext;
18
18
  config: EdsgerConfig;
19
19
  currentIteration: number;
20
20
  maxIterations: number;
21
- featureId: string;
21
+ issueId: string;
22
22
  verbose?: boolean;
23
23
  }
24
- export declare function performVerificationCycle(opts: FeatureAnalysisVerificationOptions): Promise<VerificationCycleResult>;
24
+ export declare function performVerificationCycle(opts: IssueAnalysisVerificationOptions): Promise<VerificationCycleResult>;
25
25
  export {};
@@ -1,9 +1,9 @@
1
- import { logFeatureVerificationEvent } from '../../services/audit-logs.js';
1
+ import { logIssueVerificationEvent } from '../../services/audit-logs.js';
2
2
  import { logError, logInfo } from '../../utils/logger.js';
3
- import { createImprovementPrompt } from '../feature-analysis/prompts.js';
3
+ import { createImprovementPrompt } from '../issue-analysis/prompts.js';
4
4
  import { verifyChecklistCompliance, } from './agent.js';
5
5
  export async function performVerificationCycle(opts) {
6
- const { structuredAnalysisResult, checklistContext, context, config, currentIteration, maxIterations, featureId, verbose, } = opts;
6
+ const { structuredAnalysisResult, checklistContext, context, config, currentIteration, maxIterations, issueId, verbose, } = opts;
7
7
  // No verification needed if no checklist context
8
8
  if (!checklistContext || checklistContext.checklists.length === 0) {
9
9
  return { passed: true, verificationResult: null };
@@ -28,9 +28,9 @@ export async function performVerificationCycle(opts) {
28
28
  logInfo(`✅ Checklist verification passed: ${verificationResult.confirmed_count} confirmed, ${verificationResult.uncertain_count} uncertain`);
29
29
  }
30
30
  // Log verification success
31
- await logFeatureVerificationEvent({
32
- featureId,
33
- phase: 'feature_analysis',
31
+ await logIssueVerificationEvent({
32
+ issueId,
33
+ phase: 'issue_analysis',
34
34
  iteration: currentIteration,
35
35
  result: 'success',
36
36
  verificationData: {
@@ -45,9 +45,9 @@ export async function performVerificationCycle(opts) {
45
45
  // Verification failed
46
46
  logError(`❌ Iteration ${currentIteration}: Checklist verification FAILED - ${verificationResult.rejected_count} items rejected, ${verificationResult.uncertain_count} uncertain`);
47
47
  // Log verification failure with improvement suggestions
48
- await logFeatureVerificationEvent({
49
- featureId,
50
- phase: 'feature_analysis',
48
+ await logIssueVerificationEvent({
49
+ issueId,
50
+ phase: 'issue_analysis',
51
51
  iteration: currentIteration,
52
52
  result: 'error',
53
53
  verificationData: {
@@ -1,9 +1,9 @@
1
1
  import { type ChecklistPhaseContext } from '../../services/checklist.js';
2
- import { type FeatureAnalysisContext } from '../feature-analysis/context.js';
2
+ import { type IssueAnalysisContext } from '../issue-analysis/context.js';
3
3
  export declare const createChecklistVerificationSystemPrompt: (projectDir?: string) => Promise<string>;
4
4
  export interface ChecklistVerificationPromptOptions {
5
5
  checklistContext: ChecklistPhaseContext;
6
- analysisContext: FeatureAnalysisContext;
6
+ analysisContext: IssueAnalysisContext;
7
7
  createdUserStories: any[];
8
8
  createdTestCases: any[];
9
9
  }
@@ -1,13 +1,13 @@
1
1
  import { resolveSkill } from '../../services/skill-resolver.js';
2
2
  import { OUTPUT_CONTRACTS } from '../output-contracts.js';
3
3
  export const createChecklistVerificationSystemPrompt = async (projectDir) => {
4
- const skill = await resolveSkill('phase/feature-analysis-verification', {
4
+ const skill = await resolveSkill('phase/issue-analysis-verification', {
5
5
  projectDir,
6
6
  });
7
7
  if (!skill) {
8
- throw new Error('Failed to load skill: phase/feature-analysis-verification');
8
+ throw new Error('Failed to load skill: phase/issue-analysis-verification');
9
9
  }
10
- return `${skill.prompt}\n\n${OUTPUT_CONTRACTS['feature-analysis-verification']}`;
10
+ return `${skill.prompt}\n\n${OUTPUT_CONTRACTS['issue-analysis-verification']}`;
11
11
  };
12
12
  export const createChecklistVerificationPrompt = (options) => {
13
13
  const { checklistContext, analysisContext, createdUserStories, createdTestCases, } = options;
@@ -43,11 +43,11 @@ export const createChecklistVerificationPrompt = (options) => {
43
43
 
44
44
  You are verifying that generated artifacts (user stories and test cases) satisfy checklist requirements.
45
45
 
46
- ## Feature Context
46
+ ## Issue Context
47
47
 
48
- **Feature**: ${analysisContext.feature.name}
49
- **Feature ID**: ${analysisContext.feature.id}
50
- **Description**: ${analysisContext.feature.description || 'No description'}
48
+ **Issue**: ${analysisContext.issue.name}
49
+ **Issue ID**: ${analysisContext.issue.id}
50
+ **Description**: ${analysisContext.issue.description || 'No description'}
51
51
  **Product**: ${analysisContext.product.name}
52
52
 
53
53
  ## Generated Artifacts