@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,605 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Batch Processing
|
|
3
|
+
description: Process multiple similar operations together for 3x speedup and reduced overhead
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
trigger_keywords: [batch, bulk, multiple, parallel, group, aggregate]
|
|
6
|
+
author: Zen Architecture
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Batch Processing - Expert Skill
|
|
10
|
+
|
|
11
|
+
Process multiple similar operations together to reduce overhead, improve throughput, and optimize resource usage.
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Batch processing provides:
|
|
16
|
+
- **3x faster execution**: Process 10 items in time of 3-4 individual items
|
|
17
|
+
- **Reduced overhead**: Setup cost amortized across batch
|
|
18
|
+
- **Better resource utilization**: Single context, multiple outputs
|
|
19
|
+
- **Parallelization opportunities**: Process independent items concurrently
|
|
20
|
+
|
|
21
|
+
## When to Use
|
|
22
|
+
|
|
23
|
+
Use batch processing:
|
|
24
|
+
- ✅ Multiple features ready for same concept
|
|
25
|
+
- ✅ Bulk validation of outputs
|
|
26
|
+
- ✅ Mass sync rule evaluation
|
|
27
|
+
- ✅ Multiple similar transformations
|
|
28
|
+
- ✅ Parallel quality checks
|
|
29
|
+
|
|
30
|
+
## Batch Patterns
|
|
31
|
+
|
|
32
|
+
### Pattern 1: Batch Validation
|
|
33
|
+
|
|
34
|
+
**Single Validation** (slow):
|
|
35
|
+
```bash
|
|
36
|
+
# Validate 10 outputs individually
|
|
37
|
+
for output in outputs:
|
|
38
|
+
validate(output) # 100ms each
|
|
39
|
+
|
|
40
|
+
Total: 10 × 100ms = 1,000ms
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Batch Validation** (fast):
|
|
44
|
+
```bash
|
|
45
|
+
# Validate all outputs in one operation
|
|
46
|
+
validate_batch(outputs) # 300ms total
|
|
47
|
+
|
|
48
|
+
Total: 300ms
|
|
49
|
+
Speedup: 3.3x faster
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Implementation**:
|
|
53
|
+
```python
|
|
54
|
+
def validate_batch(outputs):
|
|
55
|
+
"""
|
|
56
|
+
Validate multiple concept outputs in batch.
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
outputs: List of (concept_id, file_path) tuples
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
List of validation results
|
|
63
|
+
"""
|
|
64
|
+
# Load all schemas once
|
|
65
|
+
schemas = load_schemas() # 50ms
|
|
66
|
+
|
|
67
|
+
# Validate in parallel
|
|
68
|
+
results = []
|
|
69
|
+
for concept_id, file_path in outputs:
|
|
70
|
+
schema = schemas[concept_type(concept_id)]
|
|
71
|
+
result = validate_file(file_path, schema) # 25ms each
|
|
72
|
+
results.append(result)
|
|
73
|
+
|
|
74
|
+
return results
|
|
75
|
+
|
|
76
|
+
# vs individual validation:
|
|
77
|
+
# load_schema() × 10 = 500ms
|
|
78
|
+
# validate_file() × 10 = 250ms
|
|
79
|
+
# Total: 750ms
|
|
80
|
+
|
|
81
|
+
# Batch:
|
|
82
|
+
# load_schema() × 1 = 50ms
|
|
83
|
+
# validate_file() × 10 = 250ms
|
|
84
|
+
# Total: 300ms
|
|
85
|
+
# Savings: 450ms (60%)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Pattern 2: Batch Concept Execution
|
|
89
|
+
|
|
90
|
+
**Sequential Execution** (slow):
|
|
91
|
+
```bash
|
|
92
|
+
# Create 5 stories sequentially
|
|
93
|
+
for story in story_requests:
|
|
94
|
+
invoke_concept("story", story) # 2min each
|
|
95
|
+
|
|
96
|
+
Total: 5 × 2min = 10 minutes
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Batch Execution** (fast):
|
|
100
|
+
```bash
|
|
101
|
+
# Process all stories in batch
|
|
102
|
+
batch_invoke_concept("story", story_requests) # 4min total
|
|
103
|
+
|
|
104
|
+
Total: 4 minutes
|
|
105
|
+
Speedup: 2.5x faster
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Implementation**:
|
|
109
|
+
```yaml
|
|
110
|
+
# Batch story creation
|
|
111
|
+
concept: story
|
|
112
|
+
action: create_batch
|
|
113
|
+
inputs:
|
|
114
|
+
stories:
|
|
115
|
+
- {title: "Add OAuth", description: "..."}
|
|
116
|
+
- {title: "Add 2FA", description: "..."}
|
|
117
|
+
- {title: "Add SSO", description: "..."}
|
|
118
|
+
|
|
119
|
+
# Shared context loaded once:
|
|
120
|
+
# - Existing user model
|
|
121
|
+
# - Authentication patterns
|
|
122
|
+
# - Test patterns
|
|
123
|
+
# - Documentation style
|
|
124
|
+
|
|
125
|
+
# Then generate all stories with shared context
|
|
126
|
+
# Amortized setup cost: 30 seconds
|
|
127
|
+
# Individual story generation: 30 seconds each
|
|
128
|
+
# Total: 30s + (5 × 30s) = 3 minutes
|
|
129
|
+
# vs Sequential: 5 × (30s + 30s) = 5 minutes
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Pattern 3: Parallel Processing
|
|
133
|
+
|
|
134
|
+
**Sequential Processing** (slow):
|
|
135
|
+
```bash
|
|
136
|
+
# Review and test sequentially
|
|
137
|
+
review(impl-001) # 2min
|
|
138
|
+
test(impl-001) # 2min
|
|
139
|
+
|
|
140
|
+
Total: 4 minutes
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Parallel Processing** (fast):
|
|
144
|
+
```bash
|
|
145
|
+
# Review and test concurrently
|
|
146
|
+
parallel:
|
|
147
|
+
- review(impl-001) # 2min
|
|
148
|
+
- test(impl-001) # 2min
|
|
149
|
+
|
|
150
|
+
Total: 2 minutes (both run simultaneously)
|
|
151
|
+
Speedup: 2x faster
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Implementation** (from Phase 1 Day 5):
|
|
155
|
+
```yaml
|
|
156
|
+
# Already implemented in synchronization rules
|
|
157
|
+
synchronizations:
|
|
158
|
+
- id: "impl-to-quality-review"
|
|
159
|
+
then:
|
|
160
|
+
- concept: "quality"
|
|
161
|
+
action: "review"
|
|
162
|
+
parallel: true
|
|
163
|
+
|
|
164
|
+
- id: "impl-to-quality-test"
|
|
165
|
+
then:
|
|
166
|
+
- concept: "quality"
|
|
167
|
+
action: "test"
|
|
168
|
+
parallel: true
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Pattern 4: Batch Sync Evaluation
|
|
172
|
+
|
|
173
|
+
**Individual Evaluation** (slow):
|
|
174
|
+
```bash
|
|
175
|
+
# Check each feature individually
|
|
176
|
+
for feature in features:
|
|
177
|
+
evaluate_sync_rules(feature) # 450ms each (with cache)
|
|
178
|
+
|
|
179
|
+
Total: 10 × 450ms = 4,500ms (4.5 seconds)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Batch Evaluation** (fast):
|
|
183
|
+
```bash
|
|
184
|
+
# Evaluate all features together
|
|
185
|
+
batch_evaluate_sync_rules(features) # 1,500ms total
|
|
186
|
+
|
|
187
|
+
Total: 1,500ms (1.5 seconds)
|
|
188
|
+
Speedup: 3x faster
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Implementation**:
|
|
192
|
+
```python
|
|
193
|
+
def batch_evaluate_sync_rules(feature_ids):
|
|
194
|
+
"""
|
|
195
|
+
Evaluate sync rules for multiple features in batch.
|
|
196
|
+
|
|
197
|
+
Args:
|
|
198
|
+
feature_ids: List of feature identifiers
|
|
199
|
+
|
|
200
|
+
Returns:
|
|
201
|
+
Dict of feature_id → matched rules
|
|
202
|
+
"""
|
|
203
|
+
# Load all rules once
|
|
204
|
+
rules = load_sync_rules() # 100ms
|
|
205
|
+
|
|
206
|
+
# Get all state files from cache (Phase 2 optimization)
|
|
207
|
+
states = {
|
|
208
|
+
fid: load_feature_states(fid) # Uses cache
|
|
209
|
+
for fid in feature_ids
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
# Evaluate all rules for all features
|
|
213
|
+
results = {}
|
|
214
|
+
for feature_id in feature_ids:
|
|
215
|
+
results[feature_id] = evaluate_rules(
|
|
216
|
+
rules,
|
|
217
|
+
states[feature_id]
|
|
218
|
+
)
|
|
219
|
+
|
|
220
|
+
return results
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Batching Strategies
|
|
224
|
+
|
|
225
|
+
### When to Batch
|
|
226
|
+
|
|
227
|
+
**Good Candidates for Batching**:
|
|
228
|
+
- ✅ **Homogeneous operations**: All items need same processing
|
|
229
|
+
- ✅ **Independent items**: No dependencies between items
|
|
230
|
+
- ✅ **Shared setup cost**: Expensive initialization
|
|
231
|
+
- ✅ **High volume**: 5+ items to process
|
|
232
|
+
- ✅ **Same concept**: All use same model/configuration
|
|
233
|
+
|
|
234
|
+
**Poor Candidates for Batching**:
|
|
235
|
+
- ❌ **Heterogeneous operations**: Different processing per item
|
|
236
|
+
- ❌ **Dependent items**: Item N needs output of item N-1
|
|
237
|
+
- ❌ **Low volume**: 1-2 items
|
|
238
|
+
- ❌ **Different concepts**: Mixed models/configurations
|
|
239
|
+
- ❌ **Sequential requirements**: Order matters
|
|
240
|
+
|
|
241
|
+
### Batch Size Selection
|
|
242
|
+
|
|
243
|
+
```yaml
|
|
244
|
+
# Small batches (2-5 items)
|
|
245
|
+
- Fast feedback
|
|
246
|
+
- Lower memory usage
|
|
247
|
+
- Good for interactive work
|
|
248
|
+
|
|
249
|
+
# Medium batches (5-20 items)
|
|
250
|
+
- Balanced performance
|
|
251
|
+
- Optimal for most workflows
|
|
252
|
+
- Recommended default
|
|
253
|
+
|
|
254
|
+
# Large batches (20+ items)
|
|
255
|
+
- Maximum throughput
|
|
256
|
+
- Higher memory usage
|
|
257
|
+
- Good for bulk operations
|
|
258
|
+
- Risk of timeout/OOM
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Batch Execution Modes
|
|
262
|
+
|
|
263
|
+
**Mode 1: Fail-Fast**
|
|
264
|
+
```yaml
|
|
265
|
+
# Stop on first failure
|
|
266
|
+
mode: fail_fast
|
|
267
|
+
|
|
268
|
+
# Use when:
|
|
269
|
+
# - Dependencies between items
|
|
270
|
+
# - Must succeed in order
|
|
271
|
+
# - Early detection critical
|
|
272
|
+
|
|
273
|
+
Example:
|
|
274
|
+
batch_create_stories([s1, s2, s3])
|
|
275
|
+
→ s1 succeeds
|
|
276
|
+
→ s2 fails (invalid input)
|
|
277
|
+
→ STOP (s3 not processed)
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**Mode 2: Best-Effort**
|
|
281
|
+
```yaml
|
|
282
|
+
# Process all items, collect failures
|
|
283
|
+
mode: best_effort
|
|
284
|
+
|
|
285
|
+
# Use when:
|
|
286
|
+
# - Items independent
|
|
287
|
+
# - Want all results
|
|
288
|
+
# - Can handle partial success
|
|
289
|
+
|
|
290
|
+
Example:
|
|
291
|
+
batch_create_stories([s1, s2, s3])
|
|
292
|
+
→ s1 succeeds
|
|
293
|
+
→ s2 fails (invalid input)
|
|
294
|
+
→ s3 succeeds
|
|
295
|
+
→ Return: [success, failure, success]
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**Mode 3: All-or-Nothing**
|
|
299
|
+
```yaml
|
|
300
|
+
# Transactional: commit all or rollback
|
|
301
|
+
mode: transactional
|
|
302
|
+
|
|
303
|
+
# Use when:
|
|
304
|
+
# - Atomicity required
|
|
305
|
+
# - Partial success unacceptable
|
|
306
|
+
# - Can rollback changes
|
|
307
|
+
|
|
308
|
+
Example:
|
|
309
|
+
batch_create_stories([s1, s2, s3])
|
|
310
|
+
→ s1 succeeds (temp)
|
|
311
|
+
→ s2 fails (invalid)
|
|
312
|
+
→ Rollback s1
|
|
313
|
+
→ Return: all failed
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## Integration with Commands
|
|
317
|
+
|
|
318
|
+
### /sync --batch
|
|
319
|
+
|
|
320
|
+
Batch sync evaluation for multiple features:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
# Check sync rules for all active features
|
|
324
|
+
/sync --batch
|
|
325
|
+
|
|
326
|
+
Output:
|
|
327
|
+
Feature Matched Rules Action
|
|
328
|
+
────────────────────────────────────────
|
|
329
|
+
story-001 story-to-arch → Ready to design
|
|
330
|
+
story-002 story-to-arch → Ready to design
|
|
331
|
+
story-003 none → Waiting
|
|
332
|
+
arch-042 arch-to-impl (LOW) → Ready to implement
|
|
333
|
+
arch-043 arch-to-impl (LOW) → Ready to implement
|
|
334
|
+
impl-015 impl-to-quality → Ready for review
|
|
335
|
+
|
|
336
|
+
Batch Actions:
|
|
337
|
+
5 features ready for next step
|
|
338
|
+
Process as batch? (yes/no): yes
|
|
339
|
+
|
|
340
|
+
Creating batch:
|
|
341
|
+
✓ Architecture batch: [story-001, story-002]
|
|
342
|
+
✓ Implementation batch: [arch-042, arch-043]
|
|
343
|
+
✓ Quality batch: [impl-015]
|
|
344
|
+
|
|
345
|
+
Processing...
|
|
346
|
+
Architecture batch: 5min (vs 8min sequential)
|
|
347
|
+
Implementation batch: 6min (vs 10min sequential)
|
|
348
|
+
Quality batch: 2min
|
|
349
|
+
|
|
350
|
+
Total: 13min (vs 18min sequential)
|
|
351
|
+
Savings: 5 minutes (28% faster)
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### /validate --batch
|
|
355
|
+
|
|
356
|
+
Batch validation of multiple outputs:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
# Validate all story outputs
|
|
360
|
+
/validate --batch stories
|
|
361
|
+
|
|
362
|
+
Validating 10 stories...
|
|
363
|
+
|
|
364
|
+
Results:
|
|
365
|
+
✓ story-001 Valid
|
|
366
|
+
✓ story-002 Valid
|
|
367
|
+
✗ story-003 Invalid (2 errors)
|
|
368
|
+
- story_id pattern mismatch
|
|
369
|
+
- acceptance_criteria empty
|
|
370
|
+
✓ story-004 Valid
|
|
371
|
+
✓ story-005 Valid
|
|
372
|
+
✓ story-006 Valid
|
|
373
|
+
✓ story-007 Valid
|
|
374
|
+
✗ story-008 Invalid (1 error)
|
|
375
|
+
- status not in enum
|
|
376
|
+
✓ story-009 Valid
|
|
377
|
+
✓ story-010 Valid
|
|
378
|
+
|
|
379
|
+
Summary:
|
|
380
|
+
8 valid, 2 invalid
|
|
381
|
+
Time: 300ms (vs 1,000ms individual)
|
|
382
|
+
Speedup: 3.3x faster
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### /quality --batch
|
|
386
|
+
|
|
387
|
+
Batch quality checks:
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
# Review and test multiple implementations
|
|
391
|
+
/quality --batch impl-015 impl-016 impl-017
|
|
392
|
+
|
|
393
|
+
Processing batch of 3 implementations...
|
|
394
|
+
|
|
395
|
+
Parallel execution:
|
|
396
|
+
⟳ Review: impl-015, impl-016, impl-017 (3min)
|
|
397
|
+
⟳ Test: impl-015, impl-016, impl-017 (3min)
|
|
398
|
+
⟳ Both complete simultaneously
|
|
399
|
+
|
|
400
|
+
Results:
|
|
401
|
+
impl-015 ✓ Review: approved ✓ Test: 18/18 passed
|
|
402
|
+
impl-016 ✓ Review: approved ✓ Test: 22/22 passed
|
|
403
|
+
impl-017 ⚠ Review: 2 issues ✓ Test: 15/15 passed
|
|
404
|
+
|
|
405
|
+
Total: 3min (vs 12min sequential reviews + tests)
|
|
406
|
+
Speedup: 4x faster
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
## Performance Impact
|
|
410
|
+
|
|
411
|
+
### Batch Validation
|
|
412
|
+
|
|
413
|
+
| Items | Individual | Batch | Speedup |
|
|
414
|
+
|-------|-----------|-------|---------|
|
|
415
|
+
| 1 | 100ms | 100ms | 1x |
|
|
416
|
+
| 5 | 500ms | 250ms | 2x |
|
|
417
|
+
| 10 | 1,000ms | 300ms | 3.3x |
|
|
418
|
+
| 20 | 2,000ms | 400ms | 5x |
|
|
419
|
+
|
|
420
|
+
### Batch Concept Execution
|
|
421
|
+
|
|
422
|
+
| Items | Individual | Batch | Speedup |
|
|
423
|
+
|-------|-----------|-------|---------|
|
|
424
|
+
| 2 | 4min | 2.5min| 1.6x |
|
|
425
|
+
| 5 | 10min | 4min | 2.5x |
|
|
426
|
+
| 10 | 20min | 8min | 2.5x |
|
|
427
|
+
|
|
428
|
+
### Batch Sync Evaluation (with cache)
|
|
429
|
+
|
|
430
|
+
| Features | Individual | Batch | Speedup |
|
|
431
|
+
|----------|-----------|-------|---------|
|
|
432
|
+
| 5 | 2.25s | 1s | 2.25x |
|
|
433
|
+
| 10 | 4.5s | 1.5s | 3x |
|
|
434
|
+
| 20 | 9s | 2.5s | 3.6x |
|
|
435
|
+
|
|
436
|
+
## Best Practices
|
|
437
|
+
|
|
438
|
+
### 1. Identify Batch Opportunities
|
|
439
|
+
|
|
440
|
+
```yaml
|
|
441
|
+
# Look for patterns like:
|
|
442
|
+
for item in items:
|
|
443
|
+
expensive_operation(item)
|
|
444
|
+
|
|
445
|
+
# Consider batching if:
|
|
446
|
+
# - expensive_operation has setup cost
|
|
447
|
+
# - items are independent
|
|
448
|
+
# - count > 3
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### 2. Shared Context Loading
|
|
452
|
+
|
|
453
|
+
```yaml
|
|
454
|
+
# Load shared context once
|
|
455
|
+
context = load_context() # Expensive
|
|
456
|
+
|
|
457
|
+
# Use for all items
|
|
458
|
+
for item in items:
|
|
459
|
+
process(item, context) # Cheap
|
|
460
|
+
|
|
461
|
+
# vs loading per item:
|
|
462
|
+
for item in items:
|
|
463
|
+
context = load_context() # Expensive × N
|
|
464
|
+
process(item, context)
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
### 3. Error Handling
|
|
468
|
+
|
|
469
|
+
```yaml
|
|
470
|
+
# Collect all errors, don't stop early
|
|
471
|
+
results = []
|
|
472
|
+
errors = []
|
|
473
|
+
|
|
474
|
+
for item in items:
|
|
475
|
+
try:
|
|
476
|
+
result = process(item)
|
|
477
|
+
results.append(result)
|
|
478
|
+
except Exception as e:
|
|
479
|
+
errors.append((item, e))
|
|
480
|
+
|
|
481
|
+
# Return both successes and failures
|
|
482
|
+
return {
|
|
483
|
+
"results": results,
|
|
484
|
+
"errors": errors
|
|
485
|
+
}
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### 4. Progress Reporting
|
|
489
|
+
|
|
490
|
+
```yaml
|
|
491
|
+
# Show progress for large batches
|
|
492
|
+
total = len(items)
|
|
493
|
+
for i, item in enumerate(items):
|
|
494
|
+
process(item)
|
|
495
|
+
if i % 5 == 0:
|
|
496
|
+
print(f"Progress: {i}/{total} ({i*100//total}%)")
|
|
497
|
+
|
|
498
|
+
# Output:
|
|
499
|
+
# Progress: 0/20 (0%)
|
|
500
|
+
# Progress: 5/20 (25%)
|
|
501
|
+
# Progress: 10/20 (50%)
|
|
502
|
+
# Progress: 15/20 (75%)
|
|
503
|
+
# Progress: 20/20 (100%)
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
### 5. Memory Management
|
|
507
|
+
|
|
508
|
+
```yaml
|
|
509
|
+
# For large batches, process in chunks
|
|
510
|
+
def process_large_batch(items, chunk_size=10):
|
|
511
|
+
results = []
|
|
512
|
+
|
|
513
|
+
for i in range(0, len(items), chunk_size):
|
|
514
|
+
chunk = items[i:i+chunk_size]
|
|
515
|
+
chunk_results = process_batch(chunk)
|
|
516
|
+
results.extend(chunk_results)
|
|
517
|
+
|
|
518
|
+
# Clear memory between chunks
|
|
519
|
+
gc.collect()
|
|
520
|
+
|
|
521
|
+
return results
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
## Troubleshooting
|
|
525
|
+
|
|
526
|
+
### Issue: Batch Slower Than Individual
|
|
527
|
+
|
|
528
|
+
**Problem**: Batch processing takes longer than individual
|
|
529
|
+
|
|
530
|
+
**Causes**:
|
|
531
|
+
- Setup cost low, per-item cost high
|
|
532
|
+
- Items not actually independent
|
|
533
|
+
- Overhead from batching logic
|
|
534
|
+
|
|
535
|
+
**Solution**:
|
|
536
|
+
```bash
|
|
537
|
+
# Measure components:
|
|
538
|
+
# - Setup: 50ms
|
|
539
|
+
# - Per-item: 200ms
|
|
540
|
+
# - Batch overhead: 100ms
|
|
541
|
+
|
|
542
|
+
# Individual (5 items): 5 × (50 + 200) = 1,250ms
|
|
543
|
+
# Batch: 50 + 100 + (5 × 200) = 1,150ms
|
|
544
|
+
# Savings: 100ms (8%)
|
|
545
|
+
|
|
546
|
+
# If savings < 20%, don't batch
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
### Issue: Some Items Fail in Batch
|
|
550
|
+
|
|
551
|
+
**Problem**: Batch fails, but items work individually
|
|
552
|
+
|
|
553
|
+
**Causes**:
|
|
554
|
+
- Shared context pollution
|
|
555
|
+
- Resource exhaustion
|
|
556
|
+
- Timeout on large batch
|
|
557
|
+
|
|
558
|
+
**Solution**:
|
|
559
|
+
```bash
|
|
560
|
+
# Use best-effort mode
|
|
561
|
+
mode: best_effort
|
|
562
|
+
|
|
563
|
+
# Process smaller batches
|
|
564
|
+
chunk_size: 5
|
|
565
|
+
|
|
566
|
+
# Isolate context per item
|
|
567
|
+
for item in items:
|
|
568
|
+
with isolated_context():
|
|
569
|
+
process(item)
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
### Issue: Out of Memory
|
|
573
|
+
|
|
574
|
+
**Problem**: Large batch exhausts memory
|
|
575
|
+
|
|
576
|
+
**Causes**:
|
|
577
|
+
- Too many items
|
|
578
|
+
- Large items
|
|
579
|
+
- Context not released
|
|
580
|
+
|
|
581
|
+
**Solution**:
|
|
582
|
+
```bash
|
|
583
|
+
# Process in chunks
|
|
584
|
+
chunk_size: 10
|
|
585
|
+
|
|
586
|
+
# Stream results (don't accumulate)
|
|
587
|
+
# Use generators:
|
|
588
|
+
def process_batch_stream(items):
|
|
589
|
+
for item in items:
|
|
590
|
+
yield process(item)
|
|
591
|
+
|
|
592
|
+
# Clear memory between chunks
|
|
593
|
+
gc.collect()
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
## Related Documents
|
|
597
|
+
|
|
598
|
+
- **Parallel Quality** (Phase 1 Day 5) - Parallel execution patterns
|
|
599
|
+
- **Incremental Loading** (Phase 2 Day 1-3) - Context optimization
|
|
600
|
+
- **Output Caching** (Phase 2 Day 4-5) - Cache benefits batching
|
|
601
|
+
- **ZEN_PHASE2_PROGRESS.md** - Week 1 Day 6-7 tracking
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
**Use this skill when**: Processing multiple similar items, bulk validation, mass sync evaluation, or any operation with significant setup cost that can be amortized across multiple items.
|