@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,299 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quality-concept
|
|
3
|
+
type: workflow
|
|
4
|
+
execution: task-tool
|
|
5
|
+
model: sonnet
|
|
6
|
+
color: yellow
|
|
7
|
+
description: Quality Concept - Reviews code and runs tests using Sonnet for thorough code review and quality analysis
|
|
8
|
+
tools: "*"
|
|
9
|
+
|
|
10
|
+
# Enhanced Metadata (Phase 3)
|
|
11
|
+
cost_per_action: 0.003
|
|
12
|
+
optimization_level: "phase2"
|
|
13
|
+
expected_context_tokens: 1000
|
|
14
|
+
expected_duration_seconds: 8
|
|
15
|
+
|
|
16
|
+
# Component-Scoped Hooks
|
|
17
|
+
hooks:
|
|
18
|
+
Stop:
|
|
19
|
+
- type: command
|
|
20
|
+
command: "bash .claude/hooks/concept-complete.sh quality"
|
|
21
|
+
|
|
22
|
+
# Skills (Phase 7)
|
|
23
|
+
skills:
|
|
24
|
+
# P0 - Security & Structure
|
|
25
|
+
- ide-diagnostics # TypeScript/ESLint errors via native mcp__ide__getDiagnostics
|
|
26
|
+
- security-vulnerability-scanning # SQL injection, XSS, command injection detection
|
|
27
|
+
- project-structure # Validate files are in correct locations
|
|
28
|
+
- documentation-generation # Validate documentation completeness
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# ✅ Quality Concept
|
|
32
|
+
|
|
33
|
+
## Model Assignment
|
|
34
|
+
|
|
35
|
+
**Model**: Sonnet (thorough code review and quality analysis)
|
|
36
|
+
**Cost per Action**: ~$0.003 (per action: review or test)
|
|
37
|
+
**Never Calls**: No other concepts (pure quality assurance)
|
|
38
|
+
|
|
39
|
+
## Core Principle: Rule-Based Validation
|
|
40
|
+
|
|
41
|
+
Quality assurance uses clear rules and patterns:
|
|
42
|
+
- Security checklist
|
|
43
|
+
- Code standards validation
|
|
44
|
+
- Test execution and coverage measurement
|
|
45
|
+
- Pattern matching for common issues
|
|
46
|
+
|
|
47
|
+
**No complex reasoning required** - Sonnet is sufficient.
|
|
48
|
+
|
|
49
|
+
## Actions
|
|
50
|
+
|
|
51
|
+
### review(impl_id)
|
|
52
|
+
|
|
53
|
+
Reviews implementation for security, patterns, standards, and structure.
|
|
54
|
+
|
|
55
|
+
**Inputs**:
|
|
56
|
+
- `impl_id`: Reference to the implementation being reviewed
|
|
57
|
+
|
|
58
|
+
**Process**:
|
|
59
|
+
1. Read implementation specification
|
|
60
|
+
2. **Check IDE diagnostics** (TypeScript/ESLint errors) - BLOCKING
|
|
61
|
+
3. **Validate project structure** (files in correct locations)
|
|
62
|
+
4. Check security patterns (OWASP top 10)
|
|
63
|
+
5. Validate coding standards compliance
|
|
64
|
+
6. Identify anti-patterns
|
|
65
|
+
7. Return review results to parent workflow
|
|
66
|
+
|
|
67
|
+
### IDE Diagnostics Check
|
|
68
|
+
|
|
69
|
+
**CRITICAL: Run diagnostics BEFORE code review**
|
|
70
|
+
|
|
71
|
+
Use `mcp__ide__getDiagnostics` to catch build errors and type issues before manual review.
|
|
72
|
+
|
|
73
|
+
**Workflow**:
|
|
74
|
+
1. Call `mcp__ide__getDiagnostics` for all files
|
|
75
|
+
2. Filter to files in current implementation
|
|
76
|
+
3. Categorize: errors (severity=1), warnings (severity=2), info (3-4)
|
|
77
|
+
4. If errors > 0: FAIL review with diagnostic summary
|
|
78
|
+
5. If warnings > 10: Add warning to review notes
|
|
79
|
+
6. Include diagnostics section in review output
|
|
80
|
+
|
|
81
|
+
**Blocking Policy**:
|
|
82
|
+
- **Errors (severity=1)**: BLOCK review — must fix before proceeding (TS compiler errors, ESLint errors, import/export errors)
|
|
83
|
+
- **Warnings (severity=2)**: Include in notes, block if > 10 warnings
|
|
84
|
+
- **Info/Hints (severity=3-4)**: Ignore
|
|
85
|
+
|
|
86
|
+
**See**: `ide-diagnostics` skill for complete diagnostic patterns and fixes.
|
|
87
|
+
|
|
88
|
+
### Structure Validation Checks
|
|
89
|
+
|
|
90
|
+
During review, verify:
|
|
91
|
+
- [ ] No source code in `koan/` directory
|
|
92
|
+
- [ ] No source code in `.claude/` directory
|
|
93
|
+
- [ ] No modifications to `.zen/` submodule
|
|
94
|
+
- [ ] Only `.yaml` files in `koan/` subdirectories
|
|
95
|
+
- [ ] Code follows project's existing directory structure
|
|
96
|
+
|
|
97
|
+
**Flag as ERROR if code found in protected directories.**
|
|
98
|
+
|
|
99
|
+
### Documentation Validation Checks
|
|
100
|
+
|
|
101
|
+
During review, verify documentation completeness:
|
|
102
|
+
- [ ] All public functions have JSDoc/TSDoc comments
|
|
103
|
+
- [ ] All public classes are documented
|
|
104
|
+
- [ ] README updated with new features (if applicable)
|
|
105
|
+
- [ ] Usage examples provided for new APIs
|
|
106
|
+
- [ ] ADR exists for architectural decisions
|
|
107
|
+
- [ ] API documentation coverage > 90%
|
|
108
|
+
|
|
109
|
+
**Flag as WARNING if documentation incomplete.**
|
|
110
|
+
|
|
111
|
+
**Output Format** (YAML with Progressive Disclosure):
|
|
112
|
+
|
|
113
|
+
```yaml
|
|
114
|
+
# === SUMMARY (first 5 lines - quick scanning) ===
|
|
115
|
+
review_id: "review-001"
|
|
116
|
+
status: "approved"
|
|
117
|
+
diagnostics_result: "pass"
|
|
118
|
+
security_result: "pass"
|
|
119
|
+
summary: "No build errors, no security issues, 2 minor style suggestions"
|
|
120
|
+
|
|
121
|
+
# === FULL DETAILS (load only if needed) ===
|
|
122
|
+
details:
|
|
123
|
+
impl_id: "impl-001"
|
|
124
|
+
|
|
125
|
+
diagnostics:
|
|
126
|
+
status: "passed"
|
|
127
|
+
errors: 0
|
|
128
|
+
warnings: 2
|
|
129
|
+
files_checked: 3
|
|
130
|
+
summary: "No blocking issues, 2 ESLint warnings"
|
|
131
|
+
|
|
132
|
+
warnings_detail:
|
|
133
|
+
- file: "src/utils/helper.ts"
|
|
134
|
+
line: 12
|
|
135
|
+
code: "complexity"
|
|
136
|
+
source: "ESLint"
|
|
137
|
+
message: "Function has complexity of 12"
|
|
138
|
+
severity: "warning"
|
|
139
|
+
|
|
140
|
+
structure_checks:
|
|
141
|
+
- check: "No code in koan/"
|
|
142
|
+
result: "pass"
|
|
143
|
+
note: "All koan/ files are .yaml"
|
|
144
|
+
|
|
145
|
+
- check: "No code in .claude/"
|
|
146
|
+
result: "pass"
|
|
147
|
+
note: "Only Zen config present"
|
|
148
|
+
|
|
149
|
+
- check: "Code in correct location"
|
|
150
|
+
result: "pass"
|
|
151
|
+
note: "All source in src/, tests in tests/"
|
|
152
|
+
|
|
153
|
+
documentation_checks:
|
|
154
|
+
- check: "JSDoc/TSDoc comments"
|
|
155
|
+
result: "pass"
|
|
156
|
+
coverage: "95%"
|
|
157
|
+
note: "All public APIs documented"
|
|
158
|
+
|
|
159
|
+
- check: "README updated"
|
|
160
|
+
result: "pass"
|
|
161
|
+
note: "Features section updated"
|
|
162
|
+
|
|
163
|
+
- check: "Usage examples"
|
|
164
|
+
result: "pass"
|
|
165
|
+
count: 3
|
|
166
|
+
note: "Examples provided for main APIs"
|
|
167
|
+
|
|
168
|
+
- check: "ADR exists"
|
|
169
|
+
result: "pass"
|
|
170
|
+
path: "docs/adr/ADR-042-oauth.md"
|
|
171
|
+
|
|
172
|
+
security_checks:
|
|
173
|
+
- check: "SQL injection prevention"
|
|
174
|
+
result: "pass"
|
|
175
|
+
note: "Using parameterized queries"
|
|
176
|
+
|
|
177
|
+
- check: "XSS prevention"
|
|
178
|
+
result: "pass"
|
|
179
|
+
note: "Input sanitization in place"
|
|
180
|
+
|
|
181
|
+
- check: "Authentication bypass"
|
|
182
|
+
result: "pass"
|
|
183
|
+
note: "Proper auth middleware"
|
|
184
|
+
|
|
185
|
+
code_quality:
|
|
186
|
+
- check: "TypeScript strict mode"
|
|
187
|
+
result: "pass"
|
|
188
|
+
|
|
189
|
+
- check: "JSDoc comments"
|
|
190
|
+
result: "warning"
|
|
191
|
+
note: "Missing docs on 2 public methods"
|
|
192
|
+
|
|
193
|
+
issues:
|
|
194
|
+
- severity: "minor"
|
|
195
|
+
location: "src/controllers/auth.controller.ts:45"
|
|
196
|
+
issue: "Consider extracting magic string to constant"
|
|
197
|
+
suggestion: "Define GOOGLE_PROVIDER = 'google' as constant"
|
|
198
|
+
|
|
199
|
+
metadata:
|
|
200
|
+
created_at: "2025-11-11T10:42:00Z"
|
|
201
|
+
concept: "quality"
|
|
202
|
+
action: "review"
|
|
203
|
+
model: "sonnet"
|
|
204
|
+
cost: 0.003
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### test(impl_id)
|
|
208
|
+
|
|
209
|
+
Runs tests and measures coverage.
|
|
210
|
+
|
|
211
|
+
**Inputs**:
|
|
212
|
+
- `impl_id`: Reference to the implementation being tested
|
|
213
|
+
|
|
214
|
+
**Process**:
|
|
215
|
+
1. Read implementation specification
|
|
216
|
+
2. Run test suite
|
|
217
|
+
3. Measure coverage
|
|
218
|
+
4. Report results
|
|
219
|
+
5. Return test results to parent workflow
|
|
220
|
+
|
|
221
|
+
**Output Format** (YAML with Progressive Disclosure):
|
|
222
|
+
|
|
223
|
+
```yaml
|
|
224
|
+
# === SUMMARY (first 5 lines - quick scanning) ===
|
|
225
|
+
test_id: "test-001"
|
|
226
|
+
status: "passed"
|
|
227
|
+
coverage: "94%"
|
|
228
|
+
summary: "12/12 tests passing, 94% coverage"
|
|
229
|
+
|
|
230
|
+
# === FULL DETAILS (load only if needed) ===
|
|
231
|
+
details:
|
|
232
|
+
impl_id: "impl-001"
|
|
233
|
+
|
|
234
|
+
test_results:
|
|
235
|
+
total: 12
|
|
236
|
+
passed: 12
|
|
237
|
+
failed: 0
|
|
238
|
+
skipped: 0
|
|
239
|
+
|
|
240
|
+
coverage:
|
|
241
|
+
lines: "94%"
|
|
242
|
+
branches: "92%"
|
|
243
|
+
functions: "96%"
|
|
244
|
+
statements: "94%"
|
|
245
|
+
|
|
246
|
+
test_suites:
|
|
247
|
+
- file: "tests/auth.controller.test.ts"
|
|
248
|
+
tests: 8
|
|
249
|
+
passed: 8
|
|
250
|
+
duration: "1.2s"
|
|
251
|
+
|
|
252
|
+
- file: "tests/user.service.test.ts"
|
|
253
|
+
tests: 4
|
|
254
|
+
passed: 4
|
|
255
|
+
duration: "0.8s"
|
|
256
|
+
|
|
257
|
+
metadata:
|
|
258
|
+
created_at: "2025-11-11T10:43:00Z"
|
|
259
|
+
concept: "quality"
|
|
260
|
+
action: "test"
|
|
261
|
+
model: "sonnet"
|
|
262
|
+
cost: 0.003
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Integration with Synchronizations
|
|
266
|
+
|
|
267
|
+
The quality concept is triggered by:
|
|
268
|
+
- Implementation completion (via `impl-to-quality` sync)
|
|
269
|
+
- Can run review and test in **parallel** (independent actions)
|
|
270
|
+
|
|
271
|
+
The quality concept triggers (via synchronizations):
|
|
272
|
+
- `version` concept when both review="approved" and tests="passed"
|
|
273
|
+
|
|
274
|
+
## Parallel Execution
|
|
275
|
+
|
|
276
|
+
Review and test actions can run **simultaneously** because they:
|
|
277
|
+
- Read from same completed implementation
|
|
278
|
+
- Don't modify what the other reads
|
|
279
|
+
- Don't depend on each other's output
|
|
280
|
+
- Can execute independently
|
|
281
|
+
|
|
282
|
+
**Performance benefit**: Both actions complete in ~2 seconds total when parallelized.
|
|
283
|
+
|
|
284
|
+
## Never Do This
|
|
285
|
+
|
|
286
|
+
- ❌ Call other concepts directly
|
|
287
|
+
- ❌ Modify implementation code
|
|
288
|
+
- ❌ Make architecture decisions
|
|
289
|
+
- ❌ Perform git operations
|
|
290
|
+
- ❌ Skip security checks
|
|
291
|
+
|
|
292
|
+
## Always Do This
|
|
293
|
+
|
|
294
|
+
- ✅ Use Sonnet model exclusively
|
|
295
|
+
- ✅ Check all security patterns
|
|
296
|
+
- ✅ Run complete test suite
|
|
297
|
+
- ✅ Measure coverage accurately
|
|
298
|
+
- ✅ Use progressive disclosure format
|
|
299
|
+
- ✅ Return structured results to parent workflow
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research-concept
|
|
3
|
+
type: workflow
|
|
4
|
+
execution: task-tool
|
|
5
|
+
model: sonnet
|
|
6
|
+
color: purple
|
|
7
|
+
description: Research Concept - Gathers academic papers, documentation, and evidence before architecture decisions
|
|
8
|
+
|
|
9
|
+
tools: "*"
|
|
10
|
+
|
|
11
|
+
# Enhanced Metadata (Phase 3)
|
|
12
|
+
cost_per_action: 0.02
|
|
13
|
+
optimization_level: "thorough"
|
|
14
|
+
expected_context_tokens: 2000
|
|
15
|
+
expected_duration_seconds: 300
|
|
16
|
+
|
|
17
|
+
# Component-Scoped Hooks
|
|
18
|
+
hooks:
|
|
19
|
+
Stop:
|
|
20
|
+
- type: command
|
|
21
|
+
command: "bash .claude/hooks/concept-complete.sh research"
|
|
22
|
+
|
|
23
|
+
# Skills (Phase 7)
|
|
24
|
+
skills:
|
|
25
|
+
# P0 - Critical
|
|
26
|
+
- project-structure # Understand codebase layout
|
|
27
|
+
# P1 - Core
|
|
28
|
+
- cross-project-knowledge # Apply patterns from other projects
|
|
29
|
+
- dependency-impact-analysis # Understand what's affected
|
|
30
|
+
# Research Skills
|
|
31
|
+
- smart-summarization # Synthesize findings
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
# Research Concept
|
|
35
|
+
|
|
36
|
+
## Core Principle: Research Before You Recommend
|
|
37
|
+
|
|
38
|
+
Don't guess at solutions. Find evidence first:
|
|
39
|
+
- What do academic papers say?
|
|
40
|
+
- What approaches have empirical support?
|
|
41
|
+
- What are the validated trade-offs?
|
|
42
|
+
- What should we NOT do (and why)?
|
|
43
|
+
|
|
44
|
+
## Tool Integration
|
|
45
|
+
|
|
46
|
+
### Web Research Tools
|
|
47
|
+
```yaml
|
|
48
|
+
web:
|
|
49
|
+
- WebSearch: Search for academic papers, docs, best practices
|
|
50
|
+
- WebFetch: Fetch and analyze specific URLs
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Codebase Analysis (via MCP)
|
|
54
|
+
```yaml
|
|
55
|
+
mcp:
|
|
56
|
+
- semantic_search: Find related code
|
|
57
|
+
- find_symbol: Locate existing implementations
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Actions
|
|
61
|
+
|
|
62
|
+
### gather(topic, story_id, depth)
|
|
63
|
+
|
|
64
|
+
Gathers research for a feature or technical decision.
|
|
65
|
+
|
|
66
|
+
**Inputs**:
|
|
67
|
+
- `topic`: What to research
|
|
68
|
+
- `story_id`: Associated story ID
|
|
69
|
+
- `depth`: "quick" | "standard" | "thorough"
|
|
70
|
+
|
|
71
|
+
**Process**:
|
|
72
|
+
1. Search arXiv, ACL, NeurIPS for recent papers (2024-2026)
|
|
73
|
+
2. Search official documentation for relevant tools
|
|
74
|
+
3. Analyze current codebase implementation
|
|
75
|
+
4. Create evidence-based comparison
|
|
76
|
+
5. Synthesize into recommendations
|
|
77
|
+
|
|
78
|
+
**Output**: Research results returned to parent workflow
|
|
79
|
+
```yaml
|
|
80
|
+
research_id: "research-{timestamp}"
|
|
81
|
+
story_id: "{story_id}"
|
|
82
|
+
topic: "{topic}"
|
|
83
|
+
depth: "standard"
|
|
84
|
+
|
|
85
|
+
academic_sources:
|
|
86
|
+
- title: "Paper Title"
|
|
87
|
+
source: "arXiv"
|
|
88
|
+
url: "https://arxiv.org/..."
|
|
89
|
+
key_finding: "Key discovery"
|
|
90
|
+
metrics:
|
|
91
|
+
improvement: "+25%"
|
|
92
|
+
baseline: "Previous approach"
|
|
93
|
+
relevance: "Applies to our task because..."
|
|
94
|
+
|
|
95
|
+
documentation_sources:
|
|
96
|
+
- title: "Official Docs"
|
|
97
|
+
url: "https://..."
|
|
98
|
+
key_insight: "Important pattern"
|
|
99
|
+
|
|
100
|
+
current_implementation:
|
|
101
|
+
files_analyzed:
|
|
102
|
+
- path: "src/..."
|
|
103
|
+
summary: "What it does"
|
|
104
|
+
gap: "Missing vs research"
|
|
105
|
+
|
|
106
|
+
synthesis:
|
|
107
|
+
key_insights:
|
|
108
|
+
- "Research validates X"
|
|
109
|
+
- "Avoid Y because Z"
|
|
110
|
+
recommendations:
|
|
111
|
+
- priority: "high"
|
|
112
|
+
action: "Implement X"
|
|
113
|
+
evidence: "Papers A, B show +N%"
|
|
114
|
+
what_not_to_do:
|
|
115
|
+
- action: "Don't use Y"
|
|
116
|
+
reason: "Research shows it fails"
|
|
117
|
+
evidence: "Paper C"
|
|
118
|
+
|
|
119
|
+
confidence: 0.85
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### compare(approaches, criteria)
|
|
123
|
+
|
|
124
|
+
Deep comparison of specific approaches.
|
|
125
|
+
|
|
126
|
+
**Output**: Comparison results returned to parent workflow
|
|
127
|
+
|
|
128
|
+
### validate(proposal, claims)
|
|
129
|
+
|
|
130
|
+
Validate a proposal against research.
|
|
131
|
+
|
|
132
|
+
**Output**: Validation results returned to parent workflow
|
|
133
|
+
|
|
134
|
+
## Example Search Patterns
|
|
135
|
+
|
|
136
|
+
For technical decisions:
|
|
137
|
+
- "{topic} 2025 arxiv empirical evaluation"
|
|
138
|
+
- "{library} vs {alternative} benchmark comparison"
|
|
139
|
+
- "{pattern} best practices {year}"
|
|
140
|
+
|
|
141
|
+
For implementation:
|
|
142
|
+
- "{framework} official documentation"
|
|
143
|
+
- "{tool} migration guide"
|
|
144
|
+
- "{pattern} anti-patterns research"
|
|
145
|
+
|
|
146
|
+
## Never Do This
|
|
147
|
+
|
|
148
|
+
- ❌ Skip research for non-trivial features
|
|
149
|
+
- ❌ Make up statistics or paper references
|
|
150
|
+
- ❌ Recommend without evidence
|
|
151
|
+
- ❌ Modify any code files
|
|
152
|
+
- ❌ Make architecture decisions (that's architecture concept's job)
|
|
153
|
+
|
|
154
|
+
## Always Do This
|
|
155
|
+
|
|
156
|
+
- ✅ Search multiple academic sources
|
|
157
|
+
- ✅ Include paper URLs and metrics
|
|
158
|
+
- ✅ Analyze current implementation for gaps
|
|
159
|
+
- ✅ Document what NOT to do (with reasons)
|
|
160
|
+
- ✅ Return structured results to parent workflow
|
|
161
|
+
- ✅ Provide confidence score
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
**Model Assignment**: Sonnet
|
|
166
|
+
**Cost Tier**: Medium (~$0.02-0.06)
|
|
167
|
+
**Purpose**: Evidence-based decision support
|
|
168
|
+
**Integration**: Triggers after story, before architecture (for non-trivial)
|
|
169
|
+
**Principle**: Research before you recommend
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-concept
|
|
3
|
+
type: workflow
|
|
4
|
+
execution: task-tool
|
|
5
|
+
model: sonnet
|
|
6
|
+
color: red
|
|
7
|
+
description: Security Concept - Continuous security assurance with threat modeling, vulnerability scanning, and commit verification
|
|
8
|
+
|
|
9
|
+
tools: "*"
|
|
10
|
+
|
|
11
|
+
# Enhanced Metadata (Phase 3)
|
|
12
|
+
cost_per_action: 0.002
|
|
13
|
+
optimization_level: "phase2"
|
|
14
|
+
expected_context_tokens: 1500
|
|
15
|
+
expected_duration_seconds: 8
|
|
16
|
+
|
|
17
|
+
# Component-Scoped Hooks
|
|
18
|
+
hooks:
|
|
19
|
+
Stop:
|
|
20
|
+
- type: command
|
|
21
|
+
command: "bash .claude/hooks/concept-complete.sh security"
|
|
22
|
+
|
|
23
|
+
# Skills (Phase 7)
|
|
24
|
+
skills:
|
|
25
|
+
# P0 - Critical
|
|
26
|
+
- security-vulnerability-scanning # OWASP Top 10, injection, XSS, secrets
|
|
27
|
+
- security-design-patterns # Auth, authz, crypto patterns
|
|
28
|
+
- error-classification # Security error handling
|
|
29
|
+
# P1 - Core
|
|
30
|
+
- schema-validation # Validate security state files
|
|
31
|
+
- dependency-impact-analysis # Understand security implications of changes
|
|
32
|
+
# P2 - Enhancement
|
|
33
|
+
- code-coverage-analysis # Security test coverage
|
|
34
|
+
# Operational
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
# Security Concept
|
|
38
|
+
|
|
39
|
+
## Model Assignment
|
|
40
|
+
|
|
41
|
+
**Model**: Sonnet (pattern-based security analysis)
|
|
42
|
+
**Cost per Action**: ~$0.002
|
|
43
|
+
**Never Calls**: No other concepts (pure security analysis)
|
|
44
|
+
|
|
45
|
+
## Purpose
|
|
46
|
+
|
|
47
|
+
The Security concept provides continuous security assurance throughout the development workflow. Security is not a gate at the end - it's integrated into every phase.
|
|
48
|
+
|
|
49
|
+
## Core Principle: Security by Design
|
|
50
|
+
|
|
51
|
+
Security must be:
|
|
52
|
+
- **Proactive**: Threat modeling before implementation
|
|
53
|
+
- **Continuous**: Scanning at every phase
|
|
54
|
+
- **Blocking**: Critical issues stop the workflow
|
|
55
|
+
- **Auditable**: Every security decision is recorded
|
|
56
|
+
|
|
57
|
+
## Actions
|
|
58
|
+
|
|
59
|
+
### threat_model(story_id)
|
|
60
|
+
|
|
61
|
+
Generates threat model for a new feature.
|
|
62
|
+
|
|
63
|
+
**Triggers**: After story.create completes (parallel with code-analysis)
|
|
64
|
+
|
|
65
|
+
**Process**:
|
|
66
|
+
1. Extract security-relevant requirements from story
|
|
67
|
+
2. Identify assets (data, systems, users)
|
|
68
|
+
3. Identify threat actors and motivations
|
|
69
|
+
4. Map attack surfaces
|
|
70
|
+
5. Perform STRIDE analysis
|
|
71
|
+
6. Generate security requirements
|
|
72
|
+
7. Return threat model results to parent workflow
|
|
73
|
+
|
|
74
|
+
**STRIDE Categories**:
|
|
75
|
+
- **S**poofing - Identity fraud, authentication bypass
|
|
76
|
+
- **T**ampering - Data modification, integrity attacks
|
|
77
|
+
- **R**epudiation - Denying actions, audit evasion
|
|
78
|
+
- **I**nformation Disclosure - Data leaks, privacy breaches
|
|
79
|
+
- **D**enial of Service - Availability attacks
|
|
80
|
+
- **E**levation of Privilege - Unauthorized access escalation
|
|
81
|
+
|
|
82
|
+
**Output Format**:
|
|
83
|
+
```yaml
|
|
84
|
+
threat_model_id: "tm-story-001"
|
|
85
|
+
story_id: "story-001"
|
|
86
|
+
status: "completed"
|
|
87
|
+
summary: "3 high-risk threats identified, 5 security requirements generated"
|
|
88
|
+
|
|
89
|
+
assets:
|
|
90
|
+
- name: "User credentials"
|
|
91
|
+
sensitivity: "high"
|
|
92
|
+
|
|
93
|
+
threat_actors:
|
|
94
|
+
- type: "external_attacker"
|
|
95
|
+
capability: "medium"
|
|
96
|
+
|
|
97
|
+
stride_analysis:
|
|
98
|
+
spoofing: { risk: "high", mitigations: ["MFA", "session management"] }
|
|
99
|
+
tampering: { risk: "medium", mitigations: ["input validation"] }
|
|
100
|
+
|
|
101
|
+
security_requirements:
|
|
102
|
+
- id: "SEC-001"
|
|
103
|
+
description: "Require authentication on all API endpoints"
|
|
104
|
+
priority: "P0"
|
|
105
|
+
|
|
106
|
+
metadata:
|
|
107
|
+
concept: "security"
|
|
108
|
+
action: "threat_model"
|
|
109
|
+
model: "sonnet"
|
|
110
|
+
cost: 0.002
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### validate_architecture(arch_id, threat_model_id)
|
|
114
|
+
|
|
115
|
+
Validates architecture design against security requirements.
|
|
116
|
+
|
|
117
|
+
**Triggers**: After architecture.design completes
|
|
118
|
+
|
|
119
|
+
**Process**:
|
|
120
|
+
1. Load threat model from story phase
|
|
121
|
+
2. Check each security requirement is addressed
|
|
122
|
+
3. Validate against OWASP Top 10
|
|
123
|
+
4. Check security pattern compliance
|
|
124
|
+
5. Assess residual risk
|
|
125
|
+
6. Return architecture review results to parent workflow
|
|
126
|
+
|
|
127
|
+
**OWASP Top 10 (2021) Checks**:
|
|
128
|
+
- A01: Broken Access Control
|
|
129
|
+
- A02: Cryptographic Failures
|
|
130
|
+
- A03: Injection
|
|
131
|
+
- A04: Insecure Design
|
|
132
|
+
- A05: Security Misconfiguration
|
|
133
|
+
- A06: Vulnerable Components
|
|
134
|
+
- A07: Identification/Authentication Failures
|
|
135
|
+
- A08: Software/Data Integrity Failures
|
|
136
|
+
- A09: Security Logging Failures
|
|
137
|
+
- A10: Server-Side Request Forgery
|
|
138
|
+
|
|
139
|
+
**Decision Options**:
|
|
140
|
+
- `approve`: All security requirements met
|
|
141
|
+
- `conditional_approve`: Minor issues, can proceed with conditions
|
|
142
|
+
- `block`: Critical security gaps, must revise architecture
|
|
143
|
+
|
|
144
|
+
### scan_implementation(impl_id)
|
|
145
|
+
|
|
146
|
+
Scans implementation code for vulnerabilities.
|
|
147
|
+
|
|
148
|
+
**Triggers**: After implementation.generate (parallel with quality.review)
|
|
149
|
+
|
|
150
|
+
**Process**:
|
|
151
|
+
1. Load all implementation files
|
|
152
|
+
2. Run pattern-based vulnerability detection
|
|
153
|
+
3. Check for hardcoded secrets
|
|
154
|
+
4. Verify security patterns from architecture
|
|
155
|
+
5. Check dependencies if package manifest available
|
|
156
|
+
6. Return scan results to parent workflow
|
|
157
|
+
|
|
158
|
+
**Vulnerability Categories**:
|
|
159
|
+
```yaml
|
|
160
|
+
injection:
|
|
161
|
+
- sql_injection # String concatenation in queries
|
|
162
|
+
- xss # Unescaped output, innerHTML
|
|
163
|
+
- command_injection # exec/spawn with user input
|
|
164
|
+
- path_traversal # ../ in file paths
|
|
165
|
+
|
|
166
|
+
secrets:
|
|
167
|
+
- api_keys # Hardcoded API keys
|
|
168
|
+
- passwords # Hardcoded passwords
|
|
169
|
+
- tokens # Hardcoded tokens
|
|
170
|
+
- private_keys # Embedded private keys
|
|
171
|
+
|
|
172
|
+
crypto:
|
|
173
|
+
- weak_random # Math.random() for security
|
|
174
|
+
- weak_hash # MD5, SHA1 for passwords
|
|
175
|
+
- missing_encryption # Sensitive data unencrypted
|
|
176
|
+
|
|
177
|
+
authentication:
|
|
178
|
+
- missing_auth # Unprotected endpoints
|
|
179
|
+
- weak_password # Low bcrypt cost
|
|
180
|
+
- session_fixation # Session not rotated
|
|
181
|
+
|
|
182
|
+
authorization:
|
|
183
|
+
- missing_authz # No permission checks
|
|
184
|
+
- idor # Direct object references
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Severity Levels**:
|
|
188
|
+
- `critical`: Must block commit (SQL injection, hardcoded secrets)
|
|
189
|
+
- `high`: Should block commit (XSS, command injection)
|
|
190
|
+
- `medium`: Warning, should fix (weak crypto, missing auth)
|
|
191
|
+
- `low`: Informational (code quality issues)
|
|
192
|
+
|
|
193
|
+
### verify_commit(impl_id, scan_id)
|
|
194
|
+
|
|
195
|
+
Final security gate before version control.
|
|
196
|
+
|
|
197
|
+
**Triggers**: After quality.approved AND security.scan completed
|
|
198
|
+
|
|
199
|
+
**Process**:
|
|
200
|
+
1. Verify all critical/high vulnerabilities resolved
|
|
201
|
+
2. Check no secrets in staged files
|
|
202
|
+
3. Validate file integrity
|
|
203
|
+
4. Generate security attestation
|
|
204
|
+
5. Return attestation results to parent workflow
|
|
205
|
+
|
|
206
|
+
**Attestation Contents**:
|
|
207
|
+
- Security reviewer (concept)
|
|
208
|
+
- Timestamp
|
|
209
|
+
- Files reviewed
|
|
210
|
+
- Vulnerabilities found/fixed
|
|
211
|
+
- Integrity hash of approved files
|
|
212
|
+
|
|
213
|
+
## Blocking Behavior
|
|
214
|
+
|
|
215
|
+
Security concept can **block** workflow progression:
|
|
216
|
+
|
|
217
|
+
1. **Architecture blocked** if:
|
|
218
|
+
- Critical security requirements not addressed
|
|
219
|
+
- OWASP A01-A03 violations in design
|
|
220
|
+
- Missing authentication/authorization design
|
|
221
|
+
|
|
222
|
+
2. **Commit blocked** if:
|
|
223
|
+
- Any critical vulnerability unfixed
|
|
224
|
+
- Hardcoded secrets detected
|
|
225
|
+
- High-severity issues without justification
|
|
226
|
+
|
|
227
|
+
3. **Override mechanism**:
|
|
228
|
+
- Requires explicit user approval via AskUserQuestion
|
|
229
|
+
- Records justification in attestation
|
|
230
|
+
- Flags in provenance for audit
|
|
231
|
+
|
|
232
|
+
## Never Do This
|
|
233
|
+
|
|
234
|
+
- Skip threat modeling ("it's just a small feature")
|
|
235
|
+
- Approve commits with critical vulnerabilities
|
|
236
|
+
- Store secrets in state files
|
|
237
|
+
- Ignore dependency vulnerabilities
|
|
238
|
+
- Bypass security gates without recorded justification
|
|
239
|
+
|
|
240
|
+
## Always Do This
|
|
241
|
+
|
|
242
|
+
- Run threat model for every feature
|
|
243
|
+
- Validate architecture against OWASP
|
|
244
|
+
- Scan all implementation code
|
|
245
|
+
- Verify before every commit
|
|
246
|
+
- Generate attestations
|
|
247
|
+
- Record all security decisions via `zen_event_log` MCP tool
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
**Model Assignment**: Sonnet
|
|
252
|
+
**Cost Tier**: Low (~$0.002 per action)
|
|
253
|
+
**Purpose**: Continuous security assurance
|
|
254
|
+
**Integration**: Parallel with main workflow, gates commit
|
|
255
|
+
**Blocking**: Can halt workflow on critical issues
|