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,426 @@
1
+ # Product Requirement Prompt (PRP) - P1.M2.T3.S2
2
+
3
+ **PRP ID**: P1.M2.T3.S2
4
+ **Work Item Title**: Update PRD to state trackTiming defaults to true
5
+ **Created**: 2025-01-12
6
+ **Scope**: Documentation Update - Single File Edit
7
+
8
+ ---
9
+
10
+ ## Goal
11
+
12
+ **Feature Goal**: Update PRD Section 8.1 to explicitly document that `trackTiming` defaults to `true`, resolving the documentation gap identified in Issue 4.
13
+
14
+ **Deliverable**: Updated `PRD.md` file with explicit default value documentation for the `trackTiming` option in the `@Step` decorator.
15
+
16
+ **Success Definition**: The PRD Section 8.1 explicitly states that `trackTiming` defaults to `true`, matching the implementation behavior in `src/decorators/step.ts:94` where the code uses `if (opts.trackTiming !== false)`.
17
+
18
+ ## User Persona
19
+
20
+ **Target User**: Developers and maintainers of the Groundswell workflow engine who reference the PRD for understanding decorator behavior.
21
+
22
+ **Use Case**: When implementing or debugging `@Step` decorators, developers need to understand the default behavior of timing tracking without diving into source code.
23
+
24
+ **User Journey**:
25
+ 1. Developer reads PRD Section 8.1 to understand `@Step` decorator options
26
+ 2. Developer sees `trackTiming?: boolean` with explicit default value
27
+ 3. Developer understands timing is tracked by default without explicit configuration
28
+ 4. Developer confidently implements steps knowing the default behavior
29
+
30
+ **Pain Points Addressed**:
31
+ - **Documentation Uncertainty**: Developers must examine source code to determine default behavior
32
+ - **Inconsistency**: TypeScript JSDoc says "default: true" but PRD is silent
33
+ - **Implementation-Documentation Mismatch**: The `!== false` pattern implies `true` default but isn't documented
34
+
35
+ ## Why
36
+
37
+ - **Accuracy**: The implementation uses `if (opts.trackTiming !== false)` which means the default is `true`, but this is not documented in the PRD
38
+ - **Consistency**: The TypeScript JSDoc in `src/types/decorators.ts:11` correctly states "default: true" but the PRD does not
39
+ - **Developer Experience**: Explicit defaults reduce cognitive load and prevent misunderstandings about default behavior
40
+ - **Issue Resolution**: This directly addresses Issue 4 which identified this documentation gap
41
+
42
+ ## What
43
+
44
+ Update the PRD Section 8.1 to add explicit default value documentation for `trackTiming` option.
45
+
46
+ ### Success Criteria
47
+
48
+ - [ ] PRD Section 8.1 explicitly states `trackTiming` defaults to `true`
49
+ - [ ] Documentation format follows existing PRD patterns (e.g., ErrorMergeStrategy default format)
50
+ - [ ] No other changes to Section 8.1 content (minimal, focused edit)
51
+ - [ ] PRD markdown formatting remains valid
52
+
53
+ ## All Needed Context
54
+
55
+ ### Context Completeness Check
56
+
57
+ **No Prior Knowledge Test**: If someone knew nothing about this codebase, would they have everything needed to implement this successfully?
58
+
59
+ **YES** - This PRP provides:
60
+ - Exact file path and line numbers
61
+ - Current content of Section 8.1
62
+ - Implementation code showing the `!== false` pattern
63
+ - Type definition with existing JSDoc default
64
+ - Documentation pattern from ErrorMergeStrategy
65
+ - Precise edit instructions with before/after examples
66
+
67
+ ### Documentation & References
68
+
69
+ ```yaml
70
+ # MUST READ - Critical Implementation Context
71
+ - file: /home/dustin/projects/groundswell/PRD.md
72
+ lines: 177-196
73
+ why: Target file for edit - Section 8.1 @Step() Decorator definition
74
+ pattern: TypeScript interface definition without default values
75
+ gotcha: PRD uses markdown code blocks with language identifiers (```ts)
76
+
77
+ - file: /home/dustin/projects/groundswell/src/decorators/step.ts
78
+ lines: 92-101
79
+ why: Implementation showing `!== false` pattern confirming default is `true`
80
+ pattern: if (opts.trackTiming !== false) { ... emit timing event ... }
81
+ gotcha: This "opt-out" pattern means timing is enabled by default
82
+
83
+ - file: /home/dustin/projects/groundswell/src/types/decorators.ts
84
+ lines: 6-17
85
+ why: Type definition with JSDoc showing "default: true" already documented
86
+ pattern: /** Track and emit step duration (default: true) */
87
+ gotcha: JSDoc correctly documents default but PRD does not
88
+
89
+ - file: /home/dustin/projects/groundswell/PRD.md
90
+ section: Section 10 - ErrorMergeStrategy (approximately line 256)
91
+ why: Reference pattern for documenting defaults in PRD
92
+ pattern: "Default: **disabled** → first error wins (race is preserved)."
93
+ gotcha: Uses bold formatting with arrow for explanation
94
+
95
+ - file: /home/dustin/projects/groundswell/README.md
96
+ lines: ~130-135
97
+ why: User-facing documentation showing table format with defaults
98
+ pattern: | `trackTiming` | `boolean` | `true` | Include duration in `stepEnd` event... |
99
+ gotcha: README has correct default but PRD doesn't
100
+ ```
101
+
102
+ ### Current Codebase Tree (Relevant Portion)
103
+
104
+ ```bash
105
+ groundswell/
106
+ ├── PRD.md # TARGET FILE - Line 183: trackTiming?: boolean;
107
+ ├── README.md # Line ~132: Shows default: true in table
108
+ ├── plan/
109
+ │ └── 001_d3bb02af4886/
110
+ │ └── bugfix/
111
+ │ └── 001_e8e04329daf3/
112
+ │ └── P1M2T3S2/
113
+ │ └── PRP.md # THIS FILE
114
+ └── src/
115
+ ├── decorators/
116
+ │ └── step.ts # Line 94: if (opts.trackTiming !== false)
117
+ └── types/
118
+ └── decorators.ts # Line 11: JSDoc says "default: true"
119
+ ```
120
+
121
+ ### Desired Codebase Tree (No New Files)
122
+
123
+ ```bash
124
+ # No structural changes - only content modification to existing PRD.md
125
+ groundswell/
126
+ ├── PRD.md # MODIFIED: Line 183 updated with default value
127
+ └── ... (no other changes)
128
+ ```
129
+
130
+ ### Known Gotchas of our codebase & Library Quirks
131
+
132
+ ```markdown
133
+ # CRITICAL: PRD formatting conventions
134
+ # - Section headers use double asterisks: ## **8.1 @Step() Decorator**
135
+ # - Code blocks use ts language identifier: ```ts
136
+ # - Default values are documented using bold with arrow pattern
137
+ # - The PRD is the single source of truth for API contracts
138
+
139
+ # CRITICAL: trackTiming implementation pattern
140
+ # The code uses `if (opts.trackTiming !== false)` which means:
141
+ # - undefined !== false → true (timing tracked)
142
+ # - true !== false → true (timing tracked)
143
+ # - false !== false → false (timing NOT tracked)
144
+ # This confirms the default is TRUE (opt-out pattern)
145
+
146
+ # CRITICAL: Existing documentation inconsistency
147
+ # - src/types/decorators.ts JSDoc: CORRECTLY states "default: true"
148
+ # - README.md table: CORRECTLY shows default: true
149
+ # - PRD.md Section 8.1: MISSING default value (this is the bug)
150
+
151
+ # CRITICAL: Edit scope
152
+ # - ONLY modify the trackTiming line in PRD.md Section 8.1
153
+ # - DO NOT modify other options (name, snapshotState, logStart, logFinish)
154
+ # - DO NOT modify implementation code or type definitions
155
+ # - This is a documentation-only fix
156
+ ```
157
+
158
+ ## Implementation Blueprint
159
+
160
+ ### Data Models and Structure
161
+
162
+ No new data models. This is a documentation update to existing interface definition in PRD.
163
+
164
+ ### Implementation Tasks (ordered by dependencies)
165
+
166
+ ```yaml
167
+ Task 1: VERIFY PRD.md Section 8.1 Content
168
+ - LOCATE: PRD.md lines 177-196
169
+ - READ: Current Section 8.1 @Step() Decorator content
170
+ - CONFIRM: trackTiming appears at line 183 as "trackTiming?: boolean;"
171
+ - VERIFY: No default value currently documented
172
+ - DEPENDENCIES: None
173
+
174
+ Task 2: VERIFY Implementation Pattern
175
+ - READ: src/decorators/step.ts lines 92-101
176
+ - CONFIRM: if (opts.trackTiming !== false) pattern
177
+ - UNDERSTAND: This means default is true (opt-out, not opt-in)
178
+ - REFERENCE: Type definition JSDoc at src/types/decorators.ts:11
179
+ - DEPENDENCIES: Task 1
180
+
181
+ Task 3: DETERMINE Documentation Format
182
+ - REFERENCE: PRD Section 10 ErrorMergeStrategy default format
183
+ - PATTERN: "Default: **disabled** → first error wins (race is preserved)."
184
+ - CHOOSE: Inline comment format for interface definition
185
+ - FORMAT: "trackTiming?: boolean; // Default: true - Track and emit step duration"
186
+ - DEPENDENCIES: Task 1, Task 2
187
+
188
+ Task 4: EDIT PRD.md Section 8.1
189
+ - OPEN: /home/dustin/projects/groundswell/PRD.md
190
+ - FIND: Line 183 containing "trackTiming?: boolean;"
191
+ - REPLACE: With inline default documentation
192
+ - OPTIONS:
193
+ Option A (Inline Comment): "trackTiming?: boolean; // Default: true"
194
+ Option B (JSDoc Style): Add /** Track and emit step duration (default: true) */ above line
195
+ Option C (Table Format): Convert entire section to table (out of scope)
196
+ - SELECT: Option A - Minimal change, follows TypeScript comment style
197
+ - PRESERVE: All other Section 8.1 content unchanged
198
+ - DEPENDENCIES: Task 3
199
+
200
+ Task 5: VALIDATE Markdown Formatting
201
+ - VERIFY: PRD.md renders correctly with edit
202
+ - CHECK: Code block formatting maintained
203
+ - CONFIRM: No broken markdown syntax
204
+ - DEPENDENCIES: Task 4
205
+
206
+ Task 6: VERIFY Cross-Reference Consistency
207
+ - CONFIRM: PRD now matches src/types/decorators.ts JSDoc
208
+ - CONFIRM: PRD now matches README.md table documentation
209
+ - CONFIRM: PRD now matches implementation behavior
210
+ - DEPENDENCIES: Task 5
211
+ ```
212
+
213
+ ### Implementation Patterns & Key Details
214
+
215
+ ```markdown
216
+ # EDIT LOCATION
217
+ File: /home/dustin/projects/groundswell/PRD.md
218
+ Line: 183 (approximately)
219
+ Section: 8.1 @Step() Decorator
220
+
221
+ # BEFORE (Current State)
222
+ ```ts
223
+ export interface StepOptions {
224
+ name?: string;
225
+ snapshotState?: boolean;
226
+ trackTiming?: boolean;
227
+ logStart?: boolean;
228
+ logFinish?: boolean;
229
+ }
230
+ ```
231
+
232
+ # AFTER (Desired State) - Option A: Inline Comment
233
+ ```ts
234
+ export interface StepOptions {
235
+ name?: string;
236
+ snapshotState?: boolean;
237
+ trackTiming?: boolean; // Default: true - Track and emit step duration
238
+ logStart?: boolean;
239
+ logFinish?: boolean;
240
+ }
241
+ ```
242
+
243
+ # ALTERNATIVE - Option B: JSDoc Style (matches src/types/decorators.ts)
244
+ ```ts
245
+ export interface StepOptions {
246
+ name?: string;
247
+ snapshotState?: boolean;
248
+ /** Track and emit step duration (default: true) */
249
+ trackTiming?: boolean;
250
+ logStart?: boolean;
251
+ logFinish?: boolean;
252
+ }
253
+ ```
254
+
255
+ # RECOMMENDED: Option A (Inline Comment)
256
+ # - Minimal change
257
+ # - Follows TypeScript inline comment convention
258
+ # - Easily scannable
259
+ # - Matches the pattern used for ErrorMergeStrategy elsewhere in PRD
260
+
261
+ # IMPLEMENTATION GOTCHA
262
+ # The PRD uses ```ts code blocks, not ```typescript
263
+ # Ensure code block language identifier remains "ts"
264
+ ```
265
+
266
+ ### Integration Points
267
+
268
+ ```yaml
269
+ NO INTEGRATION POINTS:
270
+ - This is a standalone documentation edit
271
+ - No code changes required
272
+ - No test changes required
273
+ - No configuration changes required
274
+ - No build/deploy impact
275
+
276
+ CROSS-REFERENCE CONSISTENCY:
277
+ - src/types/decorators.ts:11 already has correct JSDoc
278
+ - README.md already shows correct default in table
279
+ - This edit brings PRD in line with existing documentation
280
+ ```
281
+
282
+ ## Validation Loop
283
+
284
+ ### Level 1: Syntax & Style (Immediate Feedback)
285
+
286
+ ```bash
287
+ # Verify PRD.md is valid markdown after edit
288
+ # No build process for documentation
289
+ # Manual verification of markdown syntax
290
+
291
+ # Expected: No markdown rendering errors, code blocks display correctly
292
+ ```
293
+
294
+ ### Level 2: Content Validation (Documentation Accuracy)
295
+
296
+ ```bash
297
+ # Read the edited Section 8.1
298
+ cat /home/dustin/projects/groundswell/PRD.md | sed -n '177,196p'
299
+
300
+ # Verify trackTiming line includes default documentation
301
+ grep -n "trackTiming" /home/dustin/projects/groundswell/PRD.md | grep -i "default.*true"
302
+
303
+ # Cross-reference with implementation
304
+ grep -A2 "trackTiming !== false" /home/dustin/projects/groundswell/src/decorators/step.ts
305
+
306
+ # Cross-reference with type definition
307
+ grep -B1 "trackTiming" /home/dustin/projects/groundswell/src/types/decorators.ts | grep "default: true"
308
+
309
+ # Expected: All three sources now agree that default is true
310
+ ```
311
+
312
+ ### Level 3: Consistency Validation (Cross-Reference Check)
313
+
314
+ ```bash
315
+ # Extract trackTiming documentation from all sources
316
+ echo "=== PRD.md ===" && grep "trackTiming" /home/dustin/projects/groundswell/PRD.md
317
+ echo "=== decorators.ts ===" && grep -A1 "trackTiming" /home/dustin/projects/groundswell/src/types/decorators.ts
318
+ echo "=== step.ts ===" && grep "trackTiming !== false" /home/dustin/projects/groundswell/src/decorators/step.ts
319
+ echo "=== README.md ===" && grep -A1 "trackTiming" /home/dustin/projects/groundswell/README.md | head -2
320
+
321
+ # Expected: All sources consistently indicate default: true
322
+ ```
323
+
324
+ ### Level 4: Creative & Domain-Specific Validation
325
+
326
+ ```bash
327
+ # Developer Experience Validation
328
+ # Simulate developer reading PRD to understand default behavior
329
+
330
+ # Search PRD for "trackTiming" and check if default is visible
331
+ grep -C5 "trackTiming" /home/dustin/projects/groundswell/PRD.md | head -20
332
+
333
+ # Verify the documentation is scannable (not buried)
334
+ # Verify it follows existing PRD patterns
335
+ # Verify it matches the ErrorMergeStrategy documentation style
336
+
337
+ # Expected: Default value is immediately visible when reading Section 8.1
338
+ ```
339
+
340
+ ## Final Validation Checklist
341
+
342
+ ### Technical Validation
343
+
344
+ - [ ] PRD.md edited at correct line (approximately line 183)
345
+ - [ ] trackTiming now includes "Default: true" documentation
346
+ - [ ] Markdown formatting is valid (code blocks render correctly)
347
+ - [ ] No unintended changes to other lines in Section 8.1
348
+
349
+ ### Feature Validation
350
+
351
+ - [ ] PRD explicitly states trackTiming defaults to true
352
+ - [ ] Documentation matches implementation `!== false` pattern
353
+ - [ ] Documentation matches src/types/decorators.ts JSDoc
354
+ - [ ] Documentation matches README.md table
355
+ - [ ] Issue 4 bug report is resolved (documentation gap closed)
356
+
357
+ ### Code Quality Validation
358
+
359
+ - [ ] Edit follows existing PRD documentation patterns
360
+ - [ ] Minimal change principle respected (only trackTiming line modified)
361
+ - [ ] No code changes (documentation-only fix)
362
+ - [ ] No test changes required (behavior unchanged)
363
+
364
+ ### Documentation & Deployment
365
+
366
+ - [ ] Change is self-documenting (default value visible in PRD)
367
+ - [ ] No migration required (documentation only)
368
+ - [ ] No breaking changes (API behavior unchanged)
369
+ - [ ] Git commit message clearly describes documentation update
370
+
371
+ ---
372
+
373
+ ## Anti-Patterns to Avoid
374
+
375
+ - **Don't** modify other option definitions (name, snapshotState, logStart, logFinish) - out of scope
376
+ - **Don't** convert entire section to table format - that's a separate task
377
+ - **Don't** modify implementation code - this is documentation-only
378
+ - **Don't** add tests - behavior is unchanged, only documentation is corrected
379
+ - **Don't** use verbose language - keep inline comment concise
380
+ - **Don't** add JSDoc if inline comment is sufficient - choose one format and stick with it
381
+ - **Don't** modify the Section 8.1 header or responsibilities section - only the interface definition
382
+
383
+ ---
384
+
385
+ ## Confidence Score
386
+
387
+ **9/10** - One-pass implementation success likelihood
388
+
389
+ **Reasoning**:
390
+ - Single file edit with clear location
391
+ - Minimal scope (one line change)
392
+ - Extensive context provided (implementation, type definition, documentation patterns)
393
+ - Clear before/after examples
394
+ - No code complexity or dependencies
395
+ - No risk of breaking existing functionality
396
+
397
+ **Risk Mitigation**:
398
+ - The only risk is choosing the wrong documentation format (inline comment vs JSDoc)
399
+ - Both formats are acceptable; inline comment is recommended for minimal change
400
+ - Either format successfully addresses Issue 4
401
+
402
+ ---
403
+
404
+ ## Appendix: Issue 4 Context
405
+
406
+ **Issue 4**: "trackTiming should be documented as defaulting to true"
407
+
408
+ **Problem Statement**:
409
+ The PRD Section 8.1 shows `trackTiming?: boolean` without indicating the default value. However, the implementation in `src/decorators/step.ts:94` uses `if (opts.trackTiming !== false)`, which clearly indicates the default is `true` (timing is tracked unless explicitly disabled).
410
+
411
+ **Impact**:
412
+ Developers reading the PRD cannot determine the default behavior without examining source code, creating unnecessary friction and potential confusion.
413
+
414
+ **Root Cause**:
415
+ When the `@Step` decorator was initially documented, the default value was omitted from the PRD while the type definition JSDoc and README were correctly updated.
416
+
417
+ **Solution**:
418
+ Add explicit default value documentation to PRD Section 8.1 to align with:
419
+ 1. Implementation behavior (`!== false` pattern)
420
+ 2. Type definition JSDoc (`src/types/decorators.ts:11`)
421
+ 3. User-facing documentation (`README.md`)
422
+
423
+ **References**:
424
+ - Bug Report: Issue 4 (internal issue tracker)
425
+ - Related: P1.M2.T3 - Document trackTiming Default Value in PRD
426
+ - Prerequisite: P1.M2.T3.S1 - Locate PRD section for @Step decorator options (COMPLETE)