groundswell 0.0.2 → 1.0.0
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/LICENSE +21 -0
- package/README.md +26 -9
- package/dist/cache/cache-key.d.ts +86 -0
- package/dist/cache/cache-key.d.ts.map +1 -0
- package/dist/cache/cache-key.js +204 -0
- package/dist/cache/cache-key.js.map +1 -0
- package/dist/cache/cache.d.ts +104 -0
- package/dist/cache/cache.d.ts.map +1 -0
- package/dist/cache/cache.js +179 -0
- package/dist/cache/cache.js.map +1 -0
- package/{src/cache/index.ts → dist/cache/index.d.ts} +1 -1
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +6 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/core/agent.d.ts +203 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +833 -0
- package/dist/core/agent.js.map +1 -0
- package/{src/core/context.ts → dist/core/context.d.ts} +16 -67
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +80 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/event-tree.d.ts +72 -0
- package/dist/core/event-tree.d.ts.map +1 -0
- package/dist/core/event-tree.js +211 -0
- package/dist/core/event-tree.js.map +1 -0
- package/{src/core/factory.ts → dist/core/factory.d.ts} +6 -27
- package/dist/core/factory.d.ts.map +1 -0
- package/dist/core/factory.js +110 -0
- package/dist/core/factory.js.map +1 -0
- package/{src/core/index.ts → dist/core/index.d.ts} +2 -10
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +9 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +50 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +91 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/mcp-handler.d.ts +127 -0
- package/dist/core/mcp-handler.d.ts.map +1 -0
- package/dist/core/mcp-handler.js +323 -0
- package/dist/core/mcp-handler.js.map +1 -0
- package/dist/core/prompt.d.ts +80 -0
- package/dist/core/prompt.d.ts.map +1 -0
- package/dist/core/prompt.js +120 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/workflow-context.d.ts +61 -0
- package/dist/core/workflow-context.d.ts.map +1 -0
- package/dist/core/workflow-context.js +358 -0
- package/dist/core/workflow-context.js.map +1 -0
- package/dist/core/workflow.d.ts +543 -0
- package/dist/core/workflow.d.ts.map +1 -0
- package/dist/core/workflow.js +986 -0
- package/dist/core/workflow.js.map +1 -0
- package/dist/debugger/event-replayer.d.ts +422 -0
- package/dist/debugger/event-replayer.d.ts.map +1 -0
- package/dist/debugger/event-replayer.js +639 -0
- package/dist/debugger/event-replayer.js.map +1 -0
- package/dist/debugger/index.d.ts +2 -0
- package/dist/debugger/index.d.ts.map +1 -0
- package/{src/debugger/index.ts → dist/debugger/index.js} +1 -0
- package/dist/debugger/index.js.map +1 -0
- package/dist/debugger/tree-debugger.d.ts +240 -0
- package/dist/debugger/tree-debugger.d.ts.map +1 -0
- package/dist/debugger/tree-debugger.js +620 -0
- package/dist/debugger/tree-debugger.js.map +1 -0
- package/dist/decorators/index.d.ts +4 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/{src/decorators/index.ts → dist/decorators/index.js} +1 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/observed-state.d.ts +32 -0
- package/dist/decorators/observed-state.d.ts.map +1 -0
- package/dist/decorators/observed-state.js +79 -0
- package/dist/decorators/observed-state.js.map +1 -0
- package/dist/decorators/step.d.ts +15 -0
- package/dist/decorators/step.d.ts.map +1 -0
- package/dist/decorators/step.js +192 -0
- package/dist/decorators/step.js.map +1 -0
- package/dist/decorators/task.d.ts +50 -0
- package/dist/decorators/task.d.ts.map +1 -0
- package/dist/decorators/task.js +118 -0
- package/dist/decorators/task.js.map +1 -0
- package/dist/examples/index.d.ts +3 -0
- package/dist/examples/index.d.ts.map +1 -0
- package/{src/examples/index.ts → dist/examples/index.js} +1 -0
- package/dist/examples/index.js.map +1 -0
- package/dist/examples/tdd-orchestrator.d.ts +15 -0
- package/dist/examples/tdd-orchestrator.d.ts.map +1 -0
- package/dist/examples/tdd-orchestrator.js +121 -0
- package/dist/examples/tdd-orchestrator.js.map +1 -0
- package/dist/examples/test-cycle-workflow.d.ts +14 -0
- package/dist/examples/test-cycle-workflow.d.ts.map +1 -0
- package/dist/examples/test-cycle-workflow.js +116 -0
- package/dist/examples/test-cycle-workflow.js.map +1 -0
- package/dist/harnesses/claude-code-harness.d.ts +391 -0
- package/dist/harnesses/claude-code-harness.d.ts.map +1 -0
- package/dist/harnesses/claude-code-harness.js +1076 -0
- package/dist/harnesses/claude-code-harness.js.map +1 -0
- package/dist/harnesses/harness-registry.d.ts +440 -0
- package/dist/harnesses/harness-registry.d.ts.map +1 -0
- package/dist/harnesses/harness-registry.js +543 -0
- package/dist/harnesses/harness-registry.js.map +1 -0
- package/dist/harnesses/index.d.ts +12 -0
- package/dist/harnesses/index.d.ts.map +1 -0
- package/dist/harnesses/index.js +11 -0
- package/dist/harnesses/index.js.map +1 -0
- package/dist/harnesses/pi-harness.d.ts +219 -0
- package/dist/harnesses/pi-harness.d.ts.map +1 -0
- package/dist/harnesses/pi-harness.js +676 -0
- package/dist/harnesses/pi-harness.js.map +1 -0
- package/dist/harnesses/pi-schema-converter.d.ts +24 -0
- package/dist/harnesses/pi-schema-converter.d.ts.map +1 -0
- package/dist/harnesses/pi-schema-converter.js +81 -0
- package/dist/harnesses/pi-schema-converter.js.map +1 -0
- package/dist/harnesses/register-defaults.d.ts +24 -0
- package/dist/harnesses/register-defaults.d.ts.map +1 -0
- package/dist/harnesses/register-defaults.js +40 -0
- package/dist/harnesses/register-defaults.js.map +1 -0
- package/dist/harnesses/session-store.d.ts +201 -0
- package/dist/harnesses/session-store.d.ts.map +1 -0
- package/dist/harnesses/session-store.js +254 -0
- package/dist/harnesses/session-store.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/reflection/index.d.ts +5 -0
- package/dist/reflection/index.d.ts.map +1 -0
- package/{src/reflection/index.ts → dist/reflection/index.js} +1 -1
- package/dist/reflection/index.js.map +1 -0
- package/dist/reflection/reflection.d.ts +84 -0
- package/dist/reflection/reflection.d.ts.map +1 -0
- package/dist/reflection/reflection.js +344 -0
- package/dist/reflection/reflection.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +11 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/introspection.d.ts +165 -0
- package/dist/tools/introspection.d.ts.map +1 -0
- package/dist/tools/introspection.js +324 -0
- package/dist/tools/introspection.js.map +1 -0
- package/dist/types/agent.d.ts +1317 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +423 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/decorators.d.ts +40 -0
- package/dist/types/decorators.d.ts.map +1 -0
- package/dist/types/decorators.js +2 -0
- package/dist/types/decorators.js.map +1 -0
- package/dist/types/error-strategy.d.ts +13 -0
- package/dist/types/error-strategy.d.ts.map +1 -0
- package/dist/types/error-strategy.js +2 -0
- package/dist/types/error-strategy.js.map +1 -0
- package/dist/types/error.d.ts +20 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +2 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/events.d.ts +113 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +2 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/harnesses.d.ts +474 -0
- package/dist/types/harnesses.d.ts.map +1 -0
- package/dist/types/harnesses.js +2 -0
- package/dist/types/harnesses.js.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/logging.d.ts +24 -0
- package/dist/types/logging.d.ts.map +1 -0
- package/dist/types/logging.js +2 -0
- package/dist/types/logging.js.map +1 -0
- package/dist/types/observer.d.ts +18 -0
- package/dist/types/observer.d.ts.map +1 -0
- package/dist/types/observer.js +2 -0
- package/dist/types/observer.js.map +1 -0
- package/dist/types/prompt.d.ts +31 -0
- package/dist/types/prompt.d.ts.map +1 -0
- package/dist/types/prompt.js +6 -0
- package/dist/types/prompt.js.map +1 -0
- package/dist/types/providers.d.ts +691 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/providers.js +14 -0
- package/dist/types/providers.js.map +1 -0
- package/dist/types/reflection.d.ts +96 -0
- package/dist/types/reflection.d.ts.map +1 -0
- package/dist/types/reflection.js +24 -0
- package/dist/types/reflection.js.map +1 -0
- package/dist/types/restart.d.ts +132 -0
- package/dist/types/restart.d.ts.map +1 -0
- package/dist/types/restart.js +2 -0
- package/dist/types/restart.js.map +1 -0
- package/dist/types/sdk-primitives.d.ts +118 -0
- package/dist/types/sdk-primitives.d.ts.map +1 -0
- package/dist/types/sdk-primitives.js +6 -0
- package/dist/types/sdk-primitives.js.map +1 -0
- package/{src/types/snapshot.ts → dist/types/snapshot.d.ts} +5 -5
- package/dist/types/snapshot.d.ts.map +1 -0
- package/dist/types/snapshot.js +2 -0
- package/dist/types/snapshot.js.map +1 -0
- package/dist/types/streaming.d.ts +194 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/streaming.js +67 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/types/workflow-context.d.ts +275 -0
- package/dist/types/workflow-context.d.ts.map +1 -0
- package/dist/types/workflow-context.js +8 -0
- package/dist/types/workflow-context.js.map +1 -0
- package/dist/types/workflow.d.ts +30 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +2 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/utils/agent-validation.d.ts +88 -0
- package/dist/utils/agent-validation.d.ts.map +1 -0
- package/dist/utils/agent-validation.js +87 -0
- package/dist/utils/agent-validation.js.map +1 -0
- package/dist/utils/delay.d.ts +7 -0
- package/dist/utils/delay.d.ts.map +1 -0
- package/dist/utils/delay.js +9 -0
- package/dist/utils/delay.js.map +1 -0
- package/dist/utils/harness-config.d.ts +180 -0
- package/dist/utils/harness-config.d.ts.map +1 -0
- package/dist/utils/harness-config.js +311 -0
- package/dist/utils/harness-config.js.map +1 -0
- package/dist/utils/id.d.ts +6 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +12 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/model-spec.d.ts +110 -0
- package/dist/utils/model-spec.d.ts.map +1 -0
- package/dist/utils/model-spec.js +149 -0
- package/dist/utils/model-spec.js.map +1 -0
- package/dist/utils/observable.d.ts +54 -0
- package/dist/utils/observable.d.ts.map +1 -0
- package/dist/utils/observable.js +82 -0
- package/dist/utils/observable.js.map +1 -0
- package/dist/utils/provider-config.d.ts +10 -0
- package/dist/utils/provider-config.d.ts.map +1 -0
- package/dist/utils/provider-config.js +10 -0
- package/dist/utils/provider-config.js.map +1 -0
- package/dist/utils/restart-analysis.d.ts +202 -0
- package/dist/utils/restart-analysis.d.ts.map +1 -0
- package/dist/utils/restart-analysis.js +426 -0
- package/dist/utils/restart-analysis.js.map +1 -0
- package/dist/utils/session-serialization.d.ts +118 -0
- package/dist/utils/session-serialization.d.ts.map +1 -0
- package/dist/utils/session-serialization.js +217 -0
- package/dist/utils/session-serialization.js.map +1 -0
- package/dist/utils/workflow-error-utils.d.ts +22 -0
- package/dist/utils/workflow-error-utils.d.ts.map +1 -0
- package/dist/utils/workflow-error-utils.js +45 -0
- package/dist/utils/workflow-error-utils.js.map +1 -0
- package/package.json +34 -5
- package/.claude/commands/subtask-planning/prp-base-create.md +0 -120
- package/.claude/commands/subtask-planning/prp-base-execute.md +0 -65
- package/.claude/commands/task-breakdown.md +0 -94
- package/.claude/settings.local.json +0 -9
- package/.claude/system_prompts/task-breakdown.md +0 -101
- package/CHANGELOG.md +0 -188
- package/PRD.md +0 -543
- package/PRPs/001-hierarchical-workflow-engine.md +0 -2438
- package/PRPs/PRDs/002-agent-prompt.md +0 -390
- package/PRPs/PRDs/003-agent-prompt.md +0 -943
- package/PRPs/PRDs/004-agent-prompt.md +0 -1136
- package/PRPs/PRDs/tasks-001.json +0 -492
- package/PRPs/README.md +0 -83
- package/PRPs/templates/prp_base.md +0 -222
- package/docs/agent.md +0 -422
- package/docs/prompt.md +0 -419
- package/docs/workflow.md +0 -600
- package/examples/README.md +0 -258
- package/examples/examples/01-basic-workflow.ts +0 -100
- package/examples/examples/02-decorator-options.ts +0 -217
- package/examples/examples/03-parent-child.ts +0 -241
- package/examples/examples/04-observers-debugger.ts +0 -340
- package/examples/examples/05-error-handling.ts +0 -387
- package/examples/examples/06-concurrent-tasks.ts +0 -352
- package/examples/examples/07-agent-loops.ts +0 -432
- package/examples/examples/08-sdk-features.ts +0 -667
- package/examples/examples/09-reflection.ts +0 -573
- package/examples/examples/10-introspection.ts +0 -550
- package/examples/examples/11-reparenting-workflows.ts +0 -269
- package/examples/index.ts +0 -147
- package/examples/utils/helpers.ts +0 -57
- package/package-lock.json +0 -2398
- package/plan/001_d3bb02af4886/TEST_RESULTS.md +0 -259
- package/plan/001_d3bb02af4886/backlog.json +0 -867
- package/plan/001_d3bb02af4886/bug_fix_tasks.json +0 -484
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S1/PRP.md +0 -488
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S2/PRP.md +0 -581
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S3/PRP.md +0 -687
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S1/PRP.md +0 -492
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/PRP.md +0 -932
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/concurrent_error_testing_patterns.md +0 -1109
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/vitest_concurrent_testing.md +0 -802
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/workflow_engine_test_references.md +0 -603
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S1/PRP.md +0 -564
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S3/PRP.md +0 -518
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S4/PRP.md +0 -1252
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/PRP.md +0 -364
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/CODEBASE_INVENTORY.md +0 -114
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/DECORATOR_DOCUMENTATION_PATTERNS.md +0 -205
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/PRD_LOCATION_ANALYSIS.md +0 -199
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/ULTRATHINK_PRP_PLAN.md +0 -134
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/PRP.md +0 -495
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/research/console_error_inventory.md +0 -435
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S2/PRP.md +0 -506
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S3/PRP.md +0 -612
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/PRP.md +0 -558
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/research/external_research.md +0 -788
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S2/PRP.md +0 -460
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S3/PRP.md +0 -454
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/PRP.md +0 -520
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/RECOMMENDATION.md +0 -417
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/external_workflow_engines_research.md +0 -760
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/security_implications_analysis.md +0 -245
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S2/PRP.md +0 -792
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/PRP.md +0 -535
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md +0 -190
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/PRP.md +0 -654
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md +0 -227
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md +0 -345
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md +0 -193
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md +0 -1323
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/BREAKING_CHANGES_AUDIT.md +0 -1011
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/PRP.md +0 -927
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S2/PRP.md +0 -505
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/architecture/logger_child_signature_analysis.md +0 -401
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/child_implementation_research.md +0 -142
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/test_patterns_research.md +0 -112
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/vitest_patterns_research.md +0 -159
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/PRP.md +0 -549
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/VERIFICATION_REPORT.md +0 -368
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/edge_case_analysis.md +0 -172
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/usage_inventory.md +0 -175
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S2/PRP.md +0 -696
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S4/PRP.md +0 -860
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/PRP.md +0 -1066
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01-testing-aggregated-errors.md +0 -1103
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01_typescript_error_aggregation_patterns.md +0 -789
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02-error-merge-strategy-testing-guide.md +0 -1098
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02_aggregate_error_patterns.md +0 -1037
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03-promise-allsettled-testing-patterns.md +0 -916
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03_error_merging_strategies.md +0 -1045
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/04_github_stackoverflow_examples.md +0 -890
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/05_comprehensive_summary.md +0 -822
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/INDEX.md +0 -668
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/QUICK_REFERENCE.md +0 -706
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/README.md +0 -265
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/RESEARCH_REPORT.md +0 -655
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S4/research/vitest_testing_patterns.md +0 -1103
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T3S2/PRP.md +0 -426
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/PRP.md +0 -506
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/QUICK_REFERENCE.md +0 -114
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/RESEARCH_SUMMARY.md +0 -316
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/vitest_observer_error_logging_best_practices.md +0 -754
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S3/PRP.md +0 -612
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/PRP.md +0 -719
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/README.md +0 -215
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/analysis.md +0 -765
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S3/PRP.md +0 -718
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md +0 -149
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/PRP.md +0 -470
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/ULTRATHINK_PLAN.md +0 -332
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/codebase_workflow_name_analysis.md +0 -167
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/external_best_practices.md +0 -265
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/validation_patterns.md +0 -273
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S1/workflow_engine_ancestry_api_research.md +0 -760
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S3-PRP.md +0 -434
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S1/PRP.md +0 -717
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/PRP.md +0 -472
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/VALIDATION_REPORT.md +0 -125
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/research/ULTRATHINK_PRP_PLAN.md +0 -301
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/error-logging-best-practices.md +0 -1170
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/research_typescript_partial_and_overloads.md +0 -940
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-quick-reference.md +0 -151
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-research.md +0 -650
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/prd_snapshot.md +0 -259
- package/plan/001_d3bb02af4886/bugfix/P1M1T1S1/PRP.md +0 -457
- package/plan/001_d3bb02af4886/bugfix/RESEARCH_SUMMARY.md +0 -346
- package/plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md +0 -311
- package/plan/001_d3bb02af4886/bugfix/architecture/concurrent_execution_best_practices.md +0 -1565
- package/plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md +0 -288
- package/plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md +0 -741
- package/plan/001_d3bb02af4886/docs/PRP/P1M1T1S4-functional-workflow-error-state-capture-test.md +0 -652
- package/plan/001_d3bb02af4886/docs/PRP/P1P2-PRP.md +0 -527
- package/plan/001_d3bb02af4886/docs/PRP/P3P4-PRP.md +0 -1388
- package/plan/001_d3bb02af4886/docs/PRP/P4P5-PRP.md +0 -1136
- package/plan/001_d3bb02af4886/docs/PRP/PRP.md +0 -527
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S1-PRP.md +0 -415
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S2-PRP.md +0 -378
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S4-PRP.md +0 -713
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M2T1S4-PRP.md +0 -370
- package/plan/001_d3bb02af4886/docs/PRP_P1M3T1S3.md +0 -499
- package/plan/001_d3bb02af4886/docs/TEST_RESULTS.md +0 -230
- package/plan/001_d3bb02af4886/docs/architecture/external_deps.md +0 -358
- package/plan/001_d3bb02af4886/docs/architecture/system_context.md +0 -242
- package/plan/001_d3bb02af4886/docs/bugfix/ANALYSIS_PRD_VS_IMPLEMENTATION.md +0 -1134
- package/plan/001_d3bb02af4886/docs/bugfix/GAP_ANALYSIS_SUMMARY.md +0 -179
- package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/PRP.md +0 -629
- package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/validation-report.md +0 -214
- package/plan/001_d3bb02af4886/docs/bugfix/PRP_P1M4T2S3.md +0 -629
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_PRP.md +0 -529
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_QUICK_REFERENCE.md +0 -142
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_README.md +0 -304
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_TEST_RESULTS.md +0 -558
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_VALIDATION_SUMMARY.md +0 -256
- package/plan/001_d3bb02af4886/docs/bugfix/system_context.md +0 -346
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/bug_analysis.md +0 -415
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/implementation_patterns.md +0 -489
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/system_context.md +0 -218
- package/plan/001_d3bb02af4886/docs/bugfix_INITIATION_SUMMARY.md +0 -380
- package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_PATTERNS.md +0 -1923
- package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_QUICK_REF.md +0 -319
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/codebase-context.md +0 -115
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/cycle-detection-algorithms.md +0 -134
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/test-patterns.md +0 -153
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/workflow-class.md +0 -132
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_BEST_PRACTICES.md +0 -716
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_QUICK_REF.md +0 -186
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/GROUNDSWELL_DECORATOR_EXAMPLES.md +0 -604
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/INDEX.md +0 -213
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/codebase_structure.md +0 -30
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/existing_test_pattern.md +0 -56
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/getRootObservers_implementation.md +0 -53
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/test_conventions.md +0 -49
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/PRP.md +0 -958
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/QUICK_REFERENCE.md +0 -339
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/README.md +0 -305
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/SUMMARY.md +0 -433
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/bidirectional-tree-consistency-testing.md +0 -1574
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/test-pattern-examples.md +0 -1014
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_BEST_PRACTICES.md +0 -1929
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_CODE_PATTERNS.md +0 -857
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_INTEGRATION_GUIDE.md +0 -738
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_RESEARCH_INDEX.md +0 -424
- package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_INDEX.md +0 -291
- package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_RESEARCH_REPORT.md +0 -1342
- package/plan/001_d3bb02af4886/docs/research/P1P2/RESEARCH_SUMMARY.md +0 -342
- package/plan/001_d3bb02af4886/docs/research/P1P2/anthropic-sdk.md +0 -174
- package/plan/001_d3bb02af4886/docs/research/P1P2/async-local-storage.md +0 -200
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-code-patterns.md +0 -1205
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-decision-matrix.md +0 -421
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-implementation-guide.md +0 -1341
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-integration-guide.md +0 -834
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-patterns.md +0 -1468
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-quick-reference.md +0 -558
- package/plan/001_d3bb02af4886/docs/research/P1P2/zod-schema.md +0 -152
- package/plan/001_d3bb02af4886/docs/research/P3P4/caching-lru.md +0 -116
- package/plan/001_d3bb02af4886/docs/research/P3P4/introspection-tools.md +0 -177
- package/plan/001_d3bb02af4886/docs/research/P3P4/reflection-patterns.md +0 -117
- package/plan/001_d3bb02af4886/docs/research/P4P5/RESEARCH_SUMMARY.md +0 -151
- package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_QUICK_REF.md +0 -376
- package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_RESEARCH.md +0 -1507
- package/plan/001_d3bb02af4886/docs/research/bugfix_typescript_patterns.md +0 -949
- package/plan/001_d3bb02af4886/docs/research/error-testing-research.md +0 -619
- package/plan/001_d3bb02af4886/docs/research/error_handling_patterns.md +0 -723
- package/plan/001_d3bb02af4886/docs/research/general/INTROSPECTION_RESEARCH_SUMMARY.md +0 -378
- package/plan/001_d3bb02af4886/docs/research/general/README-INTROSPECTION.md +0 -352
- package/plan/001_d3bb02af4886/docs/research/general/agent-introspection-patterns.md +0 -1085
- package/plan/001_d3bb02af4886/docs/research/general/introspection-security-guide.md +0 -984
- package/plan/001_d3bb02af4886/docs/research/general/introspection-tool-examples.md +0 -875
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/PRP_TEMPLATE.md +0 -460
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/QUICK_REFERENCE.md +0 -324
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/README.md +0 -175
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/RESEARCH_REPORT.md +0 -499
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/SUMMARY.md +0 -163
- package/plan/001_d3bb02af4886/prd_snapshot.md +0 -543
- package/plan/bugfix/BUG_FIX_SUMMARY.md +0 -961
- package/scripts/generate-llms-full.ts +0 -206
- package/src/__tests__/adversarial/attachChild-performance.test.ts +0 -216
- package/src/__tests__/adversarial/circular-reference.test.ts +0 -101
- package/src/__tests__/adversarial/complex-circular-reference.test.ts +0 -139
- package/src/__tests__/adversarial/concurrent-task-failures.test.ts +0 -571
- package/src/__tests__/adversarial/deep-analysis.test.ts +0 -729
- package/src/__tests__/adversarial/deep-hierarchy-stress.test.ts +0 -213
- package/src/__tests__/adversarial/e2e-prd-validation.test.ts +0 -448
- package/src/__tests__/adversarial/edge-case.test.ts +0 -703
- package/src/__tests__/adversarial/error-merge-strategy.test.ts +0 -760
- package/src/__tests__/adversarial/incremental-performance.test.ts +0 -140
- package/src/__tests__/adversarial/node-map-update-benchmarks.test.ts +0 -457
- package/src/__tests__/adversarial/observer-propagation.test.ts +0 -487
- package/src/__tests__/adversarial/parent-validation.test.ts +0 -143
- package/src/__tests__/adversarial/prd-12-2-compliance.test.ts +0 -611
- package/src/__tests__/adversarial/prd-compliance.test.ts +0 -731
- package/src/__tests__/compatibility/backward-compatibility.test.ts +0 -1572
- package/src/__tests__/helpers/index.ts +0 -18
- package/src/__tests__/helpers/tree-verification.ts +0 -257
- package/src/__tests__/integration/agent-workflow.test.ts +0 -256
- package/src/__tests__/integration/bidirectional-consistency.test.ts +0 -847
- package/src/__tests__/integration/observer-logging.test.ts +0 -643
- package/src/__tests__/integration/tree-mirroring.test.ts +0 -151
- package/src/__tests__/integration/workflow-reparenting.test.ts +0 -303
- package/src/__tests__/unit/agent.test.ts +0 -169
- package/src/__tests__/unit/cache-key.test.ts +0 -182
- package/src/__tests__/unit/cache.test.ts +0 -172
- package/src/__tests__/unit/context.test.ts +0 -217
- package/src/__tests__/unit/decorators.test.ts +0 -100
- package/src/__tests__/unit/introspection-tools.test.ts +0 -277
- package/src/__tests__/unit/logger.test.ts +0 -293
- package/src/__tests__/unit/observable.test.ts +0 -321
- package/src/__tests__/unit/prompt.test.ts +0 -135
- package/src/__tests__/unit/reflection.test.ts +0 -210
- package/src/__tests__/unit/tree-debugger-incremental.test.ts +0 -170
- package/src/__tests__/unit/tree-debugger.test.ts +0 -85
- package/src/__tests__/unit/utils/workflow-error-utils.test.ts +0 -209
- package/src/__tests__/unit/workflow-detachChild.test.ts +0 -100
- package/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts +0 -153
- package/src/__tests__/unit/workflow-isDescendantOf.test.ts +0 -180
- package/src/__tests__/unit/workflow.test.ts +0 -357
- package/src/cache/cache-key.ts +0 -244
- package/src/cache/cache.ts +0 -236
- package/src/core/agent.ts +0 -593
- package/src/core/event-tree.ts +0 -260
- package/src/core/logger.ts +0 -112
- package/src/core/mcp-handler.ts +0 -184
- package/src/core/prompt.ts +0 -150
- package/src/core/workflow-context.ts +0 -351
- package/src/core/workflow.ts +0 -540
- package/src/debugger/tree-debugger.ts +0 -255
- package/src/decorators/observed-state.ts +0 -95
- package/src/decorators/step.ts +0 -139
- package/src/decorators/task.ts +0 -159
- package/src/examples/tdd-orchestrator.ts +0 -65
- package/src/examples/test-cycle-workflow.ts +0 -64
- package/src/index.ts +0 -142
- package/src/reflection/reflection.ts +0 -407
- package/src/tools/index.ts +0 -36
- package/src/tools/introspection.ts +0 -464
- package/src/types/agent.ts +0 -90
- package/src/types/decorators.ts +0 -32
- package/src/types/error-strategy.ts +0 -13
- package/src/types/error.ts +0 -20
- package/src/types/events.ts +0 -75
- package/src/types/index.ts +0 -55
- package/src/types/logging.ts +0 -24
- package/src/types/observer.ts +0 -18
- package/src/types/prompt.ts +0 -40
- package/src/types/reflection.ts +0 -117
- package/src/types/sdk-primitives.ts +0 -128
- package/src/types/workflow-context.ts +0 -163
- package/src/types/workflow.ts +0 -37
- package/src/utils/id.ts +0 -11
- package/src/utils/index.ts +0 -4
- package/src/utils/observable.ts +0 -106
- package/src/utils/workflow-error-utils.ts +0 -56
- package/tsconfig.json +0 -22
- package/vitest.config.ts +0 -16
|
@@ -1,654 +0,0 @@
|
|
|
1
|
-
# Product Requirement Prompt (PRP): Fix Test Failures from Bug Fixes
|
|
2
|
-
|
|
3
|
-
**PRP ID**: P1M4T1S2
|
|
4
|
-
**Work Item**: Fix any test failures caused by bug fixes
|
|
5
|
-
**Date**: 2025-01-12
|
|
6
|
-
**Confidence Score**: 10/10
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Goal
|
|
11
|
-
|
|
12
|
-
**Feature Goal**: Ensure all tests pass after bug fixes from milestones P1.M1-P1.M3, maintaining 100% test pass rate.
|
|
13
|
-
|
|
14
|
-
**Deliverable**: A test suite with zero failures, documented test changes (if any), and validated backward compatibility.
|
|
15
|
-
|
|
16
|
-
**Success Definition**:
|
|
17
|
-
- All 479 active tests pass with zero failures
|
|
18
|
-
- Any test modifications are documented with clear rationale
|
|
19
|
-
- No regressions introduced by bug fixes
|
|
20
|
-
- Test execution report generated at `plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md`
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Context: Current State
|
|
25
|
-
|
|
26
|
-
### S1 Test Execution Results
|
|
27
|
-
|
|
28
|
-
**Critical Finding**: The P1.M4.T1.S1 test execution completed with **ZERO failures**.
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
Total Tests: 482 (479 active, 3 skipped)
|
|
32
|
-
Passed: 479 (100%)
|
|
33
|
-
Failed: 0
|
|
34
|
-
Skipped: 3 (intentional)
|
|
35
|
-
Execution Time: 2.87s
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
**Implication**: This task (S2) is primarily a validation and documentation task. If all tests still pass, the deliverable is confirmation of the 100% pass rate with documentation. If failures exist, they must be analyzed and fixed.
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Why
|
|
43
|
-
|
|
44
|
-
### Business Value
|
|
45
|
-
|
|
46
|
-
- **Quality Assurance**: Maintaining 100% test pass rate ensures bug fixes don't introduce regressions
|
|
47
|
-
- **Confidence in Deployment**: Passing tests validate that all bug fixes work correctly without breaking existing functionality
|
|
48
|
-
- **Documentation**: Test changes document how bug fixes affect expected behavior
|
|
49
|
-
|
|
50
|
-
### Integration with Bug Fixes
|
|
51
|
-
|
|
52
|
-
This task validates all bug fixes from previous milestones:
|
|
53
|
-
- **P1.M1.T1**: WorkflowLogger.child() signature mismatch
|
|
54
|
-
- **P1.M2.T1**: Promise.all to Promise.allSettled conversion
|
|
55
|
-
- **P1.M2.T2**: ErrorMergeStrategy support
|
|
56
|
-
- **P1.M3.T1**: Replace console.error with Logger
|
|
57
|
-
- **P1.M3.T2**: Optimize tree debugger node map updates
|
|
58
|
-
- **P1.M3.T3**: Add workflow name validation
|
|
59
|
-
- **P1.M3.T4**: Expose isDescendantOf as public API
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## What
|
|
64
|
-
|
|
65
|
-
### Success Criteria
|
|
66
|
-
|
|
67
|
-
- [ ] All 479 active tests pass (zero failures)
|
|
68
|
-
- [ ] Test execution report generated documenting results
|
|
69
|
-
- [ ] Any test changes documented with rationale
|
|
70
|
-
- [ ] No regressions in existing test behavior
|
|
71
|
-
- [ ] Backward compatibility validated
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## All Needed Context
|
|
76
|
-
|
|
77
|
-
### Context Completeness Check
|
|
78
|
-
|
|
79
|
-
**"No Prior Knowledge" Test Result**: PASS
|
|
80
|
-
This PRP provides complete context for an agent unfamiliar with the codebase to implement test validation and fixes.
|
|
81
|
-
|
|
82
|
-
### Documentation & References
|
|
83
|
-
|
|
84
|
-
```yaml
|
|
85
|
-
# MUST READ - Critical context for implementation
|
|
86
|
-
|
|
87
|
-
# S1 Test Execution Results (Critical - shows ZERO failures)
|
|
88
|
-
- file: plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md
|
|
89
|
-
why: Contains baseline test results showing 100% pass rate
|
|
90
|
-
critical: If tests still pass, this confirms no test failures to fix
|
|
91
|
-
gotcha: 3 skipped tests in error-merge-strategy.test.ts are intentional, not failures
|
|
92
|
-
|
|
93
|
-
# Test Framework Configuration
|
|
94
|
-
- file: vitest.config.ts
|
|
95
|
-
why: Defines test patterns, globals, and execution settings
|
|
96
|
-
pattern: Include src/__tests__/**/*.test.ts, globals enabled
|
|
97
|
-
gotcha: Tests use global describe/it/expect without explicit imports
|
|
98
|
-
|
|
99
|
-
# Test Commands
|
|
100
|
-
- file: package.json
|
|
101
|
-
why: Contains commands to run tests
|
|
102
|
-
pattern: "test": "vitest run", "test:watch": "vitest"
|
|
103
|
-
section: scripts section
|
|
104
|
-
|
|
105
|
-
# Bug Fix Summary (All P1.M1-P1.M3 Changes)
|
|
106
|
-
- docfile: plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md
|
|
107
|
-
why: External research on test maintenance best practices
|
|
108
|
-
section: KEY_FINDINGS.md and QUICK_REFERENCE.md for immediate actions
|
|
109
|
-
|
|
110
|
-
# Vitest Debugging Guide
|
|
111
|
-
- url: https://vitest.dev/guide/debugging.html
|
|
112
|
-
why: Official Vitest debugging techniques and tools
|
|
113
|
-
critical: Commands for --inspect-brk, UI mode, watch mode
|
|
114
|
-
|
|
115
|
-
# Vitest Common Errors
|
|
116
|
-
- url: https://vitest.dev/guide/common-errors.html
|
|
117
|
-
why: Official reference for common test failure patterns and solutions
|
|
118
|
-
|
|
119
|
-
# Test Pattern Examples (Unit Tests)
|
|
120
|
-
- file: src/__tests__/unit/logger.test.ts
|
|
121
|
-
why: Example of comprehensive test patterns for bug fix validation
|
|
122
|
-
pattern: Uses beforeEach/afterEach, mock patterns, assertion patterns
|
|
123
|
-
|
|
124
|
-
# Test Pattern Examples (Adversarial Tests)
|
|
125
|
-
- file: src/__tests__/adversarial/concurrent-task-failures.test.ts
|
|
126
|
-
why: Example of testing error scenarios from bug fixes
|
|
127
|
-
pattern: Tests concurrent task failure handling
|
|
128
|
-
|
|
129
|
-
# Test Pattern Examples (Error Merge Strategy)
|
|
130
|
-
- file: src/__tests__/adversarial/error-merge-strategy.test.ts
|
|
131
|
-
why: Example of ErrorMergeStrategy functionality testing
|
|
132
|
-
gotcha: Contains 3 intentionally skipped tests (not failures)
|
|
133
|
-
|
|
134
|
-
# Tree Debugger Tests
|
|
135
|
-
- file: src/__tests__/unit/tree-debugger-incremental.test.ts
|
|
136
|
-
why: Example of performance optimization validation tests
|
|
137
|
-
pattern: Benchmark tests showing O(n) to O(k) improvement
|
|
138
|
-
|
|
139
|
-
# Workflow Name Validation Tests
|
|
140
|
-
- file: src/__tests__/unit/workflow.test.ts
|
|
141
|
-
why: Example of validation logic testing
|
|
142
|
-
pattern: Tests for empty/whitespace/length validation
|
|
143
|
-
|
|
144
|
-
# Public API Tests
|
|
145
|
-
- file: src/__tests__/unit/workflow-isDescendantOf.test.ts
|
|
146
|
-
why: Example of testing newly exposed public API
|
|
147
|
-
pattern: Ancestry relationship testing with cycle detection
|
|
148
|
-
|
|
149
|
-
# Test Helpers
|
|
150
|
-
- file: src/__tests__/helpers/tree-verification.ts
|
|
151
|
-
why: Utility functions for tree consistency validation in tests
|
|
152
|
-
pattern: validateTreeConsistency, verifyBidirectionalLink, verifyNoCycles
|
|
153
|
-
|
|
154
|
-
# Bug Fix Research Documentation
|
|
155
|
-
- docfile: plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md
|
|
156
|
-
why: Actionable recommendations for Groundswell project test maintenance
|
|
157
|
-
section: Decision Framework for Test vs Implementation updates
|
|
158
|
-
|
|
159
|
-
# Quick Reference for Debugging
|
|
160
|
-
- docfile: plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md
|
|
161
|
-
why: Immediate debugging actions and common error patterns
|
|
162
|
-
section: Common Error Patterns and Quick Fixes table
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Current Codebase Tree (Test Structure)
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
src/__tests__/
|
|
169
|
-
├── unit/ # Unit tests (17 files)
|
|
170
|
-
│ ├── agent.test.ts
|
|
171
|
-
│ ├── cache.test.ts
|
|
172
|
-
│ ├── cache-key.test.ts
|
|
173
|
-
│ ├── context.test.ts
|
|
174
|
-
│ ├── decorators.test.ts
|
|
175
|
-
│ ├── events.test.ts
|
|
176
|
-
│ ├── introspection-tools.test.ts
|
|
177
|
-
│ ├── logger.test.ts # P1.M1.T1, P1.M3.T1 tests
|
|
178
|
-
│ ├── logging.test.ts
|
|
179
|
-
│ ├── metrics.test.ts
|
|
180
|
-
│ ├── models.test.ts
|
|
181
|
-
│ ├── observable.test.ts
|
|
182
|
-
│ ├── prompt.test.ts
|
|
183
|
-
│ ├── prompt-instance.test.ts
|
|
184
|
-
│ ├── provider.test.ts
|
|
185
|
-
│ ├── reflection.test.ts
|
|
186
|
-
│ ├── token-aggregator.test.ts
|
|
187
|
-
│ ├── tree-debugger.test.ts # P1.M3.T2 tests
|
|
188
|
-
│ ├── tree-debugger-incremental.test.ts # P1.M3.T2 benchmark tests
|
|
189
|
-
│ ├── utils/
|
|
190
|
-
│ │ └── workflow-error-utils.test.ts # P1.M2.T2 tests
|
|
191
|
-
│ ├── workflow-detachChild.test.ts
|
|
192
|
-
│ ├── workflow-emitEvent-childDetached.test.ts
|
|
193
|
-
│ ├── workflow-isDescendantOf.test.ts # P1.M3.T4 tests
|
|
194
|
-
│ └── workflow.test.ts # P1.M3.T3 validation tests
|
|
195
|
-
├── integration/ # Integration tests (5 files)
|
|
196
|
-
│ ├── agent-workflow.test.ts
|
|
197
|
-
│ ├── bidirectional-consistency.test.ts
|
|
198
|
-
│ ├── observer-logging.test.ts
|
|
199
|
-
│ ├── tree-mirroring.test.ts
|
|
200
|
-
│ └── workflow-reparenting.test.ts
|
|
201
|
-
├── adversarial/ # Stress and edge case tests (14 files)
|
|
202
|
-
│ ├── attachChild-performance.test.ts
|
|
203
|
-
│ ├── circular-reference.test.ts
|
|
204
|
-
│ ├── complex-circular-reference.test.ts
|
|
205
|
-
│ ├── concurrent-task-failures.test.ts # P1.M2.T1 tests
|
|
206
|
-
│ ├── deep-analysis.test.ts
|
|
207
|
-
│ ├── deep-hierarchy-stress.test.ts
|
|
208
|
-
│ ├── e2e-prd-validation.test.ts
|
|
209
|
-
│ ├── edge-case.test.ts
|
|
210
|
-
│ ├── error-merge-strategy.test.ts # P1.M2.T2 tests (3 skipped)
|
|
211
|
-
│ ├── incremental-performance.test.ts
|
|
212
|
-
│ ├── node-map-update-benchmarks.test.ts # P1.M3.T2 benchmarks
|
|
213
|
-
│ ├── observer-propagation.test.ts
|
|
214
|
-
│ ├── parent-validation.test.ts
|
|
215
|
-
│ ├── prd-12-2-compliance.test.ts
|
|
216
|
-
│ └── prd-compliance.test.ts
|
|
217
|
-
└── helpers/
|
|
218
|
-
└── tree-verification.ts # Test utilities for tree validation
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### Desired Codebase Tree (No New Files - Test Updates Only)
|
|
222
|
-
|
|
223
|
-
```bash
|
|
224
|
-
# No new files expected
|
|
225
|
-
# Existing test files may be modified if tests need updating after bug fixes
|
|
226
|
-
# Test fix report will be generated at:
|
|
227
|
-
plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
### Known Gotchas of Our Codebase & Library Quirks
|
|
231
|
-
|
|
232
|
-
```typescript
|
|
233
|
-
// CRITICAL: Vitest Configuration
|
|
234
|
-
// - Globals enabled: describe/it/expect available without imports
|
|
235
|
-
// - Test pattern: src/__tests__/**/*.test.ts
|
|
236
|
-
// - Target: Node.js 18+
|
|
237
|
-
// - 3 intentionally skipped tests in error-merge-strategy.test.ts (NOT failures)
|
|
238
|
-
|
|
239
|
-
// CRITICAL: Test File Structure
|
|
240
|
-
// - Unit tests in src/__tests__/unit/
|
|
241
|
-
// - Integration tests in src/__tests__/integration/
|
|
242
|
-
// - Adversarial tests in src/__tests__/adversarial/
|
|
243
|
-
// - Helpers in src/__tests__/helpers/
|
|
244
|
-
|
|
245
|
-
// CRITICAL: Mock Patterns
|
|
246
|
-
// - Use vi.fn() for mock functions
|
|
247
|
-
// - Use vi.mock() for module mocking
|
|
248
|
-
// - Always restore mocks in afterEach to prevent test pollution
|
|
249
|
-
// - Example: afterEach(() => { mockFunction.mockRestore(); })
|
|
250
|
-
|
|
251
|
-
// CRITICAL: Async Testing
|
|
252
|
-
// - Always use async/await for async tests
|
|
253
|
-
// - Use await expect(...).rejects.toThrow() for error testing
|
|
254
|
-
// - Never forget to return or await promises
|
|
255
|
-
|
|
256
|
-
// CRITICAL: TypeScript Testing
|
|
257
|
-
// - Type assertions may fail on mocks - use vi.mocked() or type assertions
|
|
258
|
-
// - Module mocking with vi.mock() is hoisted - declare mocks outside tests
|
|
259
|
-
// - Use vitest.config.ts aliases for imports
|
|
260
|
-
|
|
261
|
-
// CRITICAL: Expected stderr Messages (Not Failures)
|
|
262
|
-
// These messages appear during tests but are expected behavior:
|
|
263
|
-
// "Cannot attach child 'Root' - it is an ancestor of 'Child'. This would create a circular reference."
|
|
264
|
-
// This verifies circular reference prevention is working correctly.
|
|
265
|
-
|
|
266
|
-
// CRITICAL: Bug Fix Behavior Changes
|
|
267
|
-
// - P1.M2.T1: Promise.allSettled means all concurrent tasks complete (failures collected)
|
|
268
|
-
// - P1.M3.T3: Empty workflow names now throw errors (previously allowed)
|
|
269
|
-
// - P1.M3.T4: isDescendantOf() is now public (was private)
|
|
270
|
-
|
|
271
|
-
// CRITICAL: Test Execution Commands
|
|
272
|
-
// - Full suite: npm test
|
|
273
|
-
// - Watch mode: npm run test:watch
|
|
274
|
-
// - Single file: npx vitest run <file>
|
|
275
|
-
// - Debug mode: npx vitest --inspect-brk --no-coverage
|
|
276
|
-
// - UI mode: npx vitest --ui
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
---
|
|
280
|
-
|
|
281
|
-
## Implementation Blueprint
|
|
282
|
-
|
|
283
|
-
### Data Models and Structure
|
|
284
|
-
|
|
285
|
-
No new data models required. This task validates existing tests and fixes failures if they occur.
|
|
286
|
-
|
|
287
|
-
### Implementation Tasks (Ordered by Dependencies)
|
|
288
|
-
|
|
289
|
-
```yaml
|
|
290
|
-
Task 1: RUN Full Test Suite
|
|
291
|
-
- EXECUTE: npm test (runs vitest with full test suite)
|
|
292
|
-
- CAPTURE: Test output including any failures
|
|
293
|
-
- DOCUMENT: Results in TEST_FIX_REPORT.md
|
|
294
|
-
- EXPECTED: 479 tests pass, 0 failures (based on S1 results)
|
|
295
|
-
- TIMEOUT: 2-3 seconds typical for full suite
|
|
296
|
-
|
|
297
|
-
Task 2: ANALYZE Test Failures (IF any exist)
|
|
298
|
-
- CHECK: Did any tests fail?
|
|
299
|
-
- IF NO FAILURES: Document "No test failures detected - all 479 tests passed"
|
|
300
|
-
- IF FAILURES EXIST: For each failing test:
|
|
301
|
-
- IDENTIFY: Test file, test name, error message
|
|
302
|
-
- DETERMINE: Is failure due to bug fix behavior change OR implementation bug?
|
|
303
|
-
- USE DECISION FRAMEWORK: See research/KEY_FINDINGS.md for flowchart
|
|
304
|
-
|
|
305
|
-
Task 3: FIX Implementation Bugs (IF found in Task 2)
|
|
306
|
-
- IDENTIFY: If bug fix introduced implementation error
|
|
307
|
-
- LOCATE: Source file and line causing the failure
|
|
308
|
-
- FIX: Correct implementation while preserving intended behavior change
|
|
309
|
-
- REFERENCE: Original bug fix specifications from P1.M1-P1.M3 tasks
|
|
310
|
-
- VERIFY: Re-run specific test to confirm fix
|
|
311
|
-
|
|
312
|
-
Task 4: UPDATE Tests (IF behavior change requires it)
|
|
313
|
-
- IDENTIFY: If test expects old behavior that has changed
|
|
314
|
-
- VALIDATE: New behavior is correct per PRD specification
|
|
315
|
-
- UPDATE: Test assertions to match new correct behavior
|
|
316
|
-
- DOCUMENT: Add comment explaining why test was updated
|
|
317
|
-
- EXAMPLE: "// Updated after P1.M2.T1 - Promise.allSettled completes all tasks"
|
|
318
|
-
|
|
319
|
-
Task 5: RE-RUN Test Suite Until All Pass
|
|
320
|
-
- EXECUTE: npm test repeatedly until all tests pass
|
|
321
|
-
- VERIFY: 100% pass rate achieved
|
|
322
|
-
- ENSURE: No tests skipped unintentionally
|
|
323
|
-
- CONFIRM: No new test failures introduced
|
|
324
|
-
|
|
325
|
-
Task 6: GENERATE Test Fix Report
|
|
326
|
-
- CREATE: plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md
|
|
327
|
-
- INCLUDE:
|
|
328
|
-
* Test execution summary (total, passed, failed, skipped)
|
|
329
|
-
* List of any test failures with error messages
|
|
330
|
-
* Actions taken for each failure (fixed code vs updated test)
|
|
331
|
-
* Rationale for any test changes
|
|
332
|
-
* Confirmation of 100% pass rate
|
|
333
|
-
- IF NO FAILURES: Document confirmation of successful validation
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
### Implementation Patterns & Key Details
|
|
337
|
-
|
|
338
|
-
```typescript
|
|
339
|
-
// Decision Framework: Test Failure Analysis
|
|
340
|
-
// Source: research/KEY_FINDINGS.md
|
|
341
|
-
|
|
342
|
-
/**
|
|
343
|
-
* When a test fails after a bug fix, follow this decision tree:
|
|
344
|
-
*
|
|
345
|
-
* 1. Is the bug fix implementation correct?
|
|
346
|
-
* NO → Fix the implementation (go to Task 3)
|
|
347
|
-
* YES → Continue to step 2
|
|
348
|
-
*
|
|
349
|
-
* 2. Is the test expecting OLD behavior that has changed?
|
|
350
|
-
* NO → Test was already wrong → Fix test to correctly validate NEW behavior
|
|
351
|
-
* YES → Continue to step 3
|
|
352
|
-
*
|
|
353
|
-
* 3. Is the NEW behavior correct per PRD specification?
|
|
354
|
-
* NO → Bug fix is wrong → Fix implementation (go to Task 3)
|
|
355
|
-
* YES → Update test to expect new behavior (go to Task 4)
|
|
356
|
-
*/
|
|
357
|
-
|
|
358
|
-
// Test Update Pattern (when behavior changes)
|
|
359
|
-
// Example: After P1.M2.T1 (Promise.allSettled)
|
|
360
|
-
|
|
361
|
-
// OLD TEST (before bug fix):
|
|
362
|
-
it('should stop on first concurrent task failure', async () => {
|
|
363
|
-
const result = await workflow.run();
|
|
364
|
-
expect(result.status).toBe('failed');
|
|
365
|
-
// Old behavior: Promise.all fails fast
|
|
366
|
-
});
|
|
367
|
-
|
|
368
|
-
// NEW TEST (after bug fix):
|
|
369
|
-
it('should complete all concurrent tasks and collect errors', async () => {
|
|
370
|
-
const result = await workflow.run();
|
|
371
|
-
expect(result.status).toBe('failed');
|
|
372
|
-
expect(result.errors).toHaveLength(2); // Both errors collected
|
|
373
|
-
// New behavior: Promise.allSettled completes all tasks
|
|
374
|
-
// Updated after P1.M2.T1 - Promise.allSettled completes all tasks
|
|
375
|
-
});
|
|
376
|
-
|
|
377
|
-
// Implementation Fix Pattern (when bug fix is wrong)
|
|
378
|
-
// Example: After P1.M3.T3 (workflow name validation)
|
|
379
|
-
|
|
380
|
-
// WRONG IMPLEMENTATION:
|
|
381
|
-
constructor(config: WorkflowConfig) {
|
|
382
|
-
if (config.name && config.name.trim().length === 0) {
|
|
383
|
-
throw new Error('Invalid name'); // Too vague
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
// CORRECT IMPLEMENTATION:
|
|
388
|
-
constructor(config: WorkflowConfig) {
|
|
389
|
-
if (typeof config.name === 'string') {
|
|
390
|
-
const trimmedName = config.name.trim();
|
|
391
|
-
if (trimmedName.length === 0) {
|
|
392
|
-
throw new Error('Workflow name cannot be empty or whitespace only');
|
|
393
|
-
}
|
|
394
|
-
if (config.name.length > 100) {
|
|
395
|
-
throw new Error('Workflow name cannot exceed 100 characters');
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
### Integration Points
|
|
402
|
-
|
|
403
|
-
```yaml
|
|
404
|
-
# No new integrations required
|
|
405
|
-
# This task validates existing integrations from bug fixes
|
|
406
|
-
|
|
407
|
-
TEST_FRAMEWORK:
|
|
408
|
-
- command: "npm test" or "npx vitest run"
|
|
409
|
-
- config: "vitest.config.ts"
|
|
410
|
-
- coverage: "npx vitest run --coverage" (if needed)
|
|
411
|
-
|
|
412
|
-
BUG_FIX_REFERENCES:
|
|
413
|
-
- P1.M1.T1: src/core/logger.ts (WorkflowLogger.child() signature)
|
|
414
|
-
- P1.M2.T1: src/decorators/task.ts (Promise.allSettled)
|
|
415
|
-
- P1.M2.T2: src/types/decorators.ts, src/decorators/task.ts (ErrorMergeStrategy)
|
|
416
|
-
- P1.M3.T1: src/core/workflow.ts, src/core/logger.ts (observer error logging)
|
|
417
|
-
- P1.M3.T2: src/debugger/tree-debugger.ts (incremental node map updates)
|
|
418
|
-
- P1.M3.T3: src/core/workflow.ts (workflow name validation)
|
|
419
|
-
- P1.M3.T4: src/core/workflow.ts (public isDescendantOf)
|
|
420
|
-
|
|
421
|
-
TEST_FILES_AFFECTED:
|
|
422
|
-
- src/__tests__/unit/logger.test.ts
|
|
423
|
-
- src/__tests__/unit/tree-debugger-incremental.test.ts
|
|
424
|
-
- src/__tests__/unit/workflow-isDescendantOf.test.ts
|
|
425
|
-
- src/__tests__/unit/workflow.test.ts
|
|
426
|
-
- src/__tests__/unit/utils/workflow-error-utils.test.ts
|
|
427
|
-
- src/__tests__/adversarial/concurrent-task-failures.test.ts
|
|
428
|
-
- src/__tests__/adversarial/error-merge-strategy.test.ts
|
|
429
|
-
- src/__tests__/adversarial/node-map-update-benchmarks.test.ts
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
---
|
|
433
|
-
|
|
434
|
-
## Validation Loop
|
|
435
|
-
|
|
436
|
-
### Level 1: Syntax & Style (Immediate Feedback)
|
|
437
|
-
|
|
438
|
-
```bash
|
|
439
|
-
# Run after any code/test modifications
|
|
440
|
-
npm run lint # Type checking with tsc --noEmit
|
|
441
|
-
npx tsc # Full TypeScript compilation check
|
|
442
|
-
|
|
443
|
-
# Format check (if tests are modified)
|
|
444
|
-
npx prettier --check src/__tests__/**/*.test.ts # If using Prettier
|
|
445
|
-
# OR
|
|
446
|
-
npx eslint src/__tests__/**/*.test.ts # If using ESLint
|
|
447
|
-
|
|
448
|
-
# Expected: Zero type errors. If errors exist, READ output and fix before proceeding.
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
### Level 2: Unit Tests (Component Validation)
|
|
452
|
-
|
|
453
|
-
```bash
|
|
454
|
-
# Test each modified file individually (if specific tests were changed)
|
|
455
|
-
npx vitest run src/__tests__/unit/logger.test.ts -v
|
|
456
|
-
npx vitest run src/__tests__/unit/workflow.test.ts -v
|
|
457
|
-
npx vitest run src/__tests__/unit/tree-debugger-incremental.test.ts -v
|
|
458
|
-
npx vitest run src/__tests__/unit/workflow-isDescendantOf.test.ts -v
|
|
459
|
-
|
|
460
|
-
# Test adversarial tests for bug fixes
|
|
461
|
-
npx vitest run src/__tests__/adversarial/concurrent-task-failures.test.ts -v
|
|
462
|
-
npx vitest run src/__tests__/adversarial/error-merge-strategy.test.ts -v
|
|
463
|
-
npx vitest run src/__tests__/adversarial/node-map-update-benchmarks.test.ts -v
|
|
464
|
-
|
|
465
|
-
# Full test suite for affected areas
|
|
466
|
-
npx vitest run src/__tests__/unit/ -v
|
|
467
|
-
npx vitest run src/__tests__/adversarial/ -v
|
|
468
|
-
|
|
469
|
-
# Coverage validation (optional)
|
|
470
|
-
npx vitest run --coverage
|
|
471
|
-
|
|
472
|
-
# Expected: All tests pass. If failing, debug root cause and fix implementation or test.
|
|
473
|
-
```
|
|
474
|
-
|
|
475
|
-
### Level 3: Integration Testing (System Validation)
|
|
476
|
-
|
|
477
|
-
```bash
|
|
478
|
-
# Full test suite execution
|
|
479
|
-
npm test # Runs all 479 tests
|
|
480
|
-
# OR
|
|
481
|
-
npx vitest run # Explicit vitest command
|
|
482
|
-
|
|
483
|
-
# Watch mode for interactive testing
|
|
484
|
-
npm run test:watch # Runs tests in watch mode
|
|
485
|
-
# OR
|
|
486
|
-
npx vitest # Implicit watch mode
|
|
487
|
-
|
|
488
|
-
# Specific test category execution
|
|
489
|
-
npx vitest run src/__tests__/unit/ # Unit tests only
|
|
490
|
-
npx vitest run src/__tests__/integration/ # Integration tests only
|
|
491
|
-
npx vitest run src/__tests__/adversarial/ # Adversarial tests only
|
|
492
|
-
|
|
493
|
-
# Bail on first failure (useful for debugging)
|
|
494
|
-
npx vitest run --bail 1
|
|
495
|
-
|
|
496
|
-
# Run only tests matching pattern
|
|
497
|
-
npx vitest run -t "concurrent"
|
|
498
|
-
npx vitest run -t "logger"
|
|
499
|
-
npx vitest run -t "validation"
|
|
500
|
-
|
|
501
|
-
# Expected: All 479 active tests pass, 0 failures, 3 skipped (intentional)
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
### Level 4: Advanced Debugging (If Failures Persist)
|
|
505
|
-
|
|
506
|
-
```bash
|
|
507
|
-
# Vitest UI Mode (Interactive test browser)
|
|
508
|
-
npx vitest --ui # Launch web UI for test exploration
|
|
509
|
-
|
|
510
|
-
# Debug Mode with Node.js Inspector
|
|
511
|
-
npx vitest --inspect-brk --no-coverage
|
|
512
|
-
# Then attach debugger in VS Code or Chrome DevTools
|
|
513
|
-
|
|
514
|
-
# Run single test file with verbose output
|
|
515
|
-
npx vitest run <file> -v
|
|
516
|
-
|
|
517
|
-
# Run specific test by name pattern
|
|
518
|
-
npx vitest run -t "exact test name"
|
|
519
|
-
|
|
520
|
-
# Console output during tests
|
|
521
|
-
# Add console.log in test code for debugging
|
|
522
|
-
# Use test.only() to run single test:
|
|
523
|
-
it.only('should do something', () => { ... });
|
|
524
|
-
|
|
525
|
-
# Expected: Root cause identified, fix applied, all tests passing
|
|
526
|
-
```
|
|
527
|
-
|
|
528
|
-
---
|
|
529
|
-
|
|
530
|
-
## Final Validation Checklist
|
|
531
|
-
|
|
532
|
-
### Technical Validation
|
|
533
|
-
|
|
534
|
-
- [ ] All 4 validation levels completed successfully
|
|
535
|
-
- [ ] All 479 active tests pass: `npm test` shows zero failures
|
|
536
|
-
- [ ] No type errors: `npm run lint` passes
|
|
537
|
-
- [ ] No compilation errors: `npx tsc` passes
|
|
538
|
-
- [ ] Test fix report generated at specified path
|
|
539
|
-
|
|
540
|
-
### Feature Validation
|
|
541
|
-
|
|
542
|
-
- [ ] 100% test pass rate achieved (479/479 tests passed)
|
|
543
|
-
- [ ] Any test failures from S1 have been analyzed and resolved
|
|
544
|
-
- [ ] Test changes (if any) documented with clear rationale
|
|
545
|
-
- [ ] No new test failures introduced by fixes
|
|
546
|
-
- [ ] All bug fixes from P1.M1-P1.M3 validated
|
|
547
|
-
|
|
548
|
-
### Code Quality Validation
|
|
549
|
-
|
|
550
|
-
- [ ] Updated tests follow existing test patterns
|
|
551
|
-
- [ ] Test modifications include explanatory comments
|
|
552
|
-
- [ ] No tests unintentionally skipped (only the 3 intentional skips in error-merge-strategy.test.ts)
|
|
553
|
-
- [ ] Mock cleanup properly implemented in modified tests
|
|
554
|
-
- [ ] Async tests properly use async/await
|
|
555
|
-
|
|
556
|
-
### Documentation & Deployment
|
|
557
|
-
|
|
558
|
-
- [ ] TEST_FIX_REPORT.md created with:
|
|
559
|
-
* Test execution summary
|
|
560
|
-
* List of any failures and actions taken
|
|
561
|
-
* Rationale for test changes
|
|
562
|
-
* Confirmation of 100% pass rate
|
|
563
|
-
- [ ] If no failures: Report confirms successful validation
|
|
564
|
-
- [ ] If failures occurred: Report documents all fixes applied
|
|
565
|
-
|
|
566
|
-
---
|
|
567
|
-
|
|
568
|
-
## Anti-Patterns to Avoid
|
|
569
|
-
|
|
570
|
-
- ❌ Don't skip failing tests instead of fixing root cause
|
|
571
|
-
- ❌ Don't update tests without understanding WHY they fail
|
|
572
|
-
- ❌ Don't change test behavior to match incorrect implementation
|
|
573
|
-
- ❌ Don't forget to restore mocks in afterEach hooks
|
|
574
|
-
- ❌ Don't use sync expectations for async operations
|
|
575
|
-
- ❌ Don't ignore type errors in test files
|
|
576
|
-
- ❌ Don't modify tests to test implementation details instead of behavior
|
|
577
|
-
- ❌ Don't forget to document why tests were updated
|
|
578
|
-
- ❌ Don't run full test suite when debugging single test (use -t flag)
|
|
579
|
-
- ❌ Don't commit test fixes without running full suite first
|
|
580
|
-
|
|
581
|
-
---
|
|
582
|
-
|
|
583
|
-
## Expected Outcomes
|
|
584
|
-
|
|
585
|
-
### Scenario A: No Test Failures (Most Likely Based on S1)
|
|
586
|
-
|
|
587
|
-
**Action**: Document confirmation of 100% pass rate
|
|
588
|
-
|
|
589
|
-
**Output**:
|
|
590
|
-
```markdown
|
|
591
|
-
# Test Fix Report - P1.M4.T1.S2
|
|
592
|
-
|
|
593
|
-
## Execution Summary
|
|
594
|
-
- Total Tests: 479
|
|
595
|
-
- Passed: 479 (100%)
|
|
596
|
-
- Failed: 0
|
|
597
|
-
- Skipped: 3 (intentional)
|
|
598
|
-
|
|
599
|
-
## Result
|
|
600
|
-
No test failures detected. All bug fixes from P1.M1-P1.M3 are working correctly
|
|
601
|
-
with zero regressions. The test suite maintains 100% pass rate.
|
|
602
|
-
|
|
603
|
-
## Validated Bug Fixes
|
|
604
|
-
- P1.M1.T1: WorkflowLogger.child() signature ✓
|
|
605
|
-
- P1.M2.T1: Promise.allSettled in concurrent tasks ✓
|
|
606
|
-
- P1.M2.T2: ErrorMergeStrategy support ✓
|
|
607
|
-
- P1.M3.T1: Observer error logging ✓
|
|
608
|
-
- P1.M3.T2: Tree debugger optimization ✓
|
|
609
|
-
- P1.M3.T3: Workflow name validation ✓
|
|
610
|
-
- P1.M3.T4: Public isDescendantOf API ✓
|
|
611
|
-
```
|
|
612
|
-
|
|
613
|
-
### Scenario B: Test Failures Exist
|
|
614
|
-
|
|
615
|
-
**Action**: Apply decision framework, fix implementation or tests, re-run until all pass
|
|
616
|
-
|
|
617
|
-
**Output**: Same report format with:
|
|
618
|
-
- List of failures
|
|
619
|
-
- Analysis of each failure
|
|
620
|
-
- Actions taken (fixed code vs updated test)
|
|
621
|
-
- Rationale for changes
|
|
622
|
-
- Confirmation of final 100% pass rate
|
|
623
|
-
|
|
624
|
-
---
|
|
625
|
-
|
|
626
|
-
## References
|
|
627
|
-
|
|
628
|
-
### Internal Documentation
|
|
629
|
-
|
|
630
|
-
- S1 Test Execution Report: `plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md`
|
|
631
|
-
- Test Maintenance Research: `plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md`
|
|
632
|
-
- Key Findings: `plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md`
|
|
633
|
-
- Quick Reference: `plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md`
|
|
634
|
-
|
|
635
|
-
### External Documentation
|
|
636
|
-
|
|
637
|
-
- Vitest Debugging Guide: https://vitest.dev/guide/debugging.html
|
|
638
|
-
- Vitest Common Errors: https://vitest.dev/guide/common-errors.html
|
|
639
|
-
- Vitest CLI Reference: https://vitest.dev/cli/
|
|
640
|
-
- Vitest Mock Functions: https://vitest.dev/api/mock.html
|
|
641
|
-
- Vitest Test Context: https://vitest.dev/api/context.html
|
|
642
|
-
|
|
643
|
-
### Test Files Referenced
|
|
644
|
-
|
|
645
|
-
- Unit Tests: `src/__tests__/unit/*.test.ts`
|
|
646
|
-
- Integration Tests: `src/__tests__/integration/*.test.ts`
|
|
647
|
-
- Adversarial Tests: `src/__tests__/adversarial/*.test.ts`
|
|
648
|
-
- Test Helpers: `src/__tests__/helpers/*.ts`
|
|
649
|
-
|
|
650
|
-
---
|
|
651
|
-
|
|
652
|
-
**PRP Status**: Ready for Implementation
|
|
653
|
-
**Expected Completion**: One-pass implementation success with 100% test pass rate
|
|
654
|
-
**Confidence Score**: 10/10
|