@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,321 @@
|
|
|
1
|
+
Evaluate synchronization rules and optionally execute the next step in the workflow.
|
|
2
|
+
|
|
3
|
+
This command reads the latest concept outputs, evaluates sync rules, and shows
|
|
4
|
+
what would trigger next. Useful for manual workflow control and debugging.
|
|
5
|
+
|
|
6
|
+
## Usage
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
/sync # Show what would trigger next
|
|
10
|
+
/sync --execute # Evaluate and execute matched rules
|
|
11
|
+
/sync --dry-run # Show evaluation details without executing
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Process
|
|
15
|
+
|
|
16
|
+
When you run this command, you should:
|
|
17
|
+
|
|
18
|
+
1. **Find Latest Outputs**
|
|
19
|
+
- Scan `koan/*/` directories for most recent files
|
|
20
|
+
- Identify the last completed concept action
|
|
21
|
+
|
|
22
|
+
2. **Read State Files with Progressive Disclosure + Cache**
|
|
23
|
+
- **Phase 2 Optimization**: Use cache for all state file reads (5ms vs 100ms)
|
|
24
|
+
- **First**: Check cache for concept output (95% hit rate)
|
|
25
|
+
- **If cached**: Return immediately (sub-10ms access)
|
|
26
|
+
- **If not cached**: Read ONLY the summary section (first 5 lines)
|
|
27
|
+
- **Summary provides**: id, status, summary line with key info
|
|
28
|
+
- **Cost**: ~100 tokens per file (Phase 1) + cache benefits (Phase 2)
|
|
29
|
+
- **Then**: If sync rule evaluation needs details, read full file
|
|
30
|
+
- Combined benefit: 95% token reduction + 95% cache hit rate = 5x faster
|
|
31
|
+
|
|
32
|
+
3. **Read Synchronization Rules**
|
|
33
|
+
- Load `.claude/synchronizations/feature-development.yaml`
|
|
34
|
+
- Parse all synchronization rules
|
|
35
|
+
|
|
36
|
+
4. **Evaluate Rules**
|
|
37
|
+
- For each sync rule, check:
|
|
38
|
+
- Does `when` match the latest action?
|
|
39
|
+
- Does `where` query evaluate to true? (use summary first)
|
|
40
|
+
- If summary has needed info, don't load full file
|
|
41
|
+
- Only load full file if evaluation needs detailed fields
|
|
42
|
+
- Show which rules match and why
|
|
43
|
+
|
|
44
|
+
5. **Execute (if --execute)**
|
|
45
|
+
- Invoke the `then` concept
|
|
46
|
+
- Continue workflow automatically
|
|
47
|
+
|
|
48
|
+
### Progressive Disclosure Example
|
|
49
|
+
|
|
50
|
+
**Traditional Approach** (expensive):
|
|
51
|
+
```
|
|
52
|
+
Read koan/stories/story-001.yaml (2000 tokens)
|
|
53
|
+
Read koan/architecture/arch-001.yaml (3000 tokens)
|
|
54
|
+
Read koan/implementations/impl-001.yaml (2500 tokens)
|
|
55
|
+
Read koan/reviews/review-001.yaml (2000 tokens)
|
|
56
|
+
────────────────────────────────────────────────────
|
|
57
|
+
Total: 9500 tokens just to check status
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Progressive Disclosure** (efficient):
|
|
61
|
+
```
|
|
62
|
+
Read story-001.yaml summary (5 lines) (100 tokens)
|
|
63
|
+
Read arch-001.yaml summary (5 lines) (120 tokens)
|
|
64
|
+
Read impl-001.yaml summary (5 lines) (100 tokens)
|
|
65
|
+
Read review-001.yaml summary (5 lines) (100 tokens)
|
|
66
|
+
────────────────────────────────────────────────────
|
|
67
|
+
Total: 420 tokens to check status
|
|
68
|
+
Savings: 95% (420 vs 9500 tokens)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
If sync rule needs details (rare), then load full file.
|
|
72
|
+
|
|
73
|
+
## Example: Show Next Step
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
User: /sync
|
|
77
|
+
|
|
78
|
+
You: Evaluating synchronization rules...
|
|
79
|
+
|
|
80
|
+
Last completed action:
|
|
81
|
+
Concept: story
|
|
82
|
+
Action: create
|
|
83
|
+
Status: completed
|
|
84
|
+
Output: koan/stories/story-001.yaml
|
|
85
|
+
|
|
86
|
+
Checking synchronization rules:
|
|
87
|
+
|
|
88
|
+
✓ story-to-arch
|
|
89
|
+
When: story.create completed ✓
|
|
90
|
+
Where: story.status == 'ready' ✓
|
|
91
|
+
story.acceptance_criteria.length > 0 ✓
|
|
92
|
+
Then: architecture.design (model: sonnet)
|
|
93
|
+
Status: MATCHED
|
|
94
|
+
|
|
95
|
+
✗ arch-to-impl
|
|
96
|
+
When: architecture.design completed ✗
|
|
97
|
+
Status: SKIPPED (no architecture output yet)
|
|
98
|
+
|
|
99
|
+
✗ impl-to-quality
|
|
100
|
+
When: implementation.generate completed ✗
|
|
101
|
+
Status: SKIPPED (no implementation output yet)
|
|
102
|
+
|
|
103
|
+
Next step: architecture.design
|
|
104
|
+
Model: sonnet
|
|
105
|
+
Estimated cost: $0.015
|
|
106
|
+
|
|
107
|
+
Run `/sync --execute` to continue workflow automatically.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Example: Execute Next Step
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
User: /sync --execute
|
|
114
|
+
|
|
115
|
+
You: Evaluating synchronization rules...
|
|
116
|
+
|
|
117
|
+
Matched: story-to-arch
|
|
118
|
+
Next: architecture.design
|
|
119
|
+
|
|
120
|
+
Executing architecture concept...
|
|
121
|
+
|
|
122
|
+
[Invoke Task tool → architecture concept → model: sonnet]
|
|
123
|
+
|
|
124
|
+
✓ Architecture created: arch-001
|
|
125
|
+
Approach: Provider pattern with Confluence API client
|
|
126
|
+
Decisions: 5 documented
|
|
127
|
+
Risks: 3 (all mitigated)
|
|
128
|
+
Cost: $0.015
|
|
129
|
+
|
|
130
|
+
Evaluating next synchronizations...
|
|
131
|
+
|
|
132
|
+
Matched: arch-to-impl
|
|
133
|
+
Next: implementation.generate
|
|
134
|
+
|
|
135
|
+
Continue? (yes/no)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Example: Dry Run with Details
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
User: /sync --dry-run
|
|
142
|
+
|
|
143
|
+
You: Dry run - showing evaluation details...
|
|
144
|
+
|
|
145
|
+
Reading state files (progressive disclosure):
|
|
146
|
+
✓ koan/stories/story-001.yaml (summary only - 100 tokens)
|
|
147
|
+
✓ .claude/synchronizations/feature-development.yaml
|
|
148
|
+
|
|
149
|
+
Latest action: story.create (completed)
|
|
150
|
+
|
|
151
|
+
Evaluating rule: story-to-arch
|
|
152
|
+
Condition: when.concept=='story' ✓
|
|
153
|
+
Condition: when.action=='create' ✓
|
|
154
|
+
Condition: when.status=='completed' ✓
|
|
155
|
+
|
|
156
|
+
Reading story-001.yaml summary:
|
|
157
|
+
story_id: "story-001"
|
|
158
|
+
status: "ready" ✓
|
|
159
|
+
summary: "Custom Terraform provider - ready, 9 criteria, 0 ambiguities"
|
|
160
|
+
|
|
161
|
+
Query: story.status == 'ready' AND story.acceptance_criteria.length > 0
|
|
162
|
+
Result: TRUE ✓ (inferred from summary - "9 criteria")
|
|
163
|
+
|
|
164
|
+
Would invoke:
|
|
165
|
+
Concept: architecture
|
|
166
|
+
Action: design
|
|
167
|
+
Model: sonnet
|
|
168
|
+
Inputs:
|
|
169
|
+
- story_id: story-001
|
|
170
|
+
- Need full story details → Loading full file now (2000 tokens)
|
|
171
|
+
- context: "Develop a custom Terraform provider..."
|
|
172
|
+
- acceptance_criteria: [9 items]
|
|
173
|
+
|
|
174
|
+
No execution (dry-run mode).
|
|
175
|
+
|
|
176
|
+
Token efficiency: 100 tokens for evaluation + 2000 for full load = 2100 total
|
|
177
|
+
vs 2000 tokens if we loaded full file immediately
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Query Evaluation Logic with Progressive Disclosure
|
|
181
|
+
|
|
182
|
+
The sync engine evaluates `where` queries by:
|
|
183
|
+
|
|
184
|
+
1. **Reading state file summaries first**
|
|
185
|
+
```yaml
|
|
186
|
+
# koan/stories/story-001.yaml (summary only - first 5 lines)
|
|
187
|
+
story_id: "story-001"
|
|
188
|
+
status: "ready"
|
|
189
|
+
title: "Custom Terraform Provider"
|
|
190
|
+
summary: "Custom provider - ready, 9 criteria, 0 ambiguities, auth required"
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
2. **Parsing query expressions**
|
|
194
|
+
```
|
|
195
|
+
story.status == 'ready' AND
|
|
196
|
+
story.acceptance_criteria.length > 0
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
3. **Evaluating conditions from summary**
|
|
200
|
+
- `story.status` → read from summary → "ready"
|
|
201
|
+
- `== 'ready'` → compare → TRUE
|
|
202
|
+
- `.length` → infer from summary "9 criteria" → 9
|
|
203
|
+
- `> 0` → compare → TRUE
|
|
204
|
+
- `AND` → logical operation → TRUE
|
|
205
|
+
|
|
206
|
+
4. **Load full file only if needed**
|
|
207
|
+
- If query needs fields not in summary (rare), load full file
|
|
208
|
+
- Example: Query checks specific acceptance_criteria text
|
|
209
|
+
- Most sync rules only need status, id → use summary only
|
|
210
|
+
|
|
211
|
+
5. **Determining match**
|
|
212
|
+
- All conditions TRUE → rule matches
|
|
213
|
+
- Invoke `then` action
|
|
214
|
+
|
|
215
|
+
### Query Optimization
|
|
216
|
+
|
|
217
|
+
**Can evaluate from summary** (95% of queries):
|
|
218
|
+
```
|
|
219
|
+
story.status == 'ready'
|
|
220
|
+
architecture.estimated_risk != 'high'
|
|
221
|
+
implementation.status == 'completed'
|
|
222
|
+
review.status == 'approved'
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Needs full file** (rare):
|
|
226
|
+
```
|
|
227
|
+
story.acceptance_criteria[0].text.contains("OAuth")
|
|
228
|
+
architecture.decisions.filter(d => d.rationale.includes("security"))
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Supported Query Operators
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
Comparison:
|
|
235
|
+
==, != Equal, not equal
|
|
236
|
+
<, >, <=, >= Less than, greater than
|
|
237
|
+
|
|
238
|
+
Logical:
|
|
239
|
+
AND, OR, NOT Boolean logic
|
|
240
|
+
|
|
241
|
+
Properties:
|
|
242
|
+
.field Access field
|
|
243
|
+
.length Count array items
|
|
244
|
+
.filter() Array filtering (basic)
|
|
245
|
+
|
|
246
|
+
Functions:
|
|
247
|
+
string.contains("text")
|
|
248
|
+
string.startsWith("prefix")
|
|
249
|
+
array.includes("item")
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Use Cases
|
|
253
|
+
|
|
254
|
+
### 1. Check Current Workflow State
|
|
255
|
+
```
|
|
256
|
+
/sync --dry-run
|
|
257
|
+
```
|
|
258
|
+
See what step you're on and what's next.
|
|
259
|
+
|
|
260
|
+
### 2. Continue Workflow After Manual Work
|
|
261
|
+
```
|
|
262
|
+
# You manually fixed something
|
|
263
|
+
/sync --execute
|
|
264
|
+
```
|
|
265
|
+
Resume automatic workflow.
|
|
266
|
+
|
|
267
|
+
### 3. Debug Why Workflow Stopped
|
|
268
|
+
```
|
|
269
|
+
/sync
|
|
270
|
+
```
|
|
271
|
+
See which rule didn't match and why.
|
|
272
|
+
|
|
273
|
+
### 4. Preview Next Step Before Executing
|
|
274
|
+
```
|
|
275
|
+
/sync # Review
|
|
276
|
+
/sync --execute # Proceed
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## Integration with Other Commands
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
# Start workflow
|
|
283
|
+
/workflow "Add feature"
|
|
284
|
+
|
|
285
|
+
# Pause and check status
|
|
286
|
+
/sync
|
|
287
|
+
|
|
288
|
+
# Resume
|
|
289
|
+
/sync --execute
|
|
290
|
+
|
|
291
|
+
# See full history
|
|
292
|
+
/trace <flow-id>
|
|
293
|
+
|
|
294
|
+
# Check costs
|
|
295
|
+
/costs
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## Troubleshooting
|
|
299
|
+
|
|
300
|
+
**Rule not matching?**
|
|
301
|
+
```
|
|
302
|
+
/sync --dry-run
|
|
303
|
+
```
|
|
304
|
+
Shows exact evaluation of each condition.
|
|
305
|
+
|
|
306
|
+
**Want to skip a step?**
|
|
307
|
+
Manually invoke the next concept, then `/sync` to continue.
|
|
308
|
+
|
|
309
|
+
**Multiple rules match?**
|
|
310
|
+
Execute them in order defined in YAML.
|
|
311
|
+
|
|
312
|
+
**Blocked by condition?**
|
|
313
|
+
Fix the state file, then `/sync --execute` again.
|
|
314
|
+
|
|
315
|
+
## Architecture Note
|
|
316
|
+
|
|
317
|
+
The sync engine is **Claude itself** reading and interpreting YAML rules.
|
|
318
|
+
No external process needed - pure .claude functionality.
|
|
319
|
+
The declarative rules guide Claude's decision-making automatically.
|
|
320
|
+
|
|
321
|
+
This embodies WYSIWID: Read the sync rules to predict behavior.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# /task - Task Management Command
|
|
2
|
+
|
|
3
|
+
Manage tasks for GitOps-based Kanban tracking. Tasks are stored in `koan/tasks/` and can be visualized in Kanflow.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/task create "Task title" [--type feature|bug|chore|spike] [--priority low|medium|high|critical]
|
|
9
|
+
/task list [--status todo|in_progress|done|blocked] [--type feature|bug|chore]
|
|
10
|
+
/task update <task-id> --status <new-status>
|
|
11
|
+
/task show <task-id>
|
|
12
|
+
/task delete <task-id>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Actions
|
|
16
|
+
|
|
17
|
+
### Create Task
|
|
18
|
+
Create a new task in `koan/tasks/`:
|
|
19
|
+
|
|
20
|
+
```yaml
|
|
21
|
+
# Generated: koan/tasks/task-{id}.yaml
|
|
22
|
+
task_id: "task-001"
|
|
23
|
+
title: "Implement user authentication"
|
|
24
|
+
status: "todo"
|
|
25
|
+
priority: "high"
|
|
26
|
+
type: "feature"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### List Tasks
|
|
30
|
+
Display tasks filtered by status or type:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
/task list --status in_progress
|
|
34
|
+
/task list --type bug
|
|
35
|
+
/task list # All tasks
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Update Task Status
|
|
39
|
+
Progress a task through the workflow:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
/task update task-001 --status in_progress
|
|
43
|
+
/task update task-001 --status done
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Show Task Details
|
|
47
|
+
View full task information including subtasks and provenance:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
/task show task-001
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## GitOps Flow
|
|
54
|
+
|
|
55
|
+
1. Tasks are YAML files in `koan/tasks/`
|
|
56
|
+
2. Status changes update the YAML file
|
|
57
|
+
3. Kanflow polls/watches for changes
|
|
58
|
+
4. Dashboard reflects current state
|
|
59
|
+
|
|
60
|
+
## Integration with Zen Workflow
|
|
61
|
+
|
|
62
|
+
Tasks can link to Zen workflow artifacts:
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
provenance:
|
|
66
|
+
story_id: "story-001"
|
|
67
|
+
architecture_id: "arch-001"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Subtask Management
|
|
71
|
+
|
|
72
|
+
Add subtasks for granular progress tracking:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
/task subtask task-001 add "Design API endpoints"
|
|
76
|
+
/task subtask task-001 complete sub-001
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Labels and Filtering
|
|
80
|
+
|
|
81
|
+
Add labels for organization:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
/task label task-001 add "backend" "api"
|
|
85
|
+
/task list --label backend
|
|
86
|
+
```
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
Trace provenance chain for an action, story, or flow.
|
|
2
|
+
|
|
3
|
+
When the user runs this command, you should:
|
|
4
|
+
|
|
5
|
+
1. Read the provenance files from koan/provenance/
|
|
6
|
+
2. Build the complete chain of actions
|
|
7
|
+
3. Show the workflow visually with costs and timing
|
|
8
|
+
|
|
9
|
+
Usage:
|
|
10
|
+
- `/trace story-001` - Trace all actions for a story
|
|
11
|
+
- `/trace flow-abc123` - Trace all actions in a flow
|
|
12
|
+
- `/trace act-042` - Trace from a specific action
|
|
13
|
+
|
|
14
|
+
Process:
|
|
15
|
+
1. Identify what the user wants to trace (story ID, flow ID, or action ID)
|
|
16
|
+
2. Read relevant provenance files from koan/provenance/
|
|
17
|
+
3. Build the dependency chain (triggered_by relationships)
|
|
18
|
+
4. Present in chronological order with:
|
|
19
|
+
- Action ID and timestamp
|
|
20
|
+
- Concept and model used
|
|
21
|
+
- Status and cost
|
|
22
|
+
- Triggered by relationship
|
|
23
|
+
- Synchronization rule used
|
|
24
|
+
|
|
25
|
+
Example output:
|
|
26
|
+
```
|
|
27
|
+
Tracing flow: flow-2025-11-09-20h00m00s
|
|
28
|
+
Story: story-001 "Add dark mode support"
|
|
29
|
+
Total cost: $0.0165
|
|
30
|
+
Duration: 15m 30s
|
|
31
|
+
|
|
32
|
+
Timeline:
|
|
33
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
34
|
+
|
|
35
|
+
[20:00:00] act-001 | story.create | sonnet | $0.000175
|
|
36
|
+
Status: completed
|
|
37
|
+
Output: story-001 (status: ready)
|
|
38
|
+
Triggered by: user
|
|
39
|
+
↓
|
|
40
|
+
|
|
41
|
+
[20:05:00] act-002 | architecture.design | sonnet | $0.015000 ⭐
|
|
42
|
+
Status: completed
|
|
43
|
+
Output: arch-001 (approach: Context + CSS-in-JS)
|
|
44
|
+
Triggered by: act-001 via story-to-arch
|
|
45
|
+
↓
|
|
46
|
+
|
|
47
|
+
[20:10:00] act-003 | implementation.generate | sonnet | $0.000175
|
|
48
|
+
Status: completed
|
|
49
|
+
Output: impl-001 (5 files, 198 lines)
|
|
50
|
+
Triggered by: act-002 via arch-to-impl
|
|
51
|
+
↓
|
|
52
|
+
|
|
53
|
+
[20:15:00] act-004 | quality.review | sonnet | $0.000175
|
|
54
|
+
Status: completed (approved)
|
|
55
|
+
Output: review-001 (1 low-severity issue)
|
|
56
|
+
Triggered by: act-003 via impl-to-quality-review
|
|
57
|
+
│
|
|
58
|
+
[20:16:00] act-005 | quality.test | sonnet | $0.000175
|
|
59
|
+
Status: completed (18/18 passed)
|
|
60
|
+
Output: test-001 (94% coverage)
|
|
61
|
+
Triggered by: act-003 via impl-to-quality-test
|
|
62
|
+
↓
|
|
63
|
+
|
|
64
|
+
[20:20:00] act-006 | version.commit | sonnet | $0.000175
|
|
65
|
+
Status: completed
|
|
66
|
+
Output: commit abc123def
|
|
67
|
+
Triggered by: act-004 via quality-to-version
|
|
68
|
+
|
|
69
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
70
|
+
|
|
71
|
+
Summary:
|
|
72
|
+
- Total actions: 6
|
|
73
|
+
- Model usage: 1 sonnet, 5 sonnet
|
|
74
|
+
- Total cost: $0.0165
|
|
75
|
+
- Sonnet cost: $0.015 (91% of total)
|
|
76
|
+
- Cost efficiency: 83% savings vs all-sonnet
|
|
77
|
+
|
|
78
|
+
Synchronizations triggered:
|
|
79
|
+
- story-to-arch
|
|
80
|
+
- arch-to-impl
|
|
81
|
+
- impl-to-quality-review (parallel)
|
|
82
|
+
- impl-to-quality-test (parallel)
|
|
83
|
+
- quality-to-version
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
This command demonstrates the power of provenance tracking - you can see exactly how the system arrived at the current state and understand the cost/benefit of each decision.
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# Visualize Command
|
|
2
|
+
|
|
3
|
+
Generate visual diagrams from WYSIWID synchronization rules and workflow state.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/visualize [type] [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Types
|
|
12
|
+
|
|
13
|
+
### `workflow` (default)
|
|
14
|
+
Generate a Mermaid flowchart of the synchronization rules.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/visualize workflow
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### `state`
|
|
21
|
+
Visualize the current state of a flow.
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
/visualize state flow-2025-01-15-10h30m00s
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### `concepts`
|
|
28
|
+
Show relationships between concepts.
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
/visualize concepts
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### `memory`
|
|
35
|
+
Visualize the memory graph.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
/visualize memory
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Process
|
|
42
|
+
|
|
43
|
+
When you run this command:
|
|
44
|
+
|
|
45
|
+
1. **Read Configuration**
|
|
46
|
+
- Load `.claude/synchronizations/*.yaml`
|
|
47
|
+
- Parse sync rules and conditions
|
|
48
|
+
|
|
49
|
+
2. **Generate Diagram**
|
|
50
|
+
- Convert rules to Mermaid syntax
|
|
51
|
+
- Add styling based on concept types
|
|
52
|
+
- Include conditions as labels
|
|
53
|
+
|
|
54
|
+
3. **Output**
|
|
55
|
+
- Display Mermaid code block
|
|
56
|
+
- Can be rendered in any Mermaid-compatible viewer
|
|
57
|
+
|
|
58
|
+
## Example Output
|
|
59
|
+
|
|
60
|
+
### Workflow Visualization
|
|
61
|
+
|
|
62
|
+
```mermaid
|
|
63
|
+
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#4a90d9'}}}%%
|
|
64
|
+
flowchart LR
|
|
65
|
+
subgraph Capture
|
|
66
|
+
S[Story<br/>Sonnet]
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
subgraph Design
|
|
70
|
+
P[Planning<br/>Sonnet]
|
|
71
|
+
A[Architecture<br/>Opus]
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
subgraph Build
|
|
75
|
+
I[Implementation<br/>Sonnet]
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
subgraph Verify
|
|
79
|
+
V1[Verification 1<br/>Sonnet]
|
|
80
|
+
V2[Verification 2<br/>Sonnet]
|
|
81
|
+
VC[Consensus<br/>Sonnet]
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
subgraph Quality
|
|
85
|
+
QR[Review<br/>Sonnet]
|
|
86
|
+
QT[Test<br/>Sonnet]
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
subgraph Release
|
|
90
|
+
VE[Version<br/>Sonnet]
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
subgraph Learn
|
|
94
|
+
R[Retrospective<br/>Sonnet]
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
S -->|"ready & complex"| P
|
|
98
|
+
S -->|"ready & simple"| A
|
|
99
|
+
P -->|"ready"| A
|
|
100
|
+
A -->|"risk != low"| V1
|
|
101
|
+
A -->|"risk == low"| I
|
|
102
|
+
V1 --> V2
|
|
103
|
+
V2 --> VC
|
|
104
|
+
VC -->|"approved"| I
|
|
105
|
+
VC -->|"blocked"| A
|
|
106
|
+
I --> QR & QT
|
|
107
|
+
QR & QT -->|"passed"| VE
|
|
108
|
+
QR -->|"rejected"| R
|
|
109
|
+
QT -->|"failed"| R
|
|
110
|
+
R -.->|"learnings"| S
|
|
111
|
+
|
|
112
|
+
class sonnet fill:#90EE90
|
|
113
|
+
classDef sonnet fill:#87CEEB
|
|
114
|
+
classDef opus fill:#DDA0DD
|
|
115
|
+
|
|
116
|
+
class sonnet
|
|
117
|
+
class P,V1,V2,R sonnet
|
|
118
|
+
class A opus
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### State Visualization
|
|
122
|
+
|
|
123
|
+
```mermaid
|
|
124
|
+
%%{init: {'theme': 'base'}}%%
|
|
125
|
+
flowchart TD
|
|
126
|
+
subgraph "flow-2025-01-15-10h30m00s"
|
|
127
|
+
S[Story ✓<br/>story-042]
|
|
128
|
+
A[Architecture ✓<br/>arch-042]
|
|
129
|
+
I[Implementation ⏳<br/>impl-042]
|
|
130
|
+
Q[Quality<br/>pending]
|
|
131
|
+
V[Version<br/>pending]
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
S --> A --> I -.-> Q -.-> V
|
|
135
|
+
|
|
136
|
+
classDef completed fill:#90EE90
|
|
137
|
+
classDef inprogress fill:#FFD700
|
|
138
|
+
classDef pending fill:#D3D3D3
|
|
139
|
+
|
|
140
|
+
class S,A completed
|
|
141
|
+
class I inprogress
|
|
142
|
+
class Q,V pending
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Concepts Visualization
|
|
146
|
+
|
|
147
|
+
```mermaid
|
|
148
|
+
%%{init: {'theme': 'base'}}%%
|
|
149
|
+
flowchart TB
|
|
150
|
+
subgraph Core["Core Concepts"]
|
|
151
|
+
story["Story<br/>Requirements"]
|
|
152
|
+
arch["Architecture<br/>Design"]
|
|
153
|
+
impl["Implementation<br/>Code"]
|
|
154
|
+
quality["Quality<br/>Verification"]
|
|
155
|
+
version["Version<br/>Release"]
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
subgraph Intelligence["Intelligence Layer"]
|
|
159
|
+
plan["Planning<br/>Chain-of-Thought"]
|
|
160
|
+
verify["Verification<br/>Multi-Agent"]
|
|
161
|
+
retro["Retrospective<br/>Reflexion"]
|
|
162
|
+
tot["Tree-of-Thoughts<br/>Exploration"]
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
subgraph Memory["Memory Layer"]
|
|
166
|
+
semantic["Semantic Memory<br/>Long-term"]
|
|
167
|
+
checkpoint["Checkpoints<br/>Session"]
|
|
168
|
+
learnings["Learnings<br/>Active"]
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
story --> plan
|
|
172
|
+
plan --> arch
|
|
173
|
+
arch --> verify
|
|
174
|
+
verify --> impl
|
|
175
|
+
impl --> quality
|
|
176
|
+
quality --> version
|
|
177
|
+
|
|
178
|
+
quality -.->|"failure"| retro
|
|
179
|
+
retro -.->|"insights"| learnings
|
|
180
|
+
learnings -.->|"inform"| story
|
|
181
|
+
|
|
182
|
+
arch -.->|"complex"| tot
|
|
183
|
+
tot -.->|"decision"| arch
|
|
184
|
+
|
|
185
|
+
story --> semantic
|
|
186
|
+
arch --> semantic
|
|
187
|
+
impl --> semantic
|
|
188
|
+
|
|
189
|
+
checkpoint --> story & arch & impl
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Styling Guide
|
|
193
|
+
|
|
194
|
+
| Concept | Color | Model |
|
|
195
|
+
|---------|-------|-------|
|
|
196
|
+
| Story | Green | Sonnet |
|
|
197
|
+
| Architecture | Purple | Opus |
|
|
198
|
+
| Implementation | Green | Sonnet |
|
|
199
|
+
| Quality | Green | Sonnet |
|
|
200
|
+
| Version | Green | Sonnet |
|
|
201
|
+
| Planning | Blue | Sonnet |
|
|
202
|
+
| Verification | Blue | Sonnet |
|
|
203
|
+
| Retrospective | Blue | Sonnet |
|
|
204
|
+
|
|
205
|
+
## Integration
|
|
206
|
+
|
|
207
|
+
The visualizations can be:
|
|
208
|
+
1. Displayed in the terminal (as Mermaid code)
|
|
209
|
+
2. Rendered in VS Code with Mermaid extension
|
|
210
|
+
3. Exported to PNG/SVG using mermaid-cli
|
|
211
|
+
4. Embedded in documentation
|
|
212
|
+
|
|
213
|
+
## Automatic Updates
|
|
214
|
+
|
|
215
|
+
When sync rules change, re-run `/visualize workflow` to see the updated flow.
|
|
216
|
+
This ensures the diagram always matches the actual behavior (WYSIWID).
|