groundswell 0.0.1 → 0.0.2

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 (242) hide show
  1. package/.claude/commands/subtask-planning/prp-base-create.md +120 -0
  2. package/.claude/commands/subtask-planning/prp-base-execute.md +65 -0
  3. package/.claude/commands/task-breakdown.md +94 -0
  4. package/.claude/system_prompts/task-breakdown.md +1 -0
  5. package/CHANGELOG.md +188 -0
  6. package/PRD.md +543 -0
  7. package/README.md +99 -5
  8. package/examples/README.md +15 -1
  9. package/examples/examples/11-reparenting-workflows.ts +269 -0
  10. package/examples/index.ts +4 -0
  11. package/package-lock.json +2398 -0
  12. package/package.json +3 -1
  13. package/plan/001_d3bb02af4886/TEST_RESULTS.md +259 -0
  14. package/plan/001_d3bb02af4886/bug_fix_tasks.json +484 -0
  15. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S1/PRP.md +488 -0
  16. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S2/PRP.md +581 -0
  17. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S3/PRP.md +687 -0
  18. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S1/PRP.md +492 -0
  19. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/PRP.md +932 -0
  20. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/concurrent_error_testing_patterns.md +1109 -0
  21. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/vitest_concurrent_testing.md +802 -0
  22. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/workflow_engine_test_references.md +603 -0
  23. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S1/PRP.md +564 -0
  24. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S3/PRP.md +518 -0
  25. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S4/PRP.md +1252 -0
  26. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/PRP.md +364 -0
  27. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/CODEBASE_INVENTORY.md +114 -0
  28. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/DECORATOR_DOCUMENTATION_PATTERNS.md +205 -0
  29. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/PRD_LOCATION_ANALYSIS.md +199 -0
  30. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/ULTRATHINK_PRP_PLAN.md +134 -0
  31. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/PRP.md +495 -0
  32. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/research/console_error_inventory.md +435 -0
  33. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S2/PRP.md +506 -0
  34. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S3/PRP.md +612 -0
  35. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/PRP.md +558 -0
  36. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/research/external_research.md +788 -0
  37. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S2/PRP.md +460 -0
  38. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S3/PRP.md +454 -0
  39. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/PRP.md +520 -0
  40. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/RECOMMENDATION.md +417 -0
  41. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/external_workflow_engines_research.md +760 -0
  42. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/security_implications_analysis.md +245 -0
  43. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S2/PRP.md +792 -0
  44. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/PRP.md +535 -0
  45. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md +190 -0
  46. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/PRP.md +654 -0
  47. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md +227 -0
  48. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md +345 -0
  49. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md +193 -0
  50. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md +1323 -0
  51. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/BREAKING_CHANGES_AUDIT.md +1011 -0
  52. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/PRP.md +927 -0
  53. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S2/PRP.md +505 -0
  54. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/architecture/logger_child_signature_analysis.md +401 -0
  55. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/child_implementation_research.md +142 -0
  56. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/test_patterns_research.md +112 -0
  57. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/vitest_patterns_research.md +159 -0
  58. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/PRP.md +549 -0
  59. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/VERIFICATION_REPORT.md +368 -0
  60. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/edge_case_analysis.md +172 -0
  61. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/usage_inventory.md +175 -0
  62. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S2/PRP.md +696 -0
  63. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S4/PRP.md +860 -0
  64. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/PRP.md +1066 -0
  65. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01-testing-aggregated-errors.md +1103 -0
  66. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01_typescript_error_aggregation_patterns.md +789 -0
  67. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02-error-merge-strategy-testing-guide.md +1098 -0
  68. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02_aggregate_error_patterns.md +1037 -0
  69. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03-promise-allsettled-testing-patterns.md +916 -0
  70. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03_error_merging_strategies.md +1045 -0
  71. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/04_github_stackoverflow_examples.md +890 -0
  72. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/05_comprehensive_summary.md +822 -0
  73. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/INDEX.md +668 -0
  74. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/QUICK_REFERENCE.md +706 -0
  75. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/README.md +265 -0
  76. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/RESEARCH_REPORT.md +655 -0
  77. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S4/research/vitest_testing_patterns.md +1103 -0
  78. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T3S2/PRP.md +426 -0
  79. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/PRP.md +506 -0
  80. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/QUICK_REFERENCE.md +114 -0
  81. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/RESEARCH_SUMMARY.md +316 -0
  82. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/vitest_observer_error_logging_best_practices.md +754 -0
  83. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S3/PRP.md +612 -0
  84. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/PRP.md +719 -0
  85. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/README.md +215 -0
  86. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/analysis.md +765 -0
  87. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S3/PRP.md +718 -0
  88. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md +149 -0
  89. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/PRP.md +470 -0
  90. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/ULTRATHINK_PLAN.md +332 -0
  91. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/codebase_workflow_name_analysis.md +167 -0
  92. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/external_best_practices.md +265 -0
  93. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/validation_patterns.md +273 -0
  94. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S1/workflow_engine_ancestry_api_research.md +760 -0
  95. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S3-PRP.md +434 -0
  96. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S1/PRP.md +717 -0
  97. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/PRP.md +472 -0
  98. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/VALIDATION_REPORT.md +125 -0
  99. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/research/ULTRATHINK_PRP_PLAN.md +301 -0
  100. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/error-logging-best-practices.md +1170 -0
  101. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/research_typescript_partial_and_overloads.md +940 -0
  102. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-quick-reference.md +151 -0
  103. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-research.md +650 -0
  104. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/prd_snapshot.md +259 -0
  105. package/plan/001_d3bb02af4886/bugfix/P1M1T1S1/PRP.md +457 -0
  106. package/plan/001_d3bb02af4886/bugfix/RESEARCH_SUMMARY.md +346 -0
  107. package/plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md +311 -0
  108. package/plan/001_d3bb02af4886/bugfix/architecture/concurrent_execution_best_practices.md +1565 -0
  109. package/plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md +288 -0
  110. package/plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md +741 -0
  111. package/plan/001_d3bb02af4886/docs/PRP/P1M1T1S4-functional-workflow-error-state-capture-test.md +652 -0
  112. package/plan/001_d3bb02af4886/docs/PRP/PRP.md +527 -0
  113. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S1-PRP.md +415 -0
  114. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S2-PRP.md +378 -0
  115. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S4-PRP.md +713 -0
  116. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M2T1S4-PRP.md +370 -0
  117. package/plan/001_d3bb02af4886/docs/PRP_P1M3T1S3.md +499 -0
  118. package/plan/001_d3bb02af4886/docs/TEST_RESULTS.md +230 -0
  119. package/plan/001_d3bb02af4886/docs/bugfix/ANALYSIS_PRD_VS_IMPLEMENTATION.md +1134 -0
  120. package/plan/001_d3bb02af4886/docs/bugfix/GAP_ANALYSIS_SUMMARY.md +179 -0
  121. package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/PRP.md +629 -0
  122. package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/validation-report.md +214 -0
  123. package/plan/001_d3bb02af4886/docs/bugfix/PRP_P1M4T2S3.md +629 -0
  124. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_PRP.md +529 -0
  125. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_QUICK_REFERENCE.md +142 -0
  126. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_README.md +304 -0
  127. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_TEST_RESULTS.md +558 -0
  128. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_VALIDATION_SUMMARY.md +256 -0
  129. package/plan/001_d3bb02af4886/docs/bugfix/system_context.md +346 -0
  130. package/plan/001_d3bb02af4886/docs/bugfix-architecture/bug_analysis.md +415 -0
  131. package/plan/001_d3bb02af4886/docs/bugfix-architecture/implementation_patterns.md +489 -0
  132. package/plan/001_d3bb02af4886/docs/bugfix-architecture/system_context.md +218 -0
  133. package/plan/001_d3bb02af4886/docs/bugfix_INITIATION_SUMMARY.md +380 -0
  134. package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_PATTERNS.md +1923 -0
  135. package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_QUICK_REF.md +319 -0
  136. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/codebase-context.md +115 -0
  137. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/cycle-detection-algorithms.md +134 -0
  138. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/test-patterns.md +153 -0
  139. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/workflow-class.md +132 -0
  140. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_BEST_PRACTICES.md +716 -0
  141. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_QUICK_REF.md +186 -0
  142. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/GROUNDSWELL_DECORATOR_EXAMPLES.md +604 -0
  143. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/INDEX.md +213 -0
  144. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/codebase_structure.md +30 -0
  145. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/existing_test_pattern.md +56 -0
  146. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/getRootObservers_implementation.md +53 -0
  147. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/test_conventions.md +49 -0
  148. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/PRP.md +958 -0
  149. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/QUICK_REFERENCE.md +339 -0
  150. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/README.md +305 -0
  151. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/SUMMARY.md +433 -0
  152. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/bidirectional-tree-consistency-testing.md +1574 -0
  153. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/test-pattern-examples.md +1014 -0
  154. package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_QUICK_REF.md +376 -0
  155. package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_RESEARCH.md +1507 -0
  156. package/plan/001_d3bb02af4886/docs/research/bugfix_typescript_patterns.md +949 -0
  157. package/plan/001_d3bb02af4886/docs/research/error-testing-research.md +619 -0
  158. package/plan/001_d3bb02af4886/docs/research/error_handling_patterns.md +723 -0
  159. package/plan/{research → 001_d3bb02af4886/docs/research/general}/introspection-security-guide.md +56 -0
  160. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/PRP_TEMPLATE.md +460 -0
  161. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/QUICK_REFERENCE.md +324 -0
  162. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/README.md +175 -0
  163. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/RESEARCH_REPORT.md +499 -0
  164. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/SUMMARY.md +163 -0
  165. package/plan/bugfix/BUG_FIX_SUMMARY.md +961 -0
  166. package/src/__tests__/adversarial/attachChild-performance.test.ts +216 -0
  167. package/src/__tests__/adversarial/circular-reference.test.ts +101 -0
  168. package/src/__tests__/adversarial/complex-circular-reference.test.ts +139 -0
  169. package/src/__tests__/adversarial/concurrent-task-failures.test.ts +571 -0
  170. package/src/__tests__/adversarial/deep-analysis.test.ts +729 -0
  171. package/src/__tests__/adversarial/deep-hierarchy-stress.test.ts +213 -0
  172. package/src/__tests__/adversarial/e2e-prd-validation.test.ts +448 -0
  173. package/src/__tests__/adversarial/edge-case.test.ts +703 -0
  174. package/src/__tests__/adversarial/error-merge-strategy.test.ts +760 -0
  175. package/src/__tests__/adversarial/incremental-performance.test.ts +140 -0
  176. package/src/__tests__/adversarial/node-map-update-benchmarks.test.ts +457 -0
  177. package/src/__tests__/adversarial/observer-propagation.test.ts +487 -0
  178. package/src/__tests__/adversarial/parent-validation.test.ts +143 -0
  179. package/src/__tests__/adversarial/prd-12-2-compliance.test.ts +611 -0
  180. package/src/__tests__/adversarial/prd-compliance.test.ts +731 -0
  181. package/src/__tests__/compatibility/backward-compatibility.test.ts +1572 -0
  182. package/src/__tests__/helpers/index.ts +18 -0
  183. package/src/__tests__/helpers/tree-verification.ts +257 -0
  184. package/src/__tests__/integration/bidirectional-consistency.test.ts +847 -0
  185. package/src/__tests__/integration/observer-logging.test.ts +643 -0
  186. package/src/__tests__/integration/tree-mirroring.test.ts +37 -0
  187. package/src/__tests__/integration/workflow-reparenting.test.ts +303 -0
  188. package/src/__tests__/unit/context.test.ts +79 -0
  189. package/src/__tests__/unit/logger.test.ts +293 -0
  190. package/src/__tests__/unit/observable.test.ts +321 -0
  191. package/src/__tests__/unit/tree-debugger-incremental.test.ts +170 -0
  192. package/src/__tests__/unit/utils/workflow-error-utils.test.ts +209 -0
  193. package/src/__tests__/unit/workflow-detachChild.test.ts +100 -0
  194. package/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts +153 -0
  195. package/src/__tests__/unit/workflow-isDescendantOf.test.ts +180 -0
  196. package/src/__tests__/unit/workflow.test.ts +277 -1
  197. package/src/core/agent.ts +21 -1
  198. package/src/core/logger.ts +27 -2
  199. package/src/core/workflow-context.ts +6 -4
  200. package/src/core/workflow.ts +252 -14
  201. package/src/debugger/tree-debugger.ts +52 -7
  202. package/src/decorators/task.ts +65 -2
  203. package/src/index.ts +4 -2
  204. package/src/types/decorators.ts +8 -1
  205. package/src/types/events.ts +1 -0
  206. package/src/utils/index.ts +1 -0
  207. package/src/utils/observable.ts +32 -3
  208. package/src/utils/workflow-error-utils.ts +56 -0
  209. package/tsconfig.json +1 -1
  210. package/llms_full.txt +0 -5890
  211. package/tasks.json +0 -0
  212. /package/plan/{backlog.json → 001_d3bb02af4886/backlog.json} +0 -0
  213. /package/plan/{P1P2/PRP.md → 001_d3bb02af4886/docs/PRP/P1P2-PRP.md} +0 -0
  214. /package/plan/{P3P4/PRP.md → 001_d3bb02af4886/docs/PRP/P3P4-PRP.md} +0 -0
  215. /package/plan/{P4P5/PRP.md → 001_d3bb02af4886/docs/PRP/P4P5-PRP.md} +0 -0
  216. /package/plan/{architecture → 001_d3bb02af4886/docs/architecture}/external_deps.md +0 -0
  217. /package/plan/{architecture → 001_d3bb02af4886/docs/architecture}/system_context.md +0 -0
  218. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/LRU_CACHE_BEST_PRACTICES.md +0 -0
  219. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/LRU_CACHE_CODE_PATTERNS.md +0 -0
  220. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/LRU_CACHE_INTEGRATION_GUIDE.md +0 -0
  221. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/LRU_CACHE_RESEARCH_INDEX.md +0 -0
  222. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/REFLECTION_INDEX.md +0 -0
  223. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/REFLECTION_RESEARCH_REPORT.md +0 -0
  224. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/RESEARCH_SUMMARY.md +0 -0
  225. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/anthropic-sdk.md +0 -0
  226. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/async-local-storage.md +0 -0
  227. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-code-patterns.md +0 -0
  228. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-decision-matrix.md +0 -0
  229. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-implementation-guide.md +0 -0
  230. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-integration-guide.md +0 -0
  231. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-patterns.md +0 -0
  232. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-quick-reference.md +0 -0
  233. /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/zod-schema.md +0 -0
  234. /package/plan/{P3P4/research → 001_d3bb02af4886/docs/research/P3P4}/caching-lru.md +0 -0
  235. /package/plan/{P3P4/research → 001_d3bb02af4886/docs/research/P3P4}/introspection-tools.md +0 -0
  236. /package/plan/{P3P4/research → 001_d3bb02af4886/docs/research/P3P4}/reflection-patterns.md +0 -0
  237. /package/plan/{P4P5/research → 001_d3bb02af4886/docs/research/P4P5}/RESEARCH_SUMMARY.md +0 -0
  238. /package/plan/{research → 001_d3bb02af4886/docs/research/general}/INTROSPECTION_RESEARCH_SUMMARY.md +0 -0
  239. /package/plan/{research → 001_d3bb02af4886/docs/research/general}/README-INTROSPECTION.md +0 -0
  240. /package/plan/{research → 001_d3bb02af4886/docs/research/general}/agent-introspection-patterns.md +0 -0
  241. /package/plan/{research → 001_d3bb02af4886/docs/research/general}/introspection-tool-examples.md +0 -0
  242. /package/{PRPs/PRDs/001-hierarchical-workflow-engine.md → plan/001_d3bb02af4886/prd_snapshot.md} +0 -0
@@ -0,0 +1,433 @@
1
+ # Research Summary: Bidirectional Tree Consistency Testing
2
+
3
+ **Task:** P1M3T1S4
4
+ **Date:** 2026-01-12
5
+ **Status:** COMPLETE
6
+
7
+ ---
8
+
9
+ ## Executive Summary
10
+
11
+ This research identified and documented best practices for testing bidirectional consistency between dual tree structures (Workflow instance tree and WorkflowNode tree). The findings are based on:
12
+
13
+ 1. **Analysis of existing codebase patterns** (7 test files examined)
14
+ 2. **Established software engineering principles** for tree data structures
15
+ 3. **External best practices** from DOM API, React Fiber, and academic research
16
+
17
+ **Key Finding:** The codebase already implements strong testing patterns for tree consistency. The research extracted, documented, and organized these patterns into actionable guidelines.
18
+
19
+ ---
20
+
21
+ ## Key Deliverables
22
+
23
+ ### 1. Comprehensive Research Document
24
+ **File:** `/home/dustin/projects/groundswell/plan/bugfix/P1M3T1S4/research/bidirectional-tree-consistency-testing.md`
25
+
26
+ **Contents:**
27
+ - Core testing patterns (AAA pattern, naming conventions)
28
+ - Bidirectional consistency validation methods
29
+ - Tree operation testing (attach, detach, reparenting)
30
+ - Invariant testing patterns (structural, counting, depth)
31
+ - Adversarial testing approaches (manual mutations, circular refs, stress tests)
32
+ - External best practices (DOM, React Fiber, property-based testing)
33
+ - Test pattern catalog with reusable templates
34
+ - Implementation checklist
35
+
36
+ **Size:** 1,100+ lines of comprehensive documentation
37
+
38
+ ### 2. Ready-to-Use Test Examples
39
+ **File:** `/home/dustin/projects/groundswell/plan/bugfix/P1M3T1S4/research/test-pattern-examples.md`
40
+
41
+ **Contents:**
42
+ - Helper functions for tree verification (copy-paste ready)
43
+ - 6 complete test patterns with full code examples:
44
+ - Basic bidirectional consistency tests
45
+ - Reparenting consistency tests
46
+ - Invariant testing patterns
47
+ - Adversarial testing patterns
48
+ - Property-based testing patterns
49
+ - WorkflowTreeDebugger integration patterns
50
+ - Test file template for quick start
51
+ - Usage guidelines and best practices
52
+
53
+ **Size:** 600+ lines of actionable code examples
54
+
55
+ ### 3. This Summary Document
56
+ **File:** `/home/dustin/projects/groundswell/plan/bugfix/P1M3T1S4/research/SUMMARY.md`
57
+
58
+ **Contents:**
59
+ - Executive summary
60
+ - Key findings
61
+ - Actionable recommendations
62
+ - URLs and references
63
+ - Implementation roadmap
64
+
65
+ ---
66
+
67
+ ## Key Findings
68
+
69
+ ### Finding 1: Existing Codebase Has Strong Patterns
70
+
71
+ **Evidence:** Analysis of `/home/dustin/projects/groundswell/src/__tests__/integration/workflow-reparenting.test.ts`
72
+
73
+ The existing test suite demonstrates excellent patterns for bidirectional consistency testing:
74
+
75
+ ```typescript
76
+ // Lines 280-302: Critical 1:1 Tree Mirror Invariant validation
77
+ // Workflow tree state:
78
+ expect(child.parent).toBe(parent2);
79
+ expect(parent2.children).toEqual([child]);
80
+ expect(parent1.children).toEqual([]);
81
+
82
+ // Node tree state (via getNode() method):
83
+ const childNodeFinal = child.getNode();
84
+ const parent2NodeFinal = parent2.getNode();
85
+ const parent1NodeFinal = parent1.getNode();
86
+
87
+ expect(childNodeFinal.parent).toBe(parent2NodeFinal);
88
+ expect(parent2NodeFinal.children).toEqual([childNodeFinal]);
89
+ expect(parent1NodeFinal.children).toEqual([]);
90
+ ```
91
+
92
+ **Impact:** These patterns should be extracted into reusable helper functions and applied consistently across all tree operations.
93
+
94
+ ---
95
+
96
+ ### Finding 2: Tree Mirror Invariant is Critical
97
+
98
+ **Core Invariant:** The Workflow instance tree and WorkflowNode tree must maintain perfect 1:1 correspondence at all times.
99
+
100
+ **Validation Approach:**
101
+ ```typescript
102
+ function verifyTreeMirror(workflowRoot: Workflow): void {
103
+ const allNodes = collectAllNodes(workflowRoot);
104
+
105
+ allNodes.forEach(wfNode => {
106
+ const node = wfNode.node;
107
+
108
+ // Verify parent relationship mirrors
109
+ if (wfNode.parent) {
110
+ expect(node.parent).toBe(wfNode.parent.node);
111
+ } else {
112
+ expect(node.parent).toBeNull();
113
+ }
114
+
115
+ // Verify children relationship mirrors
116
+ expect(node.children.length).toBe(wfNode.children.length);
117
+ wfNode.children.forEach((childWf, index) => {
118
+ expect(node.children[index]).toBe(childWf.node);
119
+ });
120
+ });
121
+ }
122
+ ```
123
+
124
+ **Impact:** This invariant should be verified after every tree mutation operation (attach, detach, reparenting).
125
+
126
+ ---
127
+
128
+ ### Finding 3: Bidirectional Link Verification is Essential
129
+
130
+ **Pattern:** Always verify both directions of parent-child relationships in BOTH trees.
131
+
132
+ **Example:**
133
+ ```typescript
134
+ function verifyBidirectionalLink(parent: Workflow, child: Workflow): void {
135
+ // Workflow tree checks
136
+ expect(child.parent).toBe(parent);
137
+ expect(parent.children).toContain(child);
138
+
139
+ // Node tree checks (must mirror workflow tree)
140
+ expect(child.node.parent).toBe(parent.node);
141
+ expect(parent.node.children).toContain(child.node);
142
+ }
143
+ ```
144
+
145
+ **Impact:** This helper function should be used after every attachChild() and after reparenting operations.
146
+
147
+ ---
148
+
149
+ ### Finding 4: Adversarial Testing Catches Edge Cases
150
+
151
+ **Evidence:** `/home/dustin/projects/groundswell/src/__tests__/adversarial/edge-case.test.ts` demonstrates comprehensive edge case testing:
152
+
153
+ - Manual parent mutation tests
154
+ - Circular reference detection
155
+ - Deep hierarchy stress tests (100 levels)
156
+ - Wide hierarchy stress tests (100 siblings)
157
+ - Rapid attach/detach cycles
158
+
159
+ **Impact:** These patterns should be expanded to cover more scenarios and run as part of regular test suite.
160
+
161
+ ---
162
+
163
+ ### Finding 5: External Best Practices Align with Implementation
164
+
165
+ **DOM Tree API:** The WHATWG DOM specification provides authoritative patterns for tree mutation semantics. Our implementation follows similar principles.
166
+
167
+ **React Fiber:** The dual tree representation (current tree + work-in-progress tree) mirrors our Workflow tree + WorkflowNode tree pattern.
168
+
169
+ **Property-Based Testing:** QuickCheck/Hypothesis patterns provide formal methods for invariant testing.
170
+
171
+ **Impact:** These external patterns validate our approach and provide additional testing strategies.
172
+
173
+ ---
174
+
175
+ ## Actionable Recommendations
176
+
177
+ ### Priority 1: Create Helper Functions Library
178
+
179
+ **Action:** Create `/home/dustin/projects/groundswell/src/__tests__/helpers/tree-verification.ts`
180
+
181
+ **Content:**
182
+ - `collectAllNodes(root: Workflow): Workflow[]`
183
+ - `validateTreeConsistency(root: Workflow): string[]`
184
+ - `verifyBidirectionalLink(parent: Workflow, child: Workflow): void`
185
+ - `verifyTreeMirror(workflowRoot: Workflow): void`
186
+ - `verifyOrphaned(child: Workflow): void`
187
+ - `verifyNoCycles(root: Workflow): void`
188
+ - `getDepth(node: Workflow): number`
189
+
190
+ **Benefit:** Reusable utilities that ensure consistent testing across all test files.
191
+
192
+ **Effort:** 2-3 hours
193
+ **Impact:** HIGH
194
+
195
+ ---
196
+
197
+ ### Priority 2: Create Comprehensive Test Suite
198
+
199
+ **Action:** Create `/home/dustin/projects/groundswell/src/__tests__/integration/bidirectional-consistency.test.ts`
200
+
201
+ **Content:**
202
+ - Basic operation consistency tests (attach, detach, reparenting)
203
+ - Tree mirror invariant tests
204
+ - Bidirectional link verification tests
205
+ - Error case validation tests
206
+
207
+ **Benefit:** Centralized location for all bidirectional consistency tests.
208
+
209
+ **Effort:** 4-6 hours
210
+ **Impact:** HIGH
211
+
212
+ ---
213
+
214
+ ### Priority 3: Expand Adversarial Test Suite
215
+
216
+ **Action:** Create `/home/dustin/projects/groundswell/src/__tests__/adversarial/tree-invariants.test.ts`
217
+
218
+ **Content:**
219
+ - Manual mutation detection tests
220
+ - Circular reference tests (simple and complex)
221
+ - Stress tests (deep/wide hierarchies)
222
+ - Rapid cycle tests
223
+ - Property-based tests
224
+
225
+ **Benefit:** Catches edge cases and ensures robustness.
226
+
227
+ **Effort:** 3-4 hours
228
+ **Impact:** MEDIUM
229
+
230
+ ---
231
+
232
+ ### Priority 4: Add Consistency Checks to Test Teardown
233
+
234
+ **Action:** Add global test teardown that validates tree consistency
235
+
236
+ **Implementation:**
237
+ ```typescript
238
+ // In vitest.config.ts or test setup file
239
+ afterEach(() => {
240
+ // If test created any workflows, verify no inconsistencies leaked
241
+ // This catches test bugs that leave trees in invalid state
242
+ });
243
+ ```
244
+
245
+ **Benefit:** Catches test pollution and ensures tests don't leave corrupted state.
246
+
247
+ **Effort:** 1-2 hours
248
+ **Impact:** MEDIUM
249
+
250
+ ---
251
+
252
+ ### Priority 5: Document Testing Patterns
253
+
254
+ **Action:** Add testing documentation to project README or docs folder
255
+
256
+ **Content:**
257
+ - How to test tree operations
258
+ - Required consistency checks
259
+ - Common pitfalls
260
+ - Helper functions reference
261
+
262
+ **Benefit:** Onboards new contributors and ensures consistent testing practices.
263
+
264
+ **Effort:** 2-3 hours
265
+ **Impact:** MEDIUM
266
+
267
+ ---
268
+
269
+ ## URLs and References
270
+
271
+ ### Internal Resources (Codebase)
272
+
273
+ 1. **Existing Reparenting Tests**
274
+ - URL: `/home/dustin/projects/groundswell/src/__tests__/integration/workflow-reparenting.test.ts`
275
+ - Key Pattern: Lines 280-302 (1:1 Tree Mirror Invariant validation)
276
+
277
+ 2. **Tree Mirroring Tests**
278
+ - URL: `/home/dustin/projects/groundswell/src/__tests__/integration/tree-mirroring.test.ts`
279
+ - Key Pattern: Lines 27-41 (1:1 tree mirror validation)
280
+
281
+ 3. **PRD Compliance Tests**
282
+ - URL: `/home/dustin/projects/groundswell/src/__tests__/adversarial/prd-compliance.test.ts`
283
+ - Key Pattern: Lines 678-730 (Perfect 1:1 Tree Mirror Requirement)
284
+
285
+ 4. **Edge Case Tests**
286
+ - URL: `/home/dustin/projects/groundswell/src/__tests__/adversarial/edge-case.test.ts`
287
+ - Key Pattern: Lines 490-505 (Circular reference detection)
288
+
289
+ 5. **Deep Analysis Tests**
290
+ - URL: `/home/dustin/projects/groundswell/src/__tests__/adversarial/deep-analysis.test.ts`
291
+ - Key Pattern: Lines 582-622 (Child attachment edge cases)
292
+
293
+ 6. **Tree Debugger Implementation**
294
+ - URL: `/home/dustin/projects/groundswell/src/debugger/tree-debugger.ts`
295
+ - Key Pattern: Lines 38-84 (Tree structure tracking and validation)
296
+
297
+ 7. **Implementation Patterns Documentation**
298
+ - URL: `/home/dustin/projects/groundswell/plan/docs/bugfix-architecture/implementation_patterns.md`
299
+ - Key Pattern: Lines 272-400 (Tree Integrity Test Suite)
300
+
301
+ ### External Resources (Best Practices)
302
+
303
+ 1. **DOM Tree Specification**
304
+ - URL: https://dom.spec.whatwg.org/#concept-tree-parent
305
+ - Relevance: Authoritative source on tree mutation semantics
306
+ - Key Concepts: Parent-child relationship management, tree traversal, node ownership
307
+
308
+ 2. **React Fiber Architecture**
309
+ - URL: https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiber.js
310
+ - Relevance: Dual tree representation patterns
311
+ - Key Concepts: Current tree + work-in-progress tree synchronization
312
+
313
+ 3. **QuickCheck Paper (Property-Based Testing)**
314
+ - URL: https://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/quick.pdf
315
+ - Relevance: Formal methods for invariant testing
316
+ - Key Concepts: Property definition, random generation, invariant verification
317
+
318
+ 4. **Princeton CS226 - Balanced Trees**
319
+ - URL: https://www.cs.princeton.edu/courses/archive/fall09/cos226/lectures/22BalancedTrees.pdf
320
+ - Relevance: Formal invariant definition
321
+ - Key Concepts: Structural invariants, size properties, height properties
322
+
323
+ ---
324
+
325
+ ## Implementation Roadmap
326
+
327
+ ### Phase 1: Foundation (Week 1)
328
+ - [ ] Create helper functions library (`tree-verification.ts`)
329
+ - [ ] Add helper functions to all existing tree tests
330
+ - [ ] Run full test suite to ensure no regressions
331
+
332
+ ### Phase 2: Coverage (Week 2)
333
+ - [ ] Create comprehensive bidirectional consistency test suite
334
+ - [ ] Add tests for all tree operations (attach, detach, reparenting)
335
+ - [ ] Add invariant tests (acyclicity, single root, connectedness)
336
+ - [ ] Achieve 100% coverage of tree mutation code paths
337
+
338
+ ### Phase 3: Robustness (Week 3)
339
+ - [ ] Create adversarial test suite
340
+ - [ ] Add stress tests (deep/wide hierarchies)
341
+ - [ ] Add property-based tests
342
+ - [ ] Add manual mutation detection tests
343
+
344
+ ### Phase 4: Integration (Week 4)
345
+ - [ ] Add consistency checks to test teardown
346
+ - [ ] Integrate with CI/CD pipeline
347
+ - [ ] Document testing patterns
348
+ - [ ] Train team on new testing approaches
349
+
350
+ ---
351
+
352
+ ## Success Metrics
353
+
354
+ ### Quantitative Metrics
355
+ 1. **Test Coverage**: Achieve >95% coverage for tree manipulation code
356
+ 2. **Test Count**: Add 50+ new bidirectional consistency tests
357
+ 3. **Test Speed**: Ensure full test suite completes in <5 minutes
358
+ 4. **Bug Detection**: Catch 5+ potential issues through adversarial testing
359
+
360
+ ### Qualitative Metrics
361
+ 1. **Confidence**: High confidence that tree operations maintain consistency
362
+ 2. **Maintainability**: Easy to add new tree consistency tests
363
+ 3. **Documentation**: Clear patterns documented and team trained
364
+ 4. **Robustness**: Tests catch edge cases and prevent regressions
365
+
366
+ ---
367
+
368
+ ## Risks and Mitigations
369
+
370
+ ### Risk 1: Test Suite Performance
371
+ **Risk:** Adding many consistency checks may slow down tests
372
+ **Mitigation:** Use lightweight validation, cache results, run only in CI
373
+
374
+ ### Risk 2: False Positives
375
+ **Risk:** Strict consistency checks may flag valid edge cases
376
+ **Mitigation:** Carefully define invariants, allow exceptions where appropriate
377
+
378
+ ### Risk 3: Maintenance Overhead
379
+ **Risk:** Large test suite requires ongoing maintenance
380
+ **Mitigation:** Use helper functions, document patterns, automate where possible
381
+
382
+ ### Risk 4: Team Adoption
383
+ **Risk:** Team may not follow new testing patterns
384
+ **Mitigation:** Provide training, create templates, integrate with code review
385
+
386
+ ---
387
+
388
+ ## Next Steps
389
+
390
+ 1. **Review Research Documents**
391
+ - Read `bidirectional-tree-consistency-testing.md` for comprehensive patterns
392
+ - Read `test-pattern-examples.md` for ready-to-use code
393
+
394
+ 2. **Implement Helper Functions**
395
+ - Create `src/__tests__/helpers/tree-verification.ts`
396
+ - Copy helper functions from research document
397
+
398
+ 3. **Create Test Suite**
399
+ - Create `src/__tests__/integration/bidirectional-consistency.test.ts`
400
+ - Implement tests using patterns from research
401
+
402
+ 4. **Validate and Iterate**
403
+ - Run tests, fix issues, refine patterns
404
+ - Document lessons learned
405
+
406
+ 5. **Share with Team**
407
+ - Present findings at team meeting
408
+ - Train team on new testing patterns
409
+
410
+ ---
411
+
412
+ ## Conclusion
413
+
414
+ This research successfully identified and documented best practices for testing bidirectional consistency between dual tree structures. The key findings are:
415
+
416
+ 1. **Strong Foundation**: The codebase already has excellent testing patterns that can be extracted and reused
417
+ 2. **Critical Invariant**: The 1:1 tree mirror invariant between Workflow and WorkflowNode trees must be maintained
418
+ 3. **Proven Patterns**: External best practices (DOM, React Fiber, academic research) validate our approach
419
+ 4. **Actionable Roadmap**: Clear implementation path with helper functions, test suites, and documentation
420
+
421
+ The research deliverables provide everything needed to implement comprehensive bidirectional consistency testing: comprehensive documentation, ready-to-use code examples, and an implementation roadmap.
422
+
423
+ **Research Status:** COMPLETE
424
+ **Ready for Implementation:** YES
425
+ **Next Phase:** P1M3T1S5 - Implement test suite based on research findings
426
+
427
+ ---
428
+
429
+ **Document Information**
430
+ - **Author:** P1M3T1S4 Research Team
431
+ - **Date:** 2026-01-12
432
+ - **Version:** 1.0
433
+ - **Status:** Final