@dragonflymcp/plugin 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/.claude-plugin/plugin.json +26 -0
- package/LICENSE +21 -0
- package/README.md +126 -0
- package/dist/core/annotations.d.ts +71 -0
- package/dist/core/annotations.d.ts.map +1 -0
- package/dist/core/annotations.js +61 -0
- package/dist/core/annotations.js.map +1 -0
- package/dist/core/config.d.ts +66 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +131 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/dispatcher.d.ts +77 -0
- package/dist/core/dispatcher.d.ts.map +1 -0
- package/dist/core/dispatcher.js +132 -0
- package/dist/core/dispatcher.js.map +1 -0
- package/dist/core/server.d.ts +24 -0
- package/dist/core/server.d.ts.map +1 -0
- package/dist/core/server.js +41 -0
- package/dist/core/server.js.map +1 -0
- package/dist/core/store.d.ts +91 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +157 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/types.d.ts +128 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/dist/test-utils/store-harness.d.ts +41 -0
- package/dist/test-utils/store-harness.d.ts.map +1 -0
- package/dist/test-utils/store-harness.js +61 -0
- package/dist/test-utils/store-harness.js.map +1 -0
- package/dist/tools/analytics/aggregators.d.ts +18 -0
- package/dist/tools/analytics/aggregators.d.ts.map +1 -0
- package/dist/tools/analytics/aggregators.js +260 -0
- package/dist/tools/analytics/aggregators.js.map +1 -0
- package/dist/tools/analytics/aggregators.test.d.ts +2 -0
- package/dist/tools/analytics/aggregators.test.d.ts.map +1 -0
- package/dist/tools/analytics/aggregators.test.js +177 -0
- package/dist/tools/analytics/aggregators.test.js.map +1 -0
- package/dist/tools/analytics/drift.d.ts +15 -0
- package/dist/tools/analytics/drift.d.ts.map +1 -0
- package/dist/tools/analytics/drift.js +135 -0
- package/dist/tools/analytics/drift.js.map +1 -0
- package/dist/tools/analytics/drift.test.d.ts +2 -0
- package/dist/tools/analytics/drift.test.d.ts.map +1 -0
- package/dist/tools/analytics/drift.test.js +99 -0
- package/dist/tools/analytics/drift.test.js.map +1 -0
- package/dist/tools/analytics/index.d.ts +10 -0
- package/dist/tools/analytics/index.d.ts.map +1 -0
- package/dist/tools/analytics/index.js +192 -0
- package/dist/tools/analytics/index.js.map +1 -0
- package/dist/tools/analytics/learner.d.ts +29 -0
- package/dist/tools/analytics/learner.d.ts.map +1 -0
- package/dist/tools/analytics/learner.js +135 -0
- package/dist/tools/analytics/learner.js.map +1 -0
- package/dist/tools/analytics/learner.test.d.ts +2 -0
- package/dist/tools/analytics/learner.test.d.ts.map +1 -0
- package/dist/tools/analytics/learner.test.js +118 -0
- package/dist/tools/analytics/learner.test.js.map +1 -0
- package/dist/tools/analytics/observe.d.ts +22 -0
- package/dist/tools/analytics/observe.d.ts.map +1 -0
- package/dist/tools/analytics/observe.js +143 -0
- package/dist/tools/analytics/observe.js.map +1 -0
- package/dist/tools/analytics/observe.test.d.ts +2 -0
- package/dist/tools/analytics/observe.test.d.ts.map +1 -0
- package/dist/tools/analytics/observe.test.js +95 -0
- package/dist/tools/analytics/observe.test.js.map +1 -0
- package/dist/tools/analytics/store.d.ts +29 -0
- package/dist/tools/analytics/store.d.ts.map +1 -0
- package/dist/tools/analytics/store.js +192 -0
- package/dist/tools/analytics/store.js.map +1 -0
- package/dist/tools/analytics/types.d.ts +290 -0
- package/dist/tools/analytics/types.d.ts.map +1 -0
- package/dist/tools/analytics/types.js +7 -0
- package/dist/tools/analytics/types.js.map +1 -0
- package/dist/tools/ast/index.d.ts +8 -0
- package/dist/tools/ast/index.d.ts.map +1 -0
- package/dist/tools/ast/index.js +242 -0
- package/dist/tools/ast/index.js.map +1 -0
- package/dist/tools/ast/indexer.d.ts +41 -0
- package/dist/tools/ast/indexer.d.ts.map +1 -0
- package/dist/tools/ast/indexer.js +617 -0
- package/dist/tools/ast/indexer.js.map +1 -0
- package/dist/tools/ast/store.d.ts +87 -0
- package/dist/tools/ast/store.d.ts.map +1 -0
- package/dist/tools/ast/store.js +280 -0
- package/dist/tools/ast/store.js.map +1 -0
- package/dist/tools/ast/store.test.d.ts +6 -0
- package/dist/tools/ast/store.test.d.ts.map +1 -0
- package/dist/tools/ast/store.test.js +257 -0
- package/dist/tools/ast/store.test.js.map +1 -0
- package/dist/tools/bridge/bridge.d.ts +37 -0
- package/dist/tools/bridge/bridge.d.ts.map +1 -0
- package/dist/tools/bridge/bridge.js +82 -0
- package/dist/tools/bridge/bridge.js.map +1 -0
- package/dist/tools/bridge/bridge.test.d.ts +2 -0
- package/dist/tools/bridge/bridge.test.d.ts.map +1 -0
- package/dist/tools/bridge/bridge.test.js +119 -0
- package/dist/tools/bridge/bridge.test.js.map +1 -0
- package/dist/tools/bridge/index.d.ts +8 -0
- package/dist/tools/bridge/index.d.ts.map +1 -0
- package/dist/tools/bridge/index.js +153 -0
- package/dist/tools/bridge/index.js.map +1 -0
- package/dist/tools/bridge/store.d.ts +45 -0
- package/dist/tools/bridge/store.d.ts.map +1 -0
- package/dist/tools/bridge/store.js +307 -0
- package/dist/tools/bridge/store.js.map +1 -0
- package/dist/tools/bridge/store.test.d.ts +2 -0
- package/dist/tools/bridge/store.test.d.ts.map +1 -0
- package/dist/tools/bridge/store.test.js +180 -0
- package/dist/tools/bridge/store.test.js.map +1 -0
- package/dist/tools/bridge/types.d.ts +44 -0
- package/dist/tools/bridge/types.d.ts.map +1 -0
- package/dist/tools/bridge/types.js +6 -0
- package/dist/tools/bridge/types.js.map +1 -0
- package/dist/tools/evolve/algorithm.d.ts +33 -0
- package/dist/tools/evolve/algorithm.d.ts.map +1 -0
- package/dist/tools/evolve/algorithm.js +64 -0
- package/dist/tools/evolve/algorithm.js.map +1 -0
- package/dist/tools/evolve/algorithm.test.d.ts +6 -0
- package/dist/tools/evolve/algorithm.test.d.ts.map +1 -0
- package/dist/tools/evolve/algorithm.test.js +138 -0
- package/dist/tools/evolve/algorithm.test.js.map +1 -0
- package/dist/tools/evolve/index.d.ts +11 -0
- package/dist/tools/evolve/index.d.ts.map +1 -0
- package/dist/tools/evolve/index.js +300 -0
- package/dist/tools/evolve/index.js.map +1 -0
- package/dist/tools/evolve/store.d.ts +27 -0
- package/dist/tools/evolve/store.d.ts.map +1 -0
- package/dist/tools/evolve/store.js +147 -0
- package/dist/tools/evolve/store.js.map +1 -0
- package/dist/tools/evolve/store.test.d.ts +6 -0
- package/dist/tools/evolve/store.test.d.ts.map +1 -0
- package/dist/tools/evolve/store.test.js +162 -0
- package/dist/tools/evolve/store.test.js.map +1 -0
- package/dist/tools/evolve/types.d.ts +38 -0
- package/dist/tools/evolve/types.d.ts.map +1 -0
- package/dist/tools/evolve/types.js +6 -0
- package/dist/tools/evolve/types.js.map +1 -0
- package/dist/tools/framework/content-loader.d.ts +45 -0
- package/dist/tools/framework/content-loader.d.ts.map +1 -0
- package/dist/tools/framework/content-loader.js +258 -0
- package/dist/tools/framework/content-loader.js.map +1 -0
- package/dist/tools/framework/content-loader.test.d.ts +5 -0
- package/dist/tools/framework/content-loader.test.d.ts.map +1 -0
- package/dist/tools/framework/content-loader.test.js +262 -0
- package/dist/tools/framework/content-loader.test.js.map +1 -0
- package/dist/tools/framework/index.d.ts +30 -0
- package/dist/tools/framework/index.d.ts.map +1 -0
- package/dist/tools/framework/index.js +517 -0
- package/dist/tools/framework/index.js.map +1 -0
- package/dist/tools/framework/session.d.ts +85 -0
- package/dist/tools/framework/session.d.ts.map +1 -0
- package/dist/tools/framework/session.js +311 -0
- package/dist/tools/framework/session.js.map +1 -0
- package/dist/tools/framework/session.test.d.ts +5 -0
- package/dist/tools/framework/session.test.d.ts.map +1 -0
- package/dist/tools/framework/session.test.js +291 -0
- package/dist/tools/framework/session.test.js.map +1 -0
- package/dist/tools/framework/sync-evaluator.d.ts +41 -0
- package/dist/tools/framework/sync-evaluator.d.ts.map +1 -0
- package/dist/tools/framework/sync-evaluator.js +298 -0
- package/dist/tools/framework/sync-evaluator.js.map +1 -0
- package/dist/tools/framework/sync-evaluator.test.d.ts +5 -0
- package/dist/tools/framework/sync-evaluator.test.d.ts.map +1 -0
- package/dist/tools/framework/sync-evaluator.test.js +288 -0
- package/dist/tools/framework/sync-evaluator.test.js.map +1 -0
- package/dist/tools/framework/types.d.ts +279 -0
- package/dist/tools/framework/types.d.ts.map +1 -0
- package/dist/tools/framework/types.js +6 -0
- package/dist/tools/framework/types.js.map +1 -0
- package/dist/tools/framework/workflow-intelligence.d.ts +55 -0
- package/dist/tools/framework/workflow-intelligence.d.ts.map +1 -0
- package/dist/tools/framework/workflow-intelligence.js +199 -0
- package/dist/tools/framework/workflow-intelligence.js.map +1 -0
- package/dist/tools/framework/workflow-intelligence.test.d.ts +6 -0
- package/dist/tools/framework/workflow-intelligence.test.d.ts.map +1 -0
- package/dist/tools/framework/workflow-intelligence.test.js +257 -0
- package/dist/tools/framework/workflow-intelligence.test.js.map +1 -0
- package/dist/tools/framework/workflow-planner.d.ts +10 -0
- package/dist/tools/framework/workflow-planner.d.ts.map +1 -0
- package/dist/tools/framework/workflow-planner.js +214 -0
- package/dist/tools/framework/workflow-planner.js.map +1 -0
- package/dist/tools/framework/workflow-planner.test.d.ts +5 -0
- package/dist/tools/framework/workflow-planner.test.d.ts.map +1 -0
- package/dist/tools/framework/workflow-planner.test.js +137 -0
- package/dist/tools/framework/workflow-planner.test.js.map +1 -0
- package/dist/tools/knowledge/bridge.d.ts +34 -0
- package/dist/tools/knowledge/bridge.d.ts.map +1 -0
- package/dist/tools/knowledge/bridge.js +249 -0
- package/dist/tools/knowledge/bridge.js.map +1 -0
- package/dist/tools/knowledge/bridge.test.d.ts +5 -0
- package/dist/tools/knowledge/bridge.test.d.ts.map +1 -0
- package/dist/tools/knowledge/bridge.test.js +221 -0
- package/dist/tools/knowledge/bridge.test.js.map +1 -0
- package/dist/tools/knowledge/extractor.d.ts +22 -0
- package/dist/tools/knowledge/extractor.d.ts.map +1 -0
- package/dist/tools/knowledge/extractor.js +154 -0
- package/dist/tools/knowledge/extractor.js.map +1 -0
- package/dist/tools/knowledge/index.d.ts +12 -0
- package/dist/tools/knowledge/index.d.ts.map +1 -0
- package/dist/tools/knowledge/index.js +505 -0
- package/dist/tools/knowledge/index.js.map +1 -0
- package/dist/tools/knowledge/retrieval.d.ts +28 -0
- package/dist/tools/knowledge/retrieval.d.ts.map +1 -0
- package/dist/tools/knowledge/retrieval.js +164 -0
- package/dist/tools/knowledge/retrieval.js.map +1 -0
- package/dist/tools/knowledge/store.d.ts +96 -0
- package/dist/tools/knowledge/store.d.ts.map +1 -0
- package/dist/tools/knowledge/store.js +562 -0
- package/dist/tools/knowledge/store.js.map +1 -0
- package/dist/tools/knowledge/store.test.d.ts +6 -0
- package/dist/tools/knowledge/store.test.d.ts.map +1 -0
- package/dist/tools/knowledge/store.test.js +385 -0
- package/dist/tools/knowledge/store.test.js.map +1 -0
- package/dist/tools/knowledge/types.d.ts +168 -0
- package/dist/tools/knowledge/types.d.ts.map +1 -0
- package/dist/tools/knowledge/types.js +6 -0
- package/dist/tools/knowledge/types.js.map +1 -0
- package/dist/tools/memory/evolution.d.ts +31 -0
- package/dist/tools/memory/evolution.d.ts.map +1 -0
- package/dist/tools/memory/evolution.js +130 -0
- package/dist/tools/memory/evolution.js.map +1 -0
- package/dist/tools/memory/index.d.ts +11 -0
- package/dist/tools/memory/index.d.ts.map +1 -0
- package/dist/tools/memory/index.js +239 -0
- package/dist/tools/memory/index.js.map +1 -0
- package/dist/tools/memory/store.d.ts +75 -0
- package/dist/tools/memory/store.d.ts.map +1 -0
- package/dist/tools/memory/store.js +398 -0
- package/dist/tools/memory/store.js.map +1 -0
- package/dist/tools/memory/store.test.d.ts +6 -0
- package/dist/tools/memory/store.test.d.ts.map +1 -0
- package/dist/tools/memory/store.test.js +429 -0
- package/dist/tools/memory/store.test.js.map +1 -0
- package/dist/tools/memory/types.d.ts +171 -0
- package/dist/tools/memory/types.d.ts.map +1 -0
- package/dist/tools/memory/types.js +6 -0
- package/dist/tools/memory/types.js.map +1 -0
- package/dist/tools/pipeline/composer.d.ts +29 -0
- package/dist/tools/pipeline/composer.d.ts.map +1 -0
- package/dist/tools/pipeline/composer.js +225 -0
- package/dist/tools/pipeline/composer.js.map +1 -0
- package/dist/tools/pipeline/composer.test.d.ts +2 -0
- package/dist/tools/pipeline/composer.test.d.ts.map +1 -0
- package/dist/tools/pipeline/composer.test.js +162 -0
- package/dist/tools/pipeline/composer.test.js.map +1 -0
- package/dist/tools/pipeline/index.d.ts +8 -0
- package/dist/tools/pipeline/index.d.ts.map +1 -0
- package/dist/tools/pipeline/index.js +102 -0
- package/dist/tools/pipeline/index.js.map +1 -0
- package/dist/tools/pipeline/planner.d.ts +10 -0
- package/dist/tools/pipeline/planner.d.ts.map +1 -0
- package/dist/tools/pipeline/planner.js +147 -0
- package/dist/tools/pipeline/planner.js.map +1 -0
- package/dist/tools/pipeline/planner.test.d.ts +2 -0
- package/dist/tools/pipeline/planner.test.d.ts.map +1 -0
- package/dist/tools/pipeline/planner.test.js +96 -0
- package/dist/tools/pipeline/planner.test.js.map +1 -0
- package/dist/tools/pipeline/preconditions.d.ts +14 -0
- package/dist/tools/pipeline/preconditions.d.ts.map +1 -0
- package/dist/tools/pipeline/preconditions.js +65 -0
- package/dist/tools/pipeline/preconditions.js.map +1 -0
- package/dist/tools/pipeline/preconditions.test.d.ts +2 -0
- package/dist/tools/pipeline/preconditions.test.d.ts.map +1 -0
- package/dist/tools/pipeline/preconditions.test.js +74 -0
- package/dist/tools/pipeline/preconditions.test.js.map +1 -0
- package/dist/tools/pipeline/types.d.ts +105 -0
- package/dist/tools/pipeline/types.d.ts.map +1 -0
- package/dist/tools/pipeline/types.js +6 -0
- package/dist/tools/pipeline/types.js.map +1 -0
- package/dist/tools/repair/index.d.ts +8 -0
- package/dist/tools/repair/index.d.ts.map +1 -0
- package/dist/tools/repair/index.js +384 -0
- package/dist/tools/repair/index.js.map +1 -0
- package/dist/tools/repair/repairer.d.ts +67 -0
- package/dist/tools/repair/repairer.d.ts.map +1 -0
- package/dist/tools/repair/repairer.js +257 -0
- package/dist/tools/repair/repairer.js.map +1 -0
- package/dist/tools/repair/repairer.test.d.ts +6 -0
- package/dist/tools/repair/repairer.test.d.ts.map +1 -0
- package/dist/tools/repair/repairer.test.js +159 -0
- package/dist/tools/repair/repairer.test.js.map +1 -0
- package/dist/tools/semantic/chunker.d.ts +23 -0
- package/dist/tools/semantic/chunker.d.ts.map +1 -0
- package/dist/tools/semantic/chunker.js +244 -0
- package/dist/tools/semantic/chunker.js.map +1 -0
- package/dist/tools/semantic/embedder.d.ts +16 -0
- package/dist/tools/semantic/embedder.d.ts.map +1 -0
- package/dist/tools/semantic/embedder.js +88 -0
- package/dist/tools/semantic/embedder.js.map +1 -0
- package/dist/tools/semantic/index.d.ts +8 -0
- package/dist/tools/semantic/index.d.ts.map +1 -0
- package/dist/tools/semantic/index.js +144 -0
- package/dist/tools/semantic/index.js.map +1 -0
- package/dist/tools/semantic/store.d.ts +31 -0
- package/dist/tools/semantic/store.d.ts.map +1 -0
- package/dist/tools/semantic/store.js +168 -0
- package/dist/tools/semantic/store.js.map +1 -0
- package/dist/tools/semantic/store.test.d.ts +6 -0
- package/dist/tools/semantic/store.test.d.ts.map +1 -0
- package/dist/tools/semantic/store.test.js +240 -0
- package/dist/tools/semantic/store.test.js.map +1 -0
- package/dist/tools/spec/generator.d.ts +32 -0
- package/dist/tools/spec/generator.d.ts.map +1 -0
- package/dist/tools/spec/generator.js +278 -0
- package/dist/tools/spec/generator.js.map +1 -0
- package/dist/tools/spec/generator.test.d.ts +6 -0
- package/dist/tools/spec/generator.test.d.ts.map +1 -0
- package/dist/tools/spec/generator.test.js +208 -0
- package/dist/tools/spec/generator.test.js.map +1 -0
- package/dist/tools/spec/index.d.ts +11 -0
- package/dist/tools/spec/index.d.ts.map +1 -0
- package/dist/tools/spec/index.js +426 -0
- package/dist/tools/spec/index.js.map +1 -0
- package/dist/tools/spec/store.d.ts +24 -0
- package/dist/tools/spec/store.d.ts.map +1 -0
- package/dist/tools/spec/store.js +104 -0
- package/dist/tools/spec/store.js.map +1 -0
- package/dist/tools/spec/store.test.d.ts +6 -0
- package/dist/tools/spec/store.test.d.ts.map +1 -0
- package/dist/tools/spec/store.test.js +173 -0
- package/dist/tools/spec/store.test.js.map +1 -0
- package/dist/tools/spec/types.d.ts +61 -0
- package/dist/tools/spec/types.d.ts.map +1 -0
- package/dist/tools/spec/types.js +6 -0
- package/dist/tools/spec/types.js.map +1 -0
- package/dist/tools/state/index.d.ts +11 -0
- package/dist/tools/state/index.d.ts.map +1 -0
- package/dist/tools/state/index.js +386 -0
- package/dist/tools/state/index.js.map +1 -0
- package/dist/tools/state/migrate.d.ts +39 -0
- package/dist/tools/state/migrate.d.ts.map +1 -0
- package/dist/tools/state/migrate.js +242 -0
- package/dist/tools/state/migrate.js.map +1 -0
- package/dist/tools/state/migrate.test.d.ts +2 -0
- package/dist/tools/state/migrate.test.d.ts.map +1 -0
- package/dist/tools/state/migrate.test.js +265 -0
- package/dist/tools/state/migrate.test.js.map +1 -0
- package/dist/tools/state/store.d.ts +107 -0
- package/dist/tools/state/store.d.ts.map +1 -0
- package/dist/tools/state/store.js +365 -0
- package/dist/tools/state/store.js.map +1 -0
- package/dist/tools/state/store.test.d.ts +5 -0
- package/dist/tools/state/store.test.d.ts.map +1 -0
- package/dist/tools/state/store.test.js +293 -0
- package/dist/tools/state/store.test.js.map +1 -0
- package/dist/tools/state/types.d.ts +90 -0
- package/dist/tools/state/types.d.ts.map +1 -0
- package/dist/tools/state/types.js +6 -0
- package/dist/tools/state/types.js.map +1 -0
- package/dist/tools/testing/analyzer.d.ts +44 -0
- package/dist/tools/testing/analyzer.d.ts.map +1 -0
- package/dist/tools/testing/analyzer.js +280 -0
- package/dist/tools/testing/analyzer.js.map +1 -0
- package/dist/tools/testing/generator.d.ts +57 -0
- package/dist/tools/testing/generator.d.ts.map +1 -0
- package/dist/tools/testing/generator.js +478 -0
- package/dist/tools/testing/generator.js.map +1 -0
- package/dist/tools/testing/generator.test.d.ts +6 -0
- package/dist/tools/testing/generator.test.d.ts.map +1 -0
- package/dist/tools/testing/generator.test.js +285 -0
- package/dist/tools/testing/generator.test.js.map +1 -0
- package/dist/tools/testing/index.d.ts +8 -0
- package/dist/tools/testing/index.d.ts.map +1 -0
- package/dist/tools/testing/index.js +373 -0
- package/dist/tools/testing/index.js.map +1 -0
- package/dist/utils/embedder.d.ts +7 -0
- package/dist/utils/embedder.d.ts.map +1 -0
- package/dist/utils/embedder.js +13 -0
- package/dist/utils/embedder.js.map +1 -0
- package/dist/utils/execution.d.ts +68 -0
- package/dist/utils/execution.d.ts.map +1 -0
- package/dist/utils/execution.js +467 -0
- package/dist/utils/execution.js.map +1 -0
- package/dist/utils/graph.d.ts +26 -0
- package/dist/utils/graph.d.ts.map +1 -0
- package/dist/utils/graph.js +32 -0
- package/dist/utils/graph.js.map +1 -0
- package/dist/utils/guards.d.ts +32 -0
- package/dist/utils/guards.d.ts.map +1 -0
- package/dist/utils/guards.js +40 -0
- package/dist/utils/guards.js.map +1 -0
- package/dist/utils/ids.d.ts +5 -0
- package/dist/utils/ids.d.ts.map +1 -0
- package/dist/utils/ids.js +7 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/languages.d.ts +34 -0
- package/dist/utils/languages.d.ts.map +1 -0
- package/dist/utils/languages.js +153 -0
- package/dist/utils/languages.js.map +1 -0
- package/dist/utils/lazy.d.ts +17 -0
- package/dist/utils/lazy.d.ts.map +1 -0
- package/dist/utils/lazy.js +35 -0
- package/dist/utils/lazy.js.map +1 -0
- package/dist/utils/project.d.ts +41 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +82 -0
- package/dist/utils/project.js.map +1 -0
- package/dist/utils/responses.d.ts +27 -0
- package/dist/utils/responses.d.ts.map +1 -0
- package/dist/utils/responses.js +72 -0
- package/dist/utils/responses.js.map +1 -0
- package/dist/utils/vectors.d.ts +33 -0
- package/dist/utils/vectors.d.ts.map +1 -0
- package/dist/utils/vectors.js +80 -0
- package/dist/utils/vectors.js.map +1 -0
- package/dist/utils/vectors.test.d.ts +6 -0
- package/dist/utils/vectors.test.d.ts.map +1 -0
- package/dist/utils/vectors.test.js +96 -0
- package/dist/utils/vectors.test.js.map +1 -0
- package/package.json +69 -0
- package/scripts/init.js +142 -0
- package/templates/CLAUDE.md.template +96 -0
- package/templates/agents/architecture-concept.md +237 -0
- package/templates/agents/checkpoint-concept.md +218 -0
- package/templates/agents/code-analysis-concept.md +171 -0
- package/templates/agents/compete-control.md +44 -0
- package/templates/agents/compete-evaluator.md +87 -0
- package/templates/agents/compete-treatment.md +55 -0
- package/templates/agents/context-concept.md +254 -0
- package/templates/agents/debate-advocate.md +127 -0
- package/templates/agents/debate-critic.md +119 -0
- package/templates/agents/debate-synthesis.md +160 -0
- package/templates/agents/documentation-concept.md +294 -0
- package/templates/agents/implementation-concept.md +165 -0
- package/templates/agents/quality-concept.md +299 -0
- package/templates/agents/research-concept.md +169 -0
- package/templates/agents/security-concept.md +255 -0
- package/templates/agents/story-concept.md +207 -0
- package/templates/agents/verification-concept.md +456 -0
- package/templates/agents/version-concept.md +163 -0
- package/templates/anchors/directory.anchor.yaml.template +53 -0
- package/templates/anchors/rules.anchor.yaml.template +70 -0
- package/templates/anchors/safety.anchor.yaml.template +96 -0
- package/templates/claude-md-managed.template +105 -0
- package/templates/commands/cache.md.template +439 -0
- package/templates/commands/checkpoint.md.template +121 -0
- package/templates/commands/classify.md.template +138 -0
- package/templates/commands/compete.md.template +90 -0
- package/templates/commands/costs.md.template +111 -0
- package/templates/commands/estimate.md.template +196 -0
- package/templates/commands/explore.md.template +186 -0
- package/templates/commands/feature.md.template +216 -0
- package/templates/commands/forget.md.template +104 -0
- package/templates/commands/global-recall.md.template +250 -0
- package/templates/commands/global-remember.md.template +187 -0
- package/templates/commands/health.md.template +107 -0
- package/templates/commands/help.md.template +253 -0
- package/templates/commands/observe.md.template +211 -0
- package/templates/commands/pr-review.md.template +164 -0
- package/templates/commands/predict-cost.md.template +251 -0
- package/templates/commands/profile.md.template +142 -0
- package/templates/commands/reasoning.md.template +228 -0
- package/templates/commands/recall.md.template +197 -0
- package/templates/commands/remember.md.template +148 -0
- package/templates/commands/replay.md.template +449 -0
- package/templates/commands/restore.md.template +87 -0
- package/templates/commands/retrospective.md.template +47 -0
- package/templates/commands/slo.md.template +286 -0
- package/templates/commands/spec.md.template +164 -0
- package/templates/commands/status.md.template +53 -0
- package/templates/commands/sync.md.template +321 -0
- package/templates/commands/task.md.template +86 -0
- package/templates/commands/trace.md.template +86 -0
- package/templates/commands/visualize.md.template +216 -0
- package/templates/commands/workflow.md.template +375 -0
- package/templates/concepts/README.md +329 -0
- package/templates/concepts/architecture.md.template +74 -0
- package/templates/concepts/code-analysis.md.template +186 -0
- package/templates/concepts/context-compactor.md.template +393 -0
- package/templates/concepts/context.md.template +62 -0
- package/templates/concepts/documentation.md.template +452 -0
- package/templates/concepts/estimator.md.template +214 -0
- package/templates/concepts/exploration.md.template +257 -0
- package/templates/concepts/global-memory.md.template +222 -0
- package/templates/concepts/implementation.md.template +62 -0
- package/templates/concepts/pr-review.md.template +277 -0
- package/templates/concepts/project-profile.md.template +358 -0
- package/templates/concepts/quality.md.template +63 -0
- package/templates/concepts/react-fallback.md.template +286 -0
- package/templates/concepts/research.md.template +221 -0
- package/templates/concepts/retrospective.md.template +93 -0
- package/templates/concepts/security.md.template +442 -0
- package/templates/concepts/slo.md.template +274 -0
- package/templates/concepts/spec.md.template +71 -0
- package/templates/concepts/story.md.template +50 -0
- package/templates/concepts/tool-router.md.template +289 -0
- package/templates/concepts/verification-synthesizer.md.template +279 -0
- package/templates/concepts/version.md.template +61 -0
- package/templates/config.yaml.template +347 -0
- package/templates/examples/README.md +77 -0
- package/templates/examples/architecture/api-design.yaml.template +286 -0
- package/templates/examples/architecture/oauth-authentication.yaml.template +305 -0
- package/templates/health/status.yaml.template +120 -0
- package/templates/hooks/concept-complete.sh.template +45 -0
- package/templates/hooks/lib/common.sh.template +160 -0
- package/templates/hooks/post-commit.sh.template +37 -0
- package/templates/hooks/post-concept-action.template +39 -0
- package/templates/hooks/post-tool-structure-check.sh.template +138 -0
- package/templates/hooks/post-tool-use.sh.template +51 -0
- package/templates/hooks/pre-compact.sh.template +48 -0
- package/templates/hooks/pre-tool-grounding.template +148 -0
- package/templates/hooks/session-exit-checkpoint.sh.template +35 -0
- package/templates/hooks/session-start.sh.template +67 -0
- package/templates/hooks/statusline.sh.template +148 -0
- package/templates/hooks/stop.sh.template +45 -0
- package/templates/hooks/subagent-stop.sh.template +40 -0
- package/templates/hooks/sync-blocked.sh.template +45 -0
- package/templates/hooks/timeout.sh.template +48 -0
- package/templates/hooks/user-prompt-submit.sh.template +68 -0
- package/templates/koan/README.md +58 -0
- package/templates/memory/index.yaml.template +48 -0
- package/templates/memory/procedural/debugging.yaml.template +24 -0
- package/templates/memory/procedural/workflows.yaml.template +22 -0
- package/templates/memory/semantic/architecture.yaml.template +21 -0
- package/templates/memory/semantic/conventions.yaml.template +18 -0
- package/templates/memory/semantic/patterns.yaml.template +21 -0
- package/templates/memory/semantic/preferences.yaml.template +18 -0
- package/templates/prompts/architecture.yaml.template +349 -0
- package/templates/prompts/context.yaml.template +384 -0
- package/templates/prompts/implementation.yaml.template +365 -0
- package/templates/prompts/planning.yaml.template +303 -0
- package/templates/prompts/quality.yaml.template +345 -0
- package/templates/prompts/retrospective.yaml.template +231 -0
- package/templates/prompts/slo.yaml.template +360 -0
- package/templates/prompts/story.yaml.template +236 -0
- package/templates/prompts/tree-of-thoughts.yaml.template +299 -0
- package/templates/prompts/verification.yaml.template +286 -0
- package/templates/prompts/version.yaml.template +279 -0
- package/templates/schemas/agent-schema.json +98 -0
- package/templates/schemas/architecture.schema.json +69 -0
- package/templates/schemas/config-schema.json +165 -0
- package/templates/schemas/implementation.schema.json +75 -0
- package/templates/schemas/planning.schema.json +243 -0
- package/templates/schemas/provenance.schema.json +111 -0
- package/templates/schemas/retrospective.schema.json +174 -0
- package/templates/schemas/review.schema.json +284 -0
- package/templates/schemas/slo.schema.json +443 -0
- package/templates/schemas/story.schema.json +68 -0
- package/templates/schemas/sync-schema.json +196 -0
- package/templates/schemas/task.schema.json +127 -0
- package/templates/schemas/tree-of-thoughts.schema.json +175 -0
- package/templates/schemas/verification.schema.json +106 -0
- package/templates/settings.full.json.template +135 -0
- package/templates/settings.minimal.json.template +68 -0
- package/templates/settings.standard.json.template +135 -0
- package/templates/skills/acceptance-criteria-generation.md.template +330 -0
- package/templates/skills/accessibility-checking.md.template +341 -0
- package/templates/skills/api-design-patterns.md.template +395 -0
- package/templates/skills/batch-processing.md.template +605 -0
- package/templates/skills/branch-strategy.md.template +362 -0
- package/templates/skills/changelog-generation.md.template +403 -0
- package/templates/skills/code-coverage-analysis.md.template +362 -0
- package/templates/skills/code-style-enforcement.md.template +294 -0
- package/templates/skills/code-template-patterns.md.template +419 -0
- package/templates/skills/concept-development.md.template +159 -0
- package/templates/skills/context-prioritization.md.template +306 -0
- package/templates/skills/cost-optimization.md.template +482 -0
- package/templates/skills/cross-project-knowledge.md.template +316 -0
- package/templates/skills/dependency-impact-analysis.md.template +263 -0
- package/templates/skills/documentation-generation.md.template +409 -0
- package/templates/skills/effort-estimation.md.template +350 -0
- package/templates/skills/error-classification.md.template +709 -0
- package/templates/skills/error-messages.md.template +339 -0
- package/templates/skills/ide-diagnostics.md.template +480 -0
- package/templates/skills/incremental-loading.md.template +574 -0
- package/templates/skills/output-caching.md.template +524 -0
- package/templates/skills/performance-estimation.md.template +325 -0
- package/templates/skills/performance-testing-patterns.md.template +341 -0
- package/templates/skills/phase2-optimizations-summary.md.template +458 -0
- package/templates/skills/progressive-disclosure-pattern.md.template +190 -0
- package/templates/skills/project-structure.md.template +372 -0
- package/templates/skills/provenance-analysis.md.template +609 -0
- package/templates/skills/react-executor.md.template +366 -0
- package/templates/skills/refactoring-patterns.md.template +422 -0
- package/templates/skills/release-management.md.template +373 -0
- package/templates/skills/requirement-prioritization.md.template +357 -0
- package/templates/skills/schema-validation.md.template +321 -0
- package/templates/skills/security-design-patterns.md.template +692 -0
- package/templates/skills/security-vulnerability-scanning.md.template +663 -0
- package/templates/skills/semantic-memory.md.template +266 -0
- package/templates/skills/semantic-versioning.md.template +371 -0
- package/templates/skills/smart-retry.md.template +676 -0
- package/templates/skills/smart-summarization.md.template +358 -0
- package/templates/skills/story-decomposition.md.template +278 -0
- package/templates/skills/synchronization-patterns.md.template +303 -0
- package/templates/skills/test-generation-strategy.md.template +247 -0
- package/templates/skills/workflow-replay.md.template +478 -0
- package/templates/skills/wysiwid-principles.md.template +364 -0
- package/templates/skills-manifest.yaml.template +526 -0
- package/templates/stubs/agents/architecture-concept.md +20 -0
- package/templates/stubs/agents/checkpoint-concept.md +19 -0
- package/templates/stubs/agents/code-analysis-concept.md +36 -0
- package/templates/stubs/agents/context-concept.md +37 -0
- package/templates/stubs/agents/debate-advocate.md +12 -0
- package/templates/stubs/agents/debate-critic.md +12 -0
- package/templates/stubs/agents/debate-synthesis.md +12 -0
- package/templates/stubs/agents/documentation-concept.md +39 -0
- package/templates/stubs/agents/implementation-concept.md +41 -0
- package/templates/stubs/agents/quality-concept.md +41 -0
- package/templates/stubs/agents/research-concept.md +35 -0
- package/templates/stubs/agents/security-concept.md +40 -0
- package/templates/stubs/agents/spec-concept.md +35 -0
- package/templates/stubs/agents/story-concept.md +36 -0
- package/templates/stubs/agents/verification-concept.md +39 -0
- package/templates/stubs/agents/version-concept.md +37 -0
- package/templates/stubs/commands/cache.md.template +2 -0
- package/templates/stubs/commands/checkpoint.md.template +2 -0
- package/templates/stubs/commands/classify.md.template +2 -0
- package/templates/stubs/commands/compete.md.template +2 -0
- package/templates/stubs/commands/costs.md.template +2 -0
- package/templates/stubs/commands/estimate.md.template +2 -0
- package/templates/stubs/commands/explore.md.template +2 -0
- package/templates/stubs/commands/feature.md.template +2 -0
- package/templates/stubs/commands/forget.md.template +2 -0
- package/templates/stubs/commands/global-recall.md.template +2 -0
- package/templates/stubs/commands/global-remember.md.template +2 -0
- package/templates/stubs/commands/health.md.template +2 -0
- package/templates/stubs/commands/help.md.template +2 -0
- package/templates/stubs/commands/observe.md.template +2 -0
- package/templates/stubs/commands/pr-review.md.template +2 -0
- package/templates/stubs/commands/predict-cost.md.template +2 -0
- package/templates/stubs/commands/profile.md.template +2 -0
- package/templates/stubs/commands/reasoning.md.template +2 -0
- package/templates/stubs/commands/recall.md.template +2 -0
- package/templates/stubs/commands/remember.md.template +2 -0
- package/templates/stubs/commands/replay.md.template +2 -0
- package/templates/stubs/commands/restore.md.template +2 -0
- package/templates/stubs/commands/retrospective.md.template +2 -0
- package/templates/stubs/commands/slo.md.template +2 -0
- package/templates/stubs/commands/spec.md.template +2 -0
- package/templates/stubs/commands/sync.md.template +2 -0
- package/templates/stubs/commands/task.md.template +2 -0
- package/templates/stubs/commands/trace.md.template +2 -0
- package/templates/stubs/commands/visualize.md.template +2 -0
- package/templates/stubs/commands/workflow.md.template +2 -0
- package/templates/synchronizations/archive/adaptive-learning.yaml.template +595 -0
- package/templates/synchronizations/archive/code-understanding-flow.yaml.template +533 -0
- package/templates/synchronizations/archive/collaboration-flow.yaml.template +521 -0
- package/templates/synchronizations/archive/context-folding.yaml.template +353 -0
- package/templates/synchronizations/archive/dead-letter-queue.yaml.template +530 -0
- package/templates/synchronizations/archive/documentation-flow.yaml.template +560 -0
- package/templates/synchronizations/archive/error-recovery-flow.yaml.template +1031 -0
- package/templates/synchronizations/archive/execution-loop.yaml.template +336 -0
- package/templates/synchronizations/archive/exploration-flow.yaml.template +369 -0
- package/templates/synchronizations/archive/feature-development.yaml.template +2145 -0
- package/templates/synchronizations/archive/learning-loop.yaml.template +657 -0
- package/templates/synchronizations/archive/multi-verify.yaml.template +346 -0
- package/templates/synchronizations/archive/planning-flow.yaml.template +312 -0
- package/templates/synchronizations/archive/retrospective-flow.yaml.template +277 -0
- package/templates/synchronizations/archive/security-flow.yaml.template +477 -0
- package/templates/synchronizations/archive/slo-monitoring.yaml.template +209 -0
- package/templates/synchronizations/archive/task-routing.yaml.template +489 -0
- package/templates/synchronizations/archive/test-driven.yaml.template +291 -0
- package/templates/synchronizations/archive/tool-routing.yaml.template +326 -0
- package/templates/synchronizations/archive/verification-flow.yaml.template +407 -0
- package/templates/synchronizations/error-policy.yaml.template +188 -0
- package/templates/synchronizations/main.sync.template +319 -0
- package/templates/synchronizations/slo-registry.yaml.template +229 -0
- package/templates/tasks/task.yaml.template +67 -0
- package/templates/zen-profile.yaml.template +14 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Synchronization Patterns
|
|
3
|
+
description: Common patterns and best practices for writing effective synchronization rules in Zen WYSIWID workflows
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
trigger_keywords: [synchronization, sync, workflow, orchestration, rules, patterns, when, where, then]
|
|
6
|
+
author: Zen Architecture
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Synchronization Patterns - Expert Skill
|
|
10
|
+
|
|
11
|
+
Master patterns for writing effective, maintainable synchronization rules.
|
|
12
|
+
|
|
13
|
+
## Core Synchronization Structure
|
|
14
|
+
|
|
15
|
+
```yaml
|
|
16
|
+
synchronizations:
|
|
17
|
+
- id: "unique-rule-id"
|
|
18
|
+
when:
|
|
19
|
+
concept: "source-concept"
|
|
20
|
+
action: "action-name"
|
|
21
|
+
status: "completed"
|
|
22
|
+
where:
|
|
23
|
+
query: "conditional-expression"
|
|
24
|
+
then:
|
|
25
|
+
- concept: "target-concept"
|
|
26
|
+
action: "action-name"
|
|
27
|
+
model: "sonnet|opus"
|
|
28
|
+
inputs: {...}
|
|
29
|
+
provenance:
|
|
30
|
+
flow_id: "auto|${parent.flow_id}"
|
|
31
|
+
reason: "Why this rule triggers"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Common Patterns
|
|
35
|
+
|
|
36
|
+
### 1. Sequential Chain
|
|
37
|
+
```yaml
|
|
38
|
+
story → architecture → implementation → quality → version
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. Conditional Branch
|
|
42
|
+
```yaml
|
|
43
|
+
architecture → implementation (if risk == 'low')
|
|
44
|
+
→ human-review (if risk == 'high')
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 3. Parallel Execution
|
|
48
|
+
|
|
49
|
+
**Pattern**: Multiple independent actions triggered by same completion.
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
implementation → quality.review [parallel]
|
|
53
|
+
→ quality.test [parallel]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Example**:
|
|
57
|
+
```yaml
|
|
58
|
+
synchronizations:
|
|
59
|
+
- id: "impl-to-quality-review"
|
|
60
|
+
when:
|
|
61
|
+
concept: "implementation"
|
|
62
|
+
action: "generate"
|
|
63
|
+
status: "completed"
|
|
64
|
+
where:
|
|
65
|
+
query: "implementation.status == 'completed' AND implementation.blockers.length == 0"
|
|
66
|
+
then:
|
|
67
|
+
- concept: "quality"
|
|
68
|
+
action: "review"
|
|
69
|
+
model: "sonnet"
|
|
70
|
+
parallel: true # Can run concurrently with other rules
|
|
71
|
+
inputs:
|
|
72
|
+
implementation_id: "${implementation.id}"
|
|
73
|
+
files: "${implementation.files_changed}"
|
|
74
|
+
|
|
75
|
+
- id: "impl-to-quality-test"
|
|
76
|
+
when:
|
|
77
|
+
concept: "implementation"
|
|
78
|
+
action: "generate"
|
|
79
|
+
status: "completed"
|
|
80
|
+
where:
|
|
81
|
+
query: "implementation.status == 'completed' AND implementation.test_files.length > 0"
|
|
82
|
+
then:
|
|
83
|
+
- concept: "quality"
|
|
84
|
+
action: "test"
|
|
85
|
+
model: "sonnet"
|
|
86
|
+
parallel: true # Can run concurrently with impl-to-quality-review
|
|
87
|
+
inputs:
|
|
88
|
+
implementation_id: "${implementation.id}"
|
|
89
|
+
test_paths: "${implementation.test_files}"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Benefits**:
|
|
93
|
+
- 50% faster execution (review + test run simultaneously)
|
|
94
|
+
- Same total cost (both actions run anyway)
|
|
95
|
+
- Independent actions don't block each other
|
|
96
|
+
- Better resource utilization
|
|
97
|
+
|
|
98
|
+
**Requirements**:
|
|
99
|
+
- Actions must be truly independent (no shared state)
|
|
100
|
+
- Both read from implementation, neither modifies it
|
|
101
|
+
- Results collected before next sync evaluation
|
|
102
|
+
|
|
103
|
+
**Implementation**:
|
|
104
|
+
When multiple sync rules match with `parallel: true`:
|
|
105
|
+
1. Invoke all matched concepts simultaneously (single message with multiple Task tool calls)
|
|
106
|
+
2. Wait for all to complete
|
|
107
|
+
3. Evaluate next synchronization with all results
|
|
108
|
+
|
|
109
|
+
### 4. Error Recovery
|
|
110
|
+
```yaml
|
|
111
|
+
quality → version.commit (if approved)
|
|
112
|
+
→ implementation.refactor (if needs_changes)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 5. Iterative Refinement
|
|
116
|
+
```yaml
|
|
117
|
+
story → architecture → story.clarify (if ambiguous)
|
|
118
|
+
→ architecture (retry)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Query Language Reference
|
|
122
|
+
|
|
123
|
+
### Field Access
|
|
124
|
+
```yaml
|
|
125
|
+
story.status # Access field
|
|
126
|
+
architecture.decisions.length # Array length
|
|
127
|
+
quality.issues.filter(...) # Array filter
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Comparisons
|
|
131
|
+
```yaml
|
|
132
|
+
==, != # Equality
|
|
133
|
+
<, >, <=, >= # Numeric comparison
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Logical Operators
|
|
137
|
+
```yaml
|
|
138
|
+
AND, OR, NOT
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Examples
|
|
142
|
+
```yaml
|
|
143
|
+
# Multiple conditions
|
|
144
|
+
story.status == 'ready' AND
|
|
145
|
+
story.acceptance_criteria.length > 0 AND
|
|
146
|
+
story.ambiguities.length == 0
|
|
147
|
+
|
|
148
|
+
# Numeric comparison
|
|
149
|
+
architecture.complexity < 8 AND
|
|
150
|
+
architecture.risk_score <= 5
|
|
151
|
+
|
|
152
|
+
# Array operations
|
|
153
|
+
implementation.test_files.length > 0 AND
|
|
154
|
+
quality.issues.filter(i => i.severity == 'high').length == 0
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Parallel Execution Guidelines
|
|
158
|
+
|
|
159
|
+
### When to Use Parallel
|
|
160
|
+
|
|
161
|
+
✅ **Good candidates for parallelization**:
|
|
162
|
+
- Quality review + test execution (independent checks)
|
|
163
|
+
- Multiple validation steps (security, lint, type check)
|
|
164
|
+
- Documentation generation + test generation
|
|
165
|
+
- Multiple independent transformations
|
|
166
|
+
|
|
167
|
+
❌ **Bad candidates for parallelization**:
|
|
168
|
+
- Architecture → Implementation (implementation needs arch complete)
|
|
169
|
+
- Implementation → Version (version needs impl complete)
|
|
170
|
+
- Any sequence where B needs output from A
|
|
171
|
+
|
|
172
|
+
### Detecting Parallel Opportunities
|
|
173
|
+
|
|
174
|
+
Questions to ask:
|
|
175
|
+
1. Do both actions read from the same completed concept?
|
|
176
|
+
2. Neither action modifies what the other reads?
|
|
177
|
+
3. Neither action depends on the other's results?
|
|
178
|
+
4. Both actions can be evaluated independently?
|
|
179
|
+
|
|
180
|
+
If all YES → parallel is safe and beneficial.
|
|
181
|
+
|
|
182
|
+
### Performance Impact
|
|
183
|
+
|
|
184
|
+
**Sequential** (traditional):
|
|
185
|
+
```
|
|
186
|
+
Implementation complete → Quality review (2min) → Quality test (2min) = 4min
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Parallel** (with parallel: true):
|
|
190
|
+
```
|
|
191
|
+
Implementation complete → Quality review (2min) } = 2min
|
|
192
|
+
→ Quality test (2min) }
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Savings**: 50% faster (4min → 2min)
|
|
196
|
+
|
|
197
|
+
## Best Practices
|
|
198
|
+
|
|
199
|
+
1. **Clear IDs**: Use descriptive sync IDs (`story-to-arch`, not `sync1`)
|
|
200
|
+
2. **Explicit Models**: Always specify model in `then` section
|
|
201
|
+
3. **Document Reasons**: Use `provenance.reason` to explain why
|
|
202
|
+
4. **Test Queries**: Verify query logic matches intent
|
|
203
|
+
5. **Handle Errors**: Add syncs for failure/blocked states
|
|
204
|
+
6. **Use Parallel**: Mark independent actions with `parallel: true`
|
|
205
|
+
7. **Validate Independence**: Ensure parallel actions don't conflict
|
|
206
|
+
|
|
207
|
+
## Anti-Patterns
|
|
208
|
+
|
|
209
|
+
❌ Complex logic in queries (use separate rules)
|
|
210
|
+
❌ Missing where conditions (triggers too often)
|
|
211
|
+
❌ Ambiguous concept references
|
|
212
|
+
❌ Circular dependencies
|
|
213
|
+
❌ Marking dependent actions as parallel
|
|
214
|
+
❌ Parallelizing actions that modify shared state
|
|
215
|
+
|
|
216
|
+
✅ Simple, clear conditions
|
|
217
|
+
✅ Specific trigger conditions
|
|
218
|
+
✅ Explicit concept names
|
|
219
|
+
✅ Directed acyclic graph (DAG)
|
|
220
|
+
✅ Parallel for truly independent actions
|
|
221
|
+
✅ Sequential for dependent actions
|
|
222
|
+
|
|
223
|
+
## Example: Complete Feature Workflow
|
|
224
|
+
|
|
225
|
+
```yaml
|
|
226
|
+
# .claude/synchronizations/feature-development.yaml
|
|
227
|
+
synchronizations:
|
|
228
|
+
# Story → Architecture (sequential)
|
|
229
|
+
- id: "story-to-arch"
|
|
230
|
+
when: {concept: "story", action: "create", status: "completed"}
|
|
231
|
+
where: {query: "story.status == 'ready' AND story.acceptance_criteria.length > 0"}
|
|
232
|
+
then:
|
|
233
|
+
- concept: "architecture"
|
|
234
|
+
action: "design"
|
|
235
|
+
model: "sonnet" # Complex reasoning
|
|
236
|
+
inputs: {story_id: "${story.id}"}
|
|
237
|
+
|
|
238
|
+
# Architecture → Implementation (sequential)
|
|
239
|
+
- id: "arch-to-impl"
|
|
240
|
+
when: {concept: "architecture", action: "design", status: "completed"}
|
|
241
|
+
where: {query: "architecture.estimated_risk != 'high'"}
|
|
242
|
+
then:
|
|
243
|
+
- concept: "implementation"
|
|
244
|
+
action: "generate"
|
|
245
|
+
model: "sonnet" # Spec-driven
|
|
246
|
+
inputs: {architecture_id: "${architecture.id}"}
|
|
247
|
+
|
|
248
|
+
# Implementation → Quality Review + Test (PARALLEL)
|
|
249
|
+
- id: "impl-to-quality-review"
|
|
250
|
+
when: {concept: "implementation", action: "generate", status: "completed"}
|
|
251
|
+
where: {query: "implementation.status == 'completed'"}
|
|
252
|
+
then:
|
|
253
|
+
- concept: "quality"
|
|
254
|
+
action: "review"
|
|
255
|
+
model: "sonnet"
|
|
256
|
+
parallel: true # ← Enables parallel execution
|
|
257
|
+
inputs: {implementation_id: "${implementation.id}"}
|
|
258
|
+
|
|
259
|
+
- id: "impl-to-quality-test"
|
|
260
|
+
when: {concept: "implementation", action: "generate", status: "completed"}
|
|
261
|
+
where: {query: "implementation.test_files.length > 0"}
|
|
262
|
+
then:
|
|
263
|
+
- concept: "quality"
|
|
264
|
+
action: "test"
|
|
265
|
+
model: "sonnet"
|
|
266
|
+
parallel: true # ← Runs simultaneously with review
|
|
267
|
+
inputs: {implementation_id: "${implementation.id}"}
|
|
268
|
+
|
|
269
|
+
# Quality → Version (sequential, wait for both quality checks)
|
|
270
|
+
- id: "quality-to-version"
|
|
271
|
+
when: {concept: "quality", action: "review|test", status: "completed"}
|
|
272
|
+
where: {query: "review.status == 'approved' AND test.status == 'passed'"}
|
|
273
|
+
then:
|
|
274
|
+
- concept: "version"
|
|
275
|
+
action: "commit"
|
|
276
|
+
model: "sonnet"
|
|
277
|
+
inputs:
|
|
278
|
+
implementation_id: "${implementation.id}"
|
|
279
|
+
flow_id: "${flow.id}"
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Execution Flow**:
|
|
283
|
+
```
|
|
284
|
+
Story (Sonnet)
|
|
285
|
+
↓
|
|
286
|
+
Architecture (Sonnet)
|
|
287
|
+
↓
|
|
288
|
+
Implementation (Sonnet)
|
|
289
|
+
↓
|
|
290
|
+
├─→ Quality Review (Sonnet) ──┐
|
|
291
|
+
└─→ Quality Test (Sonnet) ────┤ [PARALLEL: 50% faster]
|
|
292
|
+
↓
|
|
293
|
+
Version (Sonnet)
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Performance**:
|
|
297
|
+
- Traditional: Story → Arch → Impl → Review → Test → Version = 18-20 min
|
|
298
|
+
- With Parallel: Story → Arch → Impl → (Review+Test) → Version = 16-18 min
|
|
299
|
+
- **Savings**: 2-4 minutes per feature (10-20% faster)
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
**Use this skill when**: Writing synchronization rules, debugging workflow logic, designing new workflows, or optimizing orchestration patterns.
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Test Generation Strategy
|
|
3
|
+
description: Intelligent test generation with coverage optimization and edge case detection
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: Zen Framework
|
|
6
|
+
applies_to:
|
|
7
|
+
- implementation-concept
|
|
8
|
+
trigger_keywords:
|
|
9
|
+
- test
|
|
10
|
+
- testing
|
|
11
|
+
- coverage
|
|
12
|
+
- unit test
|
|
13
|
+
- integration test
|
|
14
|
+
- edge case
|
|
15
|
+
priority: P1
|
|
16
|
+
impact: high
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Test Generation Strategy Skill
|
|
20
|
+
|
|
21
|
+
## Purpose
|
|
22
|
+
|
|
23
|
+
Guide the Implementation Concept agent in generating comprehensive, maintainable tests that maximize coverage while minimizing redundancy.
|
|
24
|
+
|
|
25
|
+
## Test Type Selection Matrix
|
|
26
|
+
|
|
27
|
+
| Code Type | Primary Tests | Secondary Tests | Optional |
|
|
28
|
+
|-----------|---------------|-----------------|----------|
|
|
29
|
+
| Pure functions | Unit tests | Property-based | Fuzz |
|
|
30
|
+
| API endpoints | Integration | Contract | Load |
|
|
31
|
+
| UI components | Component | E2E | Visual regression |
|
|
32
|
+
| Data transforms | Unit + snapshot | Integration | - |
|
|
33
|
+
| Event handlers | Unit + mocks | Integration | - |
|
|
34
|
+
| State management | Unit | Integration | E2E |
|
|
35
|
+
|
|
36
|
+
## Coverage Strategy
|
|
37
|
+
|
|
38
|
+
### 1. Code Path Analysis
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
coverage_targets:
|
|
42
|
+
minimum_line: 80%
|
|
43
|
+
minimum_branch: 75%
|
|
44
|
+
minimum_function: 90%
|
|
45
|
+
|
|
46
|
+
priority_paths:
|
|
47
|
+
critical:
|
|
48
|
+
- authentication flows
|
|
49
|
+
- payment processing
|
|
50
|
+
- data validation
|
|
51
|
+
- error handlers
|
|
52
|
+
high:
|
|
53
|
+
- business logic
|
|
54
|
+
- API endpoints
|
|
55
|
+
- state transitions
|
|
56
|
+
medium:
|
|
57
|
+
- utility functions
|
|
58
|
+
- formatters
|
|
59
|
+
- helpers
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2. Edge Case Detection
|
|
63
|
+
|
|
64
|
+
Automatically identify edge cases based on:
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
edge_case_patterns:
|
|
68
|
+
numeric:
|
|
69
|
+
- zero
|
|
70
|
+
- negative
|
|
71
|
+
- MAX_VALUE / MIN_VALUE
|
|
72
|
+
- NaN / Infinity
|
|
73
|
+
- floating point precision
|
|
74
|
+
|
|
75
|
+
string:
|
|
76
|
+
- empty string
|
|
77
|
+
- whitespace only
|
|
78
|
+
- unicode characters
|
|
79
|
+
- very long strings
|
|
80
|
+
- special characters
|
|
81
|
+
- null bytes
|
|
82
|
+
|
|
83
|
+
collection:
|
|
84
|
+
- empty array/object
|
|
85
|
+
- single element
|
|
86
|
+
- large collections
|
|
87
|
+
- nested structures
|
|
88
|
+
- circular references
|
|
89
|
+
|
|
90
|
+
temporal:
|
|
91
|
+
- midnight
|
|
92
|
+
- DST transitions
|
|
93
|
+
- timezone boundaries
|
|
94
|
+
- leap years
|
|
95
|
+
- epoch edge cases
|
|
96
|
+
|
|
97
|
+
boundary:
|
|
98
|
+
- off-by-one
|
|
99
|
+
- array bounds
|
|
100
|
+
- pagination limits
|
|
101
|
+
- rate limits
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 3. Test Structure Template
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
// Template for comprehensive test structure
|
|
108
|
+
describe('[ComponentName]', () => {
|
|
109
|
+
// Setup and teardown
|
|
110
|
+
beforeAll(() => { /* one-time setup */ });
|
|
111
|
+
afterAll(() => { /* cleanup */ });
|
|
112
|
+
beforeEach(() => { /* per-test setup */ });
|
|
113
|
+
afterEach(() => { /* per-test cleanup */ });
|
|
114
|
+
|
|
115
|
+
describe('[MethodName]', () => {
|
|
116
|
+
// Happy path tests
|
|
117
|
+
describe('when valid input provided', () => {
|
|
118
|
+
it('should [expected behavior]', () => {});
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
// Edge cases
|
|
122
|
+
describe('edge cases', () => {
|
|
123
|
+
it('should handle empty input', () => {});
|
|
124
|
+
it('should handle boundary values', () => {});
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// Error cases
|
|
128
|
+
describe('error handling', () => {
|
|
129
|
+
it('should throw [ErrorType] when [condition]', () => {});
|
|
130
|
+
it('should return error result when [condition]', () => {});
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
// Integration points
|
|
134
|
+
describe('integration', () => {
|
|
135
|
+
it('should interact correctly with [dependency]', () => {});
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Test Quality Checklist
|
|
142
|
+
|
|
143
|
+
### Naming Convention
|
|
144
|
+
- [ ] Test names describe behavior, not implementation
|
|
145
|
+
- [ ] Names follow pattern: `should [behavior] when [condition]`
|
|
146
|
+
- [ ] Describe blocks group related tests logically
|
|
147
|
+
|
|
148
|
+
### Assertions
|
|
149
|
+
- [ ] One logical assertion per test (multiple asserts OK if testing one concept)
|
|
150
|
+
- [ ] Assertions are specific (not just "truthy")
|
|
151
|
+
- [ ] Error messages are descriptive
|
|
152
|
+
- [ ] Async assertions properly awaited
|
|
153
|
+
|
|
154
|
+
### Isolation
|
|
155
|
+
- [ ] Tests don't depend on execution order
|
|
156
|
+
- [ ] No shared mutable state between tests
|
|
157
|
+
- [ ] External dependencies mocked appropriately
|
|
158
|
+
- [ ] Database/file state cleaned up
|
|
159
|
+
|
|
160
|
+
### Maintainability
|
|
161
|
+
- [ ] No magic numbers (use constants)
|
|
162
|
+
- [ ] Test data factories for complex objects
|
|
163
|
+
- [ ] Helper functions for repeated patterns
|
|
164
|
+
- [ ] Comments explain non-obvious test logic
|
|
165
|
+
|
|
166
|
+
## Mock Strategy
|
|
167
|
+
|
|
168
|
+
```yaml
|
|
169
|
+
mock_guidelines:
|
|
170
|
+
always_mock:
|
|
171
|
+
- external APIs
|
|
172
|
+
- file system (unless integration test)
|
|
173
|
+
- network requests
|
|
174
|
+
- time/date (when testing temporal logic)
|
|
175
|
+
- random number generation
|
|
176
|
+
|
|
177
|
+
never_mock:
|
|
178
|
+
- the code under test
|
|
179
|
+
- simple data structures
|
|
180
|
+
- pure utility functions
|
|
181
|
+
|
|
182
|
+
mock_sparingly:
|
|
183
|
+
- database (prefer test database)
|
|
184
|
+
- internal services (prefer integration)
|
|
185
|
+
- framework internals
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Test Data Management
|
|
189
|
+
|
|
190
|
+
### Factory Pattern
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
// Use factories for test data
|
|
194
|
+
const createUser = (overrides = {}) => ({
|
|
195
|
+
id: faker.string.uuid(),
|
|
196
|
+
email: faker.internet.email(),
|
|
197
|
+
name: faker.person.fullName(),
|
|
198
|
+
createdAt: new Date(),
|
|
199
|
+
...overrides,
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
// Usage
|
|
203
|
+
const adminUser = createUser({ role: 'admin' });
|
|
204
|
+
const newUser = createUser({ createdAt: new Date() });
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Fixtures
|
|
208
|
+
|
|
209
|
+
```yaml
|
|
210
|
+
fixture_organization:
|
|
211
|
+
location: __fixtures__/ or test/fixtures/
|
|
212
|
+
naming: [entity].[scenario].json
|
|
213
|
+
examples:
|
|
214
|
+
- user.valid.json
|
|
215
|
+
- user.invalid-email.json
|
|
216
|
+
- order.large.json
|
|
217
|
+
- response.error-500.json
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Performance Considerations
|
|
221
|
+
|
|
222
|
+
```yaml
|
|
223
|
+
test_performance:
|
|
224
|
+
unit_tests:
|
|
225
|
+
target: < 100ms per test
|
|
226
|
+
total_suite: < 30 seconds
|
|
227
|
+
|
|
228
|
+
integration_tests:
|
|
229
|
+
target: < 1 second per test
|
|
230
|
+
total_suite: < 5 minutes
|
|
231
|
+
|
|
232
|
+
optimizations:
|
|
233
|
+
- parallel execution where safe
|
|
234
|
+
- shared setup for read-only fixtures
|
|
235
|
+
- lazy initialization of heavy resources
|
|
236
|
+
- test database pooling
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## Output Format
|
|
240
|
+
|
|
241
|
+
When generating tests, provide:
|
|
242
|
+
|
|
243
|
+
1. **Test file location** following project conventions
|
|
244
|
+
2. **Complete test code** with all imports
|
|
245
|
+
3. **Coverage report** showing paths tested
|
|
246
|
+
4. **Edge cases covered** as checklist
|
|
247
|
+
5. **Suggested manual tests** for non-automatable scenarios
|