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.
- package/.claude/commands/subtask-planning/prp-base-create.md +120 -0
- package/.claude/commands/subtask-planning/prp-base-execute.md +65 -0
- package/.claude/commands/task-breakdown.md +94 -0
- package/.claude/system_prompts/task-breakdown.md +1 -0
- package/CHANGELOG.md +188 -0
- package/PRD.md +543 -0
- package/README.md +99 -5
- package/examples/README.md +15 -1
- package/examples/examples/11-reparenting-workflows.ts +269 -0
- package/examples/index.ts +4 -0
- package/package-lock.json +2398 -0
- package/package.json +3 -1
- package/plan/001_d3bb02af4886/TEST_RESULTS.md +259 -0
- package/plan/001_d3bb02af4886/bug_fix_tasks.json +484 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S1/PRP.md +488 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S2/PRP.md +581 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S3/PRP.md +687 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S1/PRP.md +492 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/PRP.md +932 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/concurrent_error_testing_patterns.md +1109 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/vitest_concurrent_testing.md +802 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/workflow_engine_test_references.md +603 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S1/PRP.md +564 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S3/PRP.md +518 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S4/PRP.md +1252 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/PRP.md +364 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/CODEBASE_INVENTORY.md +114 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/DECORATOR_DOCUMENTATION_PATTERNS.md +205 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/PRD_LOCATION_ANALYSIS.md +199 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/ULTRATHINK_PRP_PLAN.md +134 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/PRP.md +495 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/research/console_error_inventory.md +435 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S2/PRP.md +506 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S3/PRP.md +612 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/PRP.md +558 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/research/external_research.md +788 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S2/PRP.md +460 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S3/PRP.md +454 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/PRP.md +520 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/RECOMMENDATION.md +417 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/external_workflow_engines_research.md +760 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/security_implications_analysis.md +245 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S2/PRP.md +792 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/PRP.md +535 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md +190 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/PRP.md +654 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md +227 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md +345 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md +193 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md +1323 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/BREAKING_CHANGES_AUDIT.md +1011 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/PRP.md +927 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S2/PRP.md +505 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/architecture/logger_child_signature_analysis.md +401 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/child_implementation_research.md +142 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/test_patterns_research.md +112 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/vitest_patterns_research.md +159 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/PRP.md +549 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/VERIFICATION_REPORT.md +368 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/edge_case_analysis.md +172 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/usage_inventory.md +175 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S2/PRP.md +696 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S4/PRP.md +860 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/PRP.md +1066 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01-testing-aggregated-errors.md +1103 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01_typescript_error_aggregation_patterns.md +789 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02-error-merge-strategy-testing-guide.md +1098 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02_aggregate_error_patterns.md +1037 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03-promise-allsettled-testing-patterns.md +916 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03_error_merging_strategies.md +1045 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/04_github_stackoverflow_examples.md +890 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/05_comprehensive_summary.md +822 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/INDEX.md +668 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/QUICK_REFERENCE.md +706 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/README.md +265 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/RESEARCH_REPORT.md +655 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S4/research/vitest_testing_patterns.md +1103 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T3S2/PRP.md +426 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/PRP.md +506 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/QUICK_REFERENCE.md +114 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/RESEARCH_SUMMARY.md +316 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/vitest_observer_error_logging_best_practices.md +754 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S3/PRP.md +612 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/PRP.md +719 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/README.md +215 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/analysis.md +765 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S3/PRP.md +718 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md +149 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/PRP.md +470 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/ULTRATHINK_PLAN.md +332 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/codebase_workflow_name_analysis.md +167 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/external_best_practices.md +265 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/validation_patterns.md +273 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S1/workflow_engine_ancestry_api_research.md +760 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S3-PRP.md +434 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S1/PRP.md +717 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/PRP.md +472 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/VALIDATION_REPORT.md +125 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/research/ULTRATHINK_PRP_PLAN.md +301 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/error-logging-best-practices.md +1170 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/research_typescript_partial_and_overloads.md +940 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-quick-reference.md +151 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-research.md +650 -0
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/prd_snapshot.md +259 -0
- package/plan/001_d3bb02af4886/bugfix/P1M1T1S1/PRP.md +457 -0
- package/plan/001_d3bb02af4886/bugfix/RESEARCH_SUMMARY.md +346 -0
- package/plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md +311 -0
- package/plan/001_d3bb02af4886/bugfix/architecture/concurrent_execution_best_practices.md +1565 -0
- package/plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md +288 -0
- package/plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md +741 -0
- package/plan/001_d3bb02af4886/docs/PRP/P1M1T1S4-functional-workflow-error-state-capture-test.md +652 -0
- package/plan/001_d3bb02af4886/docs/PRP/PRP.md +527 -0
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S1-PRP.md +415 -0
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S2-PRP.md +378 -0
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S4-PRP.md +713 -0
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M2T1S4-PRP.md +370 -0
- package/plan/001_d3bb02af4886/docs/PRP_P1M3T1S3.md +499 -0
- package/plan/001_d3bb02af4886/docs/TEST_RESULTS.md +230 -0
- package/plan/001_d3bb02af4886/docs/bugfix/ANALYSIS_PRD_VS_IMPLEMENTATION.md +1134 -0
- package/plan/001_d3bb02af4886/docs/bugfix/GAP_ANALYSIS_SUMMARY.md +179 -0
- package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/PRP.md +629 -0
- package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/validation-report.md +214 -0
- package/plan/001_d3bb02af4886/docs/bugfix/PRP_P1M4T2S3.md +629 -0
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_PRP.md +529 -0
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_QUICK_REFERENCE.md +142 -0
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_README.md +304 -0
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_TEST_RESULTS.md +558 -0
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_VALIDATION_SUMMARY.md +256 -0
- package/plan/001_d3bb02af4886/docs/bugfix/system_context.md +346 -0
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/bug_analysis.md +415 -0
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/implementation_patterns.md +489 -0
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/system_context.md +218 -0
- package/plan/001_d3bb02af4886/docs/bugfix_INITIATION_SUMMARY.md +380 -0
- package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_PATTERNS.md +1923 -0
- package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_QUICK_REF.md +319 -0
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/codebase-context.md +115 -0
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/cycle-detection-algorithms.md +134 -0
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/test-patterns.md +153 -0
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/workflow-class.md +132 -0
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_BEST_PRACTICES.md +716 -0
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_QUICK_REF.md +186 -0
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/GROUNDSWELL_DECORATOR_EXAMPLES.md +604 -0
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/INDEX.md +213 -0
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/codebase_structure.md +30 -0
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/existing_test_pattern.md +56 -0
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/getRootObservers_implementation.md +53 -0
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/test_conventions.md +49 -0
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/PRP.md +958 -0
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/QUICK_REFERENCE.md +339 -0
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/README.md +305 -0
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/SUMMARY.md +433 -0
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/bidirectional-tree-consistency-testing.md +1574 -0
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/test-pattern-examples.md +1014 -0
- package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_QUICK_REF.md +376 -0
- package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_RESEARCH.md +1507 -0
- package/plan/001_d3bb02af4886/docs/research/bugfix_typescript_patterns.md +949 -0
- package/plan/001_d3bb02af4886/docs/research/error-testing-research.md +619 -0
- package/plan/001_d3bb02af4886/docs/research/error_handling_patterns.md +723 -0
- package/plan/{research → 001_d3bb02af4886/docs/research/general}/introspection-security-guide.md +56 -0
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/PRP_TEMPLATE.md +460 -0
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/QUICK_REFERENCE.md +324 -0
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/README.md +175 -0
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/RESEARCH_REPORT.md +499 -0
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/SUMMARY.md +163 -0
- package/plan/bugfix/BUG_FIX_SUMMARY.md +961 -0
- package/src/__tests__/adversarial/attachChild-performance.test.ts +216 -0
- package/src/__tests__/adversarial/circular-reference.test.ts +101 -0
- package/src/__tests__/adversarial/complex-circular-reference.test.ts +139 -0
- package/src/__tests__/adversarial/concurrent-task-failures.test.ts +571 -0
- package/src/__tests__/adversarial/deep-analysis.test.ts +729 -0
- package/src/__tests__/adversarial/deep-hierarchy-stress.test.ts +213 -0
- package/src/__tests__/adversarial/e2e-prd-validation.test.ts +448 -0
- package/src/__tests__/adversarial/edge-case.test.ts +703 -0
- package/src/__tests__/adversarial/error-merge-strategy.test.ts +760 -0
- package/src/__tests__/adversarial/incremental-performance.test.ts +140 -0
- package/src/__tests__/adversarial/node-map-update-benchmarks.test.ts +457 -0
- package/src/__tests__/adversarial/observer-propagation.test.ts +487 -0
- package/src/__tests__/adversarial/parent-validation.test.ts +143 -0
- package/src/__tests__/adversarial/prd-12-2-compliance.test.ts +611 -0
- package/src/__tests__/adversarial/prd-compliance.test.ts +731 -0
- package/src/__tests__/compatibility/backward-compatibility.test.ts +1572 -0
- package/src/__tests__/helpers/index.ts +18 -0
- package/src/__tests__/helpers/tree-verification.ts +257 -0
- package/src/__tests__/integration/bidirectional-consistency.test.ts +847 -0
- package/src/__tests__/integration/observer-logging.test.ts +643 -0
- package/src/__tests__/integration/tree-mirroring.test.ts +37 -0
- package/src/__tests__/integration/workflow-reparenting.test.ts +303 -0
- package/src/__tests__/unit/context.test.ts +79 -0
- package/src/__tests__/unit/logger.test.ts +293 -0
- package/src/__tests__/unit/observable.test.ts +321 -0
- package/src/__tests__/unit/tree-debugger-incremental.test.ts +170 -0
- package/src/__tests__/unit/utils/workflow-error-utils.test.ts +209 -0
- package/src/__tests__/unit/workflow-detachChild.test.ts +100 -0
- package/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts +153 -0
- package/src/__tests__/unit/workflow-isDescendantOf.test.ts +180 -0
- package/src/__tests__/unit/workflow.test.ts +277 -1
- package/src/core/agent.ts +21 -1
- package/src/core/logger.ts +27 -2
- package/src/core/workflow-context.ts +6 -4
- package/src/core/workflow.ts +252 -14
- package/src/debugger/tree-debugger.ts +52 -7
- package/src/decorators/task.ts +65 -2
- package/src/index.ts +4 -2
- package/src/types/decorators.ts +8 -1
- package/src/types/events.ts +1 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/observable.ts +32 -3
- package/src/utils/workflow-error-utils.ts +56 -0
- package/tsconfig.json +1 -1
- package/llms_full.txt +0 -5890
- package/tasks.json +0 -0
- /package/plan/{backlog.json → 001_d3bb02af4886/backlog.json} +0 -0
- /package/plan/{P1P2/PRP.md → 001_d3bb02af4886/docs/PRP/P1P2-PRP.md} +0 -0
- /package/plan/{P3P4/PRP.md → 001_d3bb02af4886/docs/PRP/P3P4-PRP.md} +0 -0
- /package/plan/{P4P5/PRP.md → 001_d3bb02af4886/docs/PRP/P4P5-PRP.md} +0 -0
- /package/plan/{architecture → 001_d3bb02af4886/docs/architecture}/external_deps.md +0 -0
- /package/plan/{architecture → 001_d3bb02af4886/docs/architecture}/system_context.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/LRU_CACHE_BEST_PRACTICES.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/LRU_CACHE_CODE_PATTERNS.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/LRU_CACHE_INTEGRATION_GUIDE.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/LRU_CACHE_RESEARCH_INDEX.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/REFLECTION_INDEX.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/REFLECTION_RESEARCH_REPORT.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/RESEARCH_SUMMARY.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/anthropic-sdk.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/async-local-storage.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-code-patterns.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-decision-matrix.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-implementation-guide.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-integration-guide.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-patterns.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/reflection-quick-reference.md +0 -0
- /package/plan/{P1P2/research → 001_d3bb02af4886/docs/research/P1P2}/zod-schema.md +0 -0
- /package/plan/{P3P4/research → 001_d3bb02af4886/docs/research/P3P4}/caching-lru.md +0 -0
- /package/plan/{P3P4/research → 001_d3bb02af4886/docs/research/P3P4}/introspection-tools.md +0 -0
- /package/plan/{P3P4/research → 001_d3bb02af4886/docs/research/P3P4}/reflection-patterns.md +0 -0
- /package/plan/{P4P5/research → 001_d3bb02af4886/docs/research/P4P5}/RESEARCH_SUMMARY.md +0 -0
- /package/plan/{research → 001_d3bb02af4886/docs/research/general}/INTROSPECTION_RESEARCH_SUMMARY.md +0 -0
- /package/plan/{research → 001_d3bb02af4886/docs/research/general}/README-INTROSPECTION.md +0 -0
- /package/plan/{research → 001_d3bb02af4886/docs/research/general}/agent-introspection-patterns.md +0 -0
- /package/plan/{research → 001_d3bb02af4886/docs/research/general}/introspection-tool-examples.md +0 -0
- /package/{PRPs/PRDs/001-hierarchical-workflow-engine.md → plan/001_d3bb02af4886/prd_snapshot.md} +0 -0
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
# Project Initiation Summary
|
|
2
|
+
|
|
3
|
+
## Bug Fix: attachChild() Tree Integrity Violation
|
|
4
|
+
|
|
5
|
+
**Date**: 2026-01-11
|
|
6
|
+
**Status**: ✅ Complete - Ready for Implementation
|
|
7
|
+
**Severity**: Critical
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Executive Summary
|
|
12
|
+
|
|
13
|
+
The hierarchical workflow engine has a **critical bug** in the `attachChild()` method that allows creating inconsistent tree state. This bug was discovered through comprehensive end-to-end testing (240 existing tests + adversarial testing). The fix has been fully researched, architected, and decomposed into implementation-ready tasks.
|
|
14
|
+
|
|
15
|
+
## Bug Impact
|
|
16
|
+
|
|
17
|
+
### What's Broken
|
|
18
|
+
- A child workflow can be attached to multiple parents
|
|
19
|
+
- The `child.parent` property only points to the original parent
|
|
20
|
+
- Observer events only propagate to the original parent's observers
|
|
21
|
+
- Tree debugger shows inconsistent state
|
|
22
|
+
- getRoot() returns the wrong root
|
|
23
|
+
- **Violates PRD's "1:1 tree mirror" requirement**
|
|
24
|
+
|
|
25
|
+
### Why It Matters
|
|
26
|
+
This is a **data integrity bug** that can cause:
|
|
27
|
+
- Subtle, hard-to-debug issues in production
|
|
28
|
+
- Incorrect observer notifications
|
|
29
|
+
- Broken tree traversal and debugging
|
|
30
|
+
- Loss of trust in the workflow engine's consistency
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Research & Architecture Phase ✅
|
|
35
|
+
|
|
36
|
+
### Completed Research Activities
|
|
37
|
+
|
|
38
|
+
1. **Codebase Mapping** ✅
|
|
39
|
+
- Located bug in `src/core/workflow.ts:187-201`
|
|
40
|
+
- Analyzed 241 existing tests across 16 test files
|
|
41
|
+
- Documented dual tree architecture (workflow + node trees)
|
|
42
|
+
- Identified observer propagation patterns
|
|
43
|
+
- Mapped decorator implementations (@Step, @Task, @ObservedState)
|
|
44
|
+
|
|
45
|
+
2. **External Pattern Research** ✅
|
|
46
|
+
- Researched tree integrity best practices (DOM, React Fiber)
|
|
47
|
+
- Identified defensive programming patterns for parent-child validation
|
|
48
|
+
- Documented observer pattern implementation in tree structures
|
|
49
|
+
- Found testing strategies for tree data structures
|
|
50
|
+
|
|
51
|
+
3. **Architecture Documentation** ✅
|
|
52
|
+
Created comprehensive documentation in `plan/bugfix/architecture/`:
|
|
53
|
+
- `system_context.md` (8KB) - Complete system architecture overview
|
|
54
|
+
- `bug_analysis.md` (13KB) - Detailed bug analysis and root cause
|
|
55
|
+
- `implementation_patterns.md` (14KB) - Proven patterns and best practices
|
|
56
|
+
|
|
57
|
+
### Key Architectural Decisions
|
|
58
|
+
|
|
59
|
+
1. **Add Parent Validation**: Check if `child.parent` is already set before attaching
|
|
60
|
+
2. **Add Circular Reference Detection**: Prevent attaching ancestors as children
|
|
61
|
+
3. **Add detachChild() Method**: Enable proper reparenting workflow
|
|
62
|
+
4. **Add childDetached Event**: Maintain observer notification consistency
|
|
63
|
+
5. **Maintain Backward Compatibility**: Only prevent buggy behavior, no breaking API changes
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Task Decomposition ✅
|
|
68
|
+
|
|
69
|
+
### Overview
|
|
70
|
+
|
|
71
|
+
Created **`./bug_fix_tasks.json`** (32KB, 355 lines) with complete task breakdown:
|
|
72
|
+
|
|
73
|
+
**Structure**:
|
|
74
|
+
- **1 Phase** (P1)
|
|
75
|
+
- **4 Milestones**
|
|
76
|
+
- **6 Tasks**
|
|
77
|
+
- **23 Subtasks** (0.5-2 Story Points each)
|
|
78
|
+
|
|
79
|
+
### Milestone Breakdown
|
|
80
|
+
|
|
81
|
+
#### M1: Core Validation Implementation
|
|
82
|
+
**Goal**: Fix the primary bug by adding parent validation and circular reference detection.
|
|
83
|
+
|
|
84
|
+
**Tasks**:
|
|
85
|
+
- T1: Add Parent Validation to attachChild() (3 subtasks)
|
|
86
|
+
- Write failing test for parent validation
|
|
87
|
+
- Implement parent validation check
|
|
88
|
+
- Verify no regressions
|
|
89
|
+
|
|
90
|
+
- T2: Add Circular Reference Detection (4 subtasks)
|
|
91
|
+
- Write failing test for circular references
|
|
92
|
+
- Implement isDescendantOf() helper method
|
|
93
|
+
- Integrate check into attachChild()
|
|
94
|
+
- Verify no regressions
|
|
95
|
+
|
|
96
|
+
**Estimated Story Points**: 11 SP
|
|
97
|
+
|
|
98
|
+
#### M2: Reparenting Support
|
|
99
|
+
**Goal**: Implement detachChild() method to enable proper reparenting workflow.
|
|
100
|
+
|
|
101
|
+
**Tasks**:
|
|
102
|
+
- T1: Implement detachChild() Method (4 subtasks)
|
|
103
|
+
- Add childDetached event type to events.ts
|
|
104
|
+
- Write failing tests for detachChild()
|
|
105
|
+
- Implement detachChild() method
|
|
106
|
+
- Update emitEvent() to handle childDetached events
|
|
107
|
+
|
|
108
|
+
- T2: Test Reparenting Workflow (2 subtasks)
|
|
109
|
+
- Write reparenting integration test
|
|
110
|
+
- Verify tree consistency after reparenting
|
|
111
|
+
|
|
112
|
+
**Estimated Story Points**: 8 SP
|
|
113
|
+
|
|
114
|
+
#### M3: Comprehensive Testing & Validation
|
|
115
|
+
**Goal**: Add adversarial tests and verify PRD compliance.
|
|
116
|
+
|
|
117
|
+
**Tasks**:
|
|
118
|
+
- T1: Add Adversarial and Edge Case Tests (4 subtasks)
|
|
119
|
+
- Write deep hierarchy stress test
|
|
120
|
+
- Write manual parent mutation test
|
|
121
|
+
- Write complex circular reference tests
|
|
122
|
+
- Write bidirectional consistency tests
|
|
123
|
+
|
|
124
|
+
- T2: Verify PRD Compliance (3 subtasks)
|
|
125
|
+
- Verify PRD Section 12.2 compliance
|
|
126
|
+
- Verify observer propagation (PRD Section 7)
|
|
127
|
+
- Run full test suite and verify all pass
|
|
128
|
+
|
|
129
|
+
**Estimated Story Points**: 8 SP
|
|
130
|
+
|
|
131
|
+
#### M4: Documentation & Final Validation
|
|
132
|
+
**Goal**: Update documentation and prepare for release.
|
|
133
|
+
|
|
134
|
+
**Tasks**:
|
|
135
|
+
- T1: Update Documentation and Examples (2 subtasks)
|
|
136
|
+
- Add JSDoc comments to modified methods
|
|
137
|
+
- Create reparenting usage example
|
|
138
|
+
|
|
139
|
+
- T2: Final Validation and Release Preparation (4 subtasks)
|
|
140
|
+
- Verify TypeScript compilation and type checking
|
|
141
|
+
- Check for performance regressions
|
|
142
|
+
- Create change summary and release notes
|
|
143
|
+
- Final validation checklist
|
|
144
|
+
|
|
145
|
+
**Estimated Story Points**: 6 SP
|
|
146
|
+
|
|
147
|
+
### Total Effort Estimate
|
|
148
|
+
|
|
149
|
+
**Total Story Points**: 33 SP
|
|
150
|
+
**Total Subtasks**: 23
|
|
151
|
+
**Estimated Duration**: 5-7 days for one developer
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Task Design Principles
|
|
156
|
+
|
|
157
|
+
### 1. TDD Workflow
|
|
158
|
+
Every subtask follows the red-green-refactor pattern:
|
|
159
|
+
- Write failing test first
|
|
160
|
+
- Implement the fix
|
|
161
|
+
- Verify test passes
|
|
162
|
+
- Run full suite to check for regressions
|
|
163
|
+
|
|
164
|
+
### 2. Context Scope Isolation
|
|
165
|
+
Each subtask includes a `context_scope` field that defines:
|
|
166
|
+
- **Research Notes**: References to architecture documentation
|
|
167
|
+
- **Input**: What data/interfaces are available
|
|
168
|
+
- **Logic**: What to implement, referencing specific files/lines
|
|
169
|
+
- **Output**: Expected result and validation criteria
|
|
170
|
+
|
|
171
|
+
### 3. Dependency Management
|
|
172
|
+
Subtasks have explicit dependencies to ensure:
|
|
173
|
+
- Tests are written before implementations
|
|
174
|
+
- Validations are added before tree modifications
|
|
175
|
+
- Documentation follows implementation
|
|
176
|
+
|
|
177
|
+
### 4. Story Point Constraints
|
|
178
|
+
All subtasks are 0.5, 1, or 2 Story Points (max 2 SP). This ensures:
|
|
179
|
+
- Tasks are atomic and completable in one session
|
|
180
|
+
- Progress is easily trackable
|
|
181
|
+
- No task is too large to estimate accurately
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Key Implementation Details
|
|
186
|
+
|
|
187
|
+
### Files to Modify
|
|
188
|
+
|
|
189
|
+
1. **`src/core/workflow.ts`**
|
|
190
|
+
- `attachChild()` method (lines 187-201) - Add parent validation and circular reference detection
|
|
191
|
+
- Add `isDescendantOf()` private method
|
|
192
|
+
- Add `detachChild()` public method
|
|
193
|
+
- Update JSDoc comments
|
|
194
|
+
|
|
195
|
+
2. **`src/types/events.ts`**
|
|
196
|
+
- Add `childDetached` event type to WorkflowEvent union
|
|
197
|
+
|
|
198
|
+
3. **`src/__tests__/adversarial/edge-case.test.ts`**
|
|
199
|
+
- Add 10+ new test cases for tree integrity
|
|
200
|
+
|
|
201
|
+
### Critical Invariants to Maintain
|
|
202
|
+
|
|
203
|
+
1. **Dual Tree Synchronization**: Both workflow tree and node tree must update atomically
|
|
204
|
+
2. **Observer Propagation**: Events must reach all root observers via parent chain
|
|
205
|
+
3. **Circular Reference Detection**: getRoot() and isDescendantOf() must detect cycles
|
|
206
|
+
4. **Type Safety**: All TypeScript types must be maintained
|
|
207
|
+
5. **Event Emission**: All tree operations must emit appropriate events
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Testing Strategy
|
|
212
|
+
|
|
213
|
+
### Test Coverage Areas
|
|
214
|
+
|
|
215
|
+
1. **Unit Tests**:
|
|
216
|
+
- Parent validation in attachChild()
|
|
217
|
+
- Circular reference detection
|
|
218
|
+
- detachChild() functionality
|
|
219
|
+
- Event emission (childDetached)
|
|
220
|
+
|
|
221
|
+
2. **Integration Tests**:
|
|
222
|
+
- Reparenting workflow (detach → attach)
|
|
223
|
+
- Observer propagation after reparenting
|
|
224
|
+
- Bidirectional tree consistency
|
|
225
|
+
|
|
226
|
+
3. **Adversarial Tests**:
|
|
227
|
+
- Deep hierarchy stress (1000+ levels)
|
|
228
|
+
- Manual parent mutation
|
|
229
|
+
- Complex circular references
|
|
230
|
+
- Edge cases and boundary conditions
|
|
231
|
+
|
|
232
|
+
4. **Regression Tests**:
|
|
233
|
+
- All 241 existing tests must pass
|
|
234
|
+
- No observer propagation breaks
|
|
235
|
+
- No performance regressions
|
|
236
|
+
|
|
237
|
+
### Expected Test Count
|
|
238
|
+
- **Before**: 241 tests
|
|
239
|
+
- **After**: 260+ tests (adding ~20 new tests)
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Success Criteria
|
|
244
|
+
|
|
245
|
+
### Must Have (Release Blocking)
|
|
246
|
+
- ✅ attachChild() validates child.parent before attaching
|
|
247
|
+
- ✅ attachChild() prevents circular references
|
|
248
|
+
- ✅ attachChild() throws clear, actionable error messages
|
|
249
|
+
- ✅ detachChild() method properly removes children
|
|
250
|
+
- ✅ All observer events propagate correctly
|
|
251
|
+
- ✅ Tree debugger shows consistent tree structure
|
|
252
|
+
- ✅ All 260+ tests pass
|
|
253
|
+
- ✅ PRD Section 12.2 requirements met
|
|
254
|
+
|
|
255
|
+
### Should Have (Important)
|
|
256
|
+
- Performance impact < 10% overhead
|
|
257
|
+
- Comprehensive documentation
|
|
258
|
+
- Usage examples for reparenting
|
|
259
|
+
- TypeScript compilation with no errors
|
|
260
|
+
|
|
261
|
+
### Nice to Have (Enhancements)
|
|
262
|
+
- Performance benchmarks
|
|
263
|
+
- Migration guide for affected users
|
|
264
|
+
- Changelog entry
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Risk Assessment
|
|
269
|
+
|
|
270
|
+
### Technical Risks
|
|
271
|
+
|
|
272
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
273
|
+
|------|-----------|--------|------------|
|
|
274
|
+
| Performance regression from isDescendantOf() | Medium | Medium | Benchmark and optimize if needed |
|
|
275
|
+
| Breaking existing user code | Low | High | Only prevent buggy behavior, add clear error messages |
|
|
276
|
+
| Observer propagation issues | Low | High | Comprehensive integration tests |
|
|
277
|
+
| Type definition errors | Low | Medium | TypeScript compilation validation |
|
|
278
|
+
|
|
279
|
+
### Mitigation Strategies
|
|
280
|
+
|
|
281
|
+
1. **Performance**: Add benchmarks in M4.T2.S2, optimize if overhead > 10%
|
|
282
|
+
2. **Breaking Changes**: Document that only buggy behavior is prevented
|
|
283
|
+
3. **Observer Issues**: Extensive integration tests in M2.T2 and M3.T2
|
|
284
|
+
4. **Type Safety**: TypeScript compilation check in M4.T2.S1
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Next Steps
|
|
289
|
+
|
|
290
|
+
### Immediate Actions (For Developers)
|
|
291
|
+
|
|
292
|
+
1. **Review Architecture Documentation**
|
|
293
|
+
- Read `plan/bugfix/architecture/system_context.md`
|
|
294
|
+
- Read `plan/bugfix/architecture/bug_analysis.md`
|
|
295
|
+
- Read `plan/bugfix/architecture/implementation_patterns.md`
|
|
296
|
+
|
|
297
|
+
2. **Load Task Backlog**
|
|
298
|
+
- Open `./bug_fix_tasks.json`
|
|
299
|
+
- Import into task management system (if applicable)
|
|
300
|
+
- Review Phase 1, Milestone 1, Task 1
|
|
301
|
+
|
|
302
|
+
3. **Start Implementation**
|
|
303
|
+
- Begin with P1.M1.T1.S1 (Write failing test for parent validation)
|
|
304
|
+
- Follow the TDD workflow: Red → Green → Refactor
|
|
305
|
+
- Update task status as you progress
|
|
306
|
+
|
|
307
|
+
### For Project Managers
|
|
308
|
+
|
|
309
|
+
1. **Review Task Breakdown**
|
|
310
|
+
- Verify 33 Story Points estimate is acceptable
|
|
311
|
+
- Check that all 23 subtasks are well-defined
|
|
312
|
+
- Confirm dependencies are correct
|
|
313
|
+
|
|
314
|
+
2. **Plan Sprint**
|
|
315
|
+
- Assign developers to tasks
|
|
316
|
+
- Set up code review process
|
|
317
|
+
- Schedule 5-7 days for completion
|
|
318
|
+
|
|
319
|
+
3. **Track Progress**
|
|
320
|
+
- Monitor subtask completion
|
|
321
|
+
- Ensure all tests pass at each milestone
|
|
322
|
+
- Review architecture documentation for context
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Deliverables
|
|
327
|
+
|
|
328
|
+
### Completed ✅
|
|
329
|
+
|
|
330
|
+
1. **Architecture Documentation** (`plan/bugfix/architecture/`)
|
|
331
|
+
- `system_context.md` - System architecture and constraints
|
|
332
|
+
- `bug_analysis.md` - Detailed bug analysis and solution design
|
|
333
|
+
- `implementation_patterns.md` - Best practices and code patterns
|
|
334
|
+
|
|
335
|
+
2. **Task Breakdown** (`./bug_fix_tasks.json`)
|
|
336
|
+
- 1 Phase, 4 Milestones, 6 Tasks, 23 Subtasks
|
|
337
|
+
- Complete context_scope for each subtask
|
|
338
|
+
- Dependencies and story points defined
|
|
339
|
+
- Ready for immediate implementation
|
|
340
|
+
|
|
341
|
+
### Pending (Implementation Phase)
|
|
342
|
+
|
|
343
|
+
1. **Code Changes**
|
|
344
|
+
- Modify `src/core/workflow.ts`
|
|
345
|
+
- Modify `src/types/events.ts`
|
|
346
|
+
- Add tests to `src/__tests__/adversarial/edge-case.test.ts`
|
|
347
|
+
|
|
348
|
+
2. **Validation**
|
|
349
|
+
- All 260+ tests pass
|
|
350
|
+
- TypeScript compilation succeeds
|
|
351
|
+
- Performance benchmarks acceptable
|
|
352
|
+
- PRD compliance verified
|
|
353
|
+
|
|
354
|
+
3. **Documentation**
|
|
355
|
+
- JSDoc comments updated
|
|
356
|
+
- Usage examples created
|
|
357
|
+
- Release notes written
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
## Conclusion
|
|
362
|
+
|
|
363
|
+
The bug fix project is **fully planned and ready for implementation**. The research phase has produced comprehensive architecture documentation, and the task breakdown provides a clear, step-by-step path to fixing the critical bug.
|
|
364
|
+
|
|
365
|
+
The fix is well-scoped (33 SP), properly tested (20+ new tests), and maintains backward compatibility while preventing the buggy behavior that was causing data integrity issues.
|
|
366
|
+
|
|
367
|
+
**Status**: ✅ **READY FOR IMPLEMENTATION**
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## Contact & References
|
|
372
|
+
|
|
373
|
+
- **Bug Report**: See `plan/bugfix/architecture/bug_analysis.md`
|
|
374
|
+
- **System Architecture**: See `plan/bugfix/architecture/system_context.md`
|
|
375
|
+
- **Implementation Patterns**: See `plan/bugfix/architecture/implementation_patterns.md`
|
|
376
|
+
- **Task Backlog**: See `./bug_fix_tasks.json`
|
|
377
|
+
- **PRD Reference**: Section 12.2 - Workflow Base Class
|
|
378
|
+
|
|
379
|
+
**Generated**: 2026-01-11
|
|
380
|
+
**Agent**: Lead Technical Architect & Project Management Synthesizer
|