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
@@ -6,14 +6,14 @@
6
6
  * ensuring json-extractor.ts and llm-responses.ts can always parse the output.
7
7
  */
8
8
  export const OUTPUT_CONTRACTS = {
9
- 'feature-analysis': `
9
+ 'issue-analysis': `
10
10
  **CRITICAL - Result Format**:
11
11
  You MUST return ONLY a JSON object with your analysis results. Do NOT include any explanatory text before or after the JSON. Return ONLY the JSON in this EXACT format:
12
12
 
13
13
  \`\`\`json
14
14
  {
15
15
  "analysis": {
16
- "feature_id": "FEATURE_ID_PLACEHOLDER",
16
+ "issue_id": "ISSUE_ID_PLACEHOLDER",
17
17
  "status": "success",
18
18
  "summary": "Brief summary of analysis and what was accomplished",
19
19
  "created_user_stories": [
@@ -60,7 +60,7 @@ You MUST return ONLY a JSON object with your analysis results. Do NOT include an
60
60
  "notes": "Optional notes about this specific checklist item"
61
61
  }
62
62
  ],
63
- "recommendations": "Additional recommendations for the feature"
63
+ "recommendations": "Additional recommendations for the issue"
64
64
  }
65
65
  }
66
66
  \`\`\`
@@ -87,7 +87,7 @@ deleted_test_case_ids: ["Duplicate test case", "Similar test"] // WRONG - these
87
87
  - The "differentiation" field is MANDATORY for every new user story and test case
88
88
  - You MUST explain WHY this item is NOT a duplicate of existing items
89
89
  - Reference specific existing item titles/names when explaining the difference
90
- - If there are no existing items, write: "First item for this feature - no existing items to compare"
90
+ - If there are no existing items, write: "First item for this issue - no existing items to compare"
91
91
  - If you cannot clearly articulate the difference, DO NOT create the item - it is likely a duplicate
92
92
  - Generic explanations like "covers different scenario" are NOT acceptable - be specific
93
93
  `,
@@ -98,7 +98,7 @@ You MUST return ONLY a JSON object. Do NOT include any explanatory text before o
98
98
  \`\`\`json
99
99
  {
100
100
  "analysis": {
101
- "feature_id": "FEATURE_ID_PLACEHOLDER",
101
+ "issue_id": "ISSUE_ID_PLACEHOLDER",
102
102
  "status": "success",
103
103
  "summary": "Brief summary of the user stories created and their coverage",
104
104
  "id_prefix": "XX",
@@ -139,7 +139,7 @@ MANDATORY: If checklists are provided, you MUST include checklist_item_results f
139
139
  **Differentiation Requirement**:
140
140
  - The "differentiation" field is MANDATORY for every new user story
141
141
  - You MUST explain WHY this item is NOT a duplicate of existing items
142
- - If there are no existing items, write: "First item for this feature"
142
+ - If there are no existing items, write: "First item for this issue"
143
143
  - Generic explanations are NOT acceptable - be specific
144
144
  `,
145
145
  'test-cases-analysis': `
@@ -149,7 +149,7 @@ You MUST return ONLY a JSON object. Do NOT include any explanatory text. Return
149
149
  \`\`\`json
150
150
  {
151
151
  "analysis": {
152
- "feature_id": "FEATURE_ID_PLACEHOLDER",
152
+ "issue_id": "ISSUE_ID_PLACEHOLDER",
153
153
  "status": "success",
154
154
  "summary": "Brief summary of test cases created and coverage",
155
155
  "created_test_cases": [
@@ -190,7 +190,7 @@ MANDATORY: If checklists are provided, you MUST include checklist_item_results f
190
190
  - You MUST explain WHY this test is NOT a duplicate
191
191
  - Generic explanations are NOT acceptable - be specific
192
192
  `,
193
- 'feature-analysis-verification': `
193
+ 'issue-analysis-verification': `
194
194
  **CRITICAL - Output Format**:
195
195
  You MUST respond with a JSON object in this EXACT format:
196
196
 
@@ -258,7 +258,7 @@ You MUST end your response with a JSON object containing the bug fix results in
258
258
  \`\`\`json
259
259
  {
260
260
  "fix_result": {
261
- "feature_id": "FEATURE_ID_PLACEHOLDER",
261
+ "issue_id": "ISSUE_ID_PLACEHOLDER",
262
262
  "attempt_number": 1,
263
263
  "summary": "Brief description of what was fixed",
264
264
  "files_modified": ["file1.ts", "file2.tsx"],
@@ -283,8 +283,8 @@ You MUST end your response with a JSON object containing the test results in thi
283
283
  \`\`\`json
284
284
  {
285
285
  "code_test_result": {
286
- "feature_id": "FEATURE_ID_PLACEHOLDER",
287
- "branch_name": "dev/feature-name",
286
+ "issue_id": "ISSUE_ID_PLACEHOLDER",
287
+ "branch_name": "dev/issue-name",
288
288
  "commit_hash": "abc123def456",
289
289
  "summary": "Brief description of tests written",
290
290
  "test_files_created": ["test-file1.test.ts", "test-file2.test.tsx"],
@@ -305,7 +305,7 @@ You MUST end your response with a JSON object containing the test results in thi
305
305
  \`\`\`json
306
306
  {
307
307
  "test_result": {
308
- "feature_id": "FEATURE_ID_PLACEHOLDER",
308
+ "issue_id": "ISSUE_ID_PLACEHOLDER",
309
309
  "test_run_id": "unique-test-run-id",
310
310
  "status": "passed",
311
311
  "summary": "Brief summary of testing results",
@@ -320,7 +320,7 @@ You MUST end your response with a JSON object containing the test results in thi
320
320
  "critical_issues_found": [],
321
321
  "non_critical_issues_found": [],
322
322
  "test_coverage": "Description of what functionality was tested",
323
- "recommendations": "Any recommendations for improving the feature"
323
+ "recommendations": "Any recommendations for improving the issue"
324
324
  }
325
325
  }
326
326
  \`\`\`
@@ -420,9 +420,9 @@ Return ONLY a JSON object. No text before or after.
420
420
  "en-US": {
421
421
  "app_name": "Product Name",
422
422
  "subtitle": "Short value proposition",
423
- "promotional_text": "Highlight a current promotion, new feature, or seasonal message (170 chars max)",
423
+ "promotional_text": "Highlight a current promotion, new issue, or seasonal message (170 chars max)",
424
424
  "short_description": "One-liner for Google Play (80 chars max)",
425
- "description": "Full store description with features and benefits",
425
+ "description": "Full store description with issues and benefits",
426
426
  "keywords": "keyword1,keyword2,keyword3",
427
427
  "whats_new": "Latest improvements and fixes",
428
428
  "primary_category": "Category",
@@ -431,7 +431,7 @@ Return ONLY a JSON object. No text before or after.
431
431
  },
432
432
  "screenshots": [
433
433
  {
434
- "feature_highlight": "Feature being showcased",
434
+ "feature_highlight": "Issue being showcased",
435
435
  "headline": "Bold 2-5 Word Headline",
436
436
  "subheadline": "Supporting detail line (optional)",
437
437
  "background_gradient": "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
@@ -502,10 +502,10 @@ You MUST return ONLY a JSON object. Do NOT include any text before or after the
502
502
  - "html_template": complete HTML page with inline styles, realistic data, professional design
503
503
  - Use modern CSS (flexbox, grid, gradients) for polished look
504
504
  - Include realistic mock data: real-looking names, dates, metrics, charts
505
- - Each template should visually represent the product's actual UI/features
505
+ - Each template should visually represent the product's actual UI/issues
506
506
  - "device_frame": choose the most appropriate device for each scene:
507
507
  - Use "macbook" for showcasing full desktop workflows or dashboards
508
- - Use "iphone" for mobile-first features or responsive design demos (set viewport_width: 390, viewport_height: 844)
508
+ - Use "iphone" for mobile-first issues or responsive design demos (set viewport_width: 390, viewport_height: 844)
509
509
  - Use "browser" (default) for web app screenshots with Chrome-style address bar
510
510
  - Mix device types within a video for variety (e.g., show desktop then mobile)
511
511
  - "frame_background": customize the gradient/color behind the device (e.g., "linear-gradient(135deg, #667eea 0%, #764ba2 100%)")
@@ -523,7 +523,7 @@ Return a JSON object inside a \`\`\`json code block with this exact structure:
523
523
  "report_type": "competitive",
524
524
  "title": "Competitive Intelligence Report — [Product Name] — [Date]",
525
525
  "summary": "2-3 sentence executive summary of key findings",
526
- "full_report": "Full markdown report with sections: Executive Summary, Competitor Overview, Feature Comparison, Pricing Comparison, Market Positioning, Threats & Opportunities, Recommendations",
526
+ "full_report": "Full markdown report with sections: Executive Summary, Competitor Overview, Issue Comparison, Pricing Comparison, Market Positioning, Threats & Opportunities, Recommendations",
527
527
  "key_findings": [
528
528
  {
529
529
  "finding": "Specific finding with evidence",
@@ -577,8 +577,8 @@ Return a JSON object inside a \`\`\`json code block with this exact structure:
577
577
  {
578
578
  "competitor_id": "UUID of the competitor (use the Competitor ID from context for confirmed competitors, or null for newly discovered)",
579
579
  "competitor_name": "Exact name as provided in context or discovered_competitors",
580
- "features": [{"name": "Feature", "description": "What it does", "is_new": false}],
581
- "pricing": {"tiers": [{"name": "Free", "price": "$0", "features": ["..."]}], "model": "freemium"},
580
+ "issues": [{"name": "Issue", "description": "What it does", "is_new": false}],
581
+ "pricing": {"tiers": [{"name": "Free", "price": "$0", "issues": ["..."]}], "model": "freemium"},
582
582
  "tech_stack": ["React", "Node.js"],
583
583
  "app_rating": 4.5,
584
584
  "app_review_count": 1234,
@@ -599,8 +599,8 @@ You MUST end your response with a JSON object containing the implementation resu
599
599
  \`\`\`json
600
600
  {
601
601
  "implementation_result": {
602
- "feature_id": "FEATURE_ID_PLACEHOLDER",
603
- "branch_name": "dev/feature-name",
602
+ "issue_id": "ISSUE_ID_PLACEHOLDER",
603
+ "branch_name": "dev/issue-name",
604
604
  "commit_hash": "abc123def456",
605
605
  "summary": "Brief description of what was implemented",
606
606
  "files_created": ["new-file1.ts", "new-file2.tsx"],
@@ -622,7 +622,7 @@ After creating all branches, respond with:
622
622
  {
623
623
  "execution_result": {
624
624
  "status": "success",
625
- "branches_created": ["pr/FEATURE_ID/1-desc", "pr/FEATURE_ID/2-desc"],
625
+ "branches_created": ["pr/ISSUE_ID/1-desc", "pr/ISSUE_ID/2-desc"],
626
626
  "summary": "Brief description of what was done"
627
627
  }
628
628
  }
@@ -634,8 +634,8 @@ If any branch fails, include the error but continue with remaining branches:
634
634
  {
635
635
  "execution_result": {
636
636
  "status": "partial",
637
- "branches_created": ["pr/FEATURE_ID/1-desc"],
638
- "branches_failed": [{"branch": "pr/FEATURE_ID/2-desc", "error": "..."}],
637
+ "branches_created": ["pr/ISSUE_ID/1-desc"],
638
+ "branches_failed": [{"branch": "pr/ISSUE_ID/2-desc", "error": "..."}],
639
639
  "summary": "..."
640
640
  }
641
641
  }
@@ -650,7 +650,7 @@ After updating all branches, respond with:
650
650
  {
651
651
  "execution_result": {
652
652
  "status": "success",
653
- "branches_updated": ["pr/FEATURE_ID/1-desc", "pr/FEATURE_ID/2-desc"],
653
+ "branches_updated": ["pr/ISSUE_ID/1-desc", "pr/ISSUE_ID/2-desc"],
654
654
  "summary": "Brief description of what was done"
655
655
  }
656
656
  }
@@ -663,7 +663,7 @@ You MUST return ONLY a JSON object with your technical design results. Do NOT in
663
663
  \`\`\`json
664
664
  {
665
665
  "technical_design_result": {
666
- "feature_id": "FEATURE_ID_PLACEHOLDER",
666
+ "issue_id": "ISSUE_ID_PLACEHOLDER",
667
667
  "status": "success",
668
668
  "summary": "Brief summary of what was accomplished",
669
669
  "technical_design": "The complete technical design document in markdown format",
@@ -691,8 +691,8 @@ You MUST end your response with a JSON object in this EXACT format:
691
691
  \`\`\`json
692
692
  {
693
693
  "autonomous_result": {
694
- "feature_id": "FEATURE_ID",
695
- "task_type": "feature|bugfix|refactor|test|docs|chore",
694
+ "issue_id": "ISSUE_ID",
695
+ "task_type": "issue|bugfix|refactor|test|docs|chore",
696
696
  "summary": "Brief description of what was done",
697
697
  "files_modified": ["file1.ts", "file2.tsx"],
698
698
  "commit_hash": "abc123..."
@@ -710,7 +710,7 @@ Return ONLY the JSON in this EXACT format:
710
710
  \`\`\`json
711
711
  {
712
712
  "branch_planning_result": {
713
- "feature_id": "FEATURE_ID",
713
+ "issue_id": "ISSUE_ID",
714
714
  "status": "success",
715
715
  "summary": "Brief summary of the branch planning",
716
716
  "total_branches": <number>,
@@ -719,7 +719,7 @@ Return ONLY the JSON in this EXACT format:
719
719
  {
720
720
  "name": "Short descriptive name",
721
721
  "description": "Detailed description of what this branch implements",
722
- "branch_name": "dev/FEATURE_ID/1-short-name",
722
+ "branch_name": "dev/ISSUE_ID/1-short-name",
723
723
  "depends_on_branch_name": null,
724
724
  "scope": [
725
725
  "List of specific items to implement"
@@ -729,7 +729,7 @@ Return ONLY the JSON in this EXACT format:
729
729
  ]
730
730
  }
731
731
  ],
732
- "rationale": "Explanation of why the feature was split this way"
732
+ "rationale": "Explanation of why the issue was split this way"
733
733
  }
734
734
  }
735
735
  \`\`\`
@@ -744,7 +744,7 @@ Return ONLY the JSON in this EXACT format:
744
744
  \`\`\`json
745
745
  {
746
746
  "pr_splitting_result": {
747
- "feature_id": "FEATURE_ID",
747
+ "issue_id": "ISSUE_ID",
748
748
  "status": "success",
749
749
  "summary": "Brief summary of the PR splitting strategy",
750
750
  "total_prs": <number>,
@@ -753,7 +753,7 @@ Return ONLY the JSON in this EXACT format:
753
753
  "sequence": 1,
754
754
  "name": "Short descriptive name",
755
755
  "description": "What this PR covers and why it's grouped this way",
756
- "branch_name": "pr/FEATURE_ID/1-short-name",
756
+ "branch_name": "pr/ISSUE_ID/1-short-name",
757
757
  "depends_on_branch_name": null,
758
758
  "files": [
759
759
  {"path": "src/db/users.ts", "change_type": "added"},
@@ -775,7 +775,7 @@ You MUST end your response with a JSON object containing the code refine results
775
775
  \`\`\`json
776
776
  {
777
777
  "refine_result": {
778
- "feature_id": "FEATURE_ID_PLACEHOLDER",
778
+ "issue_id": "ISSUE_ID_PLACEHOLDER",
779
779
  "summary": "Brief description of changes made",
780
780
  "files_modified": ["file1.ts", "file2.tsx"],
781
781
  "commits_created": 1,
@@ -798,7 +798,7 @@ You MUST end your response with a JSON object containing the code refine results
798
798
  \`\`\`json
799
799
  {
800
800
  "refine_result": {
801
- "feature_id": "FEATURE_ID_PLACEHOLDER",
801
+ "issue_id": "ISSUE_ID_PLACEHOLDER",
802
802
  "summary": "Brief description of changes made",
803
803
  "files_modified": ["file1.ts", "file2.tsx"],
804
804
  "commits_created": 1,
@@ -1,5 +1,5 @@
1
1
  import { type PullRequest } from '../../services/pull-requests.js';
2
- import type { FeatureInfo } from '../../types/features.js';
2
+ import type { IssueInfo } from '../../types/issues.js';
3
3
  import { type RepoForkInfo } from '../../utils/github-repo-info.js';
4
4
  export interface GitHubConfigInfo {
5
5
  configured: boolean;
@@ -13,7 +13,7 @@ export interface ChangedFileInfo {
13
13
  change_type: 'added' | 'modified' | 'deleted' | 'renamed';
14
14
  }
15
15
  export interface PRExecutionContext {
16
- feature: FeatureInfo;
16
+ issue: IssueInfo;
17
17
  pullRequests: PullRequest[];
18
18
  devBranchName: string;
19
19
  devBranchHeadSha: string;
@@ -27,4 +27,4 @@ export interface PRExecutionContext {
27
27
  /**
28
28
  * Fetch context for PR execution phase
29
29
  */
30
- export declare function fetchPRExecutionContext(featureId: string, verbose?: boolean): Promise<PRExecutionContext>;
30
+ export declare function fetchPRExecutionContext(issueId: string, verbose?: boolean): Promise<PRExecutionContext>;
@@ -1,16 +1,16 @@
1
1
  import { execFileSync, execSync } from 'child_process';
2
- import { getFeature } from '../../api/features/index.js';
3
2
  import { getGitHubConfig } from '../../api/github.js';
3
+ import { getIssue } from '../../api/issues/index.js';
4
4
  import { getPullRequests, } from '../../services/pull-requests.js';
5
5
  import { branchExists, remoteBranchExists, } from '../../utils/git-branch-manager.js';
6
6
  import { buildCredentialArgs } from '../../utils/git-push.js';
7
7
  import { getRepoForkInfo, } from '../../utils/github-repo-info.js';
8
8
  import { logError, logInfo } from '../../utils/logger.js';
9
9
  /**
10
- * Get the dev branch name for a feature
10
+ * Get the dev branch name for an issue
11
11
  */
12
- function getDevBranchName(featureId) {
13
- return `dev/${featureId}`;
12
+ function getDevBranchName(issueId) {
13
+ return `dev/${issueId}`;
14
14
  }
15
15
  /**
16
16
  * Get the HEAD SHA of a branch
@@ -109,17 +109,17 @@ function getLastSyncedCommit(pullRequests) {
109
109
  * Fetch context for PR execution phase
110
110
  */
111
111
  // eslint-disable-next-line complexity -- assembles context from many data sources with fallback handling
112
- export async function fetchPRExecutionContext(featureId, verbose) {
112
+ export async function fetchPRExecutionContext(issueId, verbose) {
113
113
  try {
114
114
  if (verbose) {
115
- logInfo(`Fetching PR execution context for feature: ${featureId}`);
115
+ logInfo(`Fetching PR execution context for issue: ${issueId}`);
116
116
  }
117
- const devBranchName = getDevBranchName(featureId);
117
+ const devBranchName = getDevBranchName(issueId);
118
118
  // Fetch GitHub config and data in parallel (need token before remote branch check)
119
- const [feature, pullRequests, githubConfig] = await Promise.all([
120
- getFeature(featureId, verbose),
121
- getPullRequests({ featureId, verbose }),
122
- getGitHubConfig(featureId, verbose),
119
+ const [issue, pullRequests, githubConfig] = await Promise.all([
120
+ getIssue(issueId, verbose),
121
+ getPullRequests({ issueId, verbose }),
122
+ getGitHubConfig(issueId, verbose),
123
123
  ]);
124
124
  // Fetch latest remote refs and fast-forward local main
125
125
  try {
@@ -147,7 +147,7 @@ export async function fetchPRExecutionContext(featureId, verbose) {
147
147
  const remoteExists = !localExists && remoteBranchExists(devBranchName, githubConfig.token);
148
148
  if (!localExists && !remoteExists) {
149
149
  throw new Error(`Development branch '${devBranchName}' does not exist. ` +
150
- `The feature must have code on the dev branch before PR execution.`);
150
+ `The issue must have code on the dev branch before PR execution.`);
151
151
  }
152
152
  // If branch only exists on remote, fetch it (using credential helper)
153
153
  if (!localExists && remoteExists) {
@@ -208,7 +208,7 @@ export async function fetchPRExecutionContext(featureId, verbose) {
208
208
  const changedFiles = getChangedFiles(diffBase, devRef);
209
209
  if (verbose) {
210
210
  logInfo(`✅ PR execution context fetched:`);
211
- logInfo(` Feature: ${feature.name}`);
211
+ logInfo(` Issue: ${issue.name}`);
212
212
  logInfo(` Dev Branch: ${devBranchName} (HEAD: ${devBranchHeadSha})`);
213
213
  logInfo(` PR Records: ${pullRequests.length}`);
214
214
  logInfo(` Mode: ${isIncrementalSync ? '🔄 Incremental sync' : '✨ First execution'}`);
@@ -217,7 +217,7 @@ export async function fetchPRExecutionContext(featureId, verbose) {
217
217
  logInfo(` GitHub: ${githubConfig.configured ? 'Configured' : 'Not configured'}`);
218
218
  }
219
219
  return {
220
- feature,
220
+ issue,
221
221
  pullRequests,
222
222
  devBranchName,
223
223
  devBranchHeadSha,
@@ -1,6 +1,6 @@
1
1
  import { type EdsgerConfig } from '../../types/index.js';
2
2
  export interface PRExecutionOptions {
3
- featureId: string;
3
+ issueId: string;
4
4
  verbose?: boolean;
5
5
  }
6
6
  /**
@@ -14,7 +14,7 @@ export interface PRExecutionOptions {
14
14
  *
15
15
  * GitHub PRs are created manually by the user via compare URLs in the UI.
16
16
  */
17
- export declare const executeFeaturePRs: (options: PRExecutionOptions, config: EdsgerConfig) => Promise<{
17
+ export declare const executeIssuePRs: (options: PRExecutionOptions, config: EdsgerConfig) => Promise<{
18
18
  status: "success" | "error";
19
19
  message?: string;
20
20
  summary?: string;
@@ -1,7 +1,7 @@
1
1
  import { query } from '@anthropic-ai/claude-agent-sdk';
2
2
  import { execSync } from 'child_process';
3
3
  import { DEFAULT_MODEL } from '../../constants.js';
4
- import { logFeaturePhaseEvent } from '../../services/audit-logs.js';
4
+ import { logIssuePhaseEvent } from '../../services/audit-logs.js';
5
5
  import { getPullRequests, } from '../../services/pull-requests.js';
6
6
  import { getCurrentBranch, returnToMainBranch, } from '../../utils/git-branch-manager.js';
7
7
  import { logDebug, logError, logInfo } from '../../utils/logger.js';
@@ -34,15 +34,15 @@ async function* prompt(executionPrompt) {
34
34
  * GitHub PRs are created manually by the user via compare URLs in the UI.
35
35
  */
36
36
  // eslint-disable-next-line complexity
37
- export const executeFeaturePRs = async (options, config) => {
38
- const { featureId, verbose } = options;
37
+ export const executeIssuePRs = async (options, config) => {
38
+ const { issueId, verbose } = options;
39
39
  if (verbose) {
40
- logInfo(`Starting PR execution for feature ID: ${featureId}`);
40
+ logInfo(`Starting PR execution for issue ID: ${issueId}`);
41
41
  }
42
42
  try {
43
43
  // Log phase start
44
- await logFeaturePhaseEvent({
45
- featureId,
44
+ await logIssuePhaseEvent({
45
+ issueId,
46
46
  eventType: 'phase_started',
47
47
  phase: 'pr_execution',
48
48
  result: 'info',
@@ -51,21 +51,21 @@ export const executeFeaturePRs = async (options, config) => {
51
51
  },
52
52
  }, verbose);
53
53
  // Fetch context
54
- const context = await fetchPRExecutionContext(featureId, verbose);
54
+ const context = await fetchPRExecutionContext(issueId, verbose);
55
55
  // Check if already fully synced
56
56
  if (context.isIncrementalSync &&
57
57
  context.lastSyncedCommit === context.devBranchHeadSha) {
58
58
  if (verbose) {
59
59
  logInfo('All PR branches are already synced to latest commit.');
60
60
  }
61
- return buildNoChangeResult(featureId, context.pullRequests.length);
61
+ return buildNoChangeResult(issueId, context.pullRequests.length);
62
62
  }
63
63
  // Check if there are any changed files (for incremental sync)
64
64
  if (context.isIncrementalSync && context.changedFiles.length === 0) {
65
65
  if (verbose) {
66
66
  logInfo('No new changes since last sync.');
67
67
  }
68
- return buildNoChangeResult(featureId, context.pullRequests.length);
68
+ return buildNoChangeResult(issueId, context.pullRequests.length);
69
69
  }
70
70
  // ======================================
71
71
  // Reconcile file assignments
@@ -91,11 +91,11 @@ export const executeFeaturePRs = async (options, config) => {
91
91
  }
92
92
  // Assign changed files not covered by any PR
93
93
  if (needsRefetch) {
94
- activePullRequests = await getPullRequests({ featureId, verbose });
94
+ activePullRequests = await getPullRequests({ issueId, verbose });
95
95
  }
96
96
  const assignedCount = await assignNewFilesToPRs(context.changedFiles, activePullRequests, verbose);
97
97
  if (assignedCount > 0) {
98
- activePullRequests = await getPullRequests({ featureId, verbose });
98
+ activePullRequests = await getPullRequests({ issueId, verbose });
99
99
  }
100
100
  }
101
101
  // ======================================
@@ -108,7 +108,7 @@ export const executeFeaturePRs = async (options, config) => {
108
108
  if (verbose) {
109
109
  logInfo('No eligible PRs to process — waiting for current PR to be merged or closed.');
110
110
  }
111
- return buildNoChangeResult(featureId, context.pullRequests.length);
111
+ return buildNoChangeResult(issueId, context.pullRequests.length);
112
112
  }
113
113
  // ======================================
114
114
  // Agent: Create/Update branches
@@ -129,9 +129,9 @@ export const executeFeaturePRs = async (options, config) => {
129
129
  let systemPrompt;
130
130
  let userPrompt;
131
131
  if (context.isIncrementalSync && context.lastSyncedCommit) {
132
- systemPrompt = await createIncrementalSyncSystemPrompt(featureId, context.devBranchName);
132
+ systemPrompt = await createIncrementalSyncSystemPrompt(issueId, context.devBranchName);
133
133
  userPrompt = createIncrementalSyncPrompt({
134
- featureId,
134
+ issueId,
135
135
  devBranchName: context.devBranchName,
136
136
  pullRequests: activePullRequests,
137
137
  lastSyncedCommit: context.lastSyncedCommit,
@@ -140,8 +140,8 @@ export const executeFeaturePRs = async (options, config) => {
140
140
  });
141
141
  }
142
142
  else {
143
- systemPrompt = await createPRExecutionSystemPrompt(featureId, context.devBranchName);
144
- userPrompt = createPRExecutionPrompt(featureId, context.devBranchName, activePullRequests);
143
+ systemPrompt = await createPRExecutionSystemPrompt(issueId, context.devBranchName);
144
+ userPrompt = createPRExecutionPrompt(issueId, context.devBranchName, activePullRequests);
145
145
  }
146
146
  // Execute agent query
147
147
  const agentResult = await executeAgentQuery(userPrompt, systemPrompt, config, verbose);
@@ -251,8 +251,8 @@ export const executeFeaturePRs = async (options, config) => {
251
251
  }
252
252
  }
253
253
  // Log phase completion
254
- await logFeaturePhaseEvent({
255
- featureId,
254
+ await logIssuePhaseEvent({
255
+ issueId,
256
256
  eventType: 'phase_completed',
257
257
  phase: 'pr_execution',
258
258
  result: 'success',
@@ -269,7 +269,7 @@ export const executeFeaturePRs = async (options, config) => {
269
269
  const summary = context.isIncrementalSync
270
270
  ? `Synced PR branches with latest changes from ${context.devBranchName}`
271
271
  : `Pushed ${executionSummary.branchesCreated} PR branches to remote`;
272
- const successResult = buildExecutionSuccessResult(featureId, executionSummary, summary);
272
+ const successResult = buildExecutionSuccessResult(issueId, executionSummary, summary);
273
273
  return {
274
274
  ...successResult,
275
275
  execution_session_id: agentResult.execution_session_id,
@@ -285,8 +285,8 @@ export const executeFeaturePRs = async (options, config) => {
285
285
  catch {
286
286
  // Best effort
287
287
  }
288
- await logFeaturePhaseEvent({
289
- featureId,
288
+ await logIssuePhaseEvent({
289
+ issueId,
290
290
  eventType: 'phase_failed',
291
291
  phase: 'pr_execution',
292
292
  result: 'error',
@@ -295,7 +295,7 @@ export const executeFeaturePRs = async (options, config) => {
295
295
  timestamp: new Date().toISOString(),
296
296
  },
297
297
  }, verbose);
298
- return buildExecutionErrorResult(featureId, errorMessage);
298
+ return buildExecutionErrorResult(issueId, errorMessage);
299
299
  }
300
300
  };
301
301
  /**
@@ -5,7 +5,7 @@ export interface PRExecutionSummary {
5
5
  failedBranches: string[];
6
6
  }
7
7
  export interface PRExecutionPhaseResult {
8
- featureId: string;
8
+ issueId: string;
9
9
  status: 'success' | 'error';
10
10
  summary: string;
11
11
  executionSummary?: PRExecutionSummary;
@@ -13,12 +13,12 @@ export interface PRExecutionPhaseResult {
13
13
  /**
14
14
  * Build a successful execution result
15
15
  */
16
- export declare function buildExecutionSuccessResult(featureId: string, executionSummary: PRExecutionSummary, summary: string): PRExecutionPhaseResult;
16
+ export declare function buildExecutionSuccessResult(issueId: string, executionSummary: PRExecutionSummary, summary: string): PRExecutionPhaseResult;
17
17
  /**
18
18
  * Build an error result
19
19
  */
20
- export declare function buildExecutionErrorResult(featureId: string, errorMessage: string): PRExecutionPhaseResult;
20
+ export declare function buildExecutionErrorResult(issueId: string, errorMessage: string): PRExecutionPhaseResult;
21
21
  /**
22
22
  * Build a no-change result
23
23
  */
24
- export declare function buildNoChangeResult(featureId: string, prCount: number): PRExecutionPhaseResult;
24
+ export declare function buildNoChangeResult(issueId: string, prCount: number): PRExecutionPhaseResult;
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * Build a successful execution result
3
3
  */
4
- export function buildExecutionSuccessResult(featureId, executionSummary, summary) {
4
+ export function buildExecutionSuccessResult(issueId, executionSummary, summary) {
5
5
  const details = executionSummary.branchesUpdated > 0
6
6
  ? `${executionSummary.branchesUpdated} branches updated`
7
7
  : `${executionSummary.branchesCreated} branches pushed`;
8
8
  return {
9
- featureId,
9
+ issueId,
10
10
  status: 'success',
11
11
  summary: `${summary} (${details})`,
12
12
  executionSummary,
@@ -15,9 +15,9 @@ export function buildExecutionSuccessResult(featureId, executionSummary, summary
15
15
  /**
16
16
  * Build an error result
17
17
  */
18
- export function buildExecutionErrorResult(featureId, errorMessage) {
18
+ export function buildExecutionErrorResult(issueId, errorMessage) {
19
19
  return {
20
- featureId,
20
+ issueId,
21
21
  status: 'error',
22
22
  summary: `PR execution failed: ${errorMessage}`,
23
23
  };
@@ -25,9 +25,9 @@ export function buildExecutionErrorResult(featureId, errorMessage) {
25
25
  /**
26
26
  * Build a no-change result
27
27
  */
28
- export function buildNoChangeResult(featureId, prCount) {
28
+ export function buildNoChangeResult(issueId, prCount) {
29
29
  return {
30
- featureId,
30
+ issueId,
31
31
  status: 'success',
32
32
  summary: `All ${prCount} PR branches are already synced to latest commit. No changes needed.`,
33
33
  };
@@ -3,20 +3,20 @@ import type { ChangedFileInfo } from './context.js';
3
3
  /**
4
4
  * Create the system prompt for branch creation and code splitting
5
5
  */
6
- export declare function createPRExecutionSystemPrompt(featureId: string, devBranchName: string, projectDir?: string): Promise<string>;
6
+ export declare function createPRExecutionSystemPrompt(issueId: string, devBranchName: string, projectDir?: string): Promise<string>;
7
7
  /**
8
8
  * Create the system prompt for incremental sync (re-runs)
9
9
  */
10
- export declare function createIncrementalSyncSystemPrompt(featureId: string, devBranchName: string, projectDir?: string): Promise<string>;
10
+ export declare function createIncrementalSyncSystemPrompt(issueId: string, devBranchName: string, projectDir?: string): Promise<string>;
11
11
  /**
12
12
  * Create the user prompt for first-time branch creation
13
13
  */
14
- export declare function createPRExecutionPrompt(featureId: string, devBranchName: string, pullRequests: PullRequest[]): string;
14
+ export declare function createPRExecutionPrompt(issueId: string, devBranchName: string, pullRequests: PullRequest[]): string;
15
15
  /**
16
16
  * Create the user prompt for incremental sync
17
17
  */
18
18
  export interface IncrementalSyncPromptOptions {
19
- featureId: string;
19
+ issueId: string;
20
20
  devBranchName: string;
21
21
  pullRequests: PullRequest[];
22
22
  lastSyncedCommit: string;