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