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,213 @@
1
+ # Decorator Documentation Research - Index
2
+
3
+ **Research Date:** 2026-01-11
4
+ **Purpose:** Best practices for documenting TypeScript decorator options in README.md files
5
+
6
+ ---
7
+
8
+ ## Research Documents
9
+
10
+ ### 1. Main Research Document
11
+ **File:** [DECORATOR_DOCUMENTATION_BEST_PRACTICES.md](./DECORATOR_DOCUMENTATION_BEST_PRACTICES.md)
12
+ **Size:** Comprehensive (500+ lines)
13
+ **Contains:**
14
+ - Executive summary of findings
15
+ - Documentation structure patterns
16
+ - Default value presentation methods
17
+ - Table formatting best practices
18
+ - Code example patterns
19
+ - Real-world examples from Groundswell
20
+ - Recommended templates
21
+ - URLs and references
22
+ - Action items for implementation
23
+
24
+ **Use when:** You need comprehensive understanding of decorator documentation best practices
25
+
26
+ ### 2. Quick Reference Guide
27
+ **File:** [DECORATOR_DOCUMENTATION_QUICK_REF.md](./DECORATOR_DOCUMENTATION_QUICK_REF.md)
28
+ **Size:** Concise (150 lines)
29
+ **Contains:**
30
+ - Recommended table format
31
+ - Code example patterns
32
+ - Groundswell-specific improvements
33
+ - Common default values
34
+ - Validation checklist
35
+ - PRP template sections
36
+
37
+ **Use when:** You need fast reference while documenting decorators
38
+
39
+ ### 3. Concrete Examples
40
+ **File:** [GROUNDSWELL_DECORATOR_EXAMPLES.md](./GROUNDSWELL_DECORATOR_EXAMPLES.md)
41
+ **Size:** Detailed (400+ lines)
42
+ **Contains:**
43
+ - Current vs recommended documentation for all three decorators
44
+ - Before/after comparisons
45
+ - Implementation checklist
46
+ - File references with line numbers
47
+
48
+ **Use when:** You need to see exactly how to improve existing documentation
49
+
50
+ ---
51
+
52
+ ## Key Findings Summary
53
+
54
+ ### Top 3 Best Practices
55
+
56
+ 1. **Add a Dedicated Default Column**
57
+ ```markdown
58
+ | Option | Type | Default | Description |
59
+ ```
60
+ Makes defaults immediately visible, reduces cognitive load
61
+
62
+ 2. **Show Progressive Code Examples**
63
+ Start with defaults, then show overrides:
64
+ ```typescript
65
+ @Step() // Default
66
+ @Step({ option: true }) // With option
67
+ ```
68
+
69
+ 3. **Document Default Behavior Explicitly**
70
+ Add a "Default Behavior" section before the options table
71
+
72
+ ### Recommended Table Structure
73
+
74
+ ```markdown
75
+ | Option | Type | Default | Description |
76
+ |--------|------|---------|-------------|
77
+ | `name` | `string` | method name | Custom name for logs |
78
+ | `enabled` | `boolean` | `true` | Enable feature |
79
+ ```
80
+
81
+ ---
82
+
83
+ ## Groundswell Files to Update
84
+
85
+ | File | Current Lines | Key Changes |
86
+ |------|---------------|-------------|
87
+ | `docs/workflow.md` | 114-244 | Add Default column to all 3 decorators |
88
+ | `README.md` | 114-131 | Add inline comments explaining defaults |
89
+ | `src/types/decorators.ts` | 1-26 | Ensure JSDoc comments match docs |
90
+
91
+ ---
92
+
93
+ ## URLs and External References
94
+
95
+ ### Groundswell Internal Files
96
+
97
+ 1. **Workflow Documentation**
98
+ - File: `/home/dustin/projects/groundswell/docs/workflow.md`
99
+ - Contains: @Step, @Task, @ObservedState documentation
100
+ - Status: Needs Default column added
101
+
102
+ 2. **Main README**
103
+ - File: `/home/dustin/projects/groundswell/README.md`
104
+ - Contains: Quick start decorator usage
105
+ - Status: Needs inline default comments
106
+
107
+ 3. **Type Definitions**
108
+ - File: `/home/dustin/projects/groundswell/src/types/decorators.ts`
109
+ - Contains: TypeScript interfaces
110
+ - Status: Reference for validation
111
+
112
+ 4. **Example Code**
113
+ - File: `/home/dustin/projects/groundswell/examples/examples/02-decorator-options.ts`
114
+ - Contains: Executable decorator examples
115
+ - Status: Needs default values documented
116
+
117
+ ### External Libraries (For Further Study)
118
+
119
+ **Note:** These URLs were identified for reference but could not be accessed during research due to API rate limits. They represent excellent examples of decorator documentation to study:
120
+
121
+ 5. **class-validator**
122
+ - Repository: https://github.com/typestack/class-validator
123
+ - Known for: Extensive decorator options documentation
124
+ - Study focus: Table formatting, default value presentation
125
+
126
+ 6. **TypeORM**
127
+ - Repository: https://github.com/typeorm/typeorm
128
+ - Documentation: https://typeorm.io/#/decorator-reference
129
+ - Known for: Entity and column decorator options
130
+ - Study focus: Complex option configuration
131
+
132
+ 7. **NestJS**
133
+ - Repository: https://github.com/nestjs/nest
134
+ - Documentation: https://docs.nestjs.com/custom-decorators
135
+ - Known for: Clean decorator API design
136
+ - Study focus: Decorator composition patterns
137
+
138
+ 8. **Angular Style Guide**
139
+ - Repository: https://github.com/angular/angular
140
+ - Documentation: https://angular.io/guide/styleguide#style-05-12
141
+ - Known for: Consistent decorator documentation
142
+ - Study focus: Documentation style guide
143
+
144
+ 9. **InversifyJS**
145
+ - Repository: https://github.com/inversify/InversifyJS
146
+ - Known for: Dependency injection decorators
147
+ - Study focus: Optional vs required parameters
148
+
149
+ ### Documentation Standards
150
+
151
+ 10. **TypeScript Decorator Documentation**
152
+ - URL: https://www.typescriptlang.org/docs/handbook/decorators.html
153
+ - Official TypeScript handbook on decorators
154
+
155
+ 11. **TSDoc Standard**
156
+ - URL: https://tsdoc.org/
157
+ - Documentation comment standard for TypeScript
158
+
159
+ 12. **JSDoc Documentation**
160
+ - URL: https://jsdoc.app/
161
+ - Traditional JavaScript documentation tags
162
+
163
+ ---
164
+
165
+ ## Quick Actions
166
+
167
+ ### For PRP Creation
168
+
169
+ ```markdown
170
+ ## Documentation Update
171
+
172
+ **Files to Update:**
173
+ 1. `docs/workflow.md` - Add Default column to decorator tables
174
+ 2. `README.md` - Add inline default value comments
175
+ 3. `examples/02-decorator-options.ts` - Document defaults in JSDoc
176
+
177
+ **Reference:**
178
+ - Best practices: `plan/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_BEST_PRACTICES.md`
179
+ - Examples: `plan/docs/research/P1M2T1S4/GROUNDSWELL_DECORATOR_EXAMPLES.md`
180
+ - Quick ref: `plan/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_QUICK_REF.md`
181
+ ```
182
+
183
+ ### For Implementation
184
+
185
+ 1. Read `GROUNDSWELL_DECORATOR_EXAMPLES.md` for specific changes
186
+ 2. Use `DECORATOR_DOCUMENTATION_QUICK_REF.md` for table format
187
+ 3. Reference `DECORATOR_DOCUMENTATION_BEST_PRACTICES.md` for rationale
188
+
189
+ ---
190
+
191
+ ## Related Research
192
+
193
+ - `plan/docs/research/bugfix_typescript_patterns.md` - TypeScript patterns for error handling
194
+ - `plan/docs/research/CYCLE_DETECTION_PATTERNS.md` - Cycle detection patterns
195
+ - `plan/docs/research/error_handling_patterns.md` - Error handling best practices
196
+
197
+ ---
198
+
199
+ ## Confidence Score
200
+
201
+ **Overall Confidence:** 9/10
202
+
203
+ **Reasoning:**
204
+ - Analyzed actual Groundswell codebase
205
+ - Identified specific improvement areas
206
+ - Provided actionable recommendations
207
+ - External libraries identified but not accessed (rate limits)
208
+ - Patterns based on established documentation best practices
209
+
210
+ ---
211
+
212
+ **Research Complete:** 2026-01-11
213
+ **Next Step:** Apply findings to improve Groundswell decorator documentation
@@ -0,0 +1,30 @@
1
+ # Codebase Structure for P1.M2.T1.S4
2
+
3
+ ## Relevant Source Files
4
+ ```
5
+ /home/dustin/projects/groundswell/
6
+ ├── src/
7
+ │ ├── core/
8
+ │ │ └── workflow.ts # Contains getRootObservers() (lines 124-139)
9
+ │ ├── __tests__/
10
+ │ │ └── unit/
11
+ │ │ └── workflow.test.ts # Add test here (after line 223)
12
+ │ └── index.js # Main exports
13
+ └── plan/
14
+ └── bugfix/
15
+ └── P1M2T1S4/ # This subtask directory
16
+ ├── research/ # Research findings (this file)
17
+ └── PRP.md # Target PRP location
18
+ ```
19
+
20
+ ## Key Files
21
+ - **Implementation**: `/home/dustin/projects/groundswell/src/core/workflow.ts`
22
+ - **Test File**: `/home/dustin/projects/groundswell/src/__tests__/unit/workflow.test.ts`
23
+ - **PRP Location**: `/home/dustin/projects/groundswell/plan/bugfix/P1M2T1S4/PRP.md`
24
+
25
+ ## Existing Related Tests (workflow.test.ts)
26
+ - Line 209-223: `should detect circular parent relationship` (getRoot() test)
27
+ - P1.M2.T1.S2 test is the template to follow
28
+
29
+ ## Test Location for New Test
30
+ Add after line 223 (within the same `describe('Workflow', ...)` block)
@@ -0,0 +1,56 @@
1
+ # Existing Test Pattern for Cycle Detection (P1.M2.T1.S2)
2
+
3
+ ## File Reference
4
+ - **Test File**: `/home/dustin/projects/groundswell/src/__tests__/unit/workflow.test.ts`
5
+ - **Test Location**: Lines 209-223
6
+
7
+ ## Complete Test Code (P1.M2.T1.S2)
8
+
9
+ ```typescript
10
+ it('should detect circular parent relationship', () => {
11
+ // Arrange: Create parent and child workflows
12
+ const parent = new SimpleWorkflow('Parent');
13
+ const child = new SimpleWorkflow('Child', parent);
14
+
15
+ // Act: Create circular reference manually
16
+ // This simulates a bug or malicious input that creates a cycle
17
+ parent.parent = child;
18
+
19
+ // Assert: getRoot() should throw error for circular reference
20
+ // Note: getRoot() is protected, so we cast to any to access it
21
+ expect(() => (parent as any).getRoot()).toThrow(
22
+ 'Circular parent-child relationship detected'
23
+ );
24
+ });
25
+ ```
26
+
27
+ ## Key Patterns to Replicate
28
+
29
+ ### 1. Test Structure
30
+ - **Arrange**: Create parent and child workflows with `new SimpleWorkflow('Name', parent)`
31
+ - **Act**: Create circular reference by setting `parent.parent = child`
32
+ - **Assert**: Use `expect(() => (workflow as any).method()).toThrow()` pattern
33
+
34
+ ### 2. Error Message
35
+ - **Exact String**: `'Circular parent-child relationship detected'`
36
+ - Must match exactly or use `toThrow(Error)` for type-only matching
37
+
38
+ ### 3. Test Utility Class
39
+ ```typescript
40
+ class SimpleWorkflow extends Workflow {
41
+ async run(): Promise<string> {
42
+ this.setStatus('running');
43
+ this.logger.info('Running simple workflow');
44
+ this.setStatus('completed');
45
+ return 'done';
46
+ }
47
+ }
48
+ ```
49
+
50
+ ### 4. Test Naming Convention
51
+ - Use clear, descriptive test names like "should detect circular parent relationship"
52
+ - Include comments explaining each step
53
+
54
+ ### 5. Accessibility Workaround
55
+ - `getRoot()` is `protected` - accessed via `(parent as any).getRoot()`
56
+ - `getRootObservers()` is `private` - may need different access method
@@ -0,0 +1,53 @@
1
+ # getRootObservers() Implementation Analysis (P1.M2.T1.S3)
2
+
3
+ ## File Reference
4
+ - **Source File**: `/home/dustin/projects/groundswell/src/core/workflow.ts`
5
+ - **Method Location**: Lines 124-139
6
+
7
+ ## Complete Implementation
8
+
9
+ ```typescript
10
+ /**
11
+ * Get observers from the root workflow
12
+ * Traverses up the tree to find the root
13
+ * Uses cycle detection to prevent infinite loops from circular parent-child relationships
14
+ */
15
+ private getRootObservers(): WorkflowObserver[] {
16
+ const visited = new Set<Workflow>();
17
+ let root: Workflow = this;
18
+ let current: Workflow | null = this;
19
+
20
+ while (current) {
21
+ if (visited.has(current)) {
22
+ throw new Error('Circular parent-child relationship detected');
23
+ }
24
+ visited.add(current);
25
+ root = current;
26
+ current = current.parent;
27
+ }
28
+
29
+ return root.observers;
30
+ }
31
+ ```
32
+
33
+ ## Error Details
34
+ - **Error Type**: `Error` (standard JavaScript Error)
35
+ - **Error Message**: `"Circular parent-child relationship detected"`
36
+ - **Error Trigger**: When a visited workflow is encountered during parent traversal
37
+
38
+ ## Comparison with getRoot()
39
+ Both methods use **identical cycle detection logic**:
40
+ - Same `Set<Workflow>` tracking approach
41
+ - Same error message
42
+ - Same traversal pattern
43
+ - Only difference is return value (`WorkflowObserver[]` vs `Workflow`)
44
+
45
+ ## Accessibility Level
46
+ - **`getRootObservers()`**: `private` method
47
+ - **`getRoot()`**: `protected` method
48
+
49
+ ## Usage Context
50
+ Called from:
51
+ 1. Constructor (line 111) - for logger creation
52
+ 2. `emitEvent()` method (line 205)
53
+ 3. `snapshotState()` method (line 228)
@@ -0,0 +1,49 @@
1
+ # Test Conventions for Workflow Tests
2
+
3
+ ## Test Framework
4
+ - **Framework**: Vitest
5
+ - **Config File**: `vitest.config.ts`
6
+ - **Test Pattern**: `src/__tests__/**/*.test.ts`
7
+
8
+ ## Running Tests
9
+ ```bash
10
+ npm test # Run all tests
11
+ npm run test:watch # Run in watch mode
12
+ ```
13
+
14
+ ## Test File Organization
15
+ - **Unit Tests**: `src/__tests__/unit/*.test.ts`
16
+ - **Integration Tests**: `src/__tests__/integration/*.test.ts`
17
+ - Test file names match source: `workflow.ts` → `workflow.test.ts`
18
+
19
+ ## Standard Imports
20
+ ```typescript
21
+ import { describe, it, expect } from 'vitest';
22
+ import { Workflow, WorkflowObserver, /* ... */ } from '../../index.js';
23
+ ```
24
+
25
+ ## Test Structure Pattern
26
+ ```typescript
27
+ describe('Workflow', () => {
28
+ it('should [expected behavior]', () => {
29
+ // Arrange: Set up test data
30
+ // Act: Execute the behavior
31
+ // Assert: Verify the result
32
+ });
33
+ });
34
+ ```
35
+
36
+ ## Mock Observer Pattern
37
+ ```typescript
38
+ const observer: WorkflowObserver = {
39
+ onLog: (entry) => logs.push(entry),
40
+ onEvent: (event) => events.push(event),
41
+ onStateUpdated: () => {},
42
+ onTreeChanged: () => {},
43
+ };
44
+ ```
45
+
46
+ ## Error Testing Pattern
47
+ ```typescript
48
+ expect(() => (workflow as any).privateMethod()).toThrow('Expected error message');
49
+ ```