groundswell 0.0.2 → 0.0.3
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/dist/__tests__/adversarial/attachChild-performance.test.d.ts +16 -0
- package/dist/__tests__/adversarial/attachChild-performance.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/attachChild-performance.test.js +187 -0
- package/dist/__tests__/adversarial/attachChild-performance.test.js.map +1 -0
- package/dist/__tests__/adversarial/circular-reference.test.d.ts +13 -0
- package/dist/__tests__/adversarial/circular-reference.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/circular-reference.test.js +92 -0
- package/dist/__tests__/adversarial/circular-reference.test.js.map +1 -0
- package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts +16 -0
- package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/complex-circular-reference.test.js +127 -0
- package/dist/__tests__/adversarial/complex-circular-reference.test.js.map +1 -0
- package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts +21 -0
- package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/concurrent-task-failures.test.js +667 -0
- package/dist/__tests__/adversarial/concurrent-task-failures.test.js.map +1 -0
- package/dist/__tests__/adversarial/deep-analysis.test.d.ts +6 -0
- package/dist/__tests__/adversarial/deep-analysis.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/deep-analysis.test.js +877 -0
- package/dist/__tests__/adversarial/deep-analysis.test.js.map +1 -0
- package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts +13 -0
- package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js +186 -0
- package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js.map +1 -0
- package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts +6 -0
- package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/e2e-prd-validation.test.js +626 -0
- package/dist/__tests__/adversarial/e2e-prd-validation.test.js.map +1 -0
- package/dist/__tests__/adversarial/edge-case.test.d.ts +6 -0
- package/dist/__tests__/adversarial/edge-case.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/edge-case.test.js +857 -0
- package/dist/__tests__/adversarial/edge-case.test.js.map +1 -0
- package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts +20 -0
- package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/error-merge-strategy.test.js +907 -0
- package/dist/__tests__/adversarial/error-merge-strategy.test.js.map +1 -0
- package/dist/__tests__/adversarial/incremental-performance.test.d.ts +2 -0
- package/dist/__tests__/adversarial/incremental-performance.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/incremental-performance.test.js +113 -0
- package/dist/__tests__/adversarial/incremental-performance.test.js.map +1 -0
- package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts +22 -0
- package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js +383 -0
- package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js.map +1 -0
- package/dist/__tests__/adversarial/observer-propagation.test.d.ts +21 -0
- package/dist/__tests__/adversarial/observer-propagation.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/observer-propagation.test.js +404 -0
- package/dist/__tests__/adversarial/observer-propagation.test.js.map +1 -0
- package/dist/__tests__/adversarial/parent-validation.test.d.ts +13 -0
- package/dist/__tests__/adversarial/parent-validation.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/parent-validation.test.js +128 -0
- package/dist/__tests__/adversarial/parent-validation.test.js.map +1 -0
- package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts +20 -0
- package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/prd-12-2-compliance.test.js +482 -0
- package/dist/__tests__/adversarial/prd-12-2-compliance.test.js.map +1 -0
- package/dist/__tests__/adversarial/prd-compliance.test.d.ts +6 -0
- package/dist/__tests__/adversarial/prd-compliance.test.d.ts.map +1 -0
- package/dist/__tests__/adversarial/prd-compliance.test.js +886 -0
- package/dist/__tests__/adversarial/prd-compliance.test.js.map +1 -0
- package/dist/__tests__/compatibility/backward-compatibility.test.d.ts +22 -0
- package/dist/__tests__/compatibility/backward-compatibility.test.d.ts.map +1 -0
- package/dist/__tests__/compatibility/backward-compatibility.test.js +1843 -0
- package/dist/__tests__/compatibility/backward-compatibility.test.js.map +1 -0
- package/dist/__tests__/helpers/index.d.ts +10 -0
- package/dist/__tests__/helpers/index.d.ts.map +1 -0
- package/{src/__tests__/helpers/index.ts → dist/__tests__/helpers/index.js} +2 -10
- package/dist/__tests__/helpers/index.js.map +1 -0
- package/dist/__tests__/helpers/tree-verification.d.ts +90 -0
- package/dist/__tests__/helpers/tree-verification.d.ts.map +1 -0
- package/dist/__tests__/helpers/tree-verification.js +202 -0
- package/dist/__tests__/helpers/tree-verification.js.map +1 -0
- package/dist/__tests__/integration/agent-workflow.test.d.ts +2 -0
- package/dist/__tests__/integration/agent-workflow.test.d.ts.map +1 -0
- package/dist/__tests__/integration/agent-workflow.test.js +256 -0
- package/dist/__tests__/integration/agent-workflow.test.js.map +1 -0
- package/dist/__tests__/integration/bidirectional-consistency.test.d.ts +14 -0
- package/dist/__tests__/integration/bidirectional-consistency.test.d.ts.map +1 -0
- package/dist/__tests__/integration/bidirectional-consistency.test.js +668 -0
- package/dist/__tests__/integration/bidirectional-consistency.test.js.map +1 -0
- package/dist/__tests__/integration/observer-logging.test.d.ts +2 -0
- package/dist/__tests__/integration/observer-logging.test.d.ts.map +1 -0
- package/dist/__tests__/integration/observer-logging.test.js +517 -0
- package/dist/__tests__/integration/observer-logging.test.js.map +1 -0
- package/dist/__tests__/integration/tree-mirroring.test.d.ts +2 -0
- package/dist/__tests__/integration/tree-mirroring.test.d.ts.map +1 -0
- package/dist/__tests__/integration/tree-mirroring.test.js +117 -0
- package/dist/__tests__/integration/tree-mirroring.test.js.map +1 -0
- package/dist/__tests__/integration/workflow-reparenting.test.d.ts +12 -0
- package/dist/__tests__/integration/workflow-reparenting.test.d.ts.map +1 -0
- package/dist/__tests__/integration/workflow-reparenting.test.js +239 -0
- package/dist/__tests__/integration/workflow-reparenting.test.js.map +1 -0
- package/dist/__tests__/unit/agent.test.d.ts +2 -0
- package/dist/__tests__/unit/agent.test.d.ts.map +1 -0
- package/dist/__tests__/unit/agent.test.js +143 -0
- package/dist/__tests__/unit/agent.test.js.map +1 -0
- package/dist/__tests__/unit/cache-key.test.d.ts +5 -0
- package/dist/__tests__/unit/cache-key.test.d.ts.map +1 -0
- package/dist/__tests__/unit/cache-key.test.js +145 -0
- package/dist/__tests__/unit/cache-key.test.js.map +1 -0
- package/dist/__tests__/unit/cache.test.d.ts +5 -0
- package/dist/__tests__/unit/cache.test.d.ts.map +1 -0
- package/dist/__tests__/unit/cache.test.js +132 -0
- package/dist/__tests__/unit/cache.test.js.map +1 -0
- package/dist/__tests__/unit/context.test.d.ts +2 -0
- package/dist/__tests__/unit/context.test.d.ts.map +1 -0
- package/dist/__tests__/unit/context.test.js +220 -0
- package/dist/__tests__/unit/context.test.js.map +1 -0
- package/dist/__tests__/unit/decorators.test.d.ts +2 -0
- package/dist/__tests__/unit/decorators.test.d.ts.map +1 -0
- package/dist/__tests__/unit/decorators.test.js +162 -0
- package/dist/__tests__/unit/decorators.test.js.map +1 -0
- package/dist/__tests__/unit/introspection-tools.test.d.ts +5 -0
- package/dist/__tests__/unit/introspection-tools.test.d.ts.map +1 -0
- package/dist/__tests__/unit/introspection-tools.test.js +191 -0
- package/dist/__tests__/unit/introspection-tools.test.js.map +1 -0
- package/dist/__tests__/unit/logger.test.d.ts +2 -0
- package/dist/__tests__/unit/logger.test.d.ts.map +1 -0
- package/dist/__tests__/unit/logger.test.js +241 -0
- package/dist/__tests__/unit/logger.test.js.map +1 -0
- package/dist/__tests__/unit/observable.test.d.ts +2 -0
- package/dist/__tests__/unit/observable.test.d.ts.map +1 -0
- package/dist/__tests__/unit/observable.test.js +251 -0
- package/dist/__tests__/unit/observable.test.js.map +1 -0
- package/dist/__tests__/unit/prompt.test.d.ts +2 -0
- package/dist/__tests__/unit/prompt.test.d.ts.map +1 -0
- package/dist/__tests__/unit/prompt.test.js +113 -0
- package/dist/__tests__/unit/prompt.test.js.map +1 -0
- package/dist/__tests__/unit/reflection.test.d.ts +5 -0
- package/dist/__tests__/unit/reflection.test.d.ts.map +1 -0
- package/dist/__tests__/unit/reflection.test.js +160 -0
- package/dist/__tests__/unit/reflection.test.js.map +1 -0
- package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts +2 -0
- package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts.map +1 -0
- package/dist/__tests__/unit/tree-debugger-incremental.test.js +136 -0
- package/dist/__tests__/unit/tree-debugger-incremental.test.js.map +1 -0
- package/dist/__tests__/unit/tree-debugger.test.d.ts +2 -0
- package/dist/__tests__/unit/tree-debugger.test.d.ts.map +1 -0
- package/dist/__tests__/unit/tree-debugger.test.js +69 -0
- package/dist/__tests__/unit/tree-debugger.test.js.map +1 -0
- package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts +2 -0
- package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts.map +1 -0
- package/dist/__tests__/unit/utils/workflow-error-utils.test.js +154 -0
- package/dist/__tests__/unit/utils/workflow-error-utils.test.js.map +1 -0
- package/dist/__tests__/unit/workflow-detachChild.test.d.ts +2 -0
- package/dist/__tests__/unit/workflow-detachChild.test.d.ts.map +1 -0
- package/dist/__tests__/unit/workflow-detachChild.test.js +76 -0
- package/dist/__tests__/unit/workflow-detachChild.test.js.map +1 -0
- package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts +2 -0
- package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts.map +1 -0
- package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js +122 -0
- package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js.map +1 -0
- package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts +2 -0
- package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts.map +1 -0
- package/dist/__tests__/unit/workflow-isDescendantOf.test.js +140 -0
- package/dist/__tests__/unit/workflow-isDescendantOf.test.js.map +1 -0
- package/dist/__tests__/unit/workflow.test.d.ts +2 -0
- package/dist/__tests__/unit/workflow.test.d.ts.map +1 -0
- package/dist/__tests__/unit/workflow.test.js +330 -0
- package/dist/__tests__/unit/workflow.test.js.map +1 -0
- package/dist/cache/cache-key.d.ts +66 -0
- package/dist/cache/cache-key.d.ts.map +1 -0
- package/dist/cache/cache-key.js +195 -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 +112 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +426 -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 +69 -0
- package/dist/core/mcp-handler.d.ts.map +1 -0
- package/dist/core/mcp-handler.js +143 -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 +57 -0
- package/dist/core/workflow-context.d.ts.map +1 -0
- package/dist/core/workflow-context.js +263 -0
- package/dist/core/workflow-context.js.map +1 -0
- package/dist/core/workflow.d.ts +241 -0
- package/dist/core/workflow.d.ts.map +1 -0
- package/dist/core/workflow.js +464 -0
- package/dist/core/workflow.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 +71 -0
- package/dist/debugger/tree-debugger.d.ts.map +1 -0
- package/dist/debugger/tree-debugger.js +198 -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 +110 -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/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -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 +329 -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 +66 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +6 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/decorators.d.ts +31 -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 +87 -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/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -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/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/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/workflow-context.d.ts +139 -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/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/{src/utils/index.ts → dist/utils/index.d.ts} +1 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.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/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 +5 -2
- 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/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/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/observable.ts +0 -106
- package/src/utils/workflow-error-utils.ts +0 -56
- package/tsconfig.json +0 -22
- package/vitest.config.ts +0 -16
package/PRPs/PRDs/tasks-001.json
DELETED
|
@@ -1,492 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"backlog": [
|
|
3
|
-
{
|
|
4
|
-
"type": "Phase",
|
|
5
|
-
"id": "P1",
|
|
6
|
-
"title": "MVP - Hierarchical Workflow Engine",
|
|
7
|
-
"status": "Complete",
|
|
8
|
-
"description": "Implement the core hierarchical workflow orchestration engine with full observability, tree debugging, and error introspection capabilities.",
|
|
9
|
-
"milestones": [
|
|
10
|
-
{
|
|
11
|
-
"type": "Milestone",
|
|
12
|
-
"id": "P1.M1",
|
|
13
|
-
"title": "Core Data Model & Type System",
|
|
14
|
-
"status": "Complete",
|
|
15
|
-
"description": "Establish all TypeScript interfaces, types, and foundational data structures for the workflow engine.",
|
|
16
|
-
"tasks": [
|
|
17
|
-
{
|
|
18
|
-
"type": "Task",
|
|
19
|
-
"id": "P1.M1.T1",
|
|
20
|
-
"title": "Define Core Interfaces",
|
|
21
|
-
"status": "Complete",
|
|
22
|
-
"description": "Implement all TypeScript interfaces from PRD sections 3-6.",
|
|
23
|
-
"subtasks": [
|
|
24
|
-
{
|
|
25
|
-
"type": "Subtask",
|
|
26
|
-
"id": "P1.M1.T1.S1",
|
|
27
|
-
"title": "Implement WorkflowStatus and WorkflowNode interfaces",
|
|
28
|
-
"status": "Complete",
|
|
29
|
-
"story_points": 1,
|
|
30
|
-
"dependencies": [],
|
|
31
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: None. This is the foundational type layer.\n2. LOGIC: Create file `src/types/workflow.ts`. Implement `WorkflowStatus` type as union of 'idle' | 'running' | 'completed' | 'failed' | 'cancelled'. Implement `WorkflowNode` interface with fields: id (string), name (string), parent (WorkflowNode | null), children (WorkflowNode[]), status (WorkflowStatus), logs (LogEntry[]), events (WorkflowEvent[]), stateSnapshot (SerializedWorkflowState | null). Use forward declaration for LogEntry, WorkflowEvent, SerializedWorkflowState.\n3. OUTPUT: Export `WorkflowStatus`, `WorkflowNode` from `src/types/workflow.ts`. These will be consumed by P1.M1.T1.S2 and P1.M1.T2.S1."
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"type": "Subtask",
|
|
35
|
-
"id": "P1.M1.T1.S2",
|
|
36
|
-
"title": "Implement LogEntry and LogLevel interfaces",
|
|
37
|
-
"status": "Complete",
|
|
38
|
-
"story_points": 1,
|
|
39
|
-
"dependencies": [
|
|
40
|
-
"P1.M1.T1.S1"
|
|
41
|
-
],
|
|
42
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `WorkflowNode` from `src/types/workflow.ts` (from P1.M1.T1.S1).\n2. LOGIC: Create file `src/types/logging.ts`. Implement `LogLevel` as union type 'debug' | 'info' | 'warn' | 'error'. Implement `LogEntry` interface with: id (string), workflowId (string), timestamp (number), level (LogLevel), message (string), data (unknown, optional), parentLogId (string, optional).\n3. OUTPUT: Export `LogLevel`, `LogEntry` from `src/types/logging.ts`. Update `src/types/workflow.ts` to import and use `LogEntry`. Consumed by P1.M1.T1.S3 and P1.M2.T1."
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"type": "Subtask",
|
|
46
|
-
"id": "P1.M1.T1.S3",
|
|
47
|
-
"title": "Implement WorkflowEvent union type",
|
|
48
|
-
"status": "Complete",
|
|
49
|
-
"story_points": 1,
|
|
50
|
-
"dependencies": [
|
|
51
|
-
"P1.M1.T1.S1",
|
|
52
|
-
"P1.M1.T1.S2"
|
|
53
|
-
],
|
|
54
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `WorkflowNode` from `src/types/workflow.ts`, import `WorkflowError` (forward declare if needed).\n2. LOGIC: Create file `src/types/events.ts`. Implement `WorkflowEvent` as discriminated union with types: 'childAttached' (parentId: string, child: WorkflowNode), 'stateSnapshot' (node: WorkflowNode), 'stepStart' (node: WorkflowNode, step: string), 'stepEnd' (node: WorkflowNode, step: string, duration: number), 'error' (node: WorkflowNode, error: WorkflowError), 'taskStart' (node: WorkflowNode, task: string), 'taskEnd' (node: WorkflowNode, task: string), 'treeUpdated' (root: WorkflowNode).\n3. OUTPUT: Export `WorkflowEvent` from `src/types/events.ts`. Update `src/types/workflow.ts` to use this type. Consumed by P1.M1.T2.S1, P1.M3.T1."
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"type": "Subtask",
|
|
58
|
-
"id": "P1.M1.T1.S4",
|
|
59
|
-
"title": "Implement WorkflowError interface",
|
|
60
|
-
"status": "Complete",
|
|
61
|
-
"story_points": 1,
|
|
62
|
-
"dependencies": [
|
|
63
|
-
"P1.M1.T1.S2"
|
|
64
|
-
],
|
|
65
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `LogEntry` from `src/types/logging.ts`, import `SerializedWorkflowState` (forward declare or from snapshot types).\n2. LOGIC: Create file `src/types/error.ts`. Implement `WorkflowError` interface with: message (string), original (unknown), workflowId (string), stack (string, optional), state (SerializedWorkflowState), logs (LogEntry[]).\n3. OUTPUT: Export `WorkflowError` from `src/types/error.ts`. Consumed by P1.M1.T1.S3, P1.M3.T2."
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"type": "Subtask",
|
|
69
|
-
"id": "P1.M1.T1.S5",
|
|
70
|
-
"title": "Implement Snapshot types and StateFieldMetadata",
|
|
71
|
-
"status": "Complete",
|
|
72
|
-
"story_points": 1,
|
|
73
|
-
"dependencies": [],
|
|
74
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: None. Independent type definitions.\n2. LOGIC: Create file `src/types/snapshot.ts`. Implement `SerializedWorkflowState` as `Record<string, unknown>`. Implement `StateFieldMetadata` interface with: hidden (boolean, optional), redact (boolean, optional).\n3. OUTPUT: Export `SerializedWorkflowState`, `StateFieldMetadata` from `src/types/snapshot.ts`. Consumed by P1.M1.T1.S1, P1.M1.T1.S4, P1.M3.T3."
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"type": "Subtask",
|
|
78
|
-
"id": "P1.M1.T1.S6",
|
|
79
|
-
"title": "Create barrel export and type index",
|
|
80
|
-
"status": "Complete",
|
|
81
|
-
"story_points": 0.5,
|
|
82
|
-
"dependencies": [
|
|
83
|
-
"P1.M1.T1.S1",
|
|
84
|
-
"P1.M1.T1.S2",
|
|
85
|
-
"P1.M1.T1.S3",
|
|
86
|
-
"P1.M1.T1.S4",
|
|
87
|
-
"P1.M1.T1.S5"
|
|
88
|
-
],
|
|
89
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: All type files from P1.M1.T1.S1-S5: `src/types/workflow.ts`, `src/types/logging.ts`, `src/types/events.ts`, `src/types/error.ts`, `src/types/snapshot.ts`.\n2. LOGIC: Create file `src/types/index.ts`. Re-export all types from each file. Ensure no circular dependencies. Create file `src/index.ts` as main entry point exporting from `src/types/index.ts`.\n3. OUTPUT: Export barrel at `src/types/index.ts` and `src/index.ts`. All consumers import from these entry points."
|
|
90
|
-
}
|
|
91
|
-
]
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"type": "Task",
|
|
95
|
-
"id": "P1.M1.T2",
|
|
96
|
-
"title": "Define Observer Interface",
|
|
97
|
-
"status": "Complete",
|
|
98
|
-
"description": "Implement the WorkflowObserver interface for event subscription.",
|
|
99
|
-
"subtasks": [
|
|
100
|
-
{
|
|
101
|
-
"type": "Subtask",
|
|
102
|
-
"id": "P1.M1.T2.S1",
|
|
103
|
-
"title": "Implement WorkflowObserver interface",
|
|
104
|
-
"status": "Complete",
|
|
105
|
-
"story_points": 1,
|
|
106
|
-
"dependencies": [
|
|
107
|
-
"P1.M1.T1.S3"
|
|
108
|
-
],
|
|
109
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `LogEntry` from `src/types/logging.ts`, `WorkflowEvent` from `src/types/events.ts`, `WorkflowNode` from `src/types/workflow.ts`.\n2. LOGIC: Create file `src/types/observer.ts`. Implement `WorkflowObserver` interface with methods: onLog(entry: LogEntry): void, onEvent(event: WorkflowEvent): void, onStateUpdated(node: WorkflowNode): void, onTreeChanged(root: WorkflowNode): void.\n3. OUTPUT: Export `WorkflowObserver` from `src/types/observer.ts`. Update `src/types/index.ts` to include this export. Consumed by P1.M2.T1, P1.M2.T2."
|
|
110
|
-
}
|
|
111
|
-
]
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
"type": "Task",
|
|
115
|
-
"id": "P1.M1.T3",
|
|
116
|
-
"title": "Define Decorator Option Interfaces",
|
|
117
|
-
"status": "Complete",
|
|
118
|
-
"description": "Implement configuration interfaces for decorators.",
|
|
119
|
-
"subtasks": [
|
|
120
|
-
{
|
|
121
|
-
"type": "Subtask",
|
|
122
|
-
"id": "P1.M1.T3.S1",
|
|
123
|
-
"title": "Implement StepOptions and TaskOptions interfaces",
|
|
124
|
-
"status": "Complete",
|
|
125
|
-
"story_points": 1,
|
|
126
|
-
"dependencies": [
|
|
127
|
-
"P1.M1.T1.S6"
|
|
128
|
-
],
|
|
129
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: None. These are standalone configuration types.\n2. LOGIC: Create file `src/types/decorators.ts`. Implement `StepOptions` interface with: name (string, optional), snapshotState (boolean, optional), trackTiming (boolean, optional), logStart (boolean, optional), logFinish (boolean, optional). Implement `TaskOptions` interface with: name (string, optional), concurrent (boolean, optional).\n3. OUTPUT: Export `StepOptions`, `TaskOptions` from `src/types/decorators.ts`. Update `src/types/index.ts`. Consumed by P1.M3.T1, P1.M3.T2."
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
"type": "Subtask",
|
|
133
|
-
"id": "P1.M1.T3.S2",
|
|
134
|
-
"title": "Implement ErrorMergeStrategy interface",
|
|
135
|
-
"status": "Complete",
|
|
136
|
-
"story_points": 1,
|
|
137
|
-
"dependencies": [
|
|
138
|
-
"P1.M1.T1.S4"
|
|
139
|
-
],
|
|
140
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `WorkflowError` from `src/types/error.ts`.\n2. LOGIC: Create file `src/types/error-strategy.ts`. Implement `ErrorMergeStrategy` interface with: enabled (boolean), maxMergeDepth (number, optional), combine (function (errors: WorkflowError[]) => WorkflowError, optional).\n3. OUTPUT: Export `ErrorMergeStrategy` from `src/types/error-strategy.ts`. Update `src/types/index.ts`. Consumed by P1.M3.T2 for advanced error handling."
|
|
141
|
-
}
|
|
142
|
-
]
|
|
143
|
-
}
|
|
144
|
-
]
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
"type": "Milestone",
|
|
148
|
-
"id": "P1.M2",
|
|
149
|
-
"title": "Core Runtime Components",
|
|
150
|
-
"status": "Complete",
|
|
151
|
-
"description": "Implement the WorkflowLogger, Workflow base class, and core runtime utilities.",
|
|
152
|
-
"tasks": [
|
|
153
|
-
{
|
|
154
|
-
"type": "Task",
|
|
155
|
-
"id": "P1.M2.T1",
|
|
156
|
-
"title": "Implement WorkflowLogger",
|
|
157
|
-
"status": "Complete",
|
|
158
|
-
"description": "Build the hierarchical logging system that emits to observers.",
|
|
159
|
-
"subtasks": [
|
|
160
|
-
{
|
|
161
|
-
"type": "Subtask",
|
|
162
|
-
"id": "P1.M2.T1.S1",
|
|
163
|
-
"title": "Implement ID generation utility",
|
|
164
|
-
"status": "Complete",
|
|
165
|
-
"story_points": 0.5,
|
|
166
|
-
"dependencies": [],
|
|
167
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: None.\n2. LOGIC: Create file `src/utils/id.ts`. Implement `generateId(): string` function that generates unique identifiers. Use crypto.randomUUID() if available, otherwise implement a fallback using timestamp + random suffix pattern.\n3. OUTPUT: Export `generateId` from `src/utils/id.ts`. Create `src/utils/index.ts` barrel. Consumed by P1.M2.T1.S2, P1.M2.T2.S1."
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
"type": "Subtask",
|
|
171
|
-
"id": "P1.M2.T1.S2",
|
|
172
|
-
"title": "Implement WorkflowLogger class core",
|
|
173
|
-
"status": "Complete",
|
|
174
|
-
"story_points": 2,
|
|
175
|
-
"dependencies": [
|
|
176
|
-
"P1.M1.T1.S6",
|
|
177
|
-
"P1.M1.T2.S1",
|
|
178
|
-
"P1.M2.T1.S1"
|
|
179
|
-
],
|
|
180
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `WorkflowNode`, `LogEntry`, `LogLevel` from `src/types/index.ts`. Import `WorkflowObserver` from `src/types/observer.ts`. Import `generateId` from `src/utils/id.ts`.\n2. LOGIC: Create file `src/core/logger.ts`. Implement `WorkflowLogger` class with: constructor(node: WorkflowNode, observers: WorkflowObserver[]). Private `emit(entry: LogEntry)` method that pushes to node.logs and calls obs.onLog for each observer. Implement debug/info/warn/error methods that create LogEntry with: id (generateId()), workflowId (this.node.id), timestamp (Date.now()), level, message, data.\n3. OUTPUT: Export `WorkflowLogger` from `src/core/logger.ts`. Consumed by P1.M2.T1.S3, P1.M2.T2.S1."
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
"type": "Subtask",
|
|
184
|
-
"id": "P1.M2.T1.S3",
|
|
185
|
-
"title": "Implement WorkflowLogger child logger support",
|
|
186
|
-
"status": "Complete",
|
|
187
|
-
"story_points": 1,
|
|
188
|
-
"dependencies": [
|
|
189
|
-
"P1.M2.T1.S2"
|
|
190
|
-
],
|
|
191
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: `WorkflowLogger` class from `src/core/logger.ts` (P1.M2.T1.S2).\n2. LOGIC: Extend `WorkflowLogger` with `child(meta: Partial<LogEntry>): WorkflowLogger` method. Child logger inherits node and observers but prepends parentLogId to all emitted entries. Store meta.id as parentLogId for child entries. Ensure child logs link to parent logs via parentLogId field.\n3. OUTPUT: Updated `WorkflowLogger` with child() method. Consumed by P1.M2.T2 for hierarchical logging."
|
|
192
|
-
}
|
|
193
|
-
]
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
"type": "Task",
|
|
197
|
-
"id": "P1.M2.T2",
|
|
198
|
-
"title": "Implement Workflow Base Class",
|
|
199
|
-
"status": "Complete",
|
|
200
|
-
"description": "Build the abstract Workflow base class with parent/child management and event emission.",
|
|
201
|
-
"subtasks": [
|
|
202
|
-
{
|
|
203
|
-
"type": "Subtask",
|
|
204
|
-
"id": "P1.M2.T2.S1",
|
|
205
|
-
"title": "Implement Workflow class constructor and node initialization",
|
|
206
|
-
"status": "Complete",
|
|
207
|
-
"story_points": 2,
|
|
208
|
-
"dependencies": [
|
|
209
|
-
"P1.M2.T1.S2"
|
|
210
|
-
],
|
|
211
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import all types from `src/types/index.ts`. Import `WorkflowLogger` from `src/core/logger.ts`. Import `generateId` from `src/utils/id.ts`.\n2. LOGIC: Create file `src/core/workflow.ts`. Implement abstract class `Workflow` with: public readonly id (string), public parent (Workflow | null = null), public children (Workflow[] = []), public status (WorkflowStatus = 'idle'), protected readonly logger (WorkflowLogger), protected readonly node (WorkflowNode). Constructor signature: constructor(name?: string, parent?: Workflow). Initialize id via generateId(). Create node object with all required fields. Initialize logger with node and getRootObservers(). If parent provided, call parent.attachChild(this).\n3. OUTPUT: Export `Workflow` from `src/core/workflow.ts`. Consumed by P1.M2.T2.S2, P1.M3.T1."
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
"type": "Subtask",
|
|
215
|
-
"id": "P1.M2.T2.S2",
|
|
216
|
-
"title": "Implement Workflow observer and child management",
|
|
217
|
-
"status": "Complete",
|
|
218
|
-
"story_points": 2,
|
|
219
|
-
"dependencies": [
|
|
220
|
-
"P1.M2.T2.S1"
|
|
221
|
-
],
|
|
222
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: `Workflow` class from `src/core/workflow.ts` (P1.M2.T2.S1).\n2. LOGIC: Add to `Workflow` class: private observers array (WorkflowObserver[]) at root level only. Implement `getRootObservers(): WorkflowObserver[]` that traverses up to root and returns root's observers. Implement `attachChild(child: Workflow)` that pushes child to this.children, pushes child.node to this.node.children, and emits 'childAttached' event. Implement `addObserver(observer: WorkflowObserver)` on root workflow only.\n3. OUTPUT: Updated `Workflow` class with observer management. Consumed by P1.M2.T2.S3."
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
"type": "Subtask",
|
|
226
|
-
"id": "P1.M2.T2.S3",
|
|
227
|
-
"title": "Implement Workflow event emission and state snapshot",
|
|
228
|
-
"status": "Complete",
|
|
229
|
-
"story_points": 2,
|
|
230
|
-
"dependencies": [
|
|
231
|
-
"P1.M2.T2.S2",
|
|
232
|
-
"P1.M3.T3.S1"
|
|
233
|
-
],
|
|
234
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: `Workflow` class from P1.M2.T2.S2. Import `getObservedState` from `src/decorators/observed-state.ts` (P1.M3.T3.S1).\n2. LOGIC: Add to `Workflow` class: protected `emitEvent(event: WorkflowEvent)` that pushes event to node.events and notifies all root observers via onEvent(). If event type is 'treeUpdated', also call onTreeChanged(). Implement `snapshotState()` that calls getObservedState(this), stores in node.stateSnapshot, and notifies observers via onStateUpdated(). Add abstract method signature: abstract run(...args: any[]): Promise<any>.\n3. OUTPUT: Complete `Workflow` base class. Export from `src/core/workflow.ts` and `src/core/index.ts` barrel. Consumed by P1.M3.T1, P1.M3.T2."
|
|
235
|
-
}
|
|
236
|
-
]
|
|
237
|
-
}
|
|
238
|
-
]
|
|
239
|
-
},
|
|
240
|
-
{
|
|
241
|
-
"type": "Milestone",
|
|
242
|
-
"id": "P1.M3",
|
|
243
|
-
"title": "Decorator System",
|
|
244
|
-
"status": "Complete",
|
|
245
|
-
"description": "Implement @Step, @Task, and @ObservedState decorators with full functionality.",
|
|
246
|
-
"tasks": [
|
|
247
|
-
{
|
|
248
|
-
"type": "Task",
|
|
249
|
-
"id": "P1.M3.T1",
|
|
250
|
-
"title": "Implement @Step Decorator",
|
|
251
|
-
"status": "Complete",
|
|
252
|
-
"description": "Build the Step decorator with timing, logging, snapshot, and error wrapping.",
|
|
253
|
-
"subtasks": [
|
|
254
|
-
{
|
|
255
|
-
"type": "Subtask",
|
|
256
|
-
"id": "P1.M3.T1.S1",
|
|
257
|
-
"title": "Implement @Step decorator core functionality",
|
|
258
|
-
"status": "Complete",
|
|
259
|
-
"story_points": 2,
|
|
260
|
-
"dependencies": [
|
|
261
|
-
"P1.M2.T2.S3",
|
|
262
|
-
"P1.M1.T3.S1"
|
|
263
|
-
],
|
|
264
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `StepOptions` from `src/types/decorators.ts`. Import `Workflow` from `src/core/workflow.ts`. Import `WorkflowError` from `src/types/error.ts`. Import `getObservedState` from `src/decorators/observed-state.ts`.\n2. LOGIC: Create file `src/decorators/step.ts`. Implement `Step(opts: StepOptions = {}): MethodDecorator`. Return decorator that wraps original method. Extract workflow instance as `this`. Determine stepName from opts.name or property key. If opts.logStart, call wf.logger.info('STEP START: ...'). Emit 'stepStart' event. Execute original method. On success: if opts.snapshotState call wf.snapshotState(). If opts.trackTiming, emit 'stepEnd' with duration. If opts.logFinish, log end. Return result.\n3. OUTPUT: Export `Step` from `src/decorators/step.ts`. Consumed by P1.M3.T1.S2."
|
|
265
|
-
},
|
|
266
|
-
{
|
|
267
|
-
"type": "Subtask",
|
|
268
|
-
"id": "P1.M3.T1.S2",
|
|
269
|
-
"title": "Implement @Step error wrapping into WorkflowError",
|
|
270
|
-
"status": "Complete",
|
|
271
|
-
"story_points": 1,
|
|
272
|
-
"dependencies": [
|
|
273
|
-
"P1.M3.T1.S1",
|
|
274
|
-
"P1.M3.T3.S1"
|
|
275
|
-
],
|
|
276
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: `Step` decorator from P1.M3.T1.S1. Import `getObservedState` from `src/decorators/observed-state.ts`.\n2. LOGIC: Extend `Step` decorator's catch block. Create `WorkflowError` object with: message (err?.message ?? 'error'), original (err), workflowId (wf.id), stack (err?.stack), state (getObservedState(wf)), logs ([...wf.node.logs]). Emit 'error' event with this WorkflowError. Re-throw the WorkflowError (not original error).\n3. OUTPUT: Complete `Step` decorator with error handling. Export from `src/decorators/step.ts`. Update `src/decorators/index.ts` barrel. Consumed by user workflow implementations."
|
|
277
|
-
}
|
|
278
|
-
]
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
"type": "Task",
|
|
282
|
-
"id": "P1.M3.T2",
|
|
283
|
-
"title": "Implement @Task Decorator",
|
|
284
|
-
"status": "Complete",
|
|
285
|
-
"description": "Build the Task decorator for child workflow attachment and concurrency.",
|
|
286
|
-
"subtasks": [
|
|
287
|
-
{
|
|
288
|
-
"type": "Subtask",
|
|
289
|
-
"id": "P1.M3.T2.S1",
|
|
290
|
-
"title": "Implement @Task decorator with child attachment",
|
|
291
|
-
"status": "Complete",
|
|
292
|
-
"story_points": 2,
|
|
293
|
-
"dependencies": [
|
|
294
|
-
"P1.M2.T2.S3",
|
|
295
|
-
"P1.M1.T3.S1"
|
|
296
|
-
],
|
|
297
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `TaskOptions` from `src/types/decorators.ts`. Import `Workflow` from `src/core/workflow.ts`.\n2. LOGIC: Create file `src/decorators/task.ts`. Implement `Task(opts: TaskOptions = {}): MethodDecorator`. Return decorator that wraps original method. Extract workflow as `this`. Determine taskName from opts.name or property key. Emit 'taskStart' event. Execute original method. Validate result is Workflow or Workflow[]. Normalize to array. For each child: set child.parent = wf, call wf.attachChild(child). Emit 'taskEnd' event. Return result.\n3. OUTPUT: Export `Task` from `src/decorators/task.ts`. Consumed by P1.M3.T2.S2."
|
|
298
|
-
},
|
|
299
|
-
{
|
|
300
|
-
"type": "Subtask",
|
|
301
|
-
"id": "P1.M3.T2.S2",
|
|
302
|
-
"title": "Implement @Task concurrent execution support",
|
|
303
|
-
"status": "Complete",
|
|
304
|
-
"story_points": 1,
|
|
305
|
-
"dependencies": [
|
|
306
|
-
"P1.M3.T2.S1"
|
|
307
|
-
],
|
|
308
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: `Task` decorator from P1.M3.T2.S1.\n2. LOGIC: Extend `Task` decorator. If opts.concurrent is true and result is array of Workflows, use Promise.all to run all child workflows concurrently via child.run(). If opts.concurrent is false or not specified, run sequentially. Store execution promises and handle errors appropriately.\n3. OUTPUT: Complete `Task` decorator with concurrency. Export from `src/decorators/task.ts`. Update `src/decorators/index.ts`. Consumed by user workflow implementations."
|
|
309
|
-
}
|
|
310
|
-
]
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
"type": "Task",
|
|
314
|
-
"id": "P1.M3.T3",
|
|
315
|
-
"title": "Implement @ObservedState Decorator",
|
|
316
|
-
"status": "Complete",
|
|
317
|
-
"description": "Build the property decorator for state snapshot tracking.",
|
|
318
|
-
"subtasks": [
|
|
319
|
-
{
|
|
320
|
-
"type": "Subtask",
|
|
321
|
-
"id": "P1.M3.T3.S1",
|
|
322
|
-
"title": "Implement @ObservedState decorator and getObservedState utility",
|
|
323
|
-
"status": "Complete",
|
|
324
|
-
"story_points": 2,
|
|
325
|
-
"dependencies": [
|
|
326
|
-
"P1.M1.T1.S5"
|
|
327
|
-
],
|
|
328
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `StateFieldMetadata`, `SerializedWorkflowState` from `src/types/snapshot.ts`.\n2. LOGIC: Create file `src/decorators/observed-state.ts`. Create module-level WeakMap: `OBSERVED_STATE_FIELDS = new WeakMap<object, Map<string, StateFieldMetadata>>()`. Implement `ObservedState(meta: StateFieldMetadata = {}): PropertyDecorator` that stores metadata in WeakMap keyed by target prototype and property name. Implement `getObservedState(obj: any): SerializedWorkflowState` that retrieves metadata map, iterates over fields, applies redact (replace value with '***') and hidden (skip field) logic, returns state object.\n3. OUTPUT: Export `ObservedState`, `getObservedState` from `src/decorators/observed-state.ts`. Create `src/decorators/index.ts` barrel. Consumed by P1.M2.T2.S3, P1.M3.T1.S2."
|
|
329
|
-
}
|
|
330
|
-
]
|
|
331
|
-
}
|
|
332
|
-
]
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
"type": "Milestone",
|
|
336
|
-
"id": "P1.M4",
|
|
337
|
-
"title": "Tree Debugger System",
|
|
338
|
-
"status": "Complete",
|
|
339
|
-
"description": "Implement the WorkflowTreeDebugger API for real-time tree visualization.",
|
|
340
|
-
"tasks": [
|
|
341
|
-
{
|
|
342
|
-
"type": "Task",
|
|
343
|
-
"id": "P1.M4.T1",
|
|
344
|
-
"title": "Implement Observable Event Stream",
|
|
345
|
-
"status": "Complete",
|
|
346
|
-
"description": "Build the event observable for real-time subscription.",
|
|
347
|
-
"subtasks": [
|
|
348
|
-
{
|
|
349
|
-
"type": "Subtask",
|
|
350
|
-
"id": "P1.M4.T1.S1",
|
|
351
|
-
"title": "Implement lightweight Observable class",
|
|
352
|
-
"status": "Complete",
|
|
353
|
-
"story_points": 2,
|
|
354
|
-
"dependencies": [
|
|
355
|
-
"P1.M1.T1.S3"
|
|
356
|
-
],
|
|
357
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `WorkflowEvent` from `src/types/events.ts`.\n2. LOGIC: Create file `src/utils/observable.ts`. Implement generic `Observable<T>` class with: private subscribers (Set<(value: T) => void>), subscribe(callback: (value: T) => void): () => void (returns unsubscribe function), next(value: T) that notifies all subscribers. Keep implementation minimal without external dependencies.\n3. OUTPUT: Export `Observable` from `src/utils/observable.ts`. Update `src/utils/index.ts`. Consumed by P1.M4.T2.S1."
|
|
358
|
-
}
|
|
359
|
-
]
|
|
360
|
-
},
|
|
361
|
-
{
|
|
362
|
-
"type": "Task",
|
|
363
|
-
"id": "P1.M4.T2",
|
|
364
|
-
"title": "Implement WorkflowTreeDebugger",
|
|
365
|
-
"status": "Complete",
|
|
366
|
-
"description": "Build the tree debugger with traversal and string rendering.",
|
|
367
|
-
"subtasks": [
|
|
368
|
-
{
|
|
369
|
-
"type": "Subtask",
|
|
370
|
-
"id": "P1.M4.T2.S1",
|
|
371
|
-
"title": "Implement WorkflowTreeDebugger core",
|
|
372
|
-
"status": "Complete",
|
|
373
|
-
"story_points": 2,
|
|
374
|
-
"dependencies": [
|
|
375
|
-
"P1.M4.T1.S1",
|
|
376
|
-
"P1.M2.T2.S3"
|
|
377
|
-
],
|
|
378
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `Observable` from `src/utils/observable.ts`. Import `WorkflowNode`, `WorkflowEvent` from `src/types/index.ts`. Import `WorkflowObserver` from `src/types/observer.ts`. Import `Workflow` from `src/core/workflow.ts`.\n2. LOGIC: Create file `src/debugger/tree-debugger.ts`. Implement `WorkflowTreeDebugger` class with: private root (WorkflowNode), public events (Observable<WorkflowEvent>), constructor(workflow: Workflow) that stores workflow.node as root and registers as observer. Implement `getTree(): WorkflowNode` returning root. Implement `getNode(id: string): WorkflowNode | undefined` with recursive tree search.\n3. OUTPUT: Export `WorkflowTreeDebugger` from `src/debugger/tree-debugger.ts`. Consumed by P1.M4.T2.S2."
|
|
379
|
-
},
|
|
380
|
-
{
|
|
381
|
-
"type": "Subtask",
|
|
382
|
-
"id": "P1.M4.T2.S2",
|
|
383
|
-
"title": "Implement tree string rendering methods",
|
|
384
|
-
"status": "Complete",
|
|
385
|
-
"story_points": 2,
|
|
386
|
-
"dependencies": [
|
|
387
|
-
"P1.M4.T2.S1"
|
|
388
|
-
],
|
|
389
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: `WorkflowTreeDebugger` class from P1.M4.T2.S1.\n2. LOGIC: Extend `WorkflowTreeDebugger` with: `toTreeString(node?: WorkflowNode): string` that renders ASCII tree structure using box-drawing characters (├─, └─, │). Show node name, status, child count. Default to root if no node provided. Implement `toLogString(node?: WorkflowNode): string` that renders all logs from node and descendants in chronological order with timestamp, level, message. Format: '[timestamp] [level] [workflowName] message'.\n3. OUTPUT: Complete `WorkflowTreeDebugger`. Create `src/debugger/index.ts` barrel. Update main `src/index.ts` to export debugger. Consumed by terminal UI implementations."
|
|
390
|
-
}
|
|
391
|
-
]
|
|
392
|
-
}
|
|
393
|
-
]
|
|
394
|
-
},
|
|
395
|
-
{
|
|
396
|
-
"type": "Milestone",
|
|
397
|
-
"id": "P1.M5",
|
|
398
|
-
"title": "Integration & Validation",
|
|
399
|
-
"status": "Complete",
|
|
400
|
-
"description": "Validate the complete system works together with integration tests and example workflows.",
|
|
401
|
-
"tasks": [
|
|
402
|
-
{
|
|
403
|
-
"type": "Task",
|
|
404
|
-
"id": "P1.M5.T1",
|
|
405
|
-
"title": "Build Example Workflow Suite",
|
|
406
|
-
"status": "Complete",
|
|
407
|
-
"description": "Create the TDDOrchestrator and TestCycleWorkflow examples from PRD.",
|
|
408
|
-
"subtasks": [
|
|
409
|
-
{
|
|
410
|
-
"type": "Subtask",
|
|
411
|
-
"id": "P1.M5.T1.S1",
|
|
412
|
-
"title": "Implement TestCycleWorkflow example",
|
|
413
|
-
"status": "Complete",
|
|
414
|
-
"story_points": 2,
|
|
415
|
-
"dependencies": [
|
|
416
|
-
"P1.M3.T1.S2",
|
|
417
|
-
"P1.M3.T2.S2",
|
|
418
|
-
"P1.M3.T3.S1"
|
|
419
|
-
],
|
|
420
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `Workflow` from `src/core/workflow.ts`. Import `Step`, `ObservedState` from `src/decorators/index.ts`.\n2. LOGIC: Create file `src/examples/test-cycle-workflow.ts`. Implement `TestCycleWorkflow extends Workflow` with: @ObservedState() currentTest: string. Implement @Step({ snapshotState: true }) generateTest() that sets currentTest and returns mock test. Implement @Step() runTest() that may throw error. Implement @Step() updateImplementation(). Implement run() that calls steps in sequence.\n3. OUTPUT: Export `TestCycleWorkflow` from `src/examples/test-cycle-workflow.ts`. Consumed by P1.M5.T1.S2 for integration."
|
|
421
|
-
},
|
|
422
|
-
{
|
|
423
|
-
"type": "Subtask",
|
|
424
|
-
"id": "P1.M5.T1.S2",
|
|
425
|
-
"title": "Implement TDDOrchestrator example",
|
|
426
|
-
"status": "Complete",
|
|
427
|
-
"story_points": 2,
|
|
428
|
-
"dependencies": [
|
|
429
|
-
"P1.M5.T1.S1"
|
|
430
|
-
],
|
|
431
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `Workflow` from `src/core/workflow.ts`. Import `Step`, `Task` from `src/decorators/index.ts`. Import `TestCycleWorkflow` from `src/examples/test-cycle-workflow.ts`.\n2. LOGIC: Create file `src/examples/tdd-orchestrator.ts`. Implement `TDDOrchestrator extends Workflow` with: @Step({ logStart: true }) setupEnvironment() that performs setup logic. @Task() runCycle() that returns new TestCycleWorkflow('Cycle', this). Implement run() with try/catch that calls setupEnvironment(), runCycle(), and handles WorkflowError for restart decisions.\n3. OUTPUT: Export `TDDOrchestrator` from `src/examples/tdd-orchestrator.ts`. Create `src/examples/index.ts` barrel. Consumed by integration tests."
|
|
432
|
-
}
|
|
433
|
-
]
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
"type": "Task",
|
|
437
|
-
"id": "P1.M5.T2",
|
|
438
|
-
"title": "End-to-End Integration Validation",
|
|
439
|
-
"status": "Complete",
|
|
440
|
-
"description": "Validate complete system integration with tree mirroring.",
|
|
441
|
-
"subtasks": [
|
|
442
|
-
{
|
|
443
|
-
"type": "Subtask",
|
|
444
|
-
"id": "P1.M5.T2.S1",
|
|
445
|
-
"title": "Validate tree mirroring accuracy",
|
|
446
|
-
"status": "Complete",
|
|
447
|
-
"story_points": 2,
|
|
448
|
-
"dependencies": [
|
|
449
|
-
"P1.M5.T1.S2",
|
|
450
|
-
"P1.M4.T2.S2"
|
|
451
|
-
],
|
|
452
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import `TDDOrchestrator` from `src/examples/tdd-orchestrator.ts`. Import `WorkflowTreeDebugger` from `src/debugger/tree-debugger.ts`.\n2. LOGIC: Create file `src/__tests__/integration/tree-mirroring.test.ts`. Create test that: instantiates TDDOrchestrator, attaches WorkflowTreeDebugger, runs workflow, verifies getTree() returns node structure matching workflow.node exactly (1:1 mirror). Verify parent/child relationships. Verify all events captured. Verify logs exist at correct nodes. Test error scenarios produce proper WorkflowError with state snapshot.\n3. OUTPUT: Integration test file validating PRD requirement: 'All logs & events must form a perfect 1:1 tree mirror of the workflow execution tree in memory'. Consumed by CI pipeline."
|
|
453
|
-
},
|
|
454
|
-
{
|
|
455
|
-
"type": "Subtask",
|
|
456
|
-
"id": "P1.M5.T2.S2",
|
|
457
|
-
"title": "Validate observer event delivery",
|
|
458
|
-
"status": "Complete",
|
|
459
|
-
"story_points": 1,
|
|
460
|
-
"dependencies": [
|
|
461
|
-
"P1.M5.T2.S1"
|
|
462
|
-
],
|
|
463
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: Import test utilities from P1.M5.T2.S1. Import `WorkflowObserver` from `src/types/observer.ts`.\n2. LOGIC: Create file `src/__tests__/integration/observer-events.test.ts`. Create mock observer implementing WorkflowObserver. Attach to root workflow. Run workflow. Verify onLog called for each log entry. Verify onEvent called for each event type (childAttached, stepStart, stepEnd, taskStart, taskEnd, treeUpdated). Verify onStateUpdated called when snapshotState triggers. Verify onTreeChanged called on tree mutations.\n3. OUTPUT: Integration test file validating observer contract. Ensures debugger receives all events for real-time updates."
|
|
464
|
-
}
|
|
465
|
-
]
|
|
466
|
-
},
|
|
467
|
-
{
|
|
468
|
-
"type": "Task",
|
|
469
|
-
"id": "P1.M5.T3",
|
|
470
|
-
"title": "Package Export Finalization",
|
|
471
|
-
"status": "Complete",
|
|
472
|
-
"description": "Finalize public API exports and package configuration.",
|
|
473
|
-
"subtasks": [
|
|
474
|
-
{
|
|
475
|
-
"type": "Subtask",
|
|
476
|
-
"id": "P1.M5.T3.S1",
|
|
477
|
-
"title": "Finalize public API surface",
|
|
478
|
-
"status": "Complete",
|
|
479
|
-
"story_points": 1,
|
|
480
|
-
"dependencies": [
|
|
481
|
-
"P1.M5.T2.S2"
|
|
482
|
-
],
|
|
483
|
-
"context_scope": "CONTRACT DEFINITION:\n1. INPUT: All modules from previous subtasks: `src/types/index.ts`, `src/core/index.ts`, `src/decorators/index.ts`, `src/debugger/index.ts`, `src/utils/index.ts`.\n2. LOGIC: Update `src/index.ts` as main entry point. Export all public types (WorkflowNode, WorkflowStatus, LogEntry, WorkflowEvent, WorkflowError, etc.). Export Workflow base class. Export decorators (Step, Task, ObservedState). Export WorkflowTreeDebugger. Export WorkflowObserver interface. Do NOT export internal utilities or WeakMaps. Update package.json main/module/types fields.\n3. OUTPUT: Clean public API at `src/index.ts`. Package ready for npm publish or local consumption."
|
|
484
|
-
}
|
|
485
|
-
]
|
|
486
|
-
}
|
|
487
|
-
]
|
|
488
|
-
}
|
|
489
|
-
]
|
|
490
|
-
}
|
|
491
|
-
]
|
|
492
|
-
}
|
package/PRPs/README.md
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
# PRPs (Product Requirements Packages)
|
|
2
|
-
|
|
3
|
-
> PRPs are comprehensive implementation guides designed for **one-pass implementation success**.
|
|
4
|
-
|
|
5
|
-
## What is a PRP?
|
|
6
|
-
|
|
7
|
-
A PRP is more than a requirements document—it's a complete implementation package that provides everything an AI agent (or developer) needs to successfully implement a feature without additional context gathering.
|
|
8
|
-
|
|
9
|
-
## Core Principle
|
|
10
|
-
|
|
11
|
-
**"No Prior Knowledge" Test**: If someone knew nothing about this codebase, would they have everything needed to implement this feature successfully using only the PRP?
|
|
12
|
-
|
|
13
|
-
## PRP Structure
|
|
14
|
-
|
|
15
|
-
Each PRP contains:
|
|
16
|
-
|
|
17
|
-
1. **Goal** - Clear feature goal, deliverable, and success criteria
|
|
18
|
-
2. **Context** - External documentation URLs, codebase patterns, technical constraints, and known gotchas
|
|
19
|
-
3. **Implementation Tasks** - Dependency-ordered tasks with specific file names and code patterns
|
|
20
|
-
4. **Implementation Details** - Code examples, file structure, and interface definitions
|
|
21
|
-
5. **Testing Strategy** - Unit tests, integration tests, and manual validation steps
|
|
22
|
-
6. **Final Validation Checklist** - Comprehensive checklist for quality assurance
|
|
23
|
-
7. **Confidence Score** - Rating of expected one-pass success likelihood
|
|
24
|
-
|
|
25
|
-
## Using PRPs
|
|
26
|
-
|
|
27
|
-
### For AI Agents
|
|
28
|
-
1. Read the entire PRP before starting
|
|
29
|
-
2. Follow tasks in order (they have dependencies)
|
|
30
|
-
3. Use the validation steps after each task
|
|
31
|
-
4. Consult external URLs for additional context when needed
|
|
32
|
-
5. Reference local research docs in project root for patterns
|
|
33
|
-
|
|
34
|
-
### For Developers
|
|
35
|
-
1. Use PRPs as detailed implementation guides
|
|
36
|
-
2. The task breakdown serves as a sprint plan
|
|
37
|
-
3. Code patterns show exactly how to implement each component
|
|
38
|
-
4. Tests provide immediate validation
|
|
39
|
-
|
|
40
|
-
## Directory Structure
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
PRPs/
|
|
44
|
-
├── README.md # This file
|
|
45
|
-
├── templates/
|
|
46
|
-
│ └── prp_base.md # Template for creating new PRPs
|
|
47
|
-
├── ai_docs/ # Research documents for AI reference
|
|
48
|
-
└── XXX-feature-name.md # Individual PRPs (numbered)
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Creating a New PRP
|
|
52
|
-
|
|
53
|
-
1. Copy `templates/prp_base.md`
|
|
54
|
-
2. Number it sequentially (e.g., `002-next-feature.md`)
|
|
55
|
-
3. Fill in all sections with specific, actionable content
|
|
56
|
-
4. Apply the "No Prior Knowledge" test
|
|
57
|
-
5. Rate your confidence score honestly
|
|
58
|
-
|
|
59
|
-
## Quality Standards
|
|
60
|
-
|
|
61
|
-
A good PRP:
|
|
62
|
-
- Has **specific file paths**, not generic references
|
|
63
|
-
- Includes **working code examples** for each pattern
|
|
64
|
-
- Lists **exact dependencies** with versions
|
|
65
|
-
- Provides **executable validation commands**
|
|
66
|
-
- Covers **error cases** and edge conditions
|
|
67
|
-
- Uses **information-dense keywords** from codebase analysis
|
|
68
|
-
|
|
69
|
-
## Current PRPs
|
|
70
|
-
|
|
71
|
-
| Number | Name | Status | Confidence |
|
|
72
|
-
|--------|------|--------|------------|
|
|
73
|
-
| 001 | Hierarchical Workflow Engine | Implementation-Ready | 9/10 |
|
|
74
|
-
|
|
75
|
-
## Research Materials
|
|
76
|
-
|
|
77
|
-
Detailed research documents are stored in the project root:
|
|
78
|
-
- `DECORATOR_QUICK_REFERENCE.md` - TypeScript decorator patterns
|
|
79
|
-
- `DECORATOR_EXAMPLES.ts` - Production-ready decorator code
|
|
80
|
-
- `TREE_VISUALIZATION_QUICK_REF.md` - ASCII tree rendering
|
|
81
|
-
- `TREE_DEBUG_EXAMPLES.ts` - Tree debugger implementation
|
|
82
|
-
|
|
83
|
-
These are referenced by PRPs and contain deep technical research.
|