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,629 +0,0 @@
|
|
|
1
|
-
# Product Requirement Prompt (PRP): P1.M4.T2.S3 - Create Change Summary and Release Notes
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Goal
|
|
6
|
-
|
|
7
|
-
**Feature Goal**: Create comprehensive release notes and change summary documenting the P1 bug fix for attachChild() tree integrity violations
|
|
8
|
-
|
|
9
|
-
**Deliverable**: Release notes document suitable for GitHub release, CHANGELOG.md entry, or version notes
|
|
10
|
-
|
|
11
|
-
**Success Definition**:
|
|
12
|
-
- Release notes document all changes made in P1 bug fix
|
|
13
|
-
- Clear explanation of bug fixed and new features added
|
|
14
|
-
- Migration guide provided for users affected by behavior change
|
|
15
|
-
- Document follows professional release notes standards (Keep a Changelog)
|
|
16
|
-
- All test coverage increases documented
|
|
17
|
-
|
|
18
|
-
## User Persona
|
|
19
|
-
|
|
20
|
-
**Target User**: Developers using the Groundswell workflow library
|
|
21
|
-
|
|
22
|
-
**Use Case**: Understanding what changed in version 0.0.2 and whether migration is needed
|
|
23
|
-
|
|
24
|
-
**User Journey**:
|
|
25
|
-
1. Developer reads release notes after updating package
|
|
26
|
-
2. Developer identifies if their code is affected by attachChild() behavior change
|
|
27
|
-
3. Developer follows migration guide if using reparenting patterns
|
|
28
|
-
4. Developer adopts new detachChild() API for cleaner code
|
|
29
|
-
|
|
30
|
-
**Pain Points Addressed**:
|
|
31
|
-
- Unclear what changed between versions
|
|
32
|
-
- Uncertainty whether migration is needed
|
|
33
|
-
- Lack of examples for new detachChild() API
|
|
34
|
-
- No documentation of the bug being fixed
|
|
35
|
-
|
|
36
|
-
## Why
|
|
37
|
-
|
|
38
|
-
- **Transparency**: Users deserve clear documentation of all changes
|
|
39
|
-
- **Migration support**: Behavior changes require guidance for affected users
|
|
40
|
-
- **Feature adoption**: New detachChild() API needs documentation to encourage usage
|
|
41
|
-
- **Trust**: Clear bug fix documentation demonstrates project quality
|
|
42
|
-
- **Professionalism**: Following industry standards (Keep a Changelog, SemVer)
|
|
43
|
-
|
|
44
|
-
## What
|
|
45
|
-
|
|
46
|
-
Create a release notes document that comprehensively covers:
|
|
47
|
-
|
|
48
|
-
1. **Bug Fix Section**: attachChild() no longer allows inconsistent state
|
|
49
|
-
2. **New Features**: detachChild() method, childDetached event
|
|
50
|
-
3. **Internal Improvements**: isDescendantOf() helper, enhanced validation
|
|
51
|
-
4. **Migration Guide**: How to update code affected by behavior change
|
|
52
|
-
5. **Test Coverage**: Quantified increase in test coverage
|
|
53
|
-
6. **Affected Files**: Complete list of modified files
|
|
54
|
-
|
|
55
|
-
### Success Criteria
|
|
56
|
-
|
|
57
|
-
- [ ] Release notes created at appropriate location
|
|
58
|
-
- [ ] All P1 changes documented (attachChild, detachChild, childDetached, isDescendantOf)
|
|
59
|
-
- [ ] Migration guide with before/after code examples
|
|
60
|
-
- [ ] Test count increase quantified
|
|
61
|
-
- [ ] Follows Keep a Changelog format
|
|
62
|
-
- [ ] Clear categorization (Fixed, Added, Changed)
|
|
63
|
-
- [ ] Links to relevant code files
|
|
64
|
-
|
|
65
|
-
## All Needed Context
|
|
66
|
-
|
|
67
|
-
### Context Completeness Check
|
|
68
|
-
|
|
69
|
-
_Before writing this PRP, validate: "If someone knew nothing about this codebase, would they have everything needed to implement this successfully?"_
|
|
70
|
-
|
|
71
|
-
**Answer**: YES - This PRP provides complete context including bug analysis summary, all code changes, best practices research, and project-specific documentation patterns.
|
|
72
|
-
|
|
73
|
-
### Documentation & References
|
|
74
|
-
|
|
75
|
-
```yaml
|
|
76
|
-
# MUST READ - Include these in your context window
|
|
77
|
-
|
|
78
|
-
# Project-Specific Documentation
|
|
79
|
-
- file: plan/bugfix/architecture/bug_analysis.md
|
|
80
|
-
why: Complete bug description, what was broken, all changes made, validation checklist
|
|
81
|
-
critical: This is the source of truth for what changed in P1
|
|
82
|
-
|
|
83
|
-
- file: src/core/workflow.ts
|
|
84
|
-
why: Main implementation file - attachChild, detachChild, isDescendantOf methods
|
|
85
|
-
pattern: JSDoc comments already added to modified methods (lines 142-358)
|
|
86
|
-
gotcha: The fix is complete - this PRP is for documentation only
|
|
87
|
-
|
|
88
|
-
- file: src/types/events.ts
|
|
89
|
-
why: childDetached event type definition
|
|
90
|
-
pattern: Line 11 - new discriminated union member
|
|
91
|
-
gotcha: Event follows existing pattern for type property
|
|
92
|
-
|
|
93
|
-
- file: bug_fix_tasks.json
|
|
94
|
-
why: Complete task tracking for P1 - all subtasks and their status
|
|
95
|
-
critical: Shows completion status of all P1 work
|
|
96
|
-
|
|
97
|
-
# Best Practices References
|
|
98
|
-
- url: https://keepachangelog.com/en/1.1.0/
|
|
99
|
-
why: Industry standard format for CHANGELOG entries
|
|
100
|
-
critical: Use these categories: Added, Changed, Deprecated, Removed, Fixed, Security
|
|
101
|
-
|
|
102
|
-
- url: https://semver.org/spec/v2.0.0.html
|
|
103
|
-
why: Semantic versioning rules - this is a PATCH version (bug fix)
|
|
104
|
-
critical: Bug fixes that change behavior may require migration guide
|
|
105
|
-
|
|
106
|
-
- url: https://github.com/olivierlacan/keep-a-changelog/blob/main/CHANGELOG.md
|
|
107
|
-
why: Example of well-formatted CHANGELOG from the standard itself
|
|
108
|
-
critical: Shows proper version linking and categorization
|
|
109
|
-
|
|
110
|
-
- url: https://github.com/eslint/eslint/blob/master/CHANGELOG.md
|
|
111
|
-
why: Alternative format using conventional commits with commit links
|
|
112
|
-
critical: Shows git-log style with commit references
|
|
113
|
-
|
|
114
|
-
# Real Examples in Dependencies
|
|
115
|
-
- file: node_modules/@anthropic-ai/sdk/CHANGELOG.md
|
|
116
|
-
why: Professional TypeScript SDK CHANGELOG example
|
|
117
|
-
pattern: Version comparison links, scope prefixes, categorized changes
|
|
118
|
-
|
|
119
|
-
- file: node_modules/acorn/CHANGELOG.md
|
|
120
|
-
why: Parser library with clear bug fix documentation
|
|
121
|
-
pattern: Simple, direct descriptions of changes
|
|
122
|
-
|
|
123
|
-
# Project Documentation Patterns
|
|
124
|
-
- docfile: plan/docs/research/P1P2/reflection-patterns.md
|
|
125
|
-
why: Example of project documentation style
|
|
126
|
-
section: Use as reference for writing style consistency
|
|
127
|
-
|
|
128
|
-
- file: PRPs/001-hierarchical-workflow-engine.md
|
|
129
|
-
why: Example PRP structure in this project
|
|
130
|
-
pattern: Project follows structured markdown for technical documentation
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### Current Codebase Tree
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
plan/bugfix/
|
|
137
|
-
├── P1M4T2S3/ # Target directory for this PRP
|
|
138
|
-
│ └── PRP.md # This file
|
|
139
|
-
├── architecture/
|
|
140
|
-
│ └── bug_analysis.md # Complete bug analysis
|
|
141
|
-
└── P1M4T2S2/ # Performance testing subtask (sibling)
|
|
142
|
-
|
|
143
|
-
src/
|
|
144
|
-
├── core/
|
|
145
|
-
│ └── workflow.ts # Main implementation (lines 142-358 modified)
|
|
146
|
-
├── types/
|
|
147
|
-
│ └── events.ts # Event types (line 11 modified)
|
|
148
|
-
└── __tests__/
|
|
149
|
-
├── unit/ # 5 new test files
|
|
150
|
-
├── integration/ # 1 new test file
|
|
151
|
-
└── adversarial/ # 6 new test files
|
|
152
|
-
|
|
153
|
-
# Note: No CHANGELOG.md exists at project root - this will be new
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### Desired Codebase Tree with Files to be Added
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
# Option 1: Create CHANGELOG.md at project root (recommended)
|
|
160
|
-
CHANGELOG.md # New file - follows Keep a Changelog standard
|
|
161
|
-
|
|
162
|
-
# Option 2: Create in plan/bugfix directory
|
|
163
|
-
plan/bugfix/
|
|
164
|
-
└── RELEASE_NOTES_v0.0.2.md # Release-specific notes
|
|
165
|
-
|
|
166
|
-
# Option 3: Add to existing PRP
|
|
167
|
-
PRPs/
|
|
168
|
-
└── 002-attachChild-integrity-fix.md # PRP for completed bug fix with release notes
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Known Gotchas of Our Codebase & Library
|
|
172
|
-
|
|
173
|
-
```markdown
|
|
174
|
-
# CRITICAL: Project does NOT have existing CHANGELOG pattern
|
|
175
|
-
# - This is the first release notes document
|
|
176
|
-
# - Consider establishing CHANGELOG.md as standard practice
|
|
177
|
-
|
|
178
|
-
# CRITICAL: Bug fix changes observable behavior (throws instead of silent failure)
|
|
179
|
-
# - Before: attachChild() with child that has parent = silent inconsistent state
|
|
180
|
-
# - After: attachChild() with child that has parent = throws Error with message
|
|
181
|
-
# - This is NOT a breaking change (old behavior was buggy)
|
|
182
|
-
# - BUT users relying on buggy behavior need migration guide
|
|
183
|
-
|
|
184
|
-
# CRITICAL: New detachChild() API is the recommended solution
|
|
185
|
-
# - Migration guide should show detachChild() usage
|
|
186
|
-
# - Before/after examples are essential
|
|
187
|
-
|
|
188
|
-
# CRITICAL: Test coverage increased significantly
|
|
189
|
-
# - 8+ new test files added
|
|
190
|
-
# - 20+ new test cases
|
|
191
|
-
# - Quantify this in release notes
|
|
192
|
-
|
|
193
|
-
# GOTCHA: Event system uses discriminated union pattern
|
|
194
|
-
# - childDetached follows existing pattern with type property
|
|
195
|
-
# - Document this for users listening to events
|
|
196
|
-
|
|
197
|
-
# GOTCHA: isDescendantOf is private method
|
|
198
|
-
# - Not part of public API
|
|
199
|
-
# - Mention as internal implementation detail only
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
---
|
|
203
|
-
|
|
204
|
-
## Implementation Blueprint
|
|
205
|
-
|
|
206
|
-
### Data Models and Structure
|
|
207
|
-
|
|
208
|
-
No data models needed - this is pure documentation task.
|
|
209
|
-
|
|
210
|
-
**Release Notes Structure** (Keep a Changelog format):
|
|
211
|
-
|
|
212
|
-
```markdown
|
|
213
|
-
# Changelog
|
|
214
|
-
|
|
215
|
-
All notable changes to this project will be documented in this file.
|
|
216
|
-
|
|
217
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
218
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
219
|
-
|
|
220
|
-
## [0.0.2] - 2025-01-12
|
|
221
|
-
|
|
222
|
-
### Fixed
|
|
223
|
-
- attachChild() now validates child has no existing parent (prevents inconsistent tree state)
|
|
224
|
-
- attachChild() now detects and prevents circular references
|
|
225
|
-
- Observer event propagation now works correctly after reparenting operations
|
|
226
|
-
|
|
227
|
-
### Added
|
|
228
|
-
- New detachChild() method for proper reparenting workflow
|
|
229
|
-
- New childDetached event type for detachment notifications
|
|
230
|
-
- isDescendantOf() helper method for circular reference detection (internal)
|
|
231
|
-
|
|
232
|
-
### Migration Guide for attachChild() Behavior Change
|
|
233
|
-
[Detailed before/after examples]
|
|
234
|
-
|
|
235
|
-
### Test Coverage
|
|
236
|
-
- Added 8 new test files with 25+ test cases
|
|
237
|
-
- 100% regression test pass rate maintained
|
|
238
|
-
|
|
239
|
-
## [0.0.1] - 2025-01-10
|
|
240
|
-
### Added
|
|
241
|
-
- Initial release
|
|
242
|
-
|
|
243
|
-
[Unreleased]: https://github.com/dustin/groundswell/compare/v0.0.2...HEAD
|
|
244
|
-
[0.0.2]: https://github.com/dustin/groundswell/compare/v0.0.1...v0.0.2
|
|
245
|
-
[0.0.1]: https://github.com/dustin/groundswell/releases/tag/v0.0.1
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
### Implementation Tasks (ordered by dependencies)
|
|
249
|
-
|
|
250
|
-
```yaml
|
|
251
|
-
Task 1: READ all implementation files
|
|
252
|
-
- READ: src/core/workflow.ts (focus on lines 142-358)
|
|
253
|
-
- READ: src/types/events.ts (line 11)
|
|
254
|
-
- READ: plan/bugfix/architecture/bug_analysis.md
|
|
255
|
-
- EXTRACT: All method signatures, JSDoc comments, event type definitions
|
|
256
|
-
|
|
257
|
-
Task 2: RESEARCH existing documentation patterns
|
|
258
|
-
- CHECK: Does CHANGELOG.md exist at project root? (expect: no)
|
|
259
|
-
- CHECK: Does PRPs/ directory have numbered PRPs? (expect: yes)
|
|
260
|
-
- DECIDE: Release notes location (CHANGELOG.md vs plan/bugfix/RELEASE_NOTES.md)
|
|
261
|
-
- CONSIDER: User recommendation for preferred location
|
|
262
|
-
|
|
263
|
-
Task 3: DRAFT release notes content
|
|
264
|
-
- CREATE: Version header with Semantic Version (0.0.2 for PATCH bug fix)
|
|
265
|
-
- DATE: Use current date in ISO 8601 format (YYYY-MM-DD)
|
|
266
|
-
- SECTION Fixed: List all bug fixes with descriptions
|
|
267
|
-
- SECTION Added: List new features (detachChild, childDetached)
|
|
268
|
-
- SECTION Changed: List behavioral changes (attachChild now throws)
|
|
269
|
-
- MIGRATION: Write detailed before/after code examples
|
|
270
|
-
|
|
271
|
-
Task 4: CREATE migration guide section
|
|
272
|
-
- DESCRIBE: What changed in attachChild() behavior
|
|
273
|
-
- EXAMPLE Before: Show buggy pattern that now throws
|
|
274
|
-
- EXAMPLE After: Show correct pattern using detachChild()
|
|
275
|
-
- STEPS: Numbered migration instructions
|
|
276
|
-
- TESTING: How to verify successful migration
|
|
277
|
-
|
|
278
|
-
Task 5: QUANTIFY test coverage changes
|
|
279
|
-
- COUNT: All new test files in src/__tests__/
|
|
280
|
-
- LIST: Test file names and purposes
|
|
281
|
-
- VERIFY: Total test count increase from bug_analysis.md
|
|
282
|
-
- DOCUMENT: Test categories (unit, integration, adversarial)
|
|
283
|
-
|
|
284
|
-
Task 6: FORMAT and polish release notes
|
|
285
|
-
- APPLY: Keep a Changelog v1.1.0 format
|
|
286
|
-
- ADD: Version comparison links (placeholders for GitHub)
|
|
287
|
-
- ADD: Links to relevant code sections
|
|
288
|
-
- VERIFY: Neutral tone, active voice, specific descriptions
|
|
289
|
-
|
|
290
|
-
Task 7: WRITE final release notes file
|
|
291
|
-
- CREATE: CHANGELOG.md at project root (recommended)
|
|
292
|
-
- OR: plan/bugfix/RELEASE_NOTES_v0.0.2.md (alternative)
|
|
293
|
-
- CONTENT: Complete release notes with all sections
|
|
294
|
-
- PRESERVE: Any existing content if appending to file
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
### Implementation Patterns & Key Details
|
|
298
|
-
|
|
299
|
-
```markdown
|
|
300
|
-
# Release Notes Writing Guidelines
|
|
301
|
-
|
|
302
|
-
## Format Structure (Keep a Changelog)
|
|
303
|
-
|
|
304
|
-
```markdown
|
|
305
|
-
# Changelog
|
|
306
|
-
[Standard header from Keep a Changelog]
|
|
307
|
-
|
|
308
|
-
## [VERSION] - DATE
|
|
309
|
-
### Fixed
|
|
310
|
-
[Bug fixes]
|
|
311
|
-
|
|
312
|
-
### Added
|
|
313
|
-
[New features]
|
|
314
|
-
|
|
315
|
-
### Changed
|
|
316
|
-
[Behavioral changes]
|
|
317
|
-
|
|
318
|
-
### Migration Guide
|
|
319
|
-
[If behavior change affects users]
|
|
320
|
-
|
|
321
|
-
[Version links at bottom]
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
## Writing Style
|
|
325
|
-
|
|
326
|
-
- **Active voice**: "Fix validation bug" not "Validation bug was fixed"
|
|
327
|
-
- **Specific descriptions**: "Prevent attaching child with existing parent" not "Fix attachment bug"
|
|
328
|
-
- **Neutral tone**: No marketing language, just facts
|
|
329
|
-
- **User-focused**: Describe what users need to know, not implementation details
|
|
330
|
-
|
|
331
|
-
## Categorization Rules
|
|
332
|
-
|
|
333
|
-
**Fixed**: Bug fixes that correct incorrect behavior
|
|
334
|
-
- attachChild() now prevents inconsistent tree state
|
|
335
|
-
- attachChild() now prevents circular references
|
|
336
|
-
|
|
337
|
-
**Added**: New features and functionality
|
|
338
|
-
- detachChild() method for reparenting
|
|
339
|
-
- childDetached event type
|
|
340
|
-
|
|
341
|
-
**Changed**: Behavioral modifications
|
|
342
|
-
- attachChild() now throws Error instead of silent failure
|
|
343
|
-
|
|
344
|
-
**Deprecated**: Not applicable for this release
|
|
345
|
-
|
|
346
|
-
**Removed**: Not applicable for this release
|
|
347
|
-
|
|
348
|
-
**Security**: Not applicable for this release
|
|
349
|
-
|
|
350
|
-
## Migration Guide Pattern
|
|
351
|
-
|
|
352
|
-
```markdown
|
|
353
|
-
### Migration Guide: attachChild() Behavior Change
|
|
354
|
-
|
|
355
|
-
**What Changed**:
|
|
356
|
-
The attachChild() method now throws an Error if you attempt to attach a child that already has a different parent. Previously, this would silently create an inconsistent tree state.
|
|
357
|
-
|
|
358
|
-
**Before (Buggy Pattern)**:
|
|
359
|
-
```typescript
|
|
360
|
-
// This would silently create inconsistent state
|
|
361
|
-
const parent1 = new Workflow({ name: 'parent1' });
|
|
362
|
-
const parent2 = new Workflow({ name: 'parent2' });
|
|
363
|
-
const child = new Workflow({ name: 'child' });
|
|
364
|
-
|
|
365
|
-
parent1.attachChild(child); // child.parent = parent1
|
|
366
|
-
parent2.attachChild(child); // BUG: child still has parent1, but parent2 thinks it's attached
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
**After (Correct Pattern)**:
|
|
370
|
-
```typescript
|
|
371
|
-
// Use detachChild() before reattaching
|
|
372
|
-
const parent1 = new Workflow({ name: 'parent1' });
|
|
373
|
-
const parent2 = new Workflow({ name: 'parent2' });
|
|
374
|
-
const child = new Workflow({ name: 'child' });
|
|
375
|
-
|
|
376
|
-
parent1.attachChild(child);
|
|
377
|
-
parent1.detachChild(child); // Explicitly detach first
|
|
378
|
-
parent2.attachChild(child); // Now works correctly
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
**Migration Steps**:
|
|
382
|
-
1. Search code for patterns of attaching the same child to multiple parents
|
|
383
|
-
2. Add detachChild() calls before reattaching to new parent
|
|
384
|
-
3. Test that your workflow tree operations complete without errors
|
|
385
|
-
4. Verify observer events propagate correctly after reparenting
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
## Test Coverage Documentation Pattern
|
|
389
|
-
|
|
390
|
-
```markdown
|
|
391
|
-
### Test Coverage
|
|
392
|
-
|
|
393
|
-
**New Test Files Added** (8 files):
|
|
394
|
-
- `src/__tests__/unit/workflow-detachChild.test.ts` - detachChild() method tests
|
|
395
|
-
- `src/__tests__/unit/workflow-emitEvent-childDetached.test.ts` - childDetached event tests
|
|
396
|
-
- `src/__tests__/adversarial/parent-validation.test.ts` - Parent validation edge cases
|
|
397
|
-
- `src/__tests__/adversarial/circular-reference.test.ts` - Circular reference detection
|
|
398
|
-
- `src/__tests__/adversarial/attachChild-performance.test.ts` - Performance validation
|
|
399
|
-
- `src/__tests__/adversarial/deep-hierarchy-stress.test.ts` - Deep nesting tests
|
|
400
|
-
- `src/__tests__/adversarial/bidirectional-consistency.test.ts` - Tree consistency tests
|
|
401
|
-
- `src/__tests__/integration/workflow-reparenting.test.ts` - Reparenting workflow tests
|
|
402
|
-
|
|
403
|
-
**Test Count Increase**: +25 new test cases
|
|
404
|
-
**Regression Tests**: All 241 existing tests still pass (100% pass rate)
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
## Code Reference Pattern
|
|
408
|
-
|
|
409
|
-
Include links to implementation for interested developers:
|
|
410
|
-
|
|
411
|
-
```markdown
|
|
412
|
-
**Implementation Details**:
|
|
413
|
-
- attachChild() validation: [src/core/workflow.ts:266-305](src/core/workflow.ts#L266-L305)
|
|
414
|
-
- detachChild() method: [src/core/workflow.ts:329-358](src/core/workflow.ts#L329-L358)
|
|
415
|
-
- isDescendantOf() helper: [src/core/workflow.ts:151-169](src/core/workflow.ts#L151-L169)
|
|
416
|
-
- childDetached event: [src/types/events.ts:11](src/types/events.ts#L11)
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
## Semantic Versioning Decision
|
|
420
|
-
|
|
421
|
-
This is a **PATCH version** (0.0.1 → 0.0.2):
|
|
422
|
-
- Bug fix that corrects incorrect behavior
|
|
423
|
-
- New API (detachChild) is additive, not breaking
|
|
424
|
-
- Behavior change prevents buggy code from running
|
|
425
|
-
- No breaking changes to public API contract
|
|
426
|
-
|
|
427
|
-
Rationale: The attachChild() behavior change throws an Error where previously buggy code would have silently failed. This is a fix, not a breaking change, because the previous behavior was incorrect per the PRD.
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
### Integration Points
|
|
431
|
-
|
|
432
|
-
```yaml
|
|
433
|
-
DOCUMENTATION DECISION POINT:
|
|
434
|
-
- ask_user: "Where should release notes be stored?"
|
|
435
|
-
- options:
|
|
436
|
-
- "CHANGELOG.md at project root (recommended, establishes standard)"
|
|
437
|
-
- "plan/bugfix/RELEASE_NOTES_v0.0.2.md (project-specific pattern)"
|
|
438
|
-
- "Append to existing PRP"
|
|
439
|
-
|
|
440
|
-
PACKAGE.JSON:
|
|
441
|
-
- verify: Current version is 0.0.1
|
|
442
|
-
- update: Increment to 0.0.2 for this bug fix release
|
|
443
|
-
- location: package.json version field
|
|
444
|
-
|
|
445
|
-
GIT:
|
|
446
|
-
- tag: Consider creating git tag v0.0.2
|
|
447
|
-
- commit: Release notes commit should follow PRP completion
|
|
448
|
-
```
|
|
449
|
-
|
|
450
|
-
---
|
|
451
|
-
|
|
452
|
-
## Validation Loop
|
|
453
|
-
|
|
454
|
-
### Level 1: Syntax & Style (Immediate Feedback)
|
|
455
|
-
|
|
456
|
-
```bash
|
|
457
|
-
# Validate markdown formatting
|
|
458
|
-
npx markdownlint CHANGELOG.md --fix 2>/dev/null || echo "markdownlint not installed"
|
|
459
|
-
|
|
460
|
-
# Manual validation checks
|
|
461
|
-
echo "Checking for common markdown issues..."
|
|
462
|
-
grep -n "^#" CHANGELOG.md | head -5 # Verify heading structure
|
|
463
|
-
grep -n "^\[" CHANGELOG.md | head -5 # Verify version links
|
|
464
|
-
|
|
465
|
-
# Expected: Proper markdown formatting, consistent heading levels
|
|
466
|
-
```
|
|
467
|
-
|
|
468
|
-
### Level 2: Content Validation (Completeness Check)
|
|
469
|
-
|
|
470
|
-
```bash
|
|
471
|
-
# Verify all required sections exist
|
|
472
|
-
echo "Checking required sections..."
|
|
473
|
-
grep -q "### Fixed" CHANGELOG.md && echo "Fixed section exists"
|
|
474
|
-
grep -q "### Added" CHANGELOG.md && echo "Added section exists"
|
|
475
|
-
grep -q "### Migration" CHANGELOG.md && echo "Migration section exists"
|
|
476
|
-
grep -q "### Test Coverage" CHANGELOG.md && echo "Test coverage section exists"
|
|
477
|
-
|
|
478
|
-
# Verify all P1 changes are documented
|
|
479
|
-
echo "Checking all changes are documented..."
|
|
480
|
-
grep -q "attachChild" CHANGELOG.md && echo "attachChild mentioned"
|
|
481
|
-
grep -q "detachChild" CHANGELOG.md && echo "detachChild mentioned"
|
|
482
|
-
grep -q "childDetached" CHANGELOG.md && echo "childDetached mentioned"
|
|
483
|
-
grep -q "isDescendantOf" CHANGELOG.md && echo "isDescendantOf mentioned"
|
|
484
|
-
|
|
485
|
-
# Expected: All checks pass, all changes documented
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
### Level 3: Accuracy Validation (Fact-Checking)
|
|
489
|
-
|
|
490
|
-
```bash
|
|
491
|
-
# Verify test file count matches actual
|
|
492
|
-
echo "Verifying test file count..."
|
|
493
|
-
ACTUAL_TEST_COUNT=$(find src/__tests__ -name "*.test.ts" -newer plan/bugfix/architecture/bug_analysis.md 2>/dev/null | wc -l)
|
|
494
|
-
echo "New test files: $ACTUAL_TEST_COUNT"
|
|
495
|
-
|
|
496
|
-
# Verify implementation file references are correct
|
|
497
|
-
echo "Verifying file references..."
|
|
498
|
-
test -f src/core/workflow.ts && echo "workflow.ts exists"
|
|
499
|
-
test -f src/types/events.ts && echo "events.ts exists"
|
|
500
|
-
|
|
501
|
-
# Verify version in package.json
|
|
502
|
-
echo "Current package version:"
|
|
503
|
-
grep "\"version\"" package.json
|
|
504
|
-
|
|
505
|
-
# Expected: All counts and references accurate
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
### Level 4: User Experience Validation
|
|
509
|
-
|
|
510
|
-
```bash
|
|
511
|
-
# Readability test - can a new user understand what changed?
|
|
512
|
-
echo "=== Release Notes Readability Test ==="
|
|
513
|
-
echo "Question: Can I understand what changed without reading the code?"
|
|
514
|
-
echo "Question: Do I know if I need to migrate my code?"
|
|
515
|
-
echo "Question: Do I have examples for migration?"
|
|
516
|
-
|
|
517
|
-
# Link validation (if GitHub URLs are used)
|
|
518
|
-
echo "Checking for broken markdown links..."
|
|
519
|
-
npx markdown-link-check CHANGELOG.md 2>/dev/null || echo "markdown-link-check not available"
|
|
520
|
-
|
|
521
|
-
# Expected: Release notes are clear, actionable, and complete
|
|
522
|
-
```
|
|
523
|
-
|
|
524
|
-
## Final Validation Checklist
|
|
525
|
-
|
|
526
|
-
### Technical Validation
|
|
527
|
-
|
|
528
|
-
- [ ] Release notes file created at agreed location
|
|
529
|
-
- [ ] Markdown formatting is valid and consistent
|
|
530
|
-
- [ ] All required sections present (Fixed, Added, Migration, Test Coverage)
|
|
531
|
-
- [ ] All P1 changes documented (attachChild, detachChild, childDetached, isDescendantOf)
|
|
532
|
-
- [ ] Version number follows Semantic Versioning (0.0.2 for PATCH)
|
|
533
|
-
- [ ] Date format is ISO 8601 (YYYY-MM-DD)
|
|
534
|
-
- [ ] Code references include file paths and line numbers
|
|
535
|
-
|
|
536
|
-
### Content Validation
|
|
537
|
-
|
|
538
|
-
- [ ] Bug fix description is clear and accurate
|
|
539
|
-
- [ ] New features are documented with purpose
|
|
540
|
-
- [ ] Migration guide has before/after code examples
|
|
541
|
-
- [ ] Test coverage increase is quantified
|
|
542
|
-
- [ ] Links to implementation files are correct
|
|
543
|
-
- [ ] Version comparison links follow Keep a Changelog pattern
|
|
544
|
-
|
|
545
|
-
### Style Validation
|
|
546
|
-
|
|
547
|
-
- [ ] Follows Keep a Changelog v1.1.0 format
|
|
548
|
-
- [ ] Uses active voice and neutral tone
|
|
549
|
-
- [ ] Descriptions are specific (not vague)
|
|
550
|
-
- [ ] No marketing language or hyperbole
|
|
551
|
-
- [ ] Consistent with project documentation style
|
|
552
|
-
|
|
553
|
-
### User-Facing Validation
|
|
554
|
-
|
|
555
|
-
- [ ] New users can understand what changed
|
|
556
|
-
- [ ] Existing users know if migration is needed
|
|
557
|
-
- [ ] Migration steps are clear and actionable
|
|
558
|
-
- [ ] Code examples are correct and runnable
|
|
559
|
-
- [ ] Error scenarios are explained
|
|
560
|
-
|
|
561
|
-
### Documentation & Deployment
|
|
562
|
-
|
|
563
|
-
- [ ] File location is appropriate for project patterns
|
|
564
|
-
- [ ] File is tracked in git
|
|
565
|
-
- [ ] PRP for this task is complete
|
|
566
|
-
- [ ] package.json version is updated (if applicable)
|
|
567
|
-
- [ ] Git tag created (if applicable)
|
|
568
|
-
|
|
569
|
-
---
|
|
570
|
-
|
|
571
|
-
## Anti-Patterns to Avoid
|
|
572
|
-
|
|
573
|
-
- ❌ Don't use vague descriptions like "bug fixes" or "improvements" - be specific
|
|
574
|
-
- ❌ Don't omit migration guide for behavior changes - users need guidance
|
|
575
|
-
- ❌ Don't use marketing language like "exciting new feature" - state facts neutrally
|
|
576
|
-
- ❌ Don't forget to quantify test coverage changes - metrics matter
|
|
577
|
-
- ❌ Don't link to non-existent sections or files - verify all links
|
|
578
|
-
- ❌ Don't mix categories (e.g., putting bug fixes in "Added" section)
|
|
579
|
-
- ❌ Don't use passive voice - "Fixed bug" not "Bug was fixed"
|
|
580
|
-
- ❌ Don't omit the date - release timing is important context
|
|
581
|
-
- ❌ Don't create competing documentation patterns - follow project conventions
|
|
582
|
-
- ❌ Don't document implementation details over user impact - focus on what users need to know
|
|
583
|
-
|
|
584
|
-
---
|
|
585
|
-
|
|
586
|
-
## Context Sources Summary
|
|
587
|
-
|
|
588
|
-
This PRP was compiled from comprehensive research including:
|
|
589
|
-
|
|
590
|
-
1. **Bug Analysis Document** (`plan/bugfix/architecture/bug_analysis.md`)
|
|
591
|
-
- Complete description of the bug and all changes made
|
|
592
|
-
- Validation checklist and success criteria
|
|
593
|
-
|
|
594
|
-
2. **Codebase Analysis** (4 parallel research agents)
|
|
595
|
-
- Complete catalog of all code changes with file paths and line numbers
|
|
596
|
-
- Existing documentation patterns in the project
|
|
597
|
-
- Test file inventory
|
|
598
|
-
|
|
599
|
-
3. **Best Practices Research**
|
|
600
|
-
- Keep a Changelog v1.1.0 standard
|
|
601
|
-
- Semantic Versioning 2.0.0 specification
|
|
602
|
-
- Real-world examples from Anthropic SDK, Acorn, ESLint
|
|
603
|
-
|
|
604
|
-
4. **Project-Specific Context**
|
|
605
|
-
- No existing CHANGELOG pattern (this will establish it)
|
|
606
|
-
- PRP-based documentation approach
|
|
607
|
-
- JSON task tracking system
|
|
608
|
-
|
|
609
|
-
---
|
|
610
|
-
|
|
611
|
-
## Confidence Score
|
|
612
|
-
|
|
613
|
-
**One-Pass Implementation Success Likelihood**: 9/10
|
|
614
|
-
|
|
615
|
-
**Rationale**:
|
|
616
|
-
- Complete context provided (bug analysis, code changes, best practices)
|
|
617
|
-
- Clear task breakdown with dependencies
|
|
618
|
-
- Specific templates and examples provided
|
|
619
|
-
- Validation gates are well-defined
|
|
620
|
-
- All research was done upfront
|
|
621
|
-
|
|
622
|
-
**Risk Mitigation**:
|
|
623
|
-
- User consultation on file location (CHANGELOG.md vs project-specific)
|
|
624
|
-
- May need to adjust based on project preferences
|
|
625
|
-
- Version number may need coordination with other pending changes
|
|
626
|
-
|
|
627
|
-
---
|
|
628
|
-
|
|
629
|
-
*This PRP enables one-pass implementation by providing complete context, specific templates, validation gates, and comprehensive research findings.*
|