agentic-qe 1.1.0 → 1.2.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/agents/qe-coverage-analyzer.md +8 -0
- package/.claude/agents/qe-flaky-test-hunter.md +9 -1
- package/.claude/agents/qe-test-generator.md +7 -0
- package/.claude/agents/reasoning/agent.md +816 -0
- package/.claude/agents/reasoning/goal-planner.md +73 -0
- package/.claude/settings.json +21 -20
- package/.claude/skills/README.md +124 -0
- package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
- package/.claude/skills/agentdb-learning/SKILL.md +545 -0
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
- package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
- package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
- package/.claude/skills/agentic-quality-engineering/SKILL.md +604 -0
- package/.claude/skills/api-testing-patterns/SKILL.md +686 -0
- package/.claude/skills/bug-reporting-excellence/SKILL.md +632 -0
- package/.claude/skills/code-review-quality/SKILL.md +683 -0
- package/.claude/skills/consultancy-practices/SKILL.md +540 -0
- package/.claude/skills/context-driven-testing/SKILL.md +466 -0
- package/.claude/skills/exploratory-testing-advanced/SKILL.md +676 -0
- package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
- package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
- package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
- package/.claude/skills/github-code-review/SKILL.md +1140 -0
- package/.claude/skills/github-multi-repo/SKILL.md +874 -0
- package/.claude/skills/github-project-management/SKILL.md +1277 -0
- package/.claude/skills/github-release-management/SKILL.md +1081 -0
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
- package/.claude/skills/holistic-testing-pact/SKILL.md +225 -0
- package/.claude/skills/hooks-automation/SKILL.md +1201 -0
- package/.claude/skills/pair-programming/SKILL.md +1202 -0
- package/.claude/skills/performance-analysis/SKILL.md +563 -0
- package/.claude/skills/performance-testing/SKILL.md +662 -0
- package/.claude/skills/quality-metrics/SKILL.md +592 -0
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
- package/.claude/skills/refactoring-patterns/SKILL.md +778 -0
- package/.claude/skills/risk-based-testing/SKILL.md +721 -0
- package/.claude/skills/security-testing/SKILL.md +651 -0
- package/.claude/skills/skill-builder/SKILL.md +910 -0
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
- package/.claude/skills/stream-chain/SKILL.md +563 -0
- package/.claude/skills/swarm-advanced/SKILL.md +973 -0
- package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
- package/.claude/skills/tdd-london-chicago/SKILL.md +567 -0
- package/.claude/skills/technical-writing/SKILL.md +235 -0
- package/.claude/skills/test-automation-strategy/SKILL.md +842 -0
- package/.claude/skills/verification-quality/SKILL.md +649 -0
- package/.claude/skills/xp-practices/SKILL.md +671 -0
- package/.claude/statusline-command.sh +176 -0
- package/CHANGELOG.md +536 -1
- package/README.md +92 -3
- package/config/improvement-loop.config.ts +323 -0
- package/config/neural-agent.config.ts +197 -0
- package/dist/adapters/MemoryStoreAdapter.d.ts +16 -16
- package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
- package/dist/adapters/MemoryStoreAdapter.js +16 -16
- package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
- package/dist/agents/BaseAgent.d.ts +69 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +382 -1
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +13 -2
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +105 -6
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.js +13 -13
- package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +28 -0
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +159 -4
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
- package/dist/agents/FleetCommanderAgent.js +2 -2
- package/dist/agents/FleetCommanderAgent.js.map +1 -1
- package/dist/agents/LearningAgent.d.ts +14 -5
- package/dist/agents/LearningAgent.d.ts.map +1 -1
- package/dist/agents/LearningAgent.js +36 -16
- package/dist/agents/LearningAgent.js.map +1 -1
- package/dist/agents/NeuralAgentExtension.d.ts +117 -0
- package/dist/agents/NeuralAgentExtension.d.ts.map +1 -0
- package/dist/agents/NeuralAgentExtension.js +288 -0
- package/dist/agents/NeuralAgentExtension.js.map +1 -0
- package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
- package/dist/agents/PerformanceTesterAgent.js +4 -3
- package/dist/agents/PerformanceTesterAgent.js.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.js +7 -7
- package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.js +2 -2
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.js +5 -5
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.js +7 -7
- package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.js +1 -1
- package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
- package/dist/agents/SecurityScannerAgent.js +6 -6
- package/dist/agents/SecurityScannerAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +1 -3
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +15 -4
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +165 -43
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/mixins/NeuralCapableMixin.d.ts +130 -0
- package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +1 -0
- package/dist/agents/mixins/NeuralCapableMixin.js +358 -0
- package/dist/agents/mixins/NeuralCapableMixin.js.map +1 -0
- package/dist/agents/mixins/QUICCapableMixin.d.ts +34 -0
- package/dist/agents/mixins/QUICCapableMixin.d.ts.map +1 -0
- package/dist/agents/mixins/QUICCapableMixin.js +346 -0
- package/dist/agents/mixins/QUICCapableMixin.js.map +1 -0
- package/dist/cli/commands/agent/index.d.ts +5 -0
- package/dist/cli/commands/agent/index.d.ts.map +1 -1
- package/dist/cli/commands/agent/index.js +11 -6
- package/dist/cli/commands/agent/index.js.map +1 -1
- package/dist/cli/commands/agent/kill.d.ts +13 -0
- package/dist/cli/commands/agent/kill.d.ts.map +1 -0
- package/dist/cli/commands/agent/kill.js +65 -0
- package/dist/cli/commands/agent/kill.js.map +1 -0
- package/dist/cli/commands/agent/list.d.ts +19 -0
- package/dist/cli/commands/agent/list.d.ts.map +1 -0
- package/dist/cli/commands/agent/list.js +92 -0
- package/dist/cli/commands/agent/list.js.map +1 -0
- package/dist/cli/commands/agent/logs.d.ts +14 -0
- package/dist/cli/commands/agent/logs.d.ts.map +1 -0
- package/dist/cli/commands/agent/logs.js +77 -0
- package/dist/cli/commands/agent/logs.js.map +1 -0
- package/dist/cli/commands/agent/metrics.d.ts +21 -0
- package/dist/cli/commands/agent/metrics.d.ts.map +1 -0
- package/dist/cli/commands/agent/metrics.js +87 -0
- package/dist/cli/commands/agent/metrics.js.map +1 -0
- package/dist/cli/commands/agent/spawn.d.ts +28 -0
- package/dist/cli/commands/agent/spawn.d.ts.map +1 -0
- package/dist/cli/commands/agent/spawn.js +83 -0
- package/dist/cli/commands/agent/spawn.js.map +1 -0
- package/dist/cli/commands/init.d.ts +24 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +475 -7
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/skills/index.d.ts +51 -0
- package/dist/cli/commands/skills/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/index.js +364 -0
- package/dist/cli/commands/skills/index.js.map +1 -0
- package/dist/cli/index.js +92 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/EventBus.d.ts +38 -0
- package/dist/core/EventBus.d.ts.map +1 -1
- package/dist/core/EventBus.js +176 -31
- package/dist/core/EventBus.js.map +1 -1
- package/dist/core/FleetManager.d.ts +35 -1
- package/dist/core/FleetManager.d.ts.map +1 -1
- package/dist/core/FleetManager.js +121 -45
- package/dist/core/FleetManager.js.map +1 -1
- package/dist/core/MemoryManager.d.ts +19 -1
- package/dist/core/MemoryManager.d.ts.map +1 -1
- package/dist/core/MemoryManager.js +25 -1
- package/dist/core/MemoryManager.js.map +1 -1
- package/dist/core/embeddings/EmbeddingCache.d.ts +134 -0
- package/dist/core/embeddings/EmbeddingCache.d.ts.map +1 -0
- package/dist/core/embeddings/EmbeddingCache.js +239 -0
- package/dist/core/embeddings/EmbeddingCache.js.map +1 -0
- package/dist/core/embeddings/EmbeddingGenerator.d.ts +224 -0
- package/dist/core/embeddings/EmbeddingGenerator.d.ts.map +1 -0
- package/dist/core/embeddings/EmbeddingGenerator.js +459 -0
- package/dist/core/embeddings/EmbeddingGenerator.js.map +1 -0
- package/dist/core/embeddings/index.d.ts +15 -0
- package/dist/core/embeddings/index.d.ts.map +1 -0
- package/dist/core/embeddings/index.js +22 -0
- package/dist/core/embeddings/index.js.map +1 -0
- package/dist/core/memory/AgentDBIntegration.d.ts +35 -0
- package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -0
- package/dist/core/memory/AgentDBIntegration.js +75 -0
- package/dist/core/memory/AgentDBIntegration.js.map +1 -0
- package/dist/core/memory/AgentDBManager.d.ts +200 -0
- package/dist/core/memory/AgentDBManager.d.ts.map +1 -0
- package/dist/core/memory/AgentDBManager.js +263 -0
- package/dist/core/memory/AgentDBManager.js.map +1 -0
- package/dist/core/memory/AgentDBService.d.ts +160 -0
- package/dist/core/memory/AgentDBService.d.ts.map +1 -0
- package/dist/core/memory/AgentDBService.js +450 -0
- package/dist/core/memory/AgentDBService.js.map +1 -0
- package/dist/core/memory/RealAgentDBAdapter.d.ts +51 -0
- package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -0
- package/dist/core/memory/RealAgentDBAdapter.js +230 -0
- package/dist/core/memory/RealAgentDBAdapter.js.map +1 -0
- package/dist/core/memory/ReasoningBankAdapter.d.ts +58 -0
- package/dist/core/memory/ReasoningBankAdapter.d.ts.map +1 -0
- package/dist/core/memory/ReasoningBankAdapter.js +80 -0
- package/dist/core/memory/ReasoningBankAdapter.js.map +1 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts +75 -3
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +236 -52
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/index.d.ts +4 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +9 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/neural/NeuralTrainer.d.ts +137 -0
- package/dist/core/neural/NeuralTrainer.d.ts.map +1 -0
- package/dist/core/neural/NeuralTrainer.js +543 -0
- package/dist/core/neural/NeuralTrainer.js.map +1 -0
- package/dist/core/neural/index.d.ts +8 -0
- package/dist/core/neural/index.d.ts.map +1 -0
- package/dist/core/neural/index.js +24 -0
- package/dist/core/neural/index.js.map +1 -0
- package/dist/core/neural/types.d.ts +216 -0
- package/dist/core/neural/types.d.ts.map +1 -0
- package/dist/core/neural/types.js +8 -0
- package/dist/core/neural/types.js.map +1 -0
- package/dist/core/security/CertificateValidator.d.ts +130 -0
- package/dist/core/security/CertificateValidator.d.ts.map +1 -0
- package/dist/core/security/CertificateValidator.js +376 -0
- package/dist/core/security/CertificateValidator.js.map +1 -0
- package/dist/core/transport/QUICTransport.d.ts +62 -0
- package/dist/core/transport/QUICTransport.d.ts.map +1 -0
- package/dist/core/transport/QUICTransport.js +381 -0
- package/dist/core/transport/QUICTransport.js.map +1 -0
- package/dist/core/transport/SecureQUICTransport.d.ts +71 -0
- package/dist/core/transport/SecureQUICTransport.d.ts.map +1 -0
- package/dist/core/transport/SecureQUICTransport.js +253 -0
- package/dist/core/transport/SecureQUICTransport.js.map +1 -0
- package/dist/learning/AdvancedFeatureExtractor.d.ts +123 -0
- package/dist/learning/AdvancedFeatureExtractor.d.ts.map +1 -0
- package/dist/learning/AdvancedFeatureExtractor.js +423 -0
- package/dist/learning/AdvancedFeatureExtractor.js.map +1 -0
- package/dist/learning/FlakyPredictionModel.d.ts +11 -1
- package/dist/learning/FlakyPredictionModel.d.ts.map +1 -1
- package/dist/learning/FlakyPredictionModel.js +82 -35
- package/dist/learning/FlakyPredictionModel.js.map +1 -1
- package/dist/learning/FlakyTestDetector.d.ts +9 -0
- package/dist/learning/FlakyTestDetector.d.ts.map +1 -1
- package/dist/learning/FlakyTestDetector.js +28 -6
- package/dist/learning/FlakyTestDetector.js.map +1 -1
- package/dist/learning/ImprovementLoop.d.ts +16 -2
- package/dist/learning/ImprovementLoop.d.ts.map +1 -1
- package/dist/learning/ImprovementLoop.js +67 -8
- package/dist/learning/ImprovementLoop.js.map +1 -1
- package/dist/learning/ImprovementWorker.d.ts +83 -0
- package/dist/learning/ImprovementWorker.d.ts.map +1 -0
- package/dist/learning/ImprovementWorker.js +164 -0
- package/dist/learning/ImprovementWorker.js.map +1 -0
- package/dist/learning/NeuralPatternMatcher.d.ts +184 -0
- package/dist/learning/NeuralPatternMatcher.d.ts.map +1 -0
- package/dist/learning/NeuralPatternMatcher.js +702 -0
- package/dist/learning/NeuralPatternMatcher.js.map +1 -0
- package/dist/learning/NeuralTrainer.d.ts +209 -0
- package/dist/learning/NeuralTrainer.d.ts.map +1 -0
- package/dist/learning/NeuralTrainer.js +478 -0
- package/dist/learning/NeuralTrainer.js.map +1 -0
- package/dist/learning/index.d.ts +13 -7
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +27 -11
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/types.d.ts +1 -0
- package/dist/learning/types.d.ts.map +1 -1
- package/dist/learning/types.js +16 -0
- package/dist/learning/types.js.map +1 -1
- package/dist/mcp/MCPToolRegistry.d.ts +34 -0
- package/dist/mcp/MCPToolRegistry.d.ts.map +1 -0
- package/dist/mcp/MCPToolRegistry.js +48 -0
- package/dist/mcp/MCPToolRegistry.js.map +1 -0
- package/dist/mcp/server.d.ts +4 -4
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +7 -1
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/transport/QUICTransport.d.ts +340 -0
- package/dist/transport/QUICTransport.d.ts.map +1 -0
- package/dist/transport/QUICTransport.js +814 -0
- package/dist/transport/QUICTransport.js.map +1 -0
- package/dist/transport/UDPTransport.d.ts +348 -0
- package/dist/transport/UDPTransport.d.ts.map +1 -0
- package/dist/transport/UDPTransport.js +820 -0
- package/dist/transport/UDPTransport.js.map +1 -0
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/index.d.ts +37 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/quic.d.ts +339 -0
- package/dist/types/quic.d.ts.map +1 -0
- package/dist/types/quic.js +48 -0
- package/dist/types/quic.js.map +1 -0
- package/dist/utils/Config.js +1 -1
- package/dist/utils/Config.js.map +1 -1
- package/dist/utils/Database.d.ts +14 -0
- package/dist/utils/Database.d.ts.map +1 -1
- package/dist/utils/Database.js +51 -4
- package/dist/utils/Database.js.map +1 -1
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +111 -26
- package/dist/utils/Logger.js.map +1 -1
- package/package.json +30 -7
|
@@ -44,7 +44,7 @@ const fs = __importStar(require("fs-extra"));
|
|
|
44
44
|
const path = __importStar(require("path"));
|
|
45
45
|
class InitCommand {
|
|
46
46
|
static async execute(options) {
|
|
47
|
-
console.log(chalk_1.default.blue.bold('\n🚀 Initializing Agentic QE Project (v1.
|
|
47
|
+
console.log(chalk_1.default.blue.bold('\n🚀 Initializing Agentic QE Project (v1.2.0)\n'));
|
|
48
48
|
try {
|
|
49
49
|
// Parse options
|
|
50
50
|
const maxAgents = parseInt(options.maxAgents);
|
|
@@ -84,8 +84,9 @@ class InitCommand {
|
|
|
84
84
|
timeout: 1800000
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
|
-
// Interactive project setup if needed
|
|
88
|
-
|
|
87
|
+
// Interactive project setup if needed (skip if --non-interactive or --yes)
|
|
88
|
+
const isNonInteractive = options.nonInteractive || options.yes;
|
|
89
|
+
if (!options.config && !isNonInteractive) {
|
|
89
90
|
const projectAnswers = await inquirer_1.default.prompt([
|
|
90
91
|
{
|
|
91
92
|
type: 'input',
|
|
@@ -144,10 +145,28 @@ class InitCommand {
|
|
|
144
145
|
options.enableImprovement = true;
|
|
145
146
|
}
|
|
146
147
|
else {
|
|
148
|
+
// Non-interactive mode: use defaults or environment variables
|
|
149
|
+
fleetConfig.project = {
|
|
150
|
+
name: process.env.AQE_PROJECT_NAME || path.basename(process.cwd()),
|
|
151
|
+
path: process.cwd(),
|
|
152
|
+
language: (process.env.AQE_LANGUAGE || 'typescript').toLowerCase()
|
|
153
|
+
};
|
|
154
|
+
// Use environment variables or defaults
|
|
155
|
+
if (fleetConfig.routing) {
|
|
156
|
+
fleetConfig.routing.enabled = process.env.AQE_ROUTING_ENABLED === 'true' || false;
|
|
157
|
+
}
|
|
158
|
+
if (fleetConfig.streaming) {
|
|
159
|
+
fleetConfig.streaming.enabled = process.env.AQE_STREAMING_ENABLED !== 'false';
|
|
160
|
+
}
|
|
147
161
|
// Use defaults if non-interactive
|
|
148
|
-
options.enableLearning =
|
|
149
|
-
options.enablePatterns =
|
|
150
|
-
options.enableImprovement =
|
|
162
|
+
options.enableLearning = process.env.AQE_LEARNING_ENABLED !== 'false';
|
|
163
|
+
options.enablePatterns = process.env.AQE_PATTERNS_ENABLED !== 'false';
|
|
164
|
+
options.enableImprovement = process.env.AQE_IMPROVEMENT_ENABLED !== 'false';
|
|
165
|
+
console.log(chalk_1.default.gray(' ℹ️ Running in non-interactive mode with defaults'));
|
|
166
|
+
console.log(chalk_1.default.gray(` • Project: ${fleetConfig.project.name}`));
|
|
167
|
+
console.log(chalk_1.default.gray(` • Language: ${fleetConfig.project.language}`));
|
|
168
|
+
console.log(chalk_1.default.gray(` • Routing: ${fleetConfig.routing?.enabled ? 'enabled' : 'disabled'}`));
|
|
169
|
+
console.log(chalk_1.default.gray(` • Streaming: ${fleetConfig.streaming?.enabled ? 'enabled' : 'disabled'}`));
|
|
151
170
|
}
|
|
152
171
|
const spinner = (0, ora_1.default)('Setting up fleet infrastructure...').start();
|
|
153
172
|
// Create directory structure
|
|
@@ -235,6 +254,8 @@ class InitCommand {
|
|
|
235
254
|
'.agentic-qe/state/coordination', // Coordination state
|
|
236
255
|
'.claude', // For Claude Code integration
|
|
237
256
|
'.claude/agents', // Where agent definitions live
|
|
257
|
+
'.claude/skills', // Where QE skill definitions live (17 QE skills only)
|
|
258
|
+
'.claude/commands', // Where AQE slash commands live (8 commands)
|
|
238
259
|
'tests/unit',
|
|
239
260
|
'tests/integration',
|
|
240
261
|
'tests/e2e',
|
|
@@ -246,6 +267,10 @@ class InitCommand {
|
|
|
246
267
|
}
|
|
247
268
|
// Copy agent templates from agentic-qe package
|
|
248
269
|
await this.copyAgentTemplates();
|
|
270
|
+
// Copy skill templates (only QE Fleet skills, not Claude Flow)
|
|
271
|
+
await this.copySkillTemplates();
|
|
272
|
+
// Copy command templates (8 AQE slash commands)
|
|
273
|
+
await this.copyCommandTemplates();
|
|
249
274
|
}
|
|
250
275
|
static async copyAgentTemplates() {
|
|
251
276
|
console.log(chalk_1.default.cyan(' 🔍 Searching for agent templates...'));
|
|
@@ -343,6 +368,7 @@ class InitCommand {
|
|
|
343
368
|
}
|
|
344
369
|
const agentFile = path.join(targetPath, `${agentName}.md`);
|
|
345
370
|
const agentType = agentName.replace('qe-', '');
|
|
371
|
+
const skills = this.getAgentSkills(agentName);
|
|
346
372
|
const content = `---
|
|
347
373
|
name: ${agentName}
|
|
348
374
|
type: ${agentType}
|
|
@@ -351,13 +377,22 @@ priority: medium
|
|
|
351
377
|
description: "Agentic QE Fleet ${agentType} agent"
|
|
352
378
|
capabilities:
|
|
353
379
|
- ${agentType}
|
|
380
|
+
skills:
|
|
381
|
+
${skills.map(s => ` - ${s}`).join('\n')}
|
|
354
382
|
coordination:
|
|
355
383
|
protocol: aqe-hooks
|
|
384
|
+
learning:
|
|
385
|
+
enabled: true
|
|
386
|
+
observability:
|
|
387
|
+
- agent.getLearningStatus()
|
|
388
|
+
- agent.getLearnedPatterns()
|
|
389
|
+
- agent.recommendStrategy(state)
|
|
356
390
|
metadata:
|
|
357
|
-
version: "1.0
|
|
391
|
+
version: "1.1.0"
|
|
358
392
|
framework: "agentic-qe"
|
|
359
393
|
routing: "supported"
|
|
360
394
|
streaming: "supported"
|
|
395
|
+
phase2: "q-learning-enabled"
|
|
361
396
|
---
|
|
362
397
|
|
|
363
398
|
# ${agentName.toUpperCase()} Agent
|
|
@@ -369,6 +404,68 @@ This agent is part of the Agentic QE Fleet and specializes in ${agentType}.
|
|
|
369
404
|
- AI-powered ${agentType}
|
|
370
405
|
- Integration with Agentic QE Fleet
|
|
371
406
|
- Native TypeScript coordination
|
|
407
|
+
- **Q-Learning**: Learns from task execution automatically
|
|
408
|
+
- **Pattern Bank**: Uses proven test patterns
|
|
409
|
+
- **Improvement Loop**: Continuously optimizes strategies
|
|
410
|
+
|
|
411
|
+
## 🧠 Q-Learning Integration (Phase 2)
|
|
412
|
+
|
|
413
|
+
This agent automatically learns from EVERY task execution through Q-learning integration in \`BaseAgent.onPostTask()\`.
|
|
414
|
+
|
|
415
|
+
### Observability Methods
|
|
416
|
+
|
|
417
|
+
\`\`\`typescript
|
|
418
|
+
// 1. Check learning status
|
|
419
|
+
const status = agent.getLearningStatus();
|
|
420
|
+
console.log(status);
|
|
421
|
+
// {
|
|
422
|
+
// enabled: true,
|
|
423
|
+
// totalExperiences: 1247,
|
|
424
|
+
// explorationRate: 0.08,
|
|
425
|
+
// patterns: 34
|
|
426
|
+
// }
|
|
427
|
+
|
|
428
|
+
// 2. View learned patterns
|
|
429
|
+
const patterns = agent.getLearnedPatterns();
|
|
430
|
+
console.log(patterns[0]);
|
|
431
|
+
// {
|
|
432
|
+
// state: { taskComplexity: 'high', ... },
|
|
433
|
+
// action: 'thorough-deep-analysis',
|
|
434
|
+
// qValue: 0.8734,
|
|
435
|
+
// successRate: 0.88
|
|
436
|
+
// }
|
|
437
|
+
|
|
438
|
+
// 3. Get strategy recommendations
|
|
439
|
+
const recommendation = await agent.recommendStrategy({
|
|
440
|
+
taskComplexity: 'medium',
|
|
441
|
+
availableCapabilities: agent.capabilities
|
|
442
|
+
});
|
|
443
|
+
console.log(recommendation);
|
|
444
|
+
// {
|
|
445
|
+
// action: 'balanced-coverage',
|
|
446
|
+
// confidence: 0.92,
|
|
447
|
+
// expectedQValue: 0.7845
|
|
448
|
+
// }
|
|
449
|
+
\`\`\`
|
|
450
|
+
|
|
451
|
+
### CLI Commands
|
|
452
|
+
|
|
453
|
+
\`\`\`bash
|
|
454
|
+
# Check learning status
|
|
455
|
+
aqe learn status --agent ${agentName}
|
|
456
|
+
|
|
457
|
+
# View learned patterns
|
|
458
|
+
aqe learn history --agent ${agentName} --limit 50
|
|
459
|
+
|
|
460
|
+
# Export learning data
|
|
461
|
+
aqe learn export --agent ${agentName} --output learning.json
|
|
462
|
+
\`\`\`
|
|
463
|
+
|
|
464
|
+
## Skills
|
|
465
|
+
|
|
466
|
+
This agent can use the following Claude Code Skills:
|
|
467
|
+
|
|
468
|
+
${this.getSkillDocumentation(agentName)}
|
|
372
469
|
|
|
373
470
|
## Coordination Protocol
|
|
374
471
|
|
|
@@ -536,6 +633,7 @@ For full capabilities, install the complete agentic-qe package.
|
|
|
536
633
|
for (const agentName of missingAgents) {
|
|
537
634
|
const agentFile = path.join(targetPath, `${agentName}.md`);
|
|
538
635
|
const agentType = agentName.replace('qe-', '');
|
|
636
|
+
const skills = this.getAgentSkills(agentName);
|
|
539
637
|
const content = `---
|
|
540
638
|
name: ${agentName}
|
|
541
639
|
type: ${agentType}
|
|
@@ -544,13 +642,22 @@ priority: medium
|
|
|
544
642
|
description: "Agentic QE Fleet ${agentType} agent"
|
|
545
643
|
capabilities:
|
|
546
644
|
- ${agentType}
|
|
645
|
+
skills:
|
|
646
|
+
${skills.map(s => ` - ${s}`).join('\n')}
|
|
547
647
|
coordination:
|
|
548
648
|
protocol: aqe-hooks
|
|
649
|
+
learning:
|
|
650
|
+
enabled: true
|
|
651
|
+
observability:
|
|
652
|
+
- agent.getLearningStatus()
|
|
653
|
+
- agent.getLearnedPatterns()
|
|
654
|
+
- agent.recommendStrategy(state)
|
|
549
655
|
metadata:
|
|
550
656
|
version: "1.1.0"
|
|
551
657
|
framework: "agentic-qe"
|
|
552
658
|
routing: "supported"
|
|
553
659
|
streaming: "supported"
|
|
660
|
+
phase2: "q-learning-enabled"
|
|
554
661
|
---
|
|
555
662
|
|
|
556
663
|
# ${agentName.toUpperCase()} Agent
|
|
@@ -562,6 +669,15 @@ This agent is part of the Agentic QE Fleet and specializes in ${agentType}.
|
|
|
562
669
|
- AI-powered ${agentType}
|
|
563
670
|
- Integration with Agentic QE Fleet
|
|
564
671
|
- Native TypeScript coordination
|
|
672
|
+
- **Q-Learning**: Learns from task execution automatically
|
|
673
|
+
- **Pattern Bank**: Uses proven test patterns
|
|
674
|
+
- **Improvement Loop**: Continuously optimizes strategies
|
|
675
|
+
|
|
676
|
+
## Skills
|
|
677
|
+
|
|
678
|
+
This agent can use the following Claude Code Skills:
|
|
679
|
+
|
|
680
|
+
${this.getSkillDocumentation(agentName)}
|
|
565
681
|
|
|
566
682
|
## Coordination Protocol
|
|
567
683
|
|
|
@@ -581,6 +697,213 @@ For full capabilities, install the complete agentic-qe package.
|
|
|
581
697
|
const files = await fs.readdir(dirPath);
|
|
582
698
|
return files.filter(f => f.endsWith('.md')).length;
|
|
583
699
|
}
|
|
700
|
+
/**
|
|
701
|
+
* Copy only the 17 QE Fleet skills (filters out Claude Flow skills)
|
|
702
|
+
*/
|
|
703
|
+
static async copySkillTemplates() {
|
|
704
|
+
console.log(chalk_1.default.cyan(' 🎯 Initializing QE Fleet skills...'));
|
|
705
|
+
// Define the 17 QE Fleet skills (from SKILLS-MAPPING.md)
|
|
706
|
+
const QE_FLEET_SKILLS = [
|
|
707
|
+
// Core Quality Practices (5)
|
|
708
|
+
'holistic-testing-pact',
|
|
709
|
+
'context-driven-testing',
|
|
710
|
+
'agentic-quality-engineering',
|
|
711
|
+
'exploratory-testing-advanced',
|
|
712
|
+
'risk-based-testing',
|
|
713
|
+
// Development Methodologies (3)
|
|
714
|
+
'tdd-london-chicago',
|
|
715
|
+
'xp-practices',
|
|
716
|
+
'refactoring-patterns',
|
|
717
|
+
// Testing Specializations (4)
|
|
718
|
+
'api-testing-patterns',
|
|
719
|
+
'performance-testing',
|
|
720
|
+
'security-testing',
|
|
721
|
+
'test-automation-strategy',
|
|
722
|
+
// Communication & Process (3)
|
|
723
|
+
'technical-writing',
|
|
724
|
+
'bug-reporting-excellence',
|
|
725
|
+
'code-review-quality',
|
|
726
|
+
// Professional Skills (2)
|
|
727
|
+
'consultancy-practices',
|
|
728
|
+
'quality-metrics'
|
|
729
|
+
];
|
|
730
|
+
// Find the agentic-qe package location
|
|
731
|
+
const possiblePaths = [
|
|
732
|
+
path.join(__dirname, '../../../.claude/skills'), // From dist/cli/commands
|
|
733
|
+
path.join(process.cwd(), 'node_modules/agentic-qe/.claude/skills'),
|
|
734
|
+
path.join(process.cwd(), '../agentic-qe/.claude/skills') // Monorepo case
|
|
735
|
+
];
|
|
736
|
+
console.log(chalk_1.default.gray(' • Checking skill source paths:'));
|
|
737
|
+
let sourcePath = null;
|
|
738
|
+
for (const p of possiblePaths) {
|
|
739
|
+
const exists = await fs.pathExists(p);
|
|
740
|
+
console.log(chalk_1.default.gray(` ${exists ? '✓' : '✗'} ${p}`));
|
|
741
|
+
if (exists && !sourcePath) {
|
|
742
|
+
sourcePath = p;
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
if (!sourcePath) {
|
|
746
|
+
console.warn(chalk_1.default.yellow(' ⚠️ No skill templates found in package paths'));
|
|
747
|
+
console.warn(chalk_1.default.yellow(' ℹ️ Skills can be added manually to .claude/skills/'));
|
|
748
|
+
return;
|
|
749
|
+
}
|
|
750
|
+
console.log(chalk_1.default.green(` ✓ Found skill templates at: ${sourcePath}`));
|
|
751
|
+
// List all available skills
|
|
752
|
+
const availableDirs = await fs.readdir(sourcePath);
|
|
753
|
+
const availableSkills = availableDirs.filter(name => {
|
|
754
|
+
const skillPath = path.join(sourcePath, name);
|
|
755
|
+
try {
|
|
756
|
+
return fs.statSync(skillPath).isDirectory();
|
|
757
|
+
}
|
|
758
|
+
catch {
|
|
759
|
+
return false;
|
|
760
|
+
}
|
|
761
|
+
});
|
|
762
|
+
console.log(chalk_1.default.cyan(` 📦 Found ${availableSkills.length} total skills in source`));
|
|
763
|
+
// Filter to only QE Fleet skills
|
|
764
|
+
const qeSkillsToConfig = availableSkills.filter(skill => QE_FLEET_SKILLS.includes(skill));
|
|
765
|
+
console.log(chalk_1.default.cyan(` 🎯 Filtering to ${qeSkillsToConfig.length} QE Fleet skills (excluding Claude Flow skills)`));
|
|
766
|
+
const targetPath = path.join(process.cwd(), '.claude/skills');
|
|
767
|
+
let copiedCount = 0;
|
|
768
|
+
// Copy each QE skill directory
|
|
769
|
+
for (const skillName of qeSkillsToConfig) {
|
|
770
|
+
const sourceSkillPath = path.join(sourcePath, skillName);
|
|
771
|
+
const targetSkillPath = path.join(targetPath, skillName);
|
|
772
|
+
// Skip if already exists
|
|
773
|
+
if (await fs.pathExists(targetSkillPath)) {
|
|
774
|
+
console.log(chalk_1.default.gray(` • Skipped ${skillName} (already exists)`));
|
|
775
|
+
continue;
|
|
776
|
+
}
|
|
777
|
+
// Copy the entire skill directory
|
|
778
|
+
await fs.copy(sourceSkillPath, targetSkillPath);
|
|
779
|
+
copiedCount++;
|
|
780
|
+
console.log(chalk_1.default.gray(` ✓ Copied ${skillName}`));
|
|
781
|
+
}
|
|
782
|
+
// Final count
|
|
783
|
+
const finalSkillCount = await this.countSkillDirs(targetPath);
|
|
784
|
+
if (copiedCount > 0) {
|
|
785
|
+
console.log(chalk_1.default.green(` ✓ Copied ${copiedCount} new QE skills`));
|
|
786
|
+
}
|
|
787
|
+
else {
|
|
788
|
+
console.log(chalk_1.default.green(' ✓ All QE skills already present'));
|
|
789
|
+
}
|
|
790
|
+
console.log(chalk_1.default.cyan(` 📋 Total QE skills initialized: ${finalSkillCount}`));
|
|
791
|
+
// Verify we have exactly 17 QE skills
|
|
792
|
+
if (finalSkillCount === 17) {
|
|
793
|
+
console.log(chalk_1.default.green(' ✅ All 17 QE Fleet skills successfully initialized'));
|
|
794
|
+
}
|
|
795
|
+
else if (finalSkillCount < 17) {
|
|
796
|
+
console.warn(chalk_1.default.yellow(` ⚠️ Expected 17 QE skills, found ${finalSkillCount}`));
|
|
797
|
+
const missingSkills = QE_FLEET_SKILLS.filter(skill => {
|
|
798
|
+
return !fs.existsSync(path.join(targetPath, skill));
|
|
799
|
+
});
|
|
800
|
+
console.warn(chalk_1.default.yellow(` ℹ️ Missing skills: ${missingSkills.join(', ')}`));
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
/**
|
|
804
|
+
* Count skill directories in .claude/skills
|
|
805
|
+
*/
|
|
806
|
+
static async countSkillDirs(dirPath) {
|
|
807
|
+
if (!await fs.pathExists(dirPath))
|
|
808
|
+
return 0;
|
|
809
|
+
const items = await fs.readdir(dirPath);
|
|
810
|
+
let count = 0;
|
|
811
|
+
for (const item of items) {
|
|
812
|
+
const itemPath = path.join(dirPath, item);
|
|
813
|
+
try {
|
|
814
|
+
if (fs.statSync(itemPath).isDirectory()) {
|
|
815
|
+
count++;
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
catch {
|
|
819
|
+
// Ignore errors
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
return count;
|
|
823
|
+
}
|
|
824
|
+
/**
|
|
825
|
+
* Copy AQE slash command templates (8 commands)
|
|
826
|
+
*/
|
|
827
|
+
static async copyCommandTemplates() {
|
|
828
|
+
console.log(chalk_1.default.cyan(' ⚡ Initializing AQE slash commands...'));
|
|
829
|
+
// Define the 8 AQE slash commands
|
|
830
|
+
const AQE_COMMANDS = [
|
|
831
|
+
'aqe-analyze.md',
|
|
832
|
+
'aqe-benchmark.md',
|
|
833
|
+
'aqe-chaos.md',
|
|
834
|
+
'aqe-execute.md',
|
|
835
|
+
'aqe-fleet-status.md',
|
|
836
|
+
'aqe-generate.md',
|
|
837
|
+
'aqe-optimize.md',
|
|
838
|
+
'aqe-report.md'
|
|
839
|
+
];
|
|
840
|
+
// Find the agentic-qe package location
|
|
841
|
+
const possiblePaths = [
|
|
842
|
+
path.join(__dirname, '../../../.claude/commands'), // From dist/cli/commands
|
|
843
|
+
path.join(process.cwd(), 'node_modules/agentic-qe/.claude/commands'),
|
|
844
|
+
path.join(process.cwd(), '../agentic-qe/.claude/commands') // Monorepo case
|
|
845
|
+
];
|
|
846
|
+
console.log(chalk_1.default.gray(' • Checking command source paths:'));
|
|
847
|
+
let sourcePath = null;
|
|
848
|
+
for (const p of possiblePaths) {
|
|
849
|
+
const exists = await fs.pathExists(p);
|
|
850
|
+
console.log(chalk_1.default.gray(` ${exists ? '✓' : '✗'} ${p}`));
|
|
851
|
+
if (exists && !sourcePath) {
|
|
852
|
+
sourcePath = p;
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
if (!sourcePath) {
|
|
856
|
+
console.warn(chalk_1.default.yellow(' ⚠️ No command templates found in package paths'));
|
|
857
|
+
console.warn(chalk_1.default.yellow(' ℹ️ Commands can be added manually to .claude/commands/'));
|
|
858
|
+
return;
|
|
859
|
+
}
|
|
860
|
+
console.log(chalk_1.default.green(` ✓ Found command templates at: ${sourcePath}`));
|
|
861
|
+
const targetPath = path.join(process.cwd(), '.claude/commands');
|
|
862
|
+
let copiedCount = 0;
|
|
863
|
+
// Copy each AQE command file
|
|
864
|
+
for (const commandFile of AQE_COMMANDS) {
|
|
865
|
+
const sourceFile = path.join(sourcePath, commandFile);
|
|
866
|
+
const targetFile = path.join(targetPath, commandFile);
|
|
867
|
+
// Skip if already exists or if source doesn't exist
|
|
868
|
+
if (await fs.pathExists(targetFile)) {
|
|
869
|
+
console.log(chalk_1.default.gray(` • Skipped ${commandFile} (already exists)`));
|
|
870
|
+
continue;
|
|
871
|
+
}
|
|
872
|
+
if (!await fs.pathExists(sourceFile)) {
|
|
873
|
+
console.log(chalk_1.default.gray(` • Skipped ${commandFile} (source not found)`));
|
|
874
|
+
continue;
|
|
875
|
+
}
|
|
876
|
+
// Copy the command file
|
|
877
|
+
await fs.copy(sourceFile, targetFile);
|
|
878
|
+
copiedCount++;
|
|
879
|
+
console.log(chalk_1.default.gray(` ✓ Copied ${commandFile}`));
|
|
880
|
+
}
|
|
881
|
+
// Count final commands
|
|
882
|
+
const finalCommandCount = await this.countCommandFiles(targetPath);
|
|
883
|
+
if (copiedCount > 0) {
|
|
884
|
+
console.log(chalk_1.default.green(` ✓ Copied ${copiedCount} new AQE commands`));
|
|
885
|
+
}
|
|
886
|
+
else {
|
|
887
|
+
console.log(chalk_1.default.green(' ✓ All AQE commands already present'));
|
|
888
|
+
}
|
|
889
|
+
console.log(chalk_1.default.cyan(` 📋 Total AQE commands initialized: ${finalCommandCount}`));
|
|
890
|
+
// Verify we have all 8 AQE commands
|
|
891
|
+
if (finalCommandCount >= 8) {
|
|
892
|
+
console.log(chalk_1.default.green(' ✅ All 8 AQE slash commands successfully initialized'));
|
|
893
|
+
}
|
|
894
|
+
else if (finalCommandCount < 8) {
|
|
895
|
+
console.warn(chalk_1.default.yellow(` ⚠️ Expected 8 AQE commands, found ${finalCommandCount}`));
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
/**
|
|
899
|
+
* Count command files in .claude/commands
|
|
900
|
+
*/
|
|
901
|
+
static async countCommandFiles(dirPath) {
|
|
902
|
+
if (!await fs.pathExists(dirPath))
|
|
903
|
+
return 0;
|
|
904
|
+
const items = await fs.readdir(dirPath);
|
|
905
|
+
return items.filter(f => f.startsWith('aqe-') && f.endsWith('.md')).length;
|
|
906
|
+
}
|
|
584
907
|
static async writeFleetConfig(config) {
|
|
585
908
|
console.log(chalk_1.default.cyan(' 📝 Writing fleet configuration...'));
|
|
586
909
|
// Sanitize config to remove undefined values that cause jsonfile errors
|
|
@@ -729,6 +1052,7 @@ For full capabilities, install the complete agentic-qe package.
|
|
|
729
1052
|
alerts: env === 'production'
|
|
730
1053
|
}
|
|
731
1054
|
};
|
|
1055
|
+
return configs;
|
|
732
1056
|
}, {});
|
|
733
1057
|
}
|
|
734
1058
|
static async setupClaudeFlowIntegration(config) {
|
|
@@ -1084,9 +1408,106 @@ for await (const event of handler.execute(params)) {
|
|
|
1084
1408
|
- ⚠️ Test generation (coming in v1.1.0)
|
|
1085
1409
|
- ⚠️ Security scanning (coming in v1.1.0)
|
|
1086
1410
|
|
|
1411
|
+
## 🎯 Claude Code Skills Integration
|
|
1412
|
+
|
|
1413
|
+
This fleet includes **17 specialized QE skills** that agents can use:
|
|
1414
|
+
|
|
1415
|
+
### Quality Engineering Skills (10 skills)
|
|
1416
|
+
- **agentic-quality-engineering**: Using AI agents as force multipliers in quality work - autonomous testing systems, PACT principles, scaling quality engineering with intelligent agents
|
|
1417
|
+
- **api-testing-patterns**: Comprehensive API testing patterns including contract testing, REST/GraphQL testing, and integration testing
|
|
1418
|
+
- **bug-reporting-excellence**: Write high-quality bug reports that get fixed quickly - includes templates, examples, and best practices
|
|
1419
|
+
- **context-driven-testing**: Apply context-driven testing principles where practices are chosen based on project context, not universal "best practices"
|
|
1420
|
+
- **exploratory-testing-advanced**: Advanced exploratory testing techniques with Session-Based Test Management (SBTM), RST heuristics, and test tours
|
|
1421
|
+
- **holistic-testing-pact**: Apply the Holistic Testing Model evolved with PACT (Proactive, Autonomous, Collaborative, Targeted) principles
|
|
1422
|
+
- **tdd-london-chicago**: Apply both London and Chicago school TDD approaches - understanding different TDD philosophies and choosing the right testing style
|
|
1423
|
+
- **pair-programming**: AI-assisted pair programming with multiple modes (driver/navigator/switch), real-time verification, quality monitoring
|
|
1424
|
+
- **verification-quality**: Comprehensive truth scoring, code quality verification, and automatic rollback system with 0.95 accuracy threshold
|
|
1425
|
+
- **xp-practices**: Apply XP practices including pair programming, ensemble programming, continuous integration, and sustainable pace
|
|
1426
|
+
|
|
1427
|
+
### AgentDB Skills (5 skills)
|
|
1428
|
+
- **agentdb-advanced**: Master advanced AgentDB features including QUIC synchronization, multi-database management, custom distance metrics, hybrid search
|
|
1429
|
+
- **agentdb-learning**: Create and train AI learning plugins with AgentDB's 9 reinforcement learning algorithms (Decision Transformer, Q-Learning, SARSA, Actor-Critic)
|
|
1430
|
+
- **agentdb-memory-patterns**: Implement persistent memory patterns for AI agents using AgentDB (session memory, long-term storage, pattern learning)
|
|
1431
|
+
- **agentdb-optimization**: Optimize AgentDB performance with quantization (4-32x memory reduction), HNSW indexing (150x faster search), caching
|
|
1432
|
+
- **agentdb-vector-search**: Implement semantic vector search with AgentDB for intelligent document retrieval, similarity matching, and context-aware querying
|
|
1433
|
+
|
|
1434
|
+
### Using Skills
|
|
1435
|
+
|
|
1436
|
+
#### Via CLI
|
|
1437
|
+
\\\`\\\`\\\`bash
|
|
1438
|
+
# List all available skills
|
|
1439
|
+
aqe skills list
|
|
1440
|
+
|
|
1441
|
+
# Search for specific skills
|
|
1442
|
+
aqe skills search "testing"
|
|
1443
|
+
|
|
1444
|
+
# Show skill details
|
|
1445
|
+
aqe skills show agentic-quality-engineering
|
|
1446
|
+
|
|
1447
|
+
# Show skill statistics
|
|
1448
|
+
aqe skills stats
|
|
1449
|
+
\\\`\\\`\\\`
|
|
1450
|
+
|
|
1451
|
+
#### Via Skill Tool in Claude Code
|
|
1452
|
+
\\\`\\\`\\\`javascript
|
|
1453
|
+
// Execute a skill
|
|
1454
|
+
Skill("agentic-quality-engineering")
|
|
1455
|
+
Skill("tdd-london-chicago")
|
|
1456
|
+
Skill("api-testing-patterns")
|
|
1457
|
+
\\\`\\\`\\\`
|
|
1458
|
+
|
|
1459
|
+
#### Integration with Agents
|
|
1460
|
+
All QE agents automatically have access to relevant skills based on their specialization:
|
|
1461
|
+
- **Test generators** use: agentic-quality-engineering, api-testing-patterns, tdd-london-chicago
|
|
1462
|
+
- **Coverage analyzers** use: agentic-quality-engineering, quality-metrics, risk-based-testing
|
|
1463
|
+
- **Flaky test hunters** use: agentic-quality-engineering, exploratory-testing-advanced
|
|
1464
|
+
- **Performance testers** use: agentic-quality-engineering, performance-testing, quality-metrics
|
|
1465
|
+
- **Security scanners** use: agentic-quality-engineering, security-testing, risk-based-testing
|
|
1466
|
+
|
|
1467
|
+
## 🧠 Q-Learning Integration (Phase 2)
|
|
1468
|
+
|
|
1469
|
+
All agents automatically learn from task execution through Q-learning:
|
|
1470
|
+
|
|
1471
|
+
### Observability
|
|
1472
|
+
\\\`\\\`\\\`bash
|
|
1473
|
+
# Check learning status
|
|
1474
|
+
aqe learn status --agent test-gen
|
|
1475
|
+
|
|
1476
|
+
# View learned patterns
|
|
1477
|
+
aqe learn history --agent test-gen --limit 50
|
|
1478
|
+
|
|
1479
|
+
# Export learning data
|
|
1480
|
+
aqe learn export --agent test-gen --output learning.json
|
|
1481
|
+
\\\`\\\`\\\`
|
|
1482
|
+
|
|
1483
|
+
### Pattern Management
|
|
1484
|
+
\\\`\\\`\\\`bash
|
|
1485
|
+
# List test patterns
|
|
1486
|
+
aqe patterns list --framework jest
|
|
1487
|
+
|
|
1488
|
+
# Search patterns
|
|
1489
|
+
aqe patterns search "api validation"
|
|
1490
|
+
|
|
1491
|
+
# Extract patterns from tests
|
|
1492
|
+
aqe patterns extract ./tests --framework jest
|
|
1493
|
+
\\\`\\\`\\\`
|
|
1494
|
+
|
|
1495
|
+
### Improvement Loop
|
|
1496
|
+
\\\`\\\`\\\`bash
|
|
1497
|
+
# Start continuous improvement
|
|
1498
|
+
aqe improve start
|
|
1499
|
+
|
|
1500
|
+
# Check improvement status
|
|
1501
|
+
aqe improve status
|
|
1502
|
+
|
|
1503
|
+
# Run single improvement cycle
|
|
1504
|
+
aqe improve cycle
|
|
1505
|
+
\\\`\\\`\\\`
|
|
1506
|
+
|
|
1087
1507
|
## 📚 Documentation
|
|
1088
1508
|
|
|
1089
1509
|
- **Agent Definitions**: \\\`.claude/agents/\\\` - ${agentCount} specialized QE agents
|
|
1510
|
+
- **Skills**: \\\`.claude/skills/\\\` - 17 specialized QE skills for agents
|
|
1090
1511
|
- **Fleet Config**: \\\`.agentic-qe/config/fleet.json\\\`
|
|
1091
1512
|
- **Routing Config**: \\\`.agentic-qe/config/routing.json\\\` (Multi-Model Router settings)
|
|
1092
1513
|
- **AQE Hooks Config**: \\\`.agentic-qe/config/aqe-hooks.json\\\` (zero dependencies, 100-500x faster)
|
|
@@ -1566,6 +1987,53 @@ VALUES ('1.1.0', 'Initial QE ReasoningBank schema');
|
|
|
1566
1987
|
console.log(chalk_1.default.gray(' • Improvement loop optimizes continuously (1 hour cycles)'));
|
|
1567
1988
|
console.log('');
|
|
1568
1989
|
}
|
|
1990
|
+
/**
|
|
1991
|
+
* Get relevant skills for an agent
|
|
1992
|
+
*/
|
|
1993
|
+
static getAgentSkills(agentName) {
|
|
1994
|
+
const skillMap = {
|
|
1995
|
+
'qe-test-generator': ['agentic-quality-engineering', 'api-testing-patterns', 'tdd-london-chicago', 'test-automation-strategy'],
|
|
1996
|
+
'qe-coverage-analyzer': ['agentic-quality-engineering', 'quality-metrics', 'risk-based-testing'],
|
|
1997
|
+
'qe-flaky-test-hunter': ['agentic-quality-engineering', 'exploratory-testing-advanced', 'risk-based-testing'],
|
|
1998
|
+
'qe-performance-tester': ['agentic-quality-engineering', 'performance-testing', 'quality-metrics'],
|
|
1999
|
+
'qe-security-scanner': ['agentic-quality-engineering', 'security-testing', 'risk-based-testing'],
|
|
2000
|
+
'qe-quality-gate': ['agentic-quality-engineering', 'quality-metrics', 'risk-based-testing'],
|
|
2001
|
+
'qe-api-contract-validator': ['agentic-quality-engineering', 'api-testing-patterns'],
|
|
2002
|
+
'qe-test-executor': ['agentic-quality-engineering', 'test-automation-strategy'],
|
|
2003
|
+
'qe-requirements-validator': ['agentic-quality-engineering', 'context-driven-testing'],
|
|
2004
|
+
'qe-quality-analyzer': ['agentic-quality-engineering', 'quality-metrics'],
|
|
2005
|
+
'qe-visual-tester': ['agentic-quality-engineering', 'exploratory-testing-advanced'],
|
|
2006
|
+
'qe-chaos-engineer': ['agentic-quality-engineering', 'risk-based-testing'],
|
|
2007
|
+
'qe-production-intelligence': ['agentic-quality-engineering', 'context-driven-testing'],
|
|
2008
|
+
'qe-fleet-commander': ['agentic-quality-engineering'],
|
|
2009
|
+
'qe-deployment-readiness': ['agentic-quality-engineering', 'risk-based-testing', 'quality-metrics'],
|
|
2010
|
+
'qe-regression-risk-analyzer': ['agentic-quality-engineering', 'risk-based-testing'],
|
|
2011
|
+
'qe-test-data-architect': ['agentic-quality-engineering', 'test-automation-strategy']
|
|
2012
|
+
};
|
|
2013
|
+
return skillMap[agentName] || ['agentic-quality-engineering'];
|
|
2014
|
+
}
|
|
2015
|
+
/**
|
|
2016
|
+
* Get skill documentation for agent
|
|
2017
|
+
*/
|
|
2018
|
+
static getSkillDocumentation(agentName) {
|
|
2019
|
+
const skills = this.getAgentSkills(agentName);
|
|
2020
|
+
const skillDescriptions = {
|
|
2021
|
+
'agentic-quality-engineering': 'AI agents as force multipliers in quality work (PACT principles)',
|
|
2022
|
+
'api-testing-patterns': 'REST, GraphQL, contract testing patterns',
|
|
2023
|
+
'tdd-london-chicago': 'Both TDD schools, when to use each approach',
|
|
2024
|
+
'test-automation-strategy': 'When/how to automate effectively',
|
|
2025
|
+
'quality-metrics': 'Meaningful metrics vs vanity metrics',
|
|
2026
|
+
'risk-based-testing': 'Focus testing where failure hurts most',
|
|
2027
|
+
'exploratory-testing-advanced': 'RST heuristics, SBTM, test tours',
|
|
2028
|
+
'performance-testing': 'Load, stress, soak testing strategies',
|
|
2029
|
+
'security-testing': 'OWASP Top 10, vulnerability patterns',
|
|
2030
|
+
'context-driven-testing': 'RST techniques and contextual best practices'
|
|
2031
|
+
};
|
|
2032
|
+
return skills.map(skill => {
|
|
2033
|
+
const description = skillDescriptions[skill] || 'Quality engineering expertise';
|
|
2034
|
+
return `- **${skill}**: ${description}`;
|
|
2035
|
+
}).join('\n');
|
|
2036
|
+
}
|
|
1569
2037
|
}
|
|
1570
2038
|
exports.InitCommand = InitCommand;
|
|
1571
2039
|
//# sourceMappingURL=init.js.map
|