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,454 @@
1
+ name: "P1.M3.T3.S3 - Verify Tests for Workflow Name Validation"
2
+ description: |
3
+
4
+ ---
5
+
6
+ ## Goal
7
+
8
+ **Feature Goal**: Verify that comprehensive tests exist for the workflow name validation implementation and that all tests pass.
9
+
10
+ **Deliverable**: Verification report confirming test coverage is complete and all validation tests pass.
11
+
12
+ **Success Definition**:
13
+ - All workflow name validation tests exist in `src/__tests__/unit/workflow.test.ts`
14
+ - All 28 workflow tests pass (verified via `npm test -- workflow.test.ts`)
15
+ - Test coverage includes all validation scenarios from S1 decision document
16
+ - Test patterns follow project conventions (vitest, expect().toThrow())
17
+
18
+ ## User Persona (if applicable)
19
+
20
+ **Target User**: QA Engineer, Developer reviewing test coverage, or Future Maintainer
21
+
22
+ **Use Case**: Confirming that workflow name validation is properly tested before marking P1.M3.T3 complete
23
+
24
+ **User Journey**:
25
+ 1. Review this PRP to understand what tests should exist
26
+ 2. Run the test suite to verify all tests pass
27
+ 3. Review test code to understand validation coverage
28
+ 4. Document results for task completion
29
+
30
+ **Pain Points Addressed**:
31
+ - Ensures validation is tested before considering task complete
32
+ - Provides clear verification steps for quality assurance
33
+ - Documents test coverage for future reference
34
+
35
+ ## Why
36
+
37
+ - **Quality Assurance**: Validation logic must be tested to prevent regressions
38
+ - **Task Completion**: P1.M3.T3 requires tests before marking complete
39
+ - **Documentation**: Future maintainers need to know what's tested
40
+ - **Relationship to S2**: Tests were implemented as part of P1M3T3S2 Task 3, this task verifies completion
41
+
42
+ ## What
43
+
44
+ Verify that the workflow name validation tests implemented in P1M3T3S2 are comprehensive and passing.
45
+
46
+ ### Success Criteria
47
+
48
+ - [ ] All workflow name validation tests exist
49
+ - [ ] All tests pass: `npm test -- workflow.test.ts`
50
+ - [ ] Test coverage matches S1 decision document requirements
51
+ - [ ] Both constructor patterns (class-based and functional) are tested
52
+
53
+ ## Important Note
54
+
55
+ **Tests were already implemented in P1M3T3S2 Task 3**. This PRP is a verification task to confirm the tests are complete and passing. The test suite was created as part of the validation implementation to ensure immediate feedback during development.
56
+
57
+ ## All Needed Context
58
+
59
+ ### Context Completeness Check
60
+
61
+ _Before using this PRP, validate: "If someone knew nothing about this codebase, would they have everything needed to verify the tests are complete?"_
62
+
63
+ ✅ **YES** - This PRP includes:
64
+ - Exact file path and line numbers for existing tests
65
+ - Complete list of test scenarios covered
66
+ - Reference to S1 decision document for validation rules
67
+ - Reference to S2 PRP that implemented the tests
68
+ - Commands to run and verify tests
69
+
70
+ ### Documentation & References
71
+
72
+ ```yaml
73
+ # MUST READ - Include these in your context window
74
+ - file: src/__tests__/unit/workflow.test.ts
75
+ why: Contains the complete workflow name validation test suite (lines 13-85)
76
+ pattern: Uses `describe('Workflow Name Validation')` with 13 test cases
77
+ critical: Tests cover all validation rules from S1 decision document
78
+
79
+ - file: src/__tests__/unit/workflow.test.ts:13-85
80
+ why: This is the complete validation test suite implemented in S2
81
+ pattern: Uses `expect(() => new SimpleWorkflow('')).toThrow()` for error testing
82
+ gotcha: Tests both class-based and functional constructor patterns
83
+
84
+ - url: file:///home/dustin/projects/groundswell/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S2/PRP.md
85
+ why: Contains the implementation PRP that included Task 3 to create these tests
86
+ critical: Task 3 explicitly specified the test suite requirements
87
+
88
+ - url: file:///home/dustin/projects/groundswell/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md
89
+ why: Contains the validation rules that the tests must verify
90
+ section: Rules 1-5 specify exact validation behavior
91
+
92
+ - file: src/core/workflow.ts:98-107
93
+ why: Contains the validation implementation that the tests verify
94
+ pattern: Throws `Error` for empty/whitespace names and names > 100 chars
95
+
96
+ - file: vitest.config.ts
97
+ why: Test configuration - confirms vitest is the test framework
98
+ pattern: `include: ['src/__tests__/**/*.test.ts']`
99
+ ```
100
+
101
+ ### Current Codebase tree (run `tree` in the root of the project) to get an overview of the codebase
102
+
103
+ ```bash
104
+ /home/dustin/projects/groundswell
105
+ ├── src/
106
+ │ ├── core/
107
+ │ │ └── workflow.ts # Contains validation implementation (lines 98-107)
108
+ │ └── __tests__/
109
+ │ ├── adversarial/
110
+ │ │ └── edge-case.test.ts
111
+ │ └── unit/
112
+ │ └── workflow.test.ts # CONTAINS VALIDATION TESTS (lines 13-85)
113
+ ├── plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/
114
+ │ ├── P1M3T3S2/PRP.md # Implementation PRP that included tests
115
+ │ └── P1M3T3S3/PRP.md # This verification PRP
116
+ ```
117
+
118
+ ### Desired Codebase tree with files to be added and responsibility of file
119
+
120
+ ```bash
121
+ # No new files to be added for this verification task
122
+ # The test file already exists at:
123
+ └── __tests__/
124
+ └── unit/
125
+ └── workflow.test.ts # VERIFICATION TARGET (lines 13-85)
126
+ ```
127
+
128
+ ### Known Gotchas of our codebase & Library Quirks
129
+
130
+ ```typescript
131
+ // CRITICAL: Tests were already implemented in P1M3T3S2 Task 3
132
+ // Do NOT create new tests - verify existing tests are complete
133
+
134
+ // The test suite is comprehensive and includes:
135
+ // - Empty string rejection
136
+ // - Whitespace-only rejection (spaces, tabs, newlines, mixed)
137
+ // - Name exceeding 100 characters rejection
138
+ // - Exactly 100 characters acceptance (boundary test)
139
+ // - Valid names with leading/trailing whitespace acceptance
140
+ // - Undefined/null names using class name (existing behavior)
141
+ // - Both constructor patterns (class-based and functional)
142
+
143
+ // GOTCHA: Tests use expect().toThrow() for validation error testing
144
+ // This is the standard pattern for constructor validation in this codebase
145
+
146
+ // GOTCHA: Tests are in a describe block titled 'Workflow Name Validation'
147
+ // This is separate from the main 'Workflow' describe block
148
+
149
+ // GOTCHA: The SimpleWorkflow class is used as the test fixture
150
+ // It extends Workflow with a minimal run() method
151
+ ```
152
+
153
+ ## Implementation Blueprint
154
+
155
+ ### Data models and structure
156
+
157
+ No new data models. This is a verification task for existing tests.
158
+
159
+ ### Existing Test Coverage (Already Implemented)
160
+
161
+ The following tests exist at `src/__tests__/unit/workflow.test.ts:13-85`:
162
+
163
+ ```yaml
164
+ Test Suite: "Workflow Name Validation"
165
+
166
+ Test 1: "should reject empty string name"
167
+ - Validates: Empty string ('') throws error
168
+ - Expected: "Workflow name cannot be empty or whitespace only"
169
+
170
+ Test 2: "should reject whitespace-only name (spaces)"
171
+ - Validates: ' ' (3 spaces) throws error
172
+ - Expected: "Workflow name cannot be empty or whitespace only"
173
+
174
+ Test 3: "should reject whitespace-only name (tabs)"
175
+ - Validates: '\t\t' (2 tabs) throws error
176
+ - Expected: "Workflow name cannot be empty or whitespace only"
177
+
178
+ Test 4: "should reject whitespace-only name (newlines)"
179
+ - Validates: '\n\n' (2 newlines) throws error
180
+ - Expected: "Workflow name cannot be empty or whitespace only"
181
+
182
+ Test 5: "should reject whitespace-only name (mixed whitespace)"
183
+ - Validates: ' \t\n ' (mixed) throws error
184
+ - Expected: "Workflow name cannot be empty or whitespace only"
185
+
186
+ Test 6: "should reject name exceeding 100 characters"
187
+ - Validates: 101 character name throws error
188
+ - Expected: "Workflow name cannot exceed 100 characters"
189
+
190
+ Test 7: "should accept name with exactly 100 characters"
191
+ - Validates: 100 character name is accepted
192
+ - Boundary test: Exact maximum length
193
+
194
+ Test 8: "should accept valid names with leading/trailing whitespace"
195
+ - Validates: ' MyWorkflow ' is accepted as-is
196
+ - Confirms: No auto-trimming behavior
197
+
198
+ Test 9: "should use class name when name is undefined"
199
+ - Validates: undefined uses class name
200
+ - Existing behavior preserved
201
+
202
+ Test 10: "should use class name when name is null"
203
+ - Validates: null uses class name
204
+ - Existing behavior preserved
205
+
206
+ Test 11: "should validate both constructor patterns - class-based with empty name"
207
+ - Validates: Class-based pattern rejects empty names
208
+
209
+ Test 12: "should validate both constructor patterns - functional with empty name"
210
+ - Validates: Functional pattern rejects empty names
211
+
212
+ Test 13: "should validate both constructor patterns - functional with whitespace name"
213
+ - Validates: Functional pattern rejects whitespace names
214
+
215
+ Test 14: "should validate both constructor patterns - functional with name exceeding 100 characters"
216
+ - Validates: Functional pattern rejects long names
217
+
218
+ Test 15: "should accept valid name in functional pattern"
219
+ - Validates: Functional pattern accepts valid names
220
+ ```
221
+
222
+ ### Verification Tasks (ordered by dependencies)
223
+
224
+ ```yaml
225
+ Task 1: VERIFY test suite exists
226
+ - LOCATION: src/__tests__/unit/workflow.test.ts
227
+ - CHECK: Lines 13-85 contain "Workflow Name Validation" describe block
228
+ - VERIFY: All 15 test cases listed above are present
229
+ - CONFIRM: Tests use expect().toThrow() pattern for validation
230
+ - DOCUMENT: List any missing test scenarios if found
231
+
232
+ Task 2: RUN tests to verify they pass
233
+ - COMMAND: npm test -- workflow.test.ts
234
+ - EXPECT: All 28 tests in workflow.test.ts pass
235
+ - VERIFY: Specifically the 15 validation tests pass
236
+ - DOCUMENT: Any failing tests and their errors
237
+
238
+ Task 3: VERIFY test coverage matches S1 decision document
239
+ - REFERENCE: plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md
240
+ - CHECK: Rule 1 (Empty/Whitespace rejection) - Tests 1-5 cover this
241
+ - CHECK: Rule 2 (Max 100 characters) - Tests 6-7 cover this
242
+ - CHECK: Rule 3 (Valid names accepted) - Tests 8, 15 cover this
243
+ - CHECK: Rule 4 (No auto-trimming) - Test 8 covers this
244
+ - CHECK: Rule 5 (Undefined behavior) - Tests 9-10 cover this
245
+ - DOCUMENT: Any gaps in coverage
246
+
247
+ Task 4: VERIFY both constructor patterns are tested
248
+ - CHECK: Class-based pattern (new Workflow(name, parent)) - Tests 1-10
249
+ - CHECK: Functional pattern (new Workflow(config, executor)) - Tests 11-15
250
+ - CONFIRM: Both patterns tested for validation
251
+ - DOCUMENT: Any missing pattern coverage
252
+
253
+ Task 5: CREATE verification report
254
+ - SUMMARY: All tests exist and pass
255
+ - COVERAGE: List all validation scenarios covered
256
+ - RESULTS: Test pass count and duration
257
+ - CONCLUSION: Task P1M3T3S3 complete
258
+ ```
259
+
260
+ ### Implementation Patterns & Key Details
261
+
262
+ ```typescript
263
+ // EXISTING TEST PATTERN (for reference only):
264
+
265
+ // The test suite uses this pattern for validation testing:
266
+ describe('Workflow Name Validation', () => {
267
+ it('should reject empty string name', () => {
268
+ expect(() => new SimpleWorkflow(''))
269
+ .toThrow('Workflow name cannot be empty or whitespace only');
270
+ });
271
+
272
+ it('should reject whitespace-only name (spaces)', () => {
273
+ expect(() => new SimpleWorkflow(' '))
274
+ .toThrow('Workflow name cannot be empty or whitespace only');
275
+ });
276
+
277
+ // Boundary testing
278
+ it('should accept name with exactly 100 characters', () => {
279
+ const exactly100 = 'a'.repeat(100);
280
+ const wf = new SimpleWorkflow(exactly100);
281
+ expect(wf.getNode().name).toBe(exactly100);
282
+ expect(wf.getNode().name.length).toBe(100);
283
+ });
284
+
285
+ // Both constructor patterns
286
+ it('should validate both constructor patterns - functional with empty name', () => {
287
+ expect(() => new Workflow({ name: '' }, async () => {}))
288
+ .toThrow('Workflow name cannot be empty or whitespace only');
289
+ });
290
+ });
291
+
292
+ // KEY PATTERN: expect(() => new Workflow(invalidName)).toThrow(errorMessage)
293
+ // This is the standard pattern for constructor validation in this codebase
294
+ ```
295
+
296
+ ### Integration Points
297
+
298
+ ```yaml
299
+ VERIFICATION:
300
+ - test_file: "src/__tests__/unit/workflow.test.ts:13-85"
301
+ - validation_implementation: "src/core/workflow.ts:98-107"
302
+ - decision_document: "plan/.../docs/P1M3T3S1/DECISION.md"
303
+ - implementation_prp: "plan/.../P1M3T3S2/PRP.md"
304
+
305
+ TEST_EXECUTION:
306
+ - command: "npm test -- workflow.test.ts"
307
+ - expected: "All 28 tests pass"
308
+ - duration: "Should complete in < 1 second"
309
+ ```
310
+
311
+ ## Validation Loop
312
+
313
+ ### Level 1: Test Existence Verification
314
+
315
+ ```bash
316
+ # Verify test suite exists
317
+ grep -n "Workflow Name Validation" src/__tests__/unit/workflow.test.ts
318
+
319
+ # Expected: Line 13 contains "describe('Workflow Name Validation'"
320
+ # Expected: Lines 14-85 contain the test cases
321
+ ```
322
+
323
+ ### Level 2: Test Execution (Component Validation)
324
+
325
+ ```bash
326
+ # Run the workflow test suite
327
+ npm test -- workflow.test.ts
328
+
329
+ # Expected Output:
330
+ # ✓ src/__tests__/unit/workflow.test.ts (28 tests)
331
+ # Test Files 1 passed (1)
332
+ # Tests 28 passed (28)
333
+
334
+ # If any tests fail:
335
+ # 1. Read the error output
336
+ # 2. Check if it's a validation test failure
337
+ # 3. Investigate the failure cause
338
+ # 4. Document findings
339
+ ```
340
+
341
+ ### Level 3: Coverage Verification (System Validation)
342
+
343
+ ```bash
344
+ # Verify all validation scenarios are tested
345
+
346
+ # Check for empty string test
347
+ grep -n "empty string name" src/__tests__/unit/workflow.test.ts
348
+
349
+ # Check for whitespace tests
350
+ grep -n "whitespace-only name" src/__tests__/unit/workflow.test.ts
351
+
352
+ # Check for max length test
353
+ grep -n "exceeding 100 characters" src/__tests__/unit/workflow.test.ts
354
+
355
+ # Check for boundary test (exactly 100)
356
+ grep -n "exactly 100 characters" src/__tests__/unit/workflow.test.ts
357
+
358
+ # Check for both constructor patterns
359
+ grep -n "both constructor patterns" src/__tests__/unit/workflow.test.ts
360
+
361
+ # Expected: All grep commands find matches
362
+ ```
363
+
364
+ ### Level 4: Documentation Verification
365
+
366
+ ```bash
367
+ # Count the number of validation tests
368
+ grep -c "it('.*should" src/__tests__/unit/workflow.test.ts | head -15
369
+
370
+ # Expected: At least 15 test cases in the validation suite
371
+
372
+ # Verify test file follows project conventions
373
+ head -5 src/__tests__/unit/workflow.test.ts
374
+
375
+ # Expected:
376
+ # import { describe, it, expect } from 'vitest';
377
+ # import { Workflow, ... } from '../../index.js';
378
+ ```
379
+
380
+ ## Final Validation Checklist
381
+
382
+ ### Technical Validation
383
+
384
+ - [ ] Test suite exists at `src/__tests__/unit/workflow.test.ts:13-85`
385
+ - [ ] All 28 workflow tests pass: `npm test -- workflow.test.ts`
386
+ - [ ] Tests cover empty string rejection
387
+ - [ ] Tests cover whitespace-only rejection (spaces, tabs, newlines, mixed)
388
+ - [ ] Tests cover max length rejection (> 100 chars)
389
+ - [ ] Tests cover boundary case (exactly 100 chars)
390
+ - [ ] Tests cover valid names with leading/trailing whitespace
391
+ - [ ] Tests cover undefined/null using class name
392
+ - [ ] Tests cover both constructor patterns (class-based and functional)
393
+
394
+ ### Feature Validation
395
+
396
+ - [ ] Test coverage matches S1 decision document requirements
397
+ - [ ] All validation rules from S1 are tested
398
+ - [ ] Error message assertions are exact (not regex)
399
+ - [ ] Boundary testing is present (100 chars)
400
+ - [ ] Both constructor patterns are validated
401
+
402
+ ### Code Quality Validation
403
+
404
+ - [ ] Tests follow project conventions (vitest, expect().toThrow())
405
+ - [ ] Test descriptions are clear and descriptive
406
+ - [ ] Test fixture (SimpleWorkflow) is appropriate
407
+ - [ ] No duplicate test scenarios
408
+
409
+ ### Documentation & Deployment
410
+
411
+ - [ ] This PRP documents the verification process
412
+ - [ ] Test coverage is documented for future reference
413
+ - [ ] Relationship to S2 implementation is clear
414
+
415
+ ---
416
+
417
+ ## Anti-Patterns to Avoid
418
+
419
+ - ❌ Don't create new tests - they already exist from S2
420
+ - ❌ Don't modify existing tests unless they're failing
421
+ - ❌ Don't skip verification steps - all must be completed
422
+ - ❌ Don't assume tests pass without running them
423
+ - ❌ Don't forget to document any gaps found in coverage
424
+ - ❌ Don't mark task complete without full verification
425
+
426
+ ## Verification Report Template
427
+
428
+ After completing the verification tasks, document results:
429
+
430
+ ```yaml
431
+ Verification Date: [DATE]
432
+ Verifier: [NAME]
433
+
434
+ Test Suite Location: src/__tests__/unit/workflow.test.ts:13-85
435
+ Test Count: 15 validation tests (of 28 total workflow tests)
436
+
437
+ Test Results:
438
+ - Command Run: npm test -- workflow.test.ts
439
+ - Tests Passed: [NUMBER]
440
+ - Tests Failed: [NUMBER]
441
+ - Duration: [TIME]
442
+
443
+ Coverage Analysis:
444
+ ✓ Rule 1 (Empty/Whitespace): Tests 1-5
445
+ ✓ Rule 2 (Max 100 chars): Tests 6-7
446
+ ✓ Rule 3 (Valid names): Tests 8, 15
447
+ ✓ Rule 4 (No auto-trim): Test 8
448
+ ✓ Rule 5 (Undefined behavior): Tests 9-10
449
+ ✓ Both constructor patterns: Tests 11-15
450
+
451
+ Gaps Found: [LIST ANY GAPS OR "NONE"]
452
+
453
+ Conclusion: [COMPLETE / INCOMPLETE with reasons]
454
+ ```