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,7 +1,7 @@
1
- import { type ChecklistVerificationResult } from '../feature-analysis-verification/agent.js';
1
+ import { type ChecklistVerificationResult } from '../issue-analysis-verification/agent.js';
2
2
  export declare const createTestCasesAnalysisSystemPrompt: (projectDir?: string) => Promise<string>;
3
- export declare const createTestCasesAnalysisPromptWithContext: (featureId: string, contextInfo: string) => string;
4
- export declare const createTestCasesFeedbackFocusedPromptWithContext: (featureId: string, contextInfo: string) => string;
3
+ export declare const createTestCasesAnalysisPromptWithContext: (issueId: string, contextInfo: string) => string;
4
+ export declare const createTestCasesFeedbackFocusedPromptWithContext: (issueId: string, contextInfo: string) => string;
5
5
  export declare const createTestCasesImprovementPrompt: (verificationResult: ChecklistVerificationResult, previousAnalysis: {
6
6
  created_test_cases: Record<string, unknown>[];
7
7
  }) => string;
@@ -7,8 +7,8 @@ export const createTestCasesAnalysisSystemPrompt = async (projectDir) => {
7
7
  }
8
8
  return `${skill.prompt}\n\n${OUTPUT_CONTRACTS['test-cases-analysis']}`;
9
9
  };
10
- export const createTestCasesAnalysisPromptWithContext = (featureId, contextInfo) => {
11
- return `Please create comprehensive test cases for feature ID: ${featureId}
10
+ export const createTestCasesAnalysisPromptWithContext = (issueId, contextInfo) => {
11
+ return `Please create comprehensive test cases for issue ID: ${issueId}
12
12
 
13
13
  ${contextInfo}
14
14
 
@@ -37,8 +37,8 @@ Follow this systematic approach:
37
37
 
38
38
  Begin your systematic test case design based on the above context.`;
39
39
  };
40
- export const createTestCasesFeedbackFocusedPromptWithContext = (featureId, contextInfo) => {
41
- return `Please update test cases for feature ID: ${featureId} based on human feedback.
40
+ export const createTestCasesFeedbackFocusedPromptWithContext = (issueId, contextInfo) => {
41
+ return `Please update test cases for issue ID: ${issueId} based on human feedback.
42
42
 
43
43
  ${contextInfo}
44
44
 
@@ -53,7 +53,7 @@ This is a RE-RUN with human feedback. Existing test cases have already been crea
53
53
  4. **Keep all [APPROVED] test cases untouched** — they are immutable
54
54
 
55
55
  **What you MUST NOT do:**
56
- - Do NOT re-analyze the entire feature from scratch
56
+ - Do NOT re-analyze the entire issue from scratch
57
57
  - Do NOT create a full new set of test cases
58
58
  - Do NOT delete or recreate test cases just to "improve" them unless feedback specifically requests it
59
59
  - Do NOT ignore any feedback item
@@ -139,7 +139,7 @@ Return ONLY the JSON object:
139
139
  \`\`\`json
140
140
  {
141
141
  "analysis": {
142
- "feature_id": "...",
142
+ "issue_id": "...",
143
143
  "status": "success",
144
144
  "summary": "Improved test cases based on verification feedback",
145
145
  "created_test_cases": [
@@ -1,15 +1,15 @@
1
1
  import { type ProductInfo } from '../../api/products.js';
2
2
  import { type ChecklistPhaseContext } from '../../services/checklist.js';
3
- import type { FeatureInfo, TestCase, UserStory } from '../../types/features.js';
3
+ import type { IssueInfo, TestCase, UserStory } from '../../types/issues.js';
4
4
  export interface UserStoriesAnalysisContext {
5
- feature: FeatureInfo;
5
+ issue: IssueInfo;
6
6
  product: ProductInfo;
7
7
  existing_user_stories: UserStory[];
8
8
  existing_test_cases: TestCase[];
9
9
  }
10
- export declare function fetchUserStoriesAnalysisContext(featureId: string, verbose?: boolean): Promise<UserStoriesAnalysisContext>;
11
- export declare function prepareUserStoriesAnalysisContext(featureId: string, checklistContext: ChecklistPhaseContext | null | undefined, verbose?: boolean): Promise<{
12
- featureContext: UserStoriesAnalysisContext;
10
+ export declare function fetchUserStoriesAnalysisContext(issueId: string, verbose?: boolean): Promise<UserStoriesAnalysisContext>;
11
+ export declare function prepareUserStoriesAnalysisContext(issueId: string, checklistContext: ChecklistPhaseContext | null | undefined, verbose?: boolean): Promise<{
12
+ issueContext: UserStoriesAnalysisContext;
13
13
  analysisPrompt: string;
14
14
  hasFeedbacks: boolean;
15
15
  }>;
@@ -1,30 +1,30 @@
1
- import { getFeature, getTestCases, getUserStories, } from '../../api/features/index.js';
1
+ import { getIssue, getTestCases, getUserStories, } from '../../api/issues/index.js';
2
2
  import { getProduct } from '../../api/products.js';
3
3
  import { formatChecklistsForContext, } from '../../services/checklist.js';
4
4
  import { formatFeedbacksForContext, getFeedbacksForPhase, } from '../../services/feedbacks.js';
5
5
  import { logError, logInfo } from '../../utils/logger.js';
6
6
  import { formatUserStoriesAnalysisContext } from './formatters.js';
7
7
  import { createUserStoriesAnalysisPromptWithContext, createUserStoriesFeedbackFocusedPromptWithContext, } from './prompts.js';
8
- export async function fetchUserStoriesAnalysisContext(featureId, verbose) {
8
+ export async function fetchUserStoriesAnalysisContext(issueId, verbose) {
9
9
  try {
10
10
  if (verbose) {
11
- logInfo(`Fetching user stories analysis context for feature: ${featureId}`);
11
+ logInfo(`Fetching user stories analysis context for issue: ${issueId}`);
12
12
  }
13
- const [feature, existingUserStories, existingTestCases] = await Promise.all([
14
- getFeature(featureId, verbose),
15
- getUserStories(featureId, verbose),
16
- getTestCases(featureId, verbose),
13
+ const [issue, existingUserStories, existingTestCases] = await Promise.all([
14
+ getIssue(issueId, verbose),
15
+ getUserStories(issueId, verbose),
16
+ getTestCases(issueId, verbose),
17
17
  ]);
18
- const product = await getProduct(feature.product_id, verbose);
18
+ const product = await getProduct(issue.product_id, verbose);
19
19
  if (verbose) {
20
20
  logInfo(`✅ User stories analysis context fetched successfully:`);
21
- logInfo(` Feature: ${feature.name}`);
21
+ logInfo(` Issue: ${issue.name}`);
22
22
  logInfo(` Product: ${product.name}`);
23
23
  logInfo(` Existing User Stories: ${existingUserStories.length}`);
24
24
  logInfo(` Existing Test Cases: ${existingTestCases.length}`);
25
25
  }
26
26
  return {
27
- feature,
27
+ issue,
28
28
  product,
29
29
  existing_user_stories: existingUserStories,
30
30
  existing_test_cases: existingTestCases,
@@ -36,12 +36,12 @@ export async function fetchUserStoriesAnalysisContext(featureId, verbose) {
36
36
  throw new Error(`Context fetch failed: ${errorMessage}`);
37
37
  }
38
38
  }
39
- export async function prepareUserStoriesAnalysisContext(featureId, checklistContext, verbose) {
39
+ export async function prepareUserStoriesAnalysisContext(issueId, checklistContext, verbose) {
40
40
  if (verbose) {
41
41
  logInfo('Fetching user stories analysis context via MCP endpoints...');
42
42
  }
43
- const featureContext = await fetchUserStoriesAnalysisContext(featureId, verbose);
44
- const { content: contextInfo, downloadedImages } = await formatUserStoriesAnalysisContext(featureContext);
43
+ const issueContext = await fetchUserStoriesAnalysisContext(issueId, verbose);
44
+ const { content: contextInfo, downloadedImages } = await formatUserStoriesAnalysisContext(issueContext);
45
45
  if (verbose && downloadedImages.length > 0) {
46
46
  logInfo(`Downloaded ${downloadedImages.length} images for Claude Code:`);
47
47
  downloadedImages.forEach((img) => {
@@ -52,7 +52,7 @@ export async function prepareUserStoriesAnalysisContext(featureId, checklistCont
52
52
  let hasFeedbacks = false;
53
53
  // Add feedbacks context
54
54
  try {
55
- const feedbacksContext = await getFeedbacksForPhase({ featureId, verbose }, 'user-stories-analysis');
55
+ const feedbacksContext = await getFeedbacksForPhase({ issueId, verbose }, 'user-stories-analysis');
56
56
  if (feedbacksContext.feedbacks.length > 0) {
57
57
  hasFeedbacks = true;
58
58
  const feedbacksInfo = await formatFeedbacksForContext(feedbacksContext);
@@ -75,12 +75,12 @@ export async function prepareUserStoriesAnalysisContext(featureId, checklistCont
75
75
  logInfo(`Added ${checklistContext.checklists.length} checklists to analysis context`);
76
76
  }
77
77
  }
78
- const hasExistingArtifacts = featureContext.existing_user_stories.length > 0;
78
+ const hasExistingArtifacts = issueContext.existing_user_stories.length > 0;
79
79
  const analysisPrompt = hasFeedbacks && hasExistingArtifacts
80
- ? createUserStoriesFeedbackFocusedPromptWithContext(featureId, finalContextInfo)
81
- : createUserStoriesAnalysisPromptWithContext(featureId, finalContextInfo);
80
+ ? createUserStoriesFeedbackFocusedPromptWithContext(issueId, finalContextInfo)
81
+ : createUserStoriesAnalysisPromptWithContext(issueId, finalContextInfo);
82
82
  if (verbose && hasFeedbacks && hasExistingArtifacts) {
83
83
  logInfo('Using feedback-focused prompt (re-run with human feedbacks detected)');
84
84
  }
85
- return { featureContext, analysisPrompt, hasFeedbacks };
85
+ return { issueContext, analysisPrompt, hasFeedbacks };
86
86
  }
@@ -1,18 +1,18 @@
1
1
  import { formatUserStories } from '../../utils/formatters.js';
2
2
  import { downloadImagesForClaudeCode, } from '../../utils/image-downloader.js';
3
3
  export async function formatUserStoriesAnalysisContext(context) {
4
- const { processedMarkdown, downloadedImages } = await downloadImagesForClaudeCode(context.feature.description || 'No description provided', context.feature.id);
4
+ const { processedMarkdown, downloadedImages } = await downloadImagesForClaudeCode(context.issue.description || 'No description provided', context.issue.id);
5
5
  const content = `# User Stories Analysis Context
6
6
 
7
- ## Feature Information
8
- - **ID**: ${context.feature.id}
9
- - **Name**: ${context.feature.name}
7
+ ## Issue Information
8
+ - **ID**: ${context.issue.id}
9
+ - **Name**: ${context.issue.name}
10
10
  - **Description**:
11
11
  ${processedMarkdown}
12
12
 
13
13
  ${downloadedImages.length > 0 ? '**IMPORTANT**: The description contains images that have been downloaded locally. Please use the Read tool to view these images to fully understand the requirements.' : ''}
14
14
 
15
- - **Current Status**: ${context.feature.status}
15
+ - **Current Status**: ${context.issue.status}
16
16
 
17
17
  ## Product Information
18
18
  - **Product**: ${context.product.name}
@@ -23,10 +23,10 @@ ${downloadedImages.length > 0 ? '**IMPORTANT**: The description contains images
23
23
  ${formatUserStories(context.existing_user_stories)}
24
24
 
25
25
  ## Current Technical Design
26
- ${context.feature.technical_design || 'No technical design available yet'}
26
+ ${context.issue.technical_design || 'No technical design available yet'}
27
27
 
28
28
  ---
29
29
 
30
- **Analysis Instructions**: Based on the above feature information and existing user stories, conduct comprehensive business analysis to create professional, detailed user stories that add business value.`;
30
+ **Analysis Instructions**: Based on the above issue information and existing user stories, conduct comprehensive business analysis to create professional, detailed user stories that add business value.`;
31
31
  return { content, downloadedImages };
32
32
  }
@@ -2,7 +2,7 @@ import { type ChecklistPhaseContext } from '../../services/checklist.js';
2
2
  import { type EdsgerConfig } from '../../types/index.js';
3
3
  import { type UserStoriesAnalysisResult } from './outcome.js';
4
4
  export interface UserStoriesAnalysisOptions {
5
- featureId: string;
5
+ issueId: string;
6
6
  verbose?: boolean;
7
7
  maxVerificationIterations?: number;
8
8
  }
@@ -1,24 +1,24 @@
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 { executeUserStoriesAnalysisQuery, parseAnalysisResult, } from './agent.js';
6
6
  import { prepareUserStoriesAnalysisContext } from './context.js';
7
7
  import { buildUserStoriesAnalysisResult, deleteSpecificUserStories, deleteUserStoryArtifacts, getAllDraftUserStoryIds, resetReadyUserStoriesToDraft, saveUserStoriesAsDraft, updateUserStoriesToReady, } from './outcome.js';
8
8
  import { createUserStoriesAnalysisSystemPrompt } from './prompts.js';
9
9
  // eslint-disable-next-line complexity
10
10
  export const analyseUserStories = async (options, config, checklistContext) => {
11
- const { featureId, verbose } = options;
11
+ const { issueId, verbose } = options;
12
12
  if (verbose) {
13
- logInfo(`Starting user stories analysis for feature ID: ${featureId}`);
13
+ logInfo(`Starting user stories analysis for issue ID: ${issueId}`);
14
14
  }
15
15
  try {
16
16
  // Reset pending_approval user stories to draft so AI can manage them on re-run
17
- const resetCount = await resetReadyUserStoriesToDraft(featureId, verbose);
17
+ const resetCount = await resetReadyUserStoriesToDraft(issueId, verbose);
18
18
  if (verbose && resetCount > 0) {
19
19
  logInfo(`✅ Reset ${resetCount} pending_approval user stories to draft for re-analysis`);
20
20
  }
21
- const context = await prepareUserStoriesAnalysisContext(featureId, checklistContext, verbose);
21
+ const context = await prepareUserStoriesAnalysisContext(issueId, checklistContext, verbose);
22
22
  const systemPrompt = await createUserStoriesAnalysisSystemPrompt();
23
23
  const initialAnalysisPrompt = context.analysisPrompt;
24
24
  const maxIterations = options.maxVerificationIterations || 10;
@@ -37,8 +37,8 @@ export const analyseUserStories = async (options, config, checklistContext) => {
37
37
  logInfo(`\n🔄 Iteration ${currentIteration}/${maxIterations}: Improving user stories based on verification feedback...`);
38
38
  }
39
39
  if (currentIteration > 1) {
40
- await logFeaturePhaseEvent({
41
- featureId,
40
+ await logIssuePhaseEvent({
41
+ issueId,
42
42
  eventType: 'phase_started',
43
43
  phase: 'user_stories_analysis',
44
44
  result: 'info',
@@ -54,8 +54,8 @@ export const analyseUserStories = async (options, config, checklistContext) => {
54
54
  if (!structuredAnalysisResult) {
55
55
  break;
56
56
  }
57
- await logFeaturePhaseEvent({
58
- featureId,
57
+ await logIssuePhaseEvent({
58
+ issueId,
59
59
  eventType: 'phase_completed',
60
60
  phase: 'user_stories_analysis',
61
61
  result: 'success',
@@ -73,14 +73,14 @@ export const analyseUserStories = async (options, config, checklistContext) => {
73
73
  if (verbose) {
74
74
  logInfo('🗑️ Processing user story deletions identified by AI...');
75
75
  }
76
- await deleteSpecificUserStories(featureId, structuredAnalysisResult.deleted_user_story_ids || [], structuredAnalysisResult.deletion_reasons || {}, verbose);
76
+ await deleteSpecificUserStories(issueId, structuredAnalysisResult.deleted_user_story_ids || [], structuredAnalysisResult.deletion_reasons || {}, verbose);
77
77
  }
78
78
  // Save user stories as draft
79
- const { userStoryIds } = await saveUserStoriesAsDraft(featureId, structuredAnalysisResult.created_user_stories || [], verbose);
79
+ const { userStoryIds } = await saveUserStoriesAsDraft(issueId, structuredAnalysisResult.created_user_stories || [], verbose);
80
80
  currentDraftUserStoryIds = userStoryIds;
81
81
  // Coaching loop between execute and verify
82
82
  await runPhaseCoaching({
83
- featureId,
83
+ issueId,
84
84
  phase: 'user_stories_analysis',
85
85
  phaseResult: structuredAnalysisResult,
86
86
  checklistItems: extractChecklistItems(checklistContext),
@@ -88,7 +88,7 @@ export const analyseUserStories = async (options, config, checklistContext) => {
88
88
  const parsed = parseAnalysisResult(responseText);
89
89
  if (parsed.analysis) {
90
90
  await deleteUserStoryArtifacts(currentDraftUserStoryIds, verbose);
91
- const { userStoryIds: newUserStoryIds } = await saveUserStoriesAsDraft(featureId, parsed.analysis.created_user_stories || [], verbose);
91
+ const { userStoryIds: newUserStoryIds } = await saveUserStoriesAsDraft(issueId, parsed.analysis.created_user_stories || [], verbose);
92
92
  currentDraftUserStoryIds = newUserStoryIds;
93
93
  structuredAnalysisResult = parsed.analysis;
94
94
  }
@@ -105,11 +105,11 @@ export const analyseUserStories = async (options, config, checklistContext) => {
105
105
  created_test_cases: [],
106
106
  },
107
107
  checklistContext: checklistContext || null,
108
- context: context.featureContext,
108
+ context: context.issueContext,
109
109
  config,
110
110
  currentIteration,
111
111
  maxIterations,
112
- featureId,
112
+ issueId,
113
113
  verbose,
114
114
  });
115
115
  ({ verificationResult } = verificationCycle);
@@ -118,7 +118,7 @@ export const analyseUserStories = async (options, config, checklistContext) => {
118
118
  logInfo('✅ Verification passed! Updating all draft user stories to pending_approval status...');
119
119
  }
120
120
  // Update ALL remaining draft stories (both kept old ones and newly created)
121
- const allDraftIds = await getAllDraftUserStoryIds(featureId, verbose);
121
+ const allDraftIds = await getAllDraftUserStoryIds(issueId, verbose);
122
122
  await updateUserStoriesToReady(allDraftIds, verbose);
123
123
  break;
124
124
  }
@@ -143,7 +143,7 @@ export const analyseUserStories = async (options, config, checklistContext) => {
143
143
  if (!checklistContext ||
144
144
  checklistContext.checklists.length === 0 ||
145
145
  !verificationResult) {
146
- const allDraftIds = await getAllDraftUserStoryIds(featureId, verbose);
146
+ const allDraftIds = await getAllDraftUserStoryIds(issueId, verbose);
147
147
  if (allDraftIds.length > 0) {
148
148
  if (verbose) {
149
149
  logInfo('✅ No checklist verification needed. Updating all draft user stories to pending_approval status...');
@@ -159,14 +159,14 @@ export const analyseUserStories = async (options, config, checklistContext) => {
159
159
  logError(` Draft user stories (${currentDraftUserStoryIds.length}) kept for manual review`);
160
160
  throw new Error(`Checklist verification failed after ${currentIteration} iterations`);
161
161
  }
162
- return buildUserStoriesAnalysisResult(featureId, context.featureContext, structuredAnalysisResult, currentIteration);
162
+ return buildUserStoriesAnalysisResult(issueId, context.issueContext, structuredAnalysisResult, currentIteration);
163
163
  }
164
164
  catch (error) {
165
165
  logError(`User stories analysis failed: ${error instanceof Error ? error.message : String(error)}`);
166
166
  return {
167
- featureId,
167
+ issueId,
168
168
  productInfo: null,
169
- featureInfo: null,
169
+ issueInfo: null,
170
170
  existingUserStories: [],
171
171
  createdUserStories: [],
172
172
  summary: `Analysis failed: ${error instanceof Error ? error.message : String(error)}`,
@@ -1,16 +1,16 @@
1
1
  import { type UserStoriesAnalysisContext } from './context.js';
2
- export declare function resetReadyUserStoriesToDraft(featureId: string, verbose?: boolean): Promise<number>;
3
- export declare function getAllDraftUserStoryIds(featureId: string, verbose?: boolean): Promise<string[]>;
2
+ export declare function resetReadyUserStoriesToDraft(issueId: string, verbose?: boolean): Promise<number>;
3
+ export declare function getAllDraftUserStoryIds(issueId: string, verbose?: boolean): Promise<string[]>;
4
4
  export declare function deleteUserStoryArtifacts(userStoryIds: string[], verbose?: boolean): Promise<void>;
5
- export declare function deleteSpecificUserStories(featureId: string, deletedUserStoryIds: string[], deletionReasons: Record<string, string>, verbose?: boolean): Promise<void>;
5
+ export declare function deleteSpecificUserStories(issueId: string, deletedUserStoryIds: string[], deletionReasons: Record<string, string>, verbose?: boolean): Promise<void>;
6
6
  export declare function updateUserStoriesToReady(userStoryIds: string[], verbose?: boolean): Promise<void>;
7
- export declare function saveUserStoriesAsDraft(featureId: string, createdUserStories: any[], verbose?: boolean): Promise<{
7
+ export declare function saveUserStoriesAsDraft(issueId: string, createdUserStories: any[], verbose?: boolean): Promise<{
8
8
  userStoryIds: string[];
9
9
  }>;
10
10
  export interface UserStoriesAnalysisResult {
11
- featureId: string;
11
+ issueId: string;
12
12
  productInfo: unknown;
13
- featureInfo: unknown;
13
+ issueInfo: unknown;
14
14
  existingUserStories: any[];
15
15
  createdUserStories: any[];
16
16
  summary: string;
@@ -24,4 +24,4 @@ export interface UserStoriesAnalysisResult {
24
24
  deletion_reasons?: Record<string, string>;
25
25
  };
26
26
  }
27
- export declare function buildUserStoriesAnalysisResult(featureId: string, context: UserStoriesAnalysisContext, structuredAnalysisResult: any, currentIteration: number): UserStoriesAnalysisResult;
27
+ export declare function buildUserStoriesAnalysisResult(issueId: string, context: UserStoriesAnalysisContext, structuredAnalysisResult: any, currentIteration: number): UserStoriesAnalysisResult;
@@ -1,8 +1,8 @@
1
- import { batchDeleteUserStories, batchUpdateUserStoryStatus, getUserStories, } from '../../api/features/index.js';
1
+ import { batchDeleteUserStories, batchUpdateUserStoryStatus, 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
- export async function resetReadyUserStoriesToDraft(featureId, verbose) {
5
- const stories = await getUserStories(featureId, false);
4
+ export async function resetReadyUserStoriesToDraft(issueId, verbose) {
5
+ const stories = await getUserStories(issueId, false);
6
6
  const readyStoryIds = stories
7
7
  .filter((story) => story.status === 'pending_approval')
8
8
  .map((story) => story.id);
@@ -15,13 +15,13 @@ export async function resetReadyUserStoriesToDraft(featureId, verbose) {
15
15
  await batchUpdateUserStoryStatus(readyStoryIds, 'draft', verbose);
16
16
  return readyStoryIds.length;
17
17
  }
18
- export async function getAllDraftUserStoryIds(featureId, verbose) {
19
- const stories = await getUserStories(featureId, false);
18
+ export async function getAllDraftUserStoryIds(issueId, verbose) {
19
+ const stories = await getUserStories(issueId, false);
20
20
  const draftIds = stories
21
21
  .filter((story) => story.status === 'draft')
22
22
  .map((story) => story.id);
23
23
  if (verbose) {
24
- logInfo(`Found ${draftIds.length} draft user stories for feature`);
24
+ logInfo(`Found ${draftIds.length} draft user stories for issue`);
25
25
  }
26
26
  return draftIds;
27
27
  }
@@ -37,8 +37,8 @@ function isValidUUID(id) {
37
37
  const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
38
38
  return uuidRegex.test(id);
39
39
  }
40
- export async function deleteSpecificUserStories(featureId, deletedUserStoryIds, deletionReasons, verbose) {
41
- const currentUserStories = await getUserStories(featureId, false);
40
+ export async function deleteSpecificUserStories(issueId, deletedUserStoryIds, deletionReasons, verbose) {
41
+ const currentUserStories = await getUserStories(issueId, false);
42
42
  const userStoryStatusMap = new Map(currentUserStories.map((story) => [story.id, story.status]));
43
43
  const validUserStoryIds = deletedUserStoryIds.filter((id) => {
44
44
  if (!isValidUUID(id)) {
@@ -75,7 +75,7 @@ export async function updateUserStoriesToReady(userStoryIds, verbose) {
75
75
  await batchUpdateUserStoryStatus(userStoryIds, 'pending_approval', verbose);
76
76
  }
77
77
  }
78
- export async function saveUserStoriesAsDraft(featureId,
78
+ export async function saveUserStoriesAsDraft(issueId,
79
79
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
80
  createdUserStories, verbose) {
81
81
  const userStoryIds = [];
@@ -85,7 +85,7 @@ createdUserStories, verbose) {
85
85
  }
86
86
  try {
87
87
  const result = (await callMcpEndpoint('user_stories/create', {
88
- feature_id: featureId,
88
+ issue_id: issueId,
89
89
  user_stories: createdUserStories.map((story) => ({
90
90
  title: story.title,
91
91
  description: story.description,
@@ -108,14 +108,14 @@ createdUserStories, verbose) {
108
108
  }
109
109
  return { userStoryIds };
110
110
  }
111
- export function buildUserStoriesAnalysisResult(featureId, context,
111
+ export function buildUserStoriesAnalysisResult(issueId, context,
112
112
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
113
113
  structuredAnalysisResult, currentIteration) {
114
114
  const { created_user_stories, deleted_user_story_ids, deletion_reasons, checklist_results, checklist_item_results, } = structuredAnalysisResult;
115
115
  return {
116
- featureId,
116
+ issueId,
117
117
  productInfo: context.product,
118
- featureInfo: context.feature,
118
+ issueInfo: context.issue,
119
119
  existingUserStories: context.existing_user_stories.map((story) => ({
120
120
  ...story,
121
121
  status: story.status === 'pending_approval' ? 'pending_approval' : 'draft',
@@ -1,7 +1,7 @@
1
- import { type ChecklistVerificationResult } from '../feature-analysis-verification/agent.js';
1
+ import { type ChecklistVerificationResult } from '../issue-analysis-verification/agent.js';
2
2
  export declare const createUserStoriesAnalysisSystemPrompt: (projectDir?: string) => Promise<string>;
3
- export declare const createUserStoriesAnalysisPromptWithContext: (featureId: string, contextInfo: string) => string;
4
- export declare const createUserStoriesFeedbackFocusedPromptWithContext: (featureId: string, contextInfo: string) => string;
3
+ export declare const createUserStoriesAnalysisPromptWithContext: (issueId: string, contextInfo: string) => string;
4
+ export declare const createUserStoriesFeedbackFocusedPromptWithContext: (issueId: string, contextInfo: string) => string;
5
5
  export declare const createUserStoriesImprovementPrompt: (verificationResult: ChecklistVerificationResult, previousAnalysis: {
6
6
  created_user_stories: Record<string, unknown>[];
7
7
  }) => string;
@@ -9,8 +9,8 @@ export const createUserStoriesAnalysisSystemPrompt = async (projectDir) => {
9
9
  }
10
10
  return `${skill.prompt}\n\n${OUTPUT_CONTRACTS['user-stories-analysis']}`;
11
11
  };
12
- export const createUserStoriesAnalysisPromptWithContext = (featureId, contextInfo) => {
13
- return `Please create comprehensive, professional user stories for feature ID: ${featureId}
12
+ export const createUserStoriesAnalysisPromptWithContext = (issueId, contextInfo) => {
13
+ return `Please create comprehensive, professional user stories for issue ID: ${issueId}
14
14
 
15
15
  ${contextInfo}
16
16
 
@@ -18,11 +18,11 @@ ${contextInfo}
18
18
 
19
19
  Follow this systematic approach:
20
20
 
21
- 1. **Deeply Understand the Feature**: Read the feature description, product context, and any provided images carefully. Understand the full scope of what this feature needs to accomplish.
21
+ 1. **Deeply Understand the Issue**: Read the issue description, product context, and any provided images carefully. Understand the full scope of what this issue needs to accomplish.
22
22
 
23
- 2. **Identify All User Personas**: List every type of user who will interact with this feature (e.g., admin, manager, regular user, analyst, coach, etc.)
23
+ 2. **Identify All User Personas**: List every type of user who will interact with this issue (e.g., admin, manager, regular user, analyst, coach, etc.)
24
24
 
25
- 3. **Map Functional Areas**: Group the feature's functionality into logical categories (e.g., "Core Interface & Navigation", "Data Display & Visualization", "Configuration & Settings", "Notifications & Alerts")
25
+ 3. **Map Functional Areas**: Group the issue's functionality into logical categories (e.g., "Core Interface & Navigation", "Data Display & Visualization", "Configuration & Settings", "Notifications & Alerts")
26
26
 
27
27
  4. **Review Existing Stories**: Check existing user stories for:
28
28
  - What's already well-covered
@@ -42,7 +42,7 @@ Follow this systematic approach:
42
42
  - Happy paths AND edge cases
43
43
  - Error states and graceful degradation
44
44
  - Accessibility considerations
45
- - Integration with existing features
45
+ - Integration with existing issues
46
46
 
47
47
  7. **Output Results**: Return your analysis in the required JSON format
48
48
 
@@ -56,8 +56,8 @@ Follow this systematic approach:
56
56
 
57
57
  Begin your systematic analysis based on the above context.`;
58
58
  };
59
- export const createUserStoriesFeedbackFocusedPromptWithContext = (featureId, contextInfo) => {
60
- return `Please update user stories for feature ID: ${featureId} based on human feedback.
59
+ export const createUserStoriesFeedbackFocusedPromptWithContext = (issueId, contextInfo) => {
60
+ return `Please update user stories for issue ID: ${issueId} based on human feedback.
61
61
 
62
62
  ${contextInfo}
63
63
 
@@ -72,7 +72,7 @@ This is a RE-RUN with human feedback. Existing user stories have already been cr
72
72
  4. **Keep all [APPROVED] stories untouched** — they are immutable
73
73
 
74
74
  **What you MUST NOT do:**
75
- - Do NOT re-analyze the entire feature from scratch
75
+ - Do NOT re-analyze the entire issue from scratch
76
76
  - Do NOT create a full new set of user stories
77
77
  - Do NOT delete or recreate stories just to "improve" them unless feedback specifically requests it
78
78
  - Do NOT ignore any feedback item
@@ -161,7 +161,7 @@ Return ONLY the JSON object. Do NOT include any text before or after the JSON.
161
161
  \`\`\`json
162
162
  {
163
163
  "analysis": {
164
- "feature_id": "...",
164
+ "issue_id": "...",
165
165
  "status": "success",
166
166
  "summary": "Improved user stories based on verification feedback",
167
167
  "id_prefix": "XX",
@@ -1,25 +1,25 @@
1
1
  /**
2
- * Feature Audit Logs Service
3
- * Provides functions to log feature lifecycle events to the database
2
+ * Issue Audit Logs Service
3
+ * Provides functions to log issue lifecycle events to the database
4
4
  */
5
5
  export interface LogPhaseEventParams {
6
- featureId: string;
6
+ issueId: string;
7
7
  eventType: 'phase_started' | 'phase_completed' | 'phase_failed' | 'autonomous_iteration_completed' | 'autonomous_iteration_failed' | 'hook_started' | 'hook_completed' | 'hook_failed';
8
- phase: 'feature_analysis' | 'user_stories_analysis' | 'test_cases_analysis' | 'technical_design' | 'branch_planning' | 'code_implementation' | 'pr_splitting' | 'pr_execution' | 'functional_testing' | 'pull_request' | 'code_review' | 'code_refine' | 'code_refine_verification' | 'autonomous' | (string & {});
8
+ phase: 'issue_analysis' | 'user_stories_analysis' | 'test_cases_analysis' | 'technical_design' | 'branch_planning' | 'code_implementation' | 'pr_splitting' | 'pr_execution' | 'functional_testing' | 'pull_request' | 'code_review' | 'code_refine' | 'code_refine_verification' | 'autonomous' | (string & {});
9
9
  result?: 'success' | 'error' | 'warning' | 'info';
10
10
  metadata?: Record<string, unknown>;
11
11
  errorMessage?: string;
12
12
  }
13
13
  export interface LogChecklistEventParams {
14
- featureId: string;
14
+ issueId: string;
15
15
  eventType: 'checklist_validated' | 'checklist_verified';
16
16
  checklistId: string;
17
17
  result?: 'success' | 'error' | 'warning' | 'info';
18
18
  metadata?: Record<string, unknown>;
19
19
  }
20
20
  export interface LogVerificationEventParams {
21
- featureId: string;
22
- phase: 'feature_analysis' | 'user_stories_analysis' | 'test_cases_analysis' | 'technical_design' | 'branch_planning' | 'code_implementation' | 'pr_splitting' | 'pr_execution' | 'functional_testing' | 'pull_request' | 'code_review' | 'code_refine' | 'code_refine_verification';
21
+ issueId: string;
22
+ phase: 'issue_analysis' | 'user_stories_analysis' | 'test_cases_analysis' | 'technical_design' | 'branch_planning' | 'code_implementation' | 'pr_splitting' | 'pr_execution' | 'functional_testing' | 'pull_request' | 'code_review' | 'code_refine' | 'code_refine_verification';
23
23
  iteration: number;
24
24
  result: 'success' | 'error';
25
25
  verificationData: {
@@ -62,12 +62,12 @@ export interface LogVerificationEventParams {
62
62
  /**
63
63
  * Log a phase event (start, completion, or failure)
64
64
  */
65
- export declare function logFeaturePhaseEvent(params: LogPhaseEventParams, verbose?: boolean): Promise<string | null>;
65
+ export declare function logIssuePhaseEvent(params: LogPhaseEventParams, verbose?: boolean): Promise<string | null>;
66
66
  /**
67
67
  * Log a checklist validation event
68
68
  */
69
- export declare function logFeatureChecklistEvent(params: LogChecklistEventParams, verbose?: boolean): Promise<string | null>;
69
+ export declare function logIssueChecklistEvent(params: LogChecklistEventParams, verbose?: boolean): Promise<string | null>;
70
70
  /**
71
71
  * Log a verification event (dual-agent verification result)
72
72
  */
73
- export declare function logFeatureVerificationEvent(params: LogVerificationEventParams, verbose?: boolean): Promise<string | null>;
73
+ export declare function logIssueVerificationEvent(params: LogVerificationEventParams, verbose?: boolean): Promise<string | null>;
@@ -1,16 +1,16 @@
1
1
  /**
2
- * Feature Audit Logs Service
3
- * Provides functions to log feature lifecycle events to the database
2
+ * Issue Audit Logs Service
3
+ * Provides functions to log issue lifecycle events to the database
4
4
  */
5
5
  import { callMcpEndpoint } from '../api/mcp-client.js';
6
6
  import { logError, logInfo } from '../utils/logger.js';
7
7
  /**
8
8
  * Log a phase event (start, completion, or failure)
9
9
  */
10
- export async function logFeaturePhaseEvent(params, verbose) {
10
+ export async function logIssuePhaseEvent(params, verbose) {
11
11
  try {
12
- const result = await callMcpEndpoint('feature_audit_logs/create', {
13
- feature_id: params.featureId,
12
+ const result = await callMcpEndpoint('issue_audit_logs/create', {
13
+ issue_id: params.issueId,
14
14
  event_type: params.eventType,
15
15
  phase: params.phase,
16
16
  source: 'pipeline',
@@ -25,7 +25,7 @@ export async function logFeaturePhaseEvent(params, verbose) {
25
25
  if (params.eventType === 'phase_completed') {
26
26
  try {
27
27
  await callMcpEndpoint('notifications/send_phase_completion_email', {
28
- feature_id: params.featureId,
28
+ issue_id: params.issueId,
29
29
  phase: params.phase,
30
30
  result: params.result || 'success',
31
31
  metadata: params.metadata,
@@ -55,10 +55,10 @@ export async function logFeaturePhaseEvent(params, verbose) {
55
55
  /**
56
56
  * Log a checklist validation event
57
57
  */
58
- export async function logFeatureChecklistEvent(params, verbose) {
58
+ export async function logIssueChecklistEvent(params, verbose) {
59
59
  try {
60
- const result = await callMcpEndpoint('feature_audit_logs/create', {
61
- feature_id: params.featureId,
60
+ const result = await callMcpEndpoint('issue_audit_logs/create', {
61
+ issue_id: params.issueId,
62
62
  event_type: params.eventType,
63
63
  source: 'pipeline',
64
64
  result: params.result || 'success',
@@ -84,13 +84,13 @@ export async function logFeatureChecklistEvent(params, verbose) {
84
84
  /**
85
85
  * Log a verification event (dual-agent verification result)
86
86
  */
87
- export async function logFeatureVerificationEvent(params, verbose) {
87
+ export async function logIssueVerificationEvent(params, verbose) {
88
88
  try {
89
89
  const eventType = params.result === 'success'
90
90
  ? 'verification_passed'
91
91
  : 'verification_failed';
92
- const result = await callMcpEndpoint('feature_audit_logs/create', {
93
- feature_id: params.featureId,
92
+ const result = await callMcpEndpoint('issue_audit_logs/create', {
93
+ issue_id: params.issueId,
94
94
  event_type: eventType,
95
95
  phase: params.phase,
96
96
  source: 'pipeline',