groundswell 0.0.2 → 1.0.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 (554) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -9
  3. package/dist/cache/cache-key.d.ts +86 -0
  4. package/dist/cache/cache-key.d.ts.map +1 -0
  5. package/dist/cache/cache-key.js +204 -0
  6. package/dist/cache/cache-key.js.map +1 -0
  7. package/dist/cache/cache.d.ts +104 -0
  8. package/dist/cache/cache.d.ts.map +1 -0
  9. package/dist/cache/cache.js +179 -0
  10. package/dist/cache/cache.js.map +1 -0
  11. package/{src/cache/index.ts → dist/cache/index.d.ts} +1 -1
  12. package/dist/cache/index.d.ts.map +1 -0
  13. package/dist/cache/index.js +6 -0
  14. package/dist/cache/index.js.map +1 -0
  15. package/dist/core/agent.d.ts +203 -0
  16. package/dist/core/agent.d.ts.map +1 -0
  17. package/dist/core/agent.js +833 -0
  18. package/dist/core/agent.js.map +1 -0
  19. package/{src/core/context.ts → dist/core/context.d.ts} +16 -67
  20. package/dist/core/context.d.ts.map +1 -0
  21. package/dist/core/context.js +80 -0
  22. package/dist/core/context.js.map +1 -0
  23. package/dist/core/event-tree.d.ts +72 -0
  24. package/dist/core/event-tree.d.ts.map +1 -0
  25. package/dist/core/event-tree.js +211 -0
  26. package/dist/core/event-tree.js.map +1 -0
  27. package/{src/core/factory.ts → dist/core/factory.d.ts} +6 -27
  28. package/dist/core/factory.d.ts.map +1 -0
  29. package/dist/core/factory.js +110 -0
  30. package/dist/core/factory.js.map +1 -0
  31. package/{src/core/index.ts → dist/core/index.d.ts} +2 -10
  32. package/dist/core/index.d.ts.map +1 -0
  33. package/dist/core/index.js +9 -0
  34. package/dist/core/index.js.map +1 -0
  35. package/dist/core/logger.d.ts +50 -0
  36. package/dist/core/logger.d.ts.map +1 -0
  37. package/dist/core/logger.js +91 -0
  38. package/dist/core/logger.js.map +1 -0
  39. package/dist/core/mcp-handler.d.ts +127 -0
  40. package/dist/core/mcp-handler.d.ts.map +1 -0
  41. package/dist/core/mcp-handler.js +323 -0
  42. package/dist/core/mcp-handler.js.map +1 -0
  43. package/dist/core/prompt.d.ts +80 -0
  44. package/dist/core/prompt.d.ts.map +1 -0
  45. package/dist/core/prompt.js +120 -0
  46. package/dist/core/prompt.js.map +1 -0
  47. package/dist/core/workflow-context.d.ts +61 -0
  48. package/dist/core/workflow-context.d.ts.map +1 -0
  49. package/dist/core/workflow-context.js +358 -0
  50. package/dist/core/workflow-context.js.map +1 -0
  51. package/dist/core/workflow.d.ts +543 -0
  52. package/dist/core/workflow.d.ts.map +1 -0
  53. package/dist/core/workflow.js +986 -0
  54. package/dist/core/workflow.js.map +1 -0
  55. package/dist/debugger/event-replayer.d.ts +422 -0
  56. package/dist/debugger/event-replayer.d.ts.map +1 -0
  57. package/dist/debugger/event-replayer.js +639 -0
  58. package/dist/debugger/event-replayer.js.map +1 -0
  59. package/dist/debugger/index.d.ts +2 -0
  60. package/dist/debugger/index.d.ts.map +1 -0
  61. package/{src/debugger/index.ts → dist/debugger/index.js} +1 -0
  62. package/dist/debugger/index.js.map +1 -0
  63. package/dist/debugger/tree-debugger.d.ts +240 -0
  64. package/dist/debugger/tree-debugger.d.ts.map +1 -0
  65. package/dist/debugger/tree-debugger.js +620 -0
  66. package/dist/debugger/tree-debugger.js.map +1 -0
  67. package/dist/decorators/index.d.ts +4 -0
  68. package/dist/decorators/index.d.ts.map +1 -0
  69. package/{src/decorators/index.ts → dist/decorators/index.js} +1 -0
  70. package/dist/decorators/index.js.map +1 -0
  71. package/dist/decorators/observed-state.d.ts +32 -0
  72. package/dist/decorators/observed-state.d.ts.map +1 -0
  73. package/dist/decorators/observed-state.js +79 -0
  74. package/dist/decorators/observed-state.js.map +1 -0
  75. package/dist/decorators/step.d.ts +15 -0
  76. package/dist/decorators/step.d.ts.map +1 -0
  77. package/dist/decorators/step.js +192 -0
  78. package/dist/decorators/step.js.map +1 -0
  79. package/dist/decorators/task.d.ts +50 -0
  80. package/dist/decorators/task.d.ts.map +1 -0
  81. package/dist/decorators/task.js +118 -0
  82. package/dist/decorators/task.js.map +1 -0
  83. package/dist/examples/index.d.ts +3 -0
  84. package/dist/examples/index.d.ts.map +1 -0
  85. package/{src/examples/index.ts → dist/examples/index.js} +1 -0
  86. package/dist/examples/index.js.map +1 -0
  87. package/dist/examples/tdd-orchestrator.d.ts +15 -0
  88. package/dist/examples/tdd-orchestrator.d.ts.map +1 -0
  89. package/dist/examples/tdd-orchestrator.js +121 -0
  90. package/dist/examples/tdd-orchestrator.js.map +1 -0
  91. package/dist/examples/test-cycle-workflow.d.ts +14 -0
  92. package/dist/examples/test-cycle-workflow.d.ts.map +1 -0
  93. package/dist/examples/test-cycle-workflow.js +116 -0
  94. package/dist/examples/test-cycle-workflow.js.map +1 -0
  95. package/dist/harnesses/claude-code-harness.d.ts +391 -0
  96. package/dist/harnesses/claude-code-harness.d.ts.map +1 -0
  97. package/dist/harnesses/claude-code-harness.js +1076 -0
  98. package/dist/harnesses/claude-code-harness.js.map +1 -0
  99. package/dist/harnesses/harness-registry.d.ts +440 -0
  100. package/dist/harnesses/harness-registry.d.ts.map +1 -0
  101. package/dist/harnesses/harness-registry.js +543 -0
  102. package/dist/harnesses/harness-registry.js.map +1 -0
  103. package/dist/harnesses/index.d.ts +12 -0
  104. package/dist/harnesses/index.d.ts.map +1 -0
  105. package/dist/harnesses/index.js +11 -0
  106. package/dist/harnesses/index.js.map +1 -0
  107. package/dist/harnesses/pi-harness.d.ts +219 -0
  108. package/dist/harnesses/pi-harness.d.ts.map +1 -0
  109. package/dist/harnesses/pi-harness.js +676 -0
  110. package/dist/harnesses/pi-harness.js.map +1 -0
  111. package/dist/harnesses/pi-schema-converter.d.ts +24 -0
  112. package/dist/harnesses/pi-schema-converter.d.ts.map +1 -0
  113. package/dist/harnesses/pi-schema-converter.js +81 -0
  114. package/dist/harnesses/pi-schema-converter.js.map +1 -0
  115. package/dist/harnesses/register-defaults.d.ts +24 -0
  116. package/dist/harnesses/register-defaults.d.ts.map +1 -0
  117. package/dist/harnesses/register-defaults.js +40 -0
  118. package/dist/harnesses/register-defaults.js.map +1 -0
  119. package/dist/harnesses/session-store.d.ts +201 -0
  120. package/dist/harnesses/session-store.d.ts.map +1 -0
  121. package/dist/harnesses/session-store.js +254 -0
  122. package/dist/harnesses/session-store.js.map +1 -0
  123. package/dist/index.d.ts +37 -0
  124. package/dist/index.d.ts.map +1 -0
  125. package/dist/index.js +57 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/reflection/index.d.ts +5 -0
  128. package/dist/reflection/index.d.ts.map +1 -0
  129. package/{src/reflection/index.ts → dist/reflection/index.js} +1 -1
  130. package/dist/reflection/index.js.map +1 -0
  131. package/dist/reflection/reflection.d.ts +84 -0
  132. package/dist/reflection/reflection.d.ts.map +1 -0
  133. package/dist/reflection/reflection.js +344 -0
  134. package/dist/reflection/reflection.js.map +1 -0
  135. package/dist/tools/index.d.ts +6 -0
  136. package/dist/tools/index.d.ts.map +1 -0
  137. package/dist/tools/index.js +11 -0
  138. package/dist/tools/index.js.map +1 -0
  139. package/dist/tools/introspection.d.ts +165 -0
  140. package/dist/tools/introspection.d.ts.map +1 -0
  141. package/dist/tools/introspection.js +324 -0
  142. package/dist/tools/introspection.js.map +1 -0
  143. package/dist/types/agent.d.ts +1317 -0
  144. package/dist/types/agent.d.ts.map +1 -0
  145. package/dist/types/agent.js +423 -0
  146. package/dist/types/agent.js.map +1 -0
  147. package/dist/types/decorators.d.ts +40 -0
  148. package/dist/types/decorators.d.ts.map +1 -0
  149. package/dist/types/decorators.js +2 -0
  150. package/dist/types/decorators.js.map +1 -0
  151. package/dist/types/error-strategy.d.ts +13 -0
  152. package/dist/types/error-strategy.d.ts.map +1 -0
  153. package/dist/types/error-strategy.js +2 -0
  154. package/dist/types/error-strategy.js.map +1 -0
  155. package/dist/types/error.d.ts +20 -0
  156. package/dist/types/error.d.ts.map +1 -0
  157. package/dist/types/error.js +2 -0
  158. package/dist/types/error.js.map +1 -0
  159. package/dist/types/events.d.ts +113 -0
  160. package/dist/types/events.d.ts.map +1 -0
  161. package/dist/types/events.js +2 -0
  162. package/dist/types/events.js.map +1 -0
  163. package/dist/types/harnesses.d.ts +474 -0
  164. package/dist/types/harnesses.d.ts.map +1 -0
  165. package/dist/types/harnesses.js +2 -0
  166. package/dist/types/harnesses.js.map +1 -0
  167. package/dist/types/index.d.ts +23 -0
  168. package/dist/types/index.d.ts.map +1 -0
  169. package/dist/types/index.js +8 -0
  170. package/dist/types/index.js.map +1 -0
  171. package/dist/types/logging.d.ts +24 -0
  172. package/dist/types/logging.d.ts.map +1 -0
  173. package/dist/types/logging.js +2 -0
  174. package/dist/types/logging.js.map +1 -0
  175. package/dist/types/observer.d.ts +18 -0
  176. package/dist/types/observer.d.ts.map +1 -0
  177. package/dist/types/observer.js +2 -0
  178. package/dist/types/observer.js.map +1 -0
  179. package/dist/types/prompt.d.ts +31 -0
  180. package/dist/types/prompt.d.ts.map +1 -0
  181. package/dist/types/prompt.js +6 -0
  182. package/dist/types/prompt.js.map +1 -0
  183. package/dist/types/providers.d.ts +691 -0
  184. package/dist/types/providers.d.ts.map +1 -0
  185. package/dist/types/providers.js +14 -0
  186. package/dist/types/providers.js.map +1 -0
  187. package/dist/types/reflection.d.ts +96 -0
  188. package/dist/types/reflection.d.ts.map +1 -0
  189. package/dist/types/reflection.js +24 -0
  190. package/dist/types/reflection.js.map +1 -0
  191. package/dist/types/restart.d.ts +132 -0
  192. package/dist/types/restart.d.ts.map +1 -0
  193. package/dist/types/restart.js +2 -0
  194. package/dist/types/restart.js.map +1 -0
  195. package/dist/types/sdk-primitives.d.ts +118 -0
  196. package/dist/types/sdk-primitives.d.ts.map +1 -0
  197. package/dist/types/sdk-primitives.js +6 -0
  198. package/dist/types/sdk-primitives.js.map +1 -0
  199. package/{src/types/snapshot.ts → dist/types/snapshot.d.ts} +5 -5
  200. package/dist/types/snapshot.d.ts.map +1 -0
  201. package/dist/types/snapshot.js +2 -0
  202. package/dist/types/snapshot.js.map +1 -0
  203. package/dist/types/streaming.d.ts +194 -0
  204. package/dist/types/streaming.d.ts.map +1 -0
  205. package/dist/types/streaming.js +67 -0
  206. package/dist/types/streaming.js.map +1 -0
  207. package/dist/types/workflow-context.d.ts +275 -0
  208. package/dist/types/workflow-context.d.ts.map +1 -0
  209. package/dist/types/workflow-context.js +8 -0
  210. package/dist/types/workflow-context.js.map +1 -0
  211. package/dist/types/workflow.d.ts +30 -0
  212. package/dist/types/workflow.d.ts.map +1 -0
  213. package/dist/types/workflow.js +2 -0
  214. package/dist/types/workflow.js.map +1 -0
  215. package/dist/utils/agent-validation.d.ts +88 -0
  216. package/dist/utils/agent-validation.d.ts.map +1 -0
  217. package/dist/utils/agent-validation.js +87 -0
  218. package/dist/utils/agent-validation.js.map +1 -0
  219. package/dist/utils/delay.d.ts +7 -0
  220. package/dist/utils/delay.d.ts.map +1 -0
  221. package/dist/utils/delay.js +9 -0
  222. package/dist/utils/delay.js.map +1 -0
  223. package/dist/utils/harness-config.d.ts +180 -0
  224. package/dist/utils/harness-config.d.ts.map +1 -0
  225. package/dist/utils/harness-config.js +311 -0
  226. package/dist/utils/harness-config.js.map +1 -0
  227. package/dist/utils/id.d.ts +6 -0
  228. package/dist/utils/id.d.ts.map +1 -0
  229. package/dist/utils/id.js +12 -0
  230. package/dist/utils/id.js.map +1 -0
  231. package/dist/utils/index.d.ts +13 -0
  232. package/dist/utils/index.d.ts.map +1 -0
  233. package/dist/utils/index.js +11 -0
  234. package/dist/utils/index.js.map +1 -0
  235. package/dist/utils/model-spec.d.ts +110 -0
  236. package/dist/utils/model-spec.d.ts.map +1 -0
  237. package/dist/utils/model-spec.js +149 -0
  238. package/dist/utils/model-spec.js.map +1 -0
  239. package/dist/utils/observable.d.ts +54 -0
  240. package/dist/utils/observable.d.ts.map +1 -0
  241. package/dist/utils/observable.js +82 -0
  242. package/dist/utils/observable.js.map +1 -0
  243. package/dist/utils/provider-config.d.ts +10 -0
  244. package/dist/utils/provider-config.d.ts.map +1 -0
  245. package/dist/utils/provider-config.js +10 -0
  246. package/dist/utils/provider-config.js.map +1 -0
  247. package/dist/utils/restart-analysis.d.ts +202 -0
  248. package/dist/utils/restart-analysis.d.ts.map +1 -0
  249. package/dist/utils/restart-analysis.js +426 -0
  250. package/dist/utils/restart-analysis.js.map +1 -0
  251. package/dist/utils/session-serialization.d.ts +118 -0
  252. package/dist/utils/session-serialization.d.ts.map +1 -0
  253. package/dist/utils/session-serialization.js +217 -0
  254. package/dist/utils/session-serialization.js.map +1 -0
  255. package/dist/utils/workflow-error-utils.d.ts +22 -0
  256. package/dist/utils/workflow-error-utils.d.ts.map +1 -0
  257. package/dist/utils/workflow-error-utils.js +45 -0
  258. package/dist/utils/workflow-error-utils.js.map +1 -0
  259. package/package.json +34 -5
  260. package/.claude/commands/subtask-planning/prp-base-create.md +0 -120
  261. package/.claude/commands/subtask-planning/prp-base-execute.md +0 -65
  262. package/.claude/commands/task-breakdown.md +0 -94
  263. package/.claude/settings.local.json +0 -9
  264. package/.claude/system_prompts/task-breakdown.md +0 -101
  265. package/CHANGELOG.md +0 -188
  266. package/PRD.md +0 -543
  267. package/PRPs/001-hierarchical-workflow-engine.md +0 -2438
  268. package/PRPs/PRDs/002-agent-prompt.md +0 -390
  269. package/PRPs/PRDs/003-agent-prompt.md +0 -943
  270. package/PRPs/PRDs/004-agent-prompt.md +0 -1136
  271. package/PRPs/PRDs/tasks-001.json +0 -492
  272. package/PRPs/README.md +0 -83
  273. package/PRPs/templates/prp_base.md +0 -222
  274. package/docs/agent.md +0 -422
  275. package/docs/prompt.md +0 -419
  276. package/docs/workflow.md +0 -600
  277. package/examples/README.md +0 -258
  278. package/examples/examples/01-basic-workflow.ts +0 -100
  279. package/examples/examples/02-decorator-options.ts +0 -217
  280. package/examples/examples/03-parent-child.ts +0 -241
  281. package/examples/examples/04-observers-debugger.ts +0 -340
  282. package/examples/examples/05-error-handling.ts +0 -387
  283. package/examples/examples/06-concurrent-tasks.ts +0 -352
  284. package/examples/examples/07-agent-loops.ts +0 -432
  285. package/examples/examples/08-sdk-features.ts +0 -667
  286. package/examples/examples/09-reflection.ts +0 -573
  287. package/examples/examples/10-introspection.ts +0 -550
  288. package/examples/examples/11-reparenting-workflows.ts +0 -269
  289. package/examples/index.ts +0 -147
  290. package/examples/utils/helpers.ts +0 -57
  291. package/package-lock.json +0 -2398
  292. package/plan/001_d3bb02af4886/TEST_RESULTS.md +0 -259
  293. package/plan/001_d3bb02af4886/backlog.json +0 -867
  294. package/plan/001_d3bb02af4886/bug_fix_tasks.json +0 -484
  295. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S1/PRP.md +0 -488
  296. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S2/PRP.md +0 -581
  297. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S3/PRP.md +0 -687
  298. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S1/PRP.md +0 -492
  299. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/PRP.md +0 -932
  300. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/concurrent_error_testing_patterns.md +0 -1109
  301. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/vitest_concurrent_testing.md +0 -802
  302. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/workflow_engine_test_references.md +0 -603
  303. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S1/PRP.md +0 -564
  304. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S3/PRP.md +0 -518
  305. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S4/PRP.md +0 -1252
  306. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/PRP.md +0 -364
  307. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/CODEBASE_INVENTORY.md +0 -114
  308. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/DECORATOR_DOCUMENTATION_PATTERNS.md +0 -205
  309. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/PRD_LOCATION_ANALYSIS.md +0 -199
  310. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/ULTRATHINK_PRP_PLAN.md +0 -134
  311. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/PRP.md +0 -495
  312. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/research/console_error_inventory.md +0 -435
  313. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S2/PRP.md +0 -506
  314. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S3/PRP.md +0 -612
  315. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/PRP.md +0 -558
  316. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/research/external_research.md +0 -788
  317. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S2/PRP.md +0 -460
  318. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S3/PRP.md +0 -454
  319. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/PRP.md +0 -520
  320. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/RECOMMENDATION.md +0 -417
  321. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/external_workflow_engines_research.md +0 -760
  322. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/security_implications_analysis.md +0 -245
  323. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S2/PRP.md +0 -792
  324. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/PRP.md +0 -535
  325. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md +0 -190
  326. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/PRP.md +0 -654
  327. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md +0 -227
  328. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md +0 -345
  329. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md +0 -193
  330. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md +0 -1323
  331. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/BREAKING_CHANGES_AUDIT.md +0 -1011
  332. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/PRP.md +0 -927
  333. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S2/PRP.md +0 -505
  334. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/architecture/logger_child_signature_analysis.md +0 -401
  335. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/child_implementation_research.md +0 -142
  336. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/test_patterns_research.md +0 -112
  337. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/vitest_patterns_research.md +0 -159
  338. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/PRP.md +0 -549
  339. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/VERIFICATION_REPORT.md +0 -368
  340. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/edge_case_analysis.md +0 -172
  341. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/usage_inventory.md +0 -175
  342. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S2/PRP.md +0 -696
  343. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S4/PRP.md +0 -860
  344. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/PRP.md +0 -1066
  345. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01-testing-aggregated-errors.md +0 -1103
  346. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01_typescript_error_aggregation_patterns.md +0 -789
  347. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02-error-merge-strategy-testing-guide.md +0 -1098
  348. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02_aggregate_error_patterns.md +0 -1037
  349. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03-promise-allsettled-testing-patterns.md +0 -916
  350. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03_error_merging_strategies.md +0 -1045
  351. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/04_github_stackoverflow_examples.md +0 -890
  352. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/05_comprehensive_summary.md +0 -822
  353. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/INDEX.md +0 -668
  354. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/QUICK_REFERENCE.md +0 -706
  355. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/README.md +0 -265
  356. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/RESEARCH_REPORT.md +0 -655
  357. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S4/research/vitest_testing_patterns.md +0 -1103
  358. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T3S2/PRP.md +0 -426
  359. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/PRP.md +0 -506
  360. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/QUICK_REFERENCE.md +0 -114
  361. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/RESEARCH_SUMMARY.md +0 -316
  362. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/vitest_observer_error_logging_best_practices.md +0 -754
  363. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S3/PRP.md +0 -612
  364. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/PRP.md +0 -719
  365. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/README.md +0 -215
  366. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/analysis.md +0 -765
  367. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S3/PRP.md +0 -718
  368. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md +0 -149
  369. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/PRP.md +0 -470
  370. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/ULTRATHINK_PLAN.md +0 -332
  371. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/codebase_workflow_name_analysis.md +0 -167
  372. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/external_best_practices.md +0 -265
  373. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/validation_patterns.md +0 -273
  374. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S1/workflow_engine_ancestry_api_research.md +0 -760
  375. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S3-PRP.md +0 -434
  376. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S1/PRP.md +0 -717
  377. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/PRP.md +0 -472
  378. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/VALIDATION_REPORT.md +0 -125
  379. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/research/ULTRATHINK_PRP_PLAN.md +0 -301
  380. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/error-logging-best-practices.md +0 -1170
  381. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/research_typescript_partial_and_overloads.md +0 -940
  382. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-quick-reference.md +0 -151
  383. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-research.md +0 -650
  384. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/prd_snapshot.md +0 -259
  385. package/plan/001_d3bb02af4886/bugfix/P1M1T1S1/PRP.md +0 -457
  386. package/plan/001_d3bb02af4886/bugfix/RESEARCH_SUMMARY.md +0 -346
  387. package/plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md +0 -311
  388. package/plan/001_d3bb02af4886/bugfix/architecture/concurrent_execution_best_practices.md +0 -1565
  389. package/plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md +0 -288
  390. package/plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md +0 -741
  391. package/plan/001_d3bb02af4886/docs/PRP/P1M1T1S4-functional-workflow-error-state-capture-test.md +0 -652
  392. package/plan/001_d3bb02af4886/docs/PRP/P1P2-PRP.md +0 -527
  393. package/plan/001_d3bb02af4886/docs/PRP/P3P4-PRP.md +0 -1388
  394. package/plan/001_d3bb02af4886/docs/PRP/P4P5-PRP.md +0 -1136
  395. package/plan/001_d3bb02af4886/docs/PRP/PRP.md +0 -527
  396. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S1-PRP.md +0 -415
  397. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S2-PRP.md +0 -378
  398. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S4-PRP.md +0 -713
  399. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M2T1S4-PRP.md +0 -370
  400. package/plan/001_d3bb02af4886/docs/PRP_P1M3T1S3.md +0 -499
  401. package/plan/001_d3bb02af4886/docs/TEST_RESULTS.md +0 -230
  402. package/plan/001_d3bb02af4886/docs/architecture/external_deps.md +0 -358
  403. package/plan/001_d3bb02af4886/docs/architecture/system_context.md +0 -242
  404. package/plan/001_d3bb02af4886/docs/bugfix/ANALYSIS_PRD_VS_IMPLEMENTATION.md +0 -1134
  405. package/plan/001_d3bb02af4886/docs/bugfix/GAP_ANALYSIS_SUMMARY.md +0 -179
  406. package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/PRP.md +0 -629
  407. package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/validation-report.md +0 -214
  408. package/plan/001_d3bb02af4886/docs/bugfix/PRP_P1M4T2S3.md +0 -629
  409. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_PRP.md +0 -529
  410. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_QUICK_REFERENCE.md +0 -142
  411. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_README.md +0 -304
  412. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_TEST_RESULTS.md +0 -558
  413. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_VALIDATION_SUMMARY.md +0 -256
  414. package/plan/001_d3bb02af4886/docs/bugfix/system_context.md +0 -346
  415. package/plan/001_d3bb02af4886/docs/bugfix-architecture/bug_analysis.md +0 -415
  416. package/plan/001_d3bb02af4886/docs/bugfix-architecture/implementation_patterns.md +0 -489
  417. package/plan/001_d3bb02af4886/docs/bugfix-architecture/system_context.md +0 -218
  418. package/plan/001_d3bb02af4886/docs/bugfix_INITIATION_SUMMARY.md +0 -380
  419. package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_PATTERNS.md +0 -1923
  420. package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_QUICK_REF.md +0 -319
  421. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/codebase-context.md +0 -115
  422. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/cycle-detection-algorithms.md +0 -134
  423. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/test-patterns.md +0 -153
  424. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/workflow-class.md +0 -132
  425. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_BEST_PRACTICES.md +0 -716
  426. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_QUICK_REF.md +0 -186
  427. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/GROUNDSWELL_DECORATOR_EXAMPLES.md +0 -604
  428. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/INDEX.md +0 -213
  429. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/codebase_structure.md +0 -30
  430. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/existing_test_pattern.md +0 -56
  431. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/getRootObservers_implementation.md +0 -53
  432. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/test_conventions.md +0 -49
  433. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/PRP.md +0 -958
  434. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/QUICK_REFERENCE.md +0 -339
  435. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/README.md +0 -305
  436. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/SUMMARY.md +0 -433
  437. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/bidirectional-tree-consistency-testing.md +0 -1574
  438. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/test-pattern-examples.md +0 -1014
  439. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_BEST_PRACTICES.md +0 -1929
  440. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_CODE_PATTERNS.md +0 -857
  441. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_INTEGRATION_GUIDE.md +0 -738
  442. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_RESEARCH_INDEX.md +0 -424
  443. package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_INDEX.md +0 -291
  444. package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_RESEARCH_REPORT.md +0 -1342
  445. package/plan/001_d3bb02af4886/docs/research/P1P2/RESEARCH_SUMMARY.md +0 -342
  446. package/plan/001_d3bb02af4886/docs/research/P1P2/anthropic-sdk.md +0 -174
  447. package/plan/001_d3bb02af4886/docs/research/P1P2/async-local-storage.md +0 -200
  448. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-code-patterns.md +0 -1205
  449. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-decision-matrix.md +0 -421
  450. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-implementation-guide.md +0 -1341
  451. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-integration-guide.md +0 -834
  452. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-patterns.md +0 -1468
  453. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-quick-reference.md +0 -558
  454. package/plan/001_d3bb02af4886/docs/research/P1P2/zod-schema.md +0 -152
  455. package/plan/001_d3bb02af4886/docs/research/P3P4/caching-lru.md +0 -116
  456. package/plan/001_d3bb02af4886/docs/research/P3P4/introspection-tools.md +0 -177
  457. package/plan/001_d3bb02af4886/docs/research/P3P4/reflection-patterns.md +0 -117
  458. package/plan/001_d3bb02af4886/docs/research/P4P5/RESEARCH_SUMMARY.md +0 -151
  459. package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_QUICK_REF.md +0 -376
  460. package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_RESEARCH.md +0 -1507
  461. package/plan/001_d3bb02af4886/docs/research/bugfix_typescript_patterns.md +0 -949
  462. package/plan/001_d3bb02af4886/docs/research/error-testing-research.md +0 -619
  463. package/plan/001_d3bb02af4886/docs/research/error_handling_patterns.md +0 -723
  464. package/plan/001_d3bb02af4886/docs/research/general/INTROSPECTION_RESEARCH_SUMMARY.md +0 -378
  465. package/plan/001_d3bb02af4886/docs/research/general/README-INTROSPECTION.md +0 -352
  466. package/plan/001_d3bb02af4886/docs/research/general/agent-introspection-patterns.md +0 -1085
  467. package/plan/001_d3bb02af4886/docs/research/general/introspection-security-guide.md +0 -984
  468. package/plan/001_d3bb02af4886/docs/research/general/introspection-tool-examples.md +0 -875
  469. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/PRP_TEMPLATE.md +0 -460
  470. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/QUICK_REFERENCE.md +0 -324
  471. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/README.md +0 -175
  472. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/RESEARCH_REPORT.md +0 -499
  473. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/SUMMARY.md +0 -163
  474. package/plan/001_d3bb02af4886/prd_snapshot.md +0 -543
  475. package/plan/bugfix/BUG_FIX_SUMMARY.md +0 -961
  476. package/scripts/generate-llms-full.ts +0 -206
  477. package/src/__tests__/adversarial/attachChild-performance.test.ts +0 -216
  478. package/src/__tests__/adversarial/circular-reference.test.ts +0 -101
  479. package/src/__tests__/adversarial/complex-circular-reference.test.ts +0 -139
  480. package/src/__tests__/adversarial/concurrent-task-failures.test.ts +0 -571
  481. package/src/__tests__/adversarial/deep-analysis.test.ts +0 -729
  482. package/src/__tests__/adversarial/deep-hierarchy-stress.test.ts +0 -213
  483. package/src/__tests__/adversarial/e2e-prd-validation.test.ts +0 -448
  484. package/src/__tests__/adversarial/edge-case.test.ts +0 -703
  485. package/src/__tests__/adversarial/error-merge-strategy.test.ts +0 -760
  486. package/src/__tests__/adversarial/incremental-performance.test.ts +0 -140
  487. package/src/__tests__/adversarial/node-map-update-benchmarks.test.ts +0 -457
  488. package/src/__tests__/adversarial/observer-propagation.test.ts +0 -487
  489. package/src/__tests__/adversarial/parent-validation.test.ts +0 -143
  490. package/src/__tests__/adversarial/prd-12-2-compliance.test.ts +0 -611
  491. package/src/__tests__/adversarial/prd-compliance.test.ts +0 -731
  492. package/src/__tests__/compatibility/backward-compatibility.test.ts +0 -1572
  493. package/src/__tests__/helpers/index.ts +0 -18
  494. package/src/__tests__/helpers/tree-verification.ts +0 -257
  495. package/src/__tests__/integration/agent-workflow.test.ts +0 -256
  496. package/src/__tests__/integration/bidirectional-consistency.test.ts +0 -847
  497. package/src/__tests__/integration/observer-logging.test.ts +0 -643
  498. package/src/__tests__/integration/tree-mirroring.test.ts +0 -151
  499. package/src/__tests__/integration/workflow-reparenting.test.ts +0 -303
  500. package/src/__tests__/unit/agent.test.ts +0 -169
  501. package/src/__tests__/unit/cache-key.test.ts +0 -182
  502. package/src/__tests__/unit/cache.test.ts +0 -172
  503. package/src/__tests__/unit/context.test.ts +0 -217
  504. package/src/__tests__/unit/decorators.test.ts +0 -100
  505. package/src/__tests__/unit/introspection-tools.test.ts +0 -277
  506. package/src/__tests__/unit/logger.test.ts +0 -293
  507. package/src/__tests__/unit/observable.test.ts +0 -321
  508. package/src/__tests__/unit/prompt.test.ts +0 -135
  509. package/src/__tests__/unit/reflection.test.ts +0 -210
  510. package/src/__tests__/unit/tree-debugger-incremental.test.ts +0 -170
  511. package/src/__tests__/unit/tree-debugger.test.ts +0 -85
  512. package/src/__tests__/unit/utils/workflow-error-utils.test.ts +0 -209
  513. package/src/__tests__/unit/workflow-detachChild.test.ts +0 -100
  514. package/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts +0 -153
  515. package/src/__tests__/unit/workflow-isDescendantOf.test.ts +0 -180
  516. package/src/__tests__/unit/workflow.test.ts +0 -357
  517. package/src/cache/cache-key.ts +0 -244
  518. package/src/cache/cache.ts +0 -236
  519. package/src/core/agent.ts +0 -593
  520. package/src/core/event-tree.ts +0 -260
  521. package/src/core/logger.ts +0 -112
  522. package/src/core/mcp-handler.ts +0 -184
  523. package/src/core/prompt.ts +0 -150
  524. package/src/core/workflow-context.ts +0 -351
  525. package/src/core/workflow.ts +0 -540
  526. package/src/debugger/tree-debugger.ts +0 -255
  527. package/src/decorators/observed-state.ts +0 -95
  528. package/src/decorators/step.ts +0 -139
  529. package/src/decorators/task.ts +0 -159
  530. package/src/examples/tdd-orchestrator.ts +0 -65
  531. package/src/examples/test-cycle-workflow.ts +0 -64
  532. package/src/index.ts +0 -142
  533. package/src/reflection/reflection.ts +0 -407
  534. package/src/tools/index.ts +0 -36
  535. package/src/tools/introspection.ts +0 -464
  536. package/src/types/agent.ts +0 -90
  537. package/src/types/decorators.ts +0 -32
  538. package/src/types/error-strategy.ts +0 -13
  539. package/src/types/error.ts +0 -20
  540. package/src/types/events.ts +0 -75
  541. package/src/types/index.ts +0 -55
  542. package/src/types/logging.ts +0 -24
  543. package/src/types/observer.ts +0 -18
  544. package/src/types/prompt.ts +0 -40
  545. package/src/types/reflection.ts +0 -117
  546. package/src/types/sdk-primitives.ts +0 -128
  547. package/src/types/workflow-context.ts +0 -163
  548. package/src/types/workflow.ts +0 -37
  549. package/src/utils/id.ts +0 -11
  550. package/src/utils/index.ts +0 -4
  551. package/src/utils/observable.ts +0 -106
  552. package/src/utils/workflow-error-utils.ts +0 -56
  553. package/tsconfig.json +0 -22
  554. package/vitest.config.ts +0 -16
@@ -1,484 +0,0 @@
1
- {
2
- "backlog": [
3
- {
4
- "type": "Phase",
5
- "id": "P1",
6
- "title": "Bug Fixes - Hierarchical Workflow Engine",
7
- "status": "Complete",
8
- "description": "Fix critical, major, and minor bugs identified during PRD validation testing. All fixes maintain backward compatibility and preserve the existing test suite's 100% pass rate.",
9
- "milestones": [
10
- {
11
- "type": "Milestone",
12
- "id": "P1.M1",
13
- "title": "Critical Fixes - Signature Mismatches",
14
- "status": "Complete",
15
- "description": "Fix critical PRD signature mismatches that violate the public API contract.",
16
- "tasks": [
17
- {
18
- "type": "Task",
19
- "id": "P1.M1.T1",
20
- "title": "Fix WorkflowLogger.child() Signature Mismatch",
21
- "status": "Complete",
22
- "description": "Update WorkflowLogger.child() signature from child(parentLogId: string) to child(meta: Partial<LogEntry>) to match PRD specification in Section 12.1.",
23
- "subtasks": [
24
- {
25
- "type": "Subtask",
26
- "id": "P1.M1.T1.S1",
27
- "title": "Research PRD specification for child() signature",
28
- "status": "Complete",
29
- "story_points": 1,
30
- "dependencies": [],
31
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, WorkflowLogger is at src/core/logger.ts with current signature child(parentLogId: string). PRD Section 12.1 specifies child(meta: Partial<LogEntry>).\n2. INPUT: Access to PRD documentation and existing logger implementation.\n3. LOGIC: Read PRD Section 12.1 to understand exact signature requirements. Compare with src/core/logger.ts:84 implementation. Document the differences and create a migration plan.\n4. OUTPUT: Create plan/bugfix/architecture/logger_child_signature_analysis.md documenting the PRD spec, current implementation, differences, and recommended approach."
32
- },
33
- {
34
- "type": "Subtask",
35
- "id": "P1.M1.T1.S2",
36
- "title": "Update WorkflowLogger.child() to accept Partial<LogEntry>",
37
- "status": "Complete",
38
- "story_points": 2,
39
- "dependencies": [
40
- "P1.M1.T1.S1"
41
- ],
42
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, LogEntry interface has fields: id, workflowId, timestamp, level, message, data, parentLogId. The child() method should extract parentLogId from meta parameter.\n2. INPUT: Analysis from S1 documenting the required signature change.\n3. LOGIC: Modify src/core/logger.ts:84 child() method signature from child(parentLogId: string) to child(meta: Partial<LogEntry>). Extract parentLogId from meta.parentLogId or generate from meta.id if parentLogId not provided. Maintain backward compatibility by accepting string as shorthand for parentLogId.\n4. OUTPUT: Updated child() method that accepts Partial<LogEntry> and is backward compatible with string argument. All existing calls to child() continue to work."
43
- },
44
- {
45
- "type": "Subtask",
46
- "id": "P1.M1.T1.S3",
47
- "title": "Add tests for new child() signature with Partial<LogEntry>",
48
- "status": "Complete",
49
- "story_points": 2,
50
- "dependencies": [
51
- "P1.M1.T1.S2"
52
- ],
53
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, logger tests are in src/__tests__/unit/ folder. Test patterns use vitest with describe/it blocks.\n2. INPUT: Updated child() implementation from S2.\n3. LOGIC: Create tests in appropriate test file covering: child() with Partial<LogEntry> containing parentLogId, child() with Partial<LogEntry> containing id (should use as parentLogId), child() with string (backward compatibility), child() with empty object (should generate parentLogId). Verify parentLogId is correctly set in child logger's log entries.\n4. OUTPUT: New test suite for child() method covering all scenarios. All tests pass including backward compatibility cases."
54
- },
55
- {
56
- "type": "Subtask",
57
- "id": "P1.M1.T1.S4",
58
- "title": "Verify all existing child() calls still work",
59
- "status": "Complete",
60
- "story_points": 1,
61
- "dependencies": [
62
- "P1.M1.T1.S3"
63
- ],
64
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, child() is used internally in WorkflowLogger and potentially in examples/tests. Use Grep to find all usages.\n2. INPUT: Updated child() implementation from S2.\n3. LOGIC: Search codebase for all calls to .child() method. Manually verify each call works with new signature. Run full test suite to ensure 344 existing tests still pass. Fix any breaking issues found.\n4. OUTPUT: All 344 existing tests pass. Document any edge cases discovered and how they were handled."
65
- }
66
- ]
67
- }
68
- ]
69
- },
70
- {
71
- "type": "Milestone",
72
- "id": "P1.M2",
73
- "title": "Major Fixes - Concurrent Execution & Error Handling",
74
- "status": "Complete",
75
- "description": "Fix concurrent task execution error handling and implement the missing ErrorMergeStrategy functionality.",
76
- "tasks": [
77
- {
78
- "type": "Task",
79
- "id": "P1.M2.T1",
80
- "title": "Replace Promise.all with Promise.allSettled in Concurrent Tasks",
81
- "status": "Complete",
82
- "description": "Update @Task decorator to use Promise.allSettled() instead of Promise.all() for concurrent execution, ensuring all child workflows complete even if some fail.",
83
- "subtasks": [
84
- {
85
- "type": "Subtask",
86
- "id": "P1.M2.T1.S1",
87
- "title": "Analyze current Promise.all implementation in @Task decorator",
88
- "status": "Complete",
89
- "story_points": 1,
90
- "dependencies": [],
91
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/error_handling_patterns.md, Promise.all is at src/decorators/task.ts:112. The implementation filters runnable workflows and executes them with Promise.all().\n2. INPUT: Access to src/decorators/task.ts and related test files.\n3. LOGIC: Read src/decorators/task.ts lines 104-114. Understand the runnable filtering logic. Document how errors currently propagate. Identify what happens when one concurrent workflow fails.\n4. OUTPUT: Create plan/bugfix/architecture/promise_all_analysis.md documenting current behavior, error flow, and requirements for Promise.allSettled migration."
92
- },
93
- {
94
- "type": "Subtask",
95
- "id": "P1.M2.T1.S2",
96
- "title": "Implement Promise.allSettled with error collection",
97
- "status": "Complete",
98
- "story_points": 2,
99
- "dependencies": [
100
- "P1.M2.T1.S1"
101
- ],
102
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/concurrent_execution_best_practices.md, use Promise.allSettled() to collect both fulfilled and rejected results. Filter for rejected results to collect errors.\n2. INPUT: Analysis from S1 and research from concurrent_execution_best_practices.md.\n3. LOGIC: Replace Promise.all() with Promise.allSettled() at src/decorators/task.ts:112. After promises settle, filter for PromiseRejectedResult results. If errors exist, collect them into an array. Maintain backward compatibility by throwing first error if no error merge strategy is configured.\n4. OUTPUT: Updated @Task decorator using Promise.allSettled. Errors are collected but first error is still thrown (backward compatible behavior)."
103
- },
104
- {
105
- "type": "Subtask",
106
- "id": "P1.M2.T1.S3",
107
- "title": "Add tests for concurrent task failure scenarios",
108
- "status": "Complete",
109
- "story_points": 2,
110
- "dependencies": [
111
- "P1.M2.T1.S2"
112
- ],
113
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, test patterns use vitest. Adversarial tests are in src/__tests__/adversarial/.\n2. INPUT: Updated Promise.allSettled implementation from S2.\n3. LOGIC: Create tests covering: single child failure, multiple children failing, mixed success/failure, all children fail. Verify that all children complete execution even when some fail. Verify error collection works correctly.\n4. OUTPUT: New test suite for concurrent task failures. All tests pass demonstrating all workflows complete before error is thrown."
114
- },
115
- {
116
- "type": "Subtask",
117
- "id": "P1.M2.T1.S4",
118
- "title": "Run full test suite to ensure no regressions",
119
- "status": "Complete",
120
- "story_points": 1,
121
- "dependencies": [
122
- "P1.M2.T1.S3"
123
- ],
124
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, project has 344 existing tests with 100% pass rate. Use Bash tool to run tests.\n2. INPUT: Updated implementation and new tests from S3.\n3. LOGIC: Run full test suite using npm test or vitest command. Verify all 344 existing tests still pass. Verify new tests pass. Fix any regressions discovered.\n4. OUTPUT: Full test suite passes (344+ tests). No regressions introduced. Document any edge cases encountered."
125
- }
126
- ]
127
- },
128
- {
129
- "type": "Task",
130
- "id": "P1.M2.T2",
131
- "title": "Implement ErrorMergeStrategy Support",
132
- "status": "Complete",
133
- "description": "Add errorMergeStrategy option to TaskOptions and implement error aggregation logic when enabled.",
134
- "subtasks": [
135
- {
136
- "type": "Subtask",
137
- "id": "P1.M2.T2.S1",
138
- "title": "Add errorMergeStrategy to TaskOptions interface",
139
- "status": "Complete",
140
- "story_points": 1,
141
- "dependencies": [
142
- "P1.M2.T1.S2"
143
- ],
144
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/error_handling_patterns.md, ErrorMergeStrategy interface exists at src/types/error-strategy.ts but is not used. TaskOptions is in src/types/decorators.ts.\n2. INPUT: Access to src/types/decorators.ts and src/types/error-strategy.ts.\n3. LOGIC: Import ErrorMergeStrategy into src/types/decorators.ts. Add optional errorMergeStrategy?: ErrorMergeStrategy field to TaskOptions interface. Export updated interface.\n4. OUTPUT: TaskOptions interface includes errorMergeStrategy field. TypeScript compiles without errors."
145
- },
146
- {
147
- "type": "Subtask",
148
- "id": "P1.M2.T2.S2",
149
- "title": "Implement error aggregation logic in @Task decorator",
150
- "status": "Complete",
151
- "story_points": 2,
152
- "dependencies": [
153
- "P1.M2.T2.S1"
154
- ],
155
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/concurrent_execution_best_practices.md, when errorMergeStrategy.enabled is true, use combine() function to merge errors. Default to simple aggregation if combine() not provided.\n2. INPUT: Updated TaskOptions from S1 and Promise.allSettled implementation from P1.M2.T1.S2.\n3. LOGIC: In @Task decorator after collecting errors from Promise.allSettled(), check if opts.errorMergeStrategy?.enabled is true. If true, call opts.errorMergeStrategy.combine?(errors) or use default merger. Throw merged error instead of first error. Emit error event with merged error.\n4. OUTPUT: @Task decorator implements error merge strategy when configured. Merged errors contain aggregated information from all failures."
156
- },
157
- {
158
- "type": "Subtask",
159
- "id": "P1.M2.T2.S3",
160
- "title": "Create default error merger implementation",
161
- "status": "Complete",
162
- "story_points": 1,
163
- "dependencies": [
164
- "P1.M2.T2.S2"
165
- ],
166
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/error_handling_patterns.md, default merger should aggregate: message with count, all original errors, parent workflowId, concatenated stacks, aggregated logs.\n2. INPUT: Error aggregation requirements from research.\n3. LOGIC: Create utility function mergeWorkflowErrors(errors: WorkflowError[]): WorkflowError. Combine messages with count. Aggregate original errors into array. Use first error's workflowId (parent). Concatenate stacks with separator. Flatten all logs arrays. Return merged WorkflowError object.\n4. OUTPUT: mergeWorkflowErrors() function created and exported from appropriate module. Function creates comprehensive merged error."
167
- },
168
- {
169
- "type": "Subtask",
170
- "id": "P1.M2.T2.S4",
171
- "title": "Add tests for ErrorMergeStrategy functionality",
172
- "status": "Complete",
173
- "story_points": 2,
174
- "dependencies": [
175
- "P1.M2.T2.S3"
176
- ],
177
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, test patterns use vitest. Tests should cover enabled/disabled, custom combine, default merge.\n2. INPUT: Error merge implementation from S2 and S3.\n3. LOGIC: Create tests covering: errorMergeStrategy.enabled=false (default behavior), errorMergeStrategy.enabled=true with default merge, errorMergeStrategy.enabled=true with custom combine function, maxMergeDepth validation if implemented. Verify merged error contains aggregated information.\n4. OUTPUT: Comprehensive test suite for ErrorMergeStrategy. All tests pass demonstrating correct error aggregation behavior."
178
- }
179
- ]
180
- },
181
- {
182
- "type": "Task",
183
- "id": "P1.M2.T3",
184
- "title": "Document trackTiming Default Value in PRD",
185
- "status": "Complete",
186
- "description": "Update PRD documentation to explicitly state that trackTiming defaults to true, matching the implementation.",
187
- "subtasks": [
188
- {
189
- "type": "Subtask",
190
- "id": "P1.M2.T3.S1",
191
- "title": "Locate PRD section for @Step decorator options",
192
- "status": "Complete",
193
- "story_points": 1,
194
- "dependencies": [],
195
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: Bug report references PRD Section 8.1 - @Step Decorator Options. PRD is likely in docs/ or PRDs/ directory.\n2. INPUT: Access to project documentation files.\n3. LOGIC: Use Grep or Glob to find PRD document containing @Step decorator options. Locate Section 8.1. Find trackTiming option documentation.\n4. OUTPUT: Identify exact file path and line number for trackTiming documentation."
196
- },
197
- {
198
- "type": "Subtask",
199
- "id": "P1.M2.T3.S2",
200
- "title": "Update PRD to state trackTiming defaults to true",
201
- "status": "Complete",
202
- "story_points": 1,
203
- "dependencies": [
204
- "P1.M2.T3.S1"
205
- ],
206
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report Issue 4, implementation uses 'if (opts.trackTiming !== false)' meaning default is true. PRD should explicitly state this.\n2. INPUT: PRD file location from S1.\n3. LOGIC: Edit PRD Section 8.1 to add explicit default value statement. Example: 'trackTiming?: boolean - Whether to track step execution timing. Default: true.' Save updated PRD.\n4. OUTPUT: PRD updated with explicit trackTiming default value. Documentation matches implementation behavior."
207
- }
208
- ]
209
- }
210
- ]
211
- },
212
- {
213
- "type": "Milestone",
214
- "id": "P1.M3",
215
- "title": "Minor Fixes - Logging & Performance",
216
- "status": "Complete",
217
- "description": "Fix minor issues related to observer error handling, performance optimizations, and validation.",
218
- "tasks": [
219
- {
220
- "type": "Task",
221
- "id": "P1.M3.T1",
222
- "title": "Replace console.error with Logger for Observer Errors",
223
- "status": "Complete",
224
- "description": "Update observer error handling to use workflow logger instead of direct console.error output.",
225
- "subtasks": [
226
- {
227
- "type": "Subtask",
228
- "id": "P1.M3.T1.S1",
229
- "title": "Find all console.error calls for observer errors",
230
- "status": "Complete",
231
- "story_points": 1,
232
- "dependencies": [],
233
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report Issue 5 and plan/bugfix/architecture/codebase_structure.md, console.error occurs at src/core/workflow.ts:376 and src/core/logger.ts:27.\n2. INPUT: Access to codebase and Grep tool.\n3. LOGIC: Use Grep to search for 'console.error' in src/ directory. Identify which calls are for observer errors vs other purposes. Document exact locations and context.\n4. OUTPUT: List of all console.error calls with categorization (observer-related vs other)."
234
- },
235
- {
236
- "type": "Subtask",
237
- "id": "P1.M3.T1.S2",
238
- "title": "Replace observer error console.error with logger.error",
239
- "status": "Complete",
240
- "story_points": 2,
241
- "dependencies": [
242
- "P1.M3.T1.S1"
243
- ],
244
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, Workflow class has this.logger property. Observers errors occur in try-catch blocks around observer callbacks.\n2. INPUT: List of observer-related console.error calls from S1.\n3. LOGIC: For each observer error console.error, replace with this.logger.error() call. Pass appropriate error context. Ensure logger is available in all contexts (may need to pass logger to functions that don't have it).\n4. OUTPUT: All observer errors logged through WorkflowLogger instead of console. No console.error calls remain for observer errors."
245
- },
246
- {
247
- "type": "Subtask",
248
- "id": "P1.M3.T1.S3",
249
- "title": "Add tests for observer error logging",
250
- "status": "Complete",
251
- "story_points": 1,
252
- "dependencies": [
253
- "P1.M3.T1.S2"
254
- ],
255
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, test patterns use vitest. Observer tests should verify error handling.\n2. INPUT: Updated observer error handling from S2.\n3. LOGIC: Create test that adds observer throwing error. Verify error is logged to workflow logger (not console). Verify observer error doesn't crash workflow execution. Check log entries contain error context.\n4. OUTPUT: Test suite for observer error logging. All tests pass verifying errors go through logger."
256
- }
257
- ]
258
- },
259
- {
260
- "type": "Task",
261
- "id": "P1.M3.T2",
262
- "title": "Optimize Tree Debugger Node Map Updates",
263
- "status": "Complete",
264
- "description": "Implement incremental node map updates instead of full rebuild on tree changes.",
265
- "subtasks": [
266
- {
267
- "type": "Subtask",
268
- "id": "P1.M3.T2.S1",
269
- "title": "Analyze tree debugger onTreeChanged implementation",
270
- "status": "Complete",
271
- "story_points": 1,
272
- "dependencies": [],
273
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report Issue 7 and plan/bugfix/architecture/codebase_structure.md, onTreeChanged at src/debugger/tree-debugger.ts:80-84 clears and rebuilds entire nodeMap.\n2. INPUT: Access to src/debugger/tree-debugger.ts.\n3. LOGIC: Read onTreeChanged(), buildNodeMap(), and understand nodeMap structure. Identify what types of tree changes trigger onTreeChanged (childAttached, childDetached). Document when full rebuild is necessary vs when incremental update is possible.\n4. OUTPUT: Analysis document explaining current rebuild logic and opportunities for incremental updates."
274
- },
275
- {
276
- "type": "Subtask",
277
- "id": "P1.M3.T2.S2",
278
- "title": "Implement incremental node map update for childDetached",
279
- "status": "Complete",
280
- "story_points": 2,
281
- "dependencies": [
282
- "P1.M3.T2.S1"
283
- ],
284
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, nodeMap is a Map<string, WorkflowNode>. For childDetached, only need to remove detached node and its descendants.\n2. INPUT: Analysis from S1.\n3. LOGIC: Modify onTreeChanged to detect event type. For childDetached events, recursively remove detached node and all its descendants from nodeMap. For childAttached, add new node and its descendants. For other events, keep full rebuild behavior. Add helper method removeNodeFromMap(node: WorkflowNode).\n4. OUTPUT: onTreeChanged implements incremental updates for attach/detach. Performance improves for large trees."
285
- },
286
- {
287
- "type": "Subtask",
288
- "id": "P1.M3.T2.S3",
289
- "title": "Add benchmark tests for node map updates",
290
- "status": "Complete",
291
- "story_points": 1,
292
- "dependencies": [
293
- "P1.M3.T2.S2"
294
- ],
295
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, project has performance benchmarks in adversarial tests. Use performance.now() for timing.\n2. INPUT: Updated incremental update implementation from S2.\n3. LOGIC: Create benchmark test with large workflow tree (100+ nodes). Measure time for detaching single node with old full rebuild vs new incremental update. Verify incremental update is significantly faster.\n4. OUTPUT: Benchmark test demonstrating performance improvement. Incremental update is faster than full rebuild."
296
- }
297
- ]
298
- },
299
- {
300
- "type": "Task",
301
- "id": "P1.M3.T3",
302
- "title": "Add Workflow Name Validation",
303
- "status": "Complete",
304
- "description": "Add validation to reject empty or whitespace-only workflow names.",
305
- "subtasks": [
306
- {
307
- "type": "Subtask",
308
- "id": "P1.M3.T3.S1",
309
- "title": "Determine validation requirements for workflow names",
310
- "status": "Complete",
311
- "story_points": 1,
312
- "dependencies": [],
313
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report Issue 8, empty string names are currently accepted. Need to decide if validation should be added or if empty names are valid.\n2. INPUT: Access to PRD documentation and workflow examples.\n3. LOGIC: Check PRD for workflow name requirements. Review examples to see if empty names are used. Consult with team on whether empty names should be allowed. If validation is desired, define rules (non-empty? no whitespace? minimum length?).\n4. OUTPUT: Document decision on workflow name validation with rationale. If validation is chosen, specify exact validation rules."
314
- },
315
- {
316
- "type": "Subtask",
317
- "id": "P1.M3.T3.S2",
318
- "title": "Implement workflow name validation in constructor",
319
- "status": "Complete",
320
- "story_points": 1,
321
- "dependencies": [
322
- "P1.M3.T3.S1"
323
- ],
324
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, Workflow constructor takes name parameter. Validation should occur early in constructor.\n2. INPUT: Validation rules from S1.\n3. LOGIC: If validation is desired, add check at start of Workflow constructor. Throw error with descriptive message if name is invalid (empty, whitespace-only, etc.). Error type should be appropriate (TypeError or custom WorkflowValidationError). If validation is NOT desired, document that empty names are intentionally allowed.\n4. OUTPUT: Workflow name validation implemented OR documented as intentionally not validated. TypeScript compiles without errors."
325
- },
326
- {
327
- "type": "Subtask",
328
- "id": "P1.M3.T3.S3",
329
- "title": "Add tests for workflow name validation",
330
- "status": "Complete",
331
- "story_points": 1,
332
- "dependencies": [
333
- "P1.M3.T3.S2"
334
- ],
335
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, test patterns use vitest. Validation tests should use expect().toThrow() for invalid names.\n2. INPUT: Validation implementation from S2.\n3. LOGIC: If validation added: tests for empty string, whitespace-only, valid names. If validation NOT added: tests verifying empty names are accepted. Ensure tests match documented requirements.\n4. OUTPUT: Test suite for workflow name validation. All tests pass matching implementation behavior."
336
- }
337
- ]
338
- },
339
- {
340
- "type": "Task",
341
- "id": "P1.M3.T4",
342
- "title": "Consider Exposing isDescendantOf as Public API",
343
- "status": "Complete",
344
- "description": "Evaluate making the isDescendantOf method public for external ancestry checking.",
345
- "subtasks": [
346
- {
347
- "type": "Subtask",
348
- "id": "P1.M3.T4.S1",
349
- "title": "Evaluate use cases for public isDescendantOf API",
350
- "status": "Complete",
351
- "story_points": 1,
352
- "dependencies": [],
353
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report Issue 9, isDescendantOf is private and only used for cycle detection. Consider if external ancestry checks are useful.\n2. INPUT: Access to workflow examples, use cases, and potential user scenarios.\n3. LOGIC: Research if users need to check ancestry relationships. Look for feature requests, examples, or use cases where this would be helpful. Consider if this is internal implementation detail or useful public API. Evaluate security implications of exposing ancestry information.\n4. OUTPUT: Document recommendation: make public vs keep private. Include rationale and potential use cases if public."
354
- },
355
- {
356
- "type": "Subtask",
357
- "id": "P1.M3.T4.S2",
358
- "title": "Implement public isDescendantOf if approved",
359
- "status": "Complete",
360
- "story_points": 1,
361
- "dependencies": [
362
- "P1.M3.T4.S1"
363
- ],
364
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, isDescendantOf is at src/core/workflow.ts:151-169. It's private and used internally.\n2. INPUT: Decision from S1.\n3. LOGIC: IF decision is to make public: change private keyword to public. Add JSDoc comment explaining usage and behavior. Add parameter validation. Consider if method should be on Workflow class or WorkflowNode interface. IF decision is to keep private: document that this is intentionally internal-only.\n4. OUTPUT: isDescendantOf is public with documentation OR documented as intentionally private. No breaking changes to existing code."
365
- },
366
- {
367
- "type": "Subtask",
368
- "id": "P1.M3.T4.S3",
369
- "title": "Add tests for public isDescendantOf API",
370
- "status": "Complete",
371
- "story_points": 1,
372
- "dependencies": [
373
- "P1.M3.T4.S2"
374
- ],
375
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, test patterns use vitest. Ancestry tests should cover direct child, descendant, not descendant, circular reference scenarios.\n2. INPUT: Public API from S2 (if applicable).\n3. LOGIC: IF made public: tests covering true positive (is descendant), true negative (not descendant), edge cases (same workflow, circular reference). Verify method works from external code. IF kept private: no new tests needed (already tested internally).\n4. OUTPUT: Test suite for public isDescendantOf OR note that no tests needed for private method."
376
- }
377
- ]
378
- }
379
- ]
380
- },
381
- {
382
- "type": "Milestone",
383
- "id": "P1.M4",
384
- "title": "Validation & Documentation",
385
- "status": "Complete",
386
- "description": "Ensure all bug fixes are validated, tested, and documented.",
387
- "tasks": [
388
- {
389
- "type": "Task",
390
- "id": "P1.M4.T1",
391
- "title": "Run Full Test Suite and Verify 100% Pass Rate",
392
- "status": "Complete",
393
- "description": "Execute complete test suite to ensure all 344 existing tests pass plus new tests for bug fixes.",
394
- "subtasks": [
395
- {
396
- "type": "Subtask",
397
- "id": "P1.M4.T1.S1",
398
- "title": "Run full test suite",
399
- "status": "Complete",
400
- "story_points": 1,
401
- "dependencies": [],
402
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, project uses vitest. Run with npm test or vitest command.\n2. INPUT: All bug fix implementations from previous milestones.\n3. LOGIC: Execute full test suite using appropriate command. Capture total test count, pass count, fail count. Review any failing tests and determine if they're pre-existing failures or caused by bug fixes.\n4. OUTPUT: Test execution results showing 344+ tests passing. Document any failures and their causes."
403
- },
404
- {
405
- "type": "Subtask",
406
- "id": "P1.M4.T1.S2",
407
- "title": "Fix any test failures caused by bug fixes",
408
- "status": "Complete",
409
- "story_points": 2,
410
- "dependencies": [
411
- "P1.M4.T1.S1"
412
- ],
413
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, existing tests cover PRD requirements. Bug fixes should not break existing functionality.\n2. INPUT: Test failures from S1.\n3. LOGIC: Analyze each failing test. Determine if failure is due to bug fix changing behavior (need to update test) or bug in fix implementation. Fix implementation bugs or update tests to reflect new correct behavior. Re-run tests until all pass.\n4. OUTPUT: All tests pass. 100% pass rate maintained. Document any test changes and rationale."
414
- }
415
- ]
416
- },
417
- {
418
- "type": "Task",
419
- "id": "P1.M4.T2",
420
- "title": "Create Bug Fix Summary Document",
421
- "status": "Complete",
422
- "description": "Document all bug fixes applied, including rationale, implementation details, and migration guide if needed.",
423
- "subtasks": [
424
- {
425
- "type": "Subtask",
426
- "id": "P1.M4.T2.S1",
427
- "title": "Document critical and major bug fixes",
428
- "status": "Complete",
429
- "story_points": 2,
430
- "dependencies": [
431
- "P1.M4.T1.S2"
432
- ],
433
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report PRD, critical fixes: WorkflowLogger.child() signature. Major fixes: Promise.allSettled, ErrorMergeStrategy, trackTiming default.\n2. INPUT: All implemented bug fixes from P1.M1, P1.M2, P1.M3.\n3. LOGIC: Create comprehensive bug fix summary document. For each fix: describe issue, severity, solution, breaking changes (if any), migration steps. Include code examples showing before/after. Highlight any backward compatibility concerns.\n4. OUTPUT: Bug fix summary document at plan/bugfix/BUG_FIX_SUMMARY.md. Complete with all fixes, code examples, and migration guide."
434
- },
435
- {
436
- "type": "Subtask",
437
- "id": "P1.M4.T2.S2",
438
- "title": "Update changelog and release notes",
439
- "status": "Complete",
440
- "story_points": 1,
441
- "dependencies": [
442
- "P1.M4.T2.S1"
443
- ],
444
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: Project likely has CHANGELOG.md or similar. If not, create one following standard format.\n2. INPUT: Bug fix summary from S1.\n3. LOGIC: Update CHANGELOG.md with new version entry. List all bug fixes categorized by severity. Note any breaking changes. Add migration guide links. Follow semantic versioning principles (determine if this is patch, minor, or major release).\n4. OUTPUT: Updated CHANGELOG.md with all bug fixes documented. Release notes ready for users."
445
- }
446
- ]
447
- },
448
- {
449
- "type": "Task",
450
- "id": "P1.M4.T3",
451
- "title": "Verify Backward Compatibility",
452
- "status": "Complete",
453
- "description": "Ensure all bug fixes maintain backward compatibility where possible and document any breaking changes.",
454
- "subtasks": [
455
- {
456
- "type": "Subtask",
457
- "id": "P1.M4.T3.S1",
458
- "title": "Audit bug fixes for breaking changes",
459
- "status": "Complete",
460
- "story_points": 1,
461
- "dependencies": [
462
- "P1.M4.T2.S1"
463
- ],
464
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report PRD, most fixes should be backward compatible. Potential breaking change: WorkflowLogger.child() signature change.\n2. INPUT: All bug fix implementations.\n3. LOGIC: Review each bug fix for breaking changes. Identify changes to public API signatures, behavior changes, removed features. Document which changes are breaking vs backward compatible. For breaking changes, assess if migration path exists.\n4. OUTPUT: List of breaking changes with severity assessment. Document mitigation strategies and migration paths."
465
- },
466
- {
467
- "type": "Subtask",
468
- "id": "P1.M4.T3.S2",
469
- "title": "Add backward compatibility tests",
470
- "status": "Complete",
471
- "story_points": 2,
472
- "dependencies": [
473
- "P1.M4.T3.S1"
474
- ],
475
- "context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, existing tests provide good coverage. Need specific tests for old API usage patterns.\n2. INPUT: List of potentially breaking changes from S1.\n3. LOGIC: For each potentially breaking change, create tests using old API patterns. Verify old patterns still work or fail with clear error messages directing to new API. Test examples from documentation work as expected.\n4. OUTPUT: Backward compatibility test suite. Existing code patterns continue to work. Clear errors for deprecated patterns."
476
- }
477
- ]
478
- }
479
- ]
480
- }
481
- ]
482
- }
483
- ]
484
- }