agentic-qe 1.1.0 → 1.3.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 +64 -25
- package/.claude/skills/README.md +124 -0
- package/.claude/skills/accessibility-testing/SKILL.md +777 -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/chaos-engineering-resilience/SKILL.md +109 -0
- package/.claude/skills/code-review-quality/SKILL.md +683 -0
- package/.claude/skills/compatibility-testing/SKILL.md +101 -0
- package/.claude/skills/compliance-testing/SKILL.md +162 -0
- package/.claude/skills/consultancy-practices/SKILL.md +540 -0
- package/.claude/skills/context-driven-testing/SKILL.md +466 -0
- package/.claude/skills/contract-testing/SKILL.md +193 -0
- package/.claude/skills/database-testing/SKILL.md +243 -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/localization-testing/SKILL.md +115 -0
- package/.claude/skills/mobile-testing/SKILL.md +548 -0
- package/.claude/skills/mutation-testing/SKILL.md +129 -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/regression-testing/SKILL.md +1045 -0
- package/.claude/skills/risk-based-testing/SKILL.md +721 -0
- package/.claude/skills/security-testing/SKILL.md +651 -0
- package/.claude/skills/shift-left-testing/SKILL.md +535 -0
- package/.claude/skills/shift-right-testing/SKILL.md +591 -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/test-data-management/SKILL.md +1067 -0
- package/.claude/skills/test-design-techniques/SKILL.md +160 -0
- package/.claude/skills/test-environment-management/SKILL.md +204 -0
- package/.claude/skills/test-reporting-analytics/SKILL.md +143 -0
- package/.claude/skills/verification-quality/SKILL.md +649 -0
- package/.claude/skills/visual-testing-advanced/SKILL.md +148 -0
- package/.claude/skills/xp-practices/SKILL.md +671 -0
- package/.claude/statusline-command.sh +176 -0
- package/CHANGELOG.md +623 -6
- package/README.md +101 -5
- 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 +387 -5
- 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 +112 -12
- 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 +160 -4
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
- package/dist/agents/FleetCommanderAgent.js +4 -3
- 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 +11 -9
- package/dist/agents/PerformanceTesterAgent.js.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.js +14 -13
- package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.js +39 -38
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.d.ts.map +1 -1
- package/dist/agents/QualityGateAgent.js +7 -6
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.js +22 -21
- 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.d.ts.map +1 -1
- package/dist/agents/SecurityScannerAgent.js +8 -7
- package/dist/agents/SecurityScannerAgent.js.map +1 -1
- package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
- package/dist/agents/TestDataArchitectAgent.js +12 -11
- package/dist/agents/TestDataArchitectAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +18 -19
- 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 +172 -49
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +2 -1
- package/dist/agents/index.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/benchmark.d.ts.map +1 -1
- package/dist/cli/commands/agent/benchmark.js +2 -1
- package/dist/cli/commands/agent/benchmark.js.map +1 -1
- 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 +84 -0
- package/dist/cli/commands/agent/spawn.js.map +1 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -1
- package/dist/cli/commands/analyze.js +2 -1
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/config/list.d.ts.map +1 -1
- package/dist/cli/commands/config/list.js +2 -1
- package/dist/cli/commands/config/list.js.map +1 -1
- package/dist/cli/commands/config/set.d.ts +7 -0
- package/dist/cli/commands/config/set.d.ts.map +1 -1
- package/dist/cli/commands/config/set.js +35 -4
- package/dist/cli/commands/config/set.js.map +1 -1
- package/dist/cli/commands/fleet/logs.d.ts.map +1 -1
- package/dist/cli/commands/fleet/logs.js +2 -1
- package/dist/cli/commands/fleet/logs.js.map +1 -1
- package/dist/cli/commands/fleet/metrics.d.ts.map +1 -1
- package/dist/cli/commands/fleet/metrics.js +2 -1
- package/dist/cli/commands/fleet/metrics.js.map +1 -1
- package/dist/cli/commands/fleet/monitor.d.ts.map +1 -1
- package/dist/cli/commands/fleet/monitor.js +7 -5
- package/dist/cli/commands/fleet/monitor.js.map +1 -1
- package/dist/cli/commands/fleet.d.ts.map +1 -1
- package/dist/cli/commands/fleet.js +2 -1
- package/dist/cli/commands/fleet.js.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +2 -1
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/improve/index.d.ts.map +1 -1
- package/dist/cli/commands/improve/index.js +12 -11
- package/dist/cli/commands/improve/index.js.map +1 -1
- 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 +503 -11
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learn/index.d.ts.map +1 -1
- package/dist/cli/commands/learn/index.js +13 -12
- package/dist/cli/commands/learn/index.js.map +1 -1
- package/dist/cli/commands/monitor/alerts.d.ts.map +1 -1
- package/dist/cli/commands/monitor/alerts.js +2 -1
- package/dist/cli/commands/monitor/alerts.js.map +1 -1
- package/dist/cli/commands/patterns/index.d.ts.map +1 -1
- package/dist/cli/commands/patterns/index.js +20 -19
- package/dist/cli/commands/patterns/index.js.map +1 -1
- package/dist/cli/commands/quality/decision.d.ts.map +1 -1
- package/dist/cli/commands/quality/decision.js +9 -7
- package/dist/cli/commands/quality/decision.js.map +1 -1
- package/dist/cli/commands/quality/gate.d.ts.map +1 -1
- package/dist/cli/commands/quality/gate.js +10 -8
- package/dist/cli/commands/quality/gate.js.map +1 -1
- package/dist/cli/commands/quality/policy.d.ts.map +1 -1
- package/dist/cli/commands/quality/policy.js +10 -8
- package/dist/cli/commands/quality/policy.js.map +1 -1
- package/dist/cli/commands/quality/risk.d.ts.map +1 -1
- package/dist/cli/commands/quality/risk.js +5 -3
- package/dist/cli/commands/quality/risk.js.map +1 -1
- package/dist/cli/commands/quality/validate.d.ts.map +1 -1
- package/dist/cli/commands/quality/validate.js +10 -8
- package/dist/cli/commands/quality/validate.js.map +1 -1
- package/dist/cli/commands/quantization.d.ts +6 -0
- package/dist/cli/commands/quantization.d.ts.map +1 -0
- package/dist/cli/commands/quantization.js +188 -0
- package/dist/cli/commands/quantization.js.map +1 -0
- package/dist/cli/commands/routing/index.d.ts +0 -6
- package/dist/cli/commands/routing/index.d.ts.map +1 -1
- package/dist/cli/commands/routing/index.js +17 -16
- package/dist/cli/commands/routing/index.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +2 -1
- package/dist/cli/commands/run.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 +365 -0
- package/dist/cli/commands/skills/index.js.map +1 -0
- package/dist/cli/commands/test/debug.d.ts.map +1 -1
- package/dist/cli/commands/test/debug.js +2 -1
- package/dist/cli/commands/test/debug.js.map +1 -1
- package/dist/cli/commands/test/mutate.d.ts.map +1 -1
- package/dist/cli/commands/test/mutate.js +2 -1
- package/dist/cli/commands/test/mutate.js.map +1 -1
- package/dist/cli/commands/test/parallel.d.ts.map +1 -1
- package/dist/cli/commands/test/parallel.js +6 -4
- package/dist/cli/commands/test/parallel.js.map +1 -1
- package/dist/cli/commands/test/profile.d.ts.map +1 -1
- package/dist/cli/commands/test/profile.js +3 -2
- package/dist/cli/commands/test/profile.js.map +1 -1
- package/dist/cli/commands/test/queue.d.ts.map +1 -1
- package/dist/cli/commands/test/queue.js +2 -1
- package/dist/cli/commands/test/queue.js.map +1 -1
- package/dist/cli/commands/test/retry.d.ts.map +1 -1
- package/dist/cli/commands/test/retry.js +6 -4
- package/dist/cli/commands/test/retry.js.map +1 -1
- package/dist/cli/commands/test/trace.d.ts.map +1 -1
- package/dist/cli/commands/test/trace.js +2 -1
- package/dist/cli/commands/test/trace.js.map +1 -1
- package/dist/cli/commands/test/watch.d.ts.map +1 -1
- package/dist/cli/commands/test/watch.js +3 -2
- package/dist/cli/commands/test/watch.js.map +1 -1
- package/dist/cli/commands/workflow/cancel.d.ts.map +1 -1
- package/dist/cli/commands/workflow/cancel.js +2 -1
- package/dist/cli/commands/workflow/cancel.js.map +1 -1
- package/dist/cli/index-working.js +9 -8
- package/dist/cli/index-working.js.map +1 -1
- package/dist/cli/index.js +97 -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/coordination/OODACoordination.d.ts.map +1 -1
- package/dist/core/coordination/OODACoordination.js +2 -1
- package/dist/core/coordination/OODACoordination.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 +246 -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 +231 -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 +77 -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 +240 -55
- 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 +544 -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/quantization/QuantizationManager.d.ts +83 -0
- package/dist/core/quantization/QuantizationManager.d.ts.map +1 -0
- package/dist/core/quantization/QuantizationManager.js +264 -0
- package/dist/core/quantization/QuantizationManager.js.map +1 -0
- package/dist/core/quantization/index.d.ts +5 -0
- package/dist/core/quantization/index.d.ts.map +1 -0
- package/dist/core/quantization/index.js +9 -0
- package/dist/core/quantization/index.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/handlers/advanced/mutation-test-execute.d.ts +3 -3
- package/dist/mcp/handlers/advanced/mutation-test-execute.d.ts.map +1 -1
- package/dist/mcp/handlers/advanced/mutation-test-execute.js +5 -4
- package/dist/mcp/handlers/advanced/mutation-test-execute.js.map +1 -1
- package/dist/mcp/handlers/agent-spawn.d.ts.map +1 -1
- package/dist/mcp/handlers/agent-spawn.js +2 -1
- package/dist/mcp/handlers/agent-spawn.js.map +1 -1
- package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.d.ts.map +1 -1
- package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js +9 -8
- package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js.map +1 -1
- package/dist/mcp/handlers/analysis/coverageGapsDetect.d.ts.map +1 -1
- package/dist/mcp/handlers/analysis/coverageGapsDetect.js +6 -5
- package/dist/mcp/handlers/analysis/coverageGapsDetect.js.map +1 -1
- package/dist/mcp/handlers/analysis/performance-monitor-realtime-handler.d.ts.map +1 -1
- package/dist/mcp/handlers/analysis/performance-monitor-realtime-handler.js +5 -4
- package/dist/mcp/handlers/analysis/performance-monitor-realtime-handler.js.map +1 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +1 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +8 -7
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +1 -1
- package/dist/mcp/handlers/analysis/performanceMonitorRealtime.d.ts.map +1 -1
- package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js +7 -6
- package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js.map +1 -1
- package/dist/mcp/handlers/analysis/securityScanComprehensive.d.ts.map +1 -1
- package/dist/mcp/handlers/analysis/securityScanComprehensive.js +18 -21
- package/dist/mcp/handlers/analysis/securityScanComprehensive.js.map +1 -1
- package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
- package/dist/mcp/handlers/base-handler.js +2 -9
- package/dist/mcp/handlers/base-handler.js.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-failure.d.ts.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-failure.js +4 -3
- package/dist/mcp/handlers/chaos/chaos-inject-failure.js.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-latency.js +6 -5
- package/dist/mcp/handlers/chaos/chaos-inject-latency.js.map +1 -1
- package/dist/mcp/handlers/coordination/event-emit.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/event-emit.js +2 -1
- package/dist/mcp/handlers/coordination/event-emit.js.map +1 -1
- package/dist/mcp/handlers/coordination/event-subscribe.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/event-subscribe.js +2 -1
- package/dist/mcp/handlers/coordination/event-subscribe.js.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-checkpoint.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-checkpoint.js +2 -1
- package/dist/mcp/handlers/coordination/workflow-checkpoint.js.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-create.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-create.js +2 -1
- package/dist/mcp/handlers/coordination/workflow-create.js.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-execute.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-execute.js +2 -1
- package/dist/mcp/handlers/coordination/workflow-execute.js.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-resume.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/workflow-resume.js +2 -1
- package/dist/mcp/handlers/coordination/workflow-resume.js.map +1 -1
- package/dist/mcp/handlers/fleet-init.d.ts.map +1 -1
- package/dist/mcp/handlers/fleet-init.js +2 -1
- package/dist/mcp/handlers/fleet-init.js.map +1 -1
- package/dist/mcp/handlers/fleet-status.d.ts.map +1 -1
- package/dist/mcp/handlers/fleet-status.js +31 -30
- package/dist/mcp/handlers/fleet-status.js.map +1 -1
- package/dist/mcp/handlers/integration/dependency-check.d.ts.map +1 -1
- package/dist/mcp/handlers/integration/dependency-check.js +3 -2
- package/dist/mcp/handlers/integration/dependency-check.js.map +1 -1
- package/dist/mcp/handlers/integration/integration-test-orchestrate.d.ts.map +1 -1
- package/dist/mcp/handlers/integration/integration-test-orchestrate.js +2 -1
- package/dist/mcp/handlers/integration/integration-test-orchestrate.js.map +1 -1
- package/dist/mcp/handlers/optimize-tests.d.ts.map +1 -1
- package/dist/mcp/handlers/optimize-tests.js +33 -32
- package/dist/mcp/handlers/optimize-tests.js.map +1 -1
- package/dist/mcp/handlers/predict-defects.d.ts.map +1 -1
- package/dist/mcp/handlers/predict-defects.js +46 -45
- package/dist/mcp/handlers/predict-defects.js.map +1 -1
- package/dist/mcp/handlers/prediction/deployment-readiness-check.d.ts.map +1 -1
- package/dist/mcp/handlers/prediction/deployment-readiness-check.js +24 -23
- package/dist/mcp/handlers/prediction/deployment-readiness-check.js.map +1 -1
- package/dist/mcp/handlers/prediction/predict-defects-ai.d.ts.map +1 -1
- package/dist/mcp/handlers/prediction/predict-defects-ai.js +10 -9
- package/dist/mcp/handlers/prediction/predict-defects-ai.js.map +1 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +1 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js +10 -9
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +1 -1
- package/dist/mcp/handlers/prediction/visual-test-regression.d.ts.map +1 -1
- package/dist/mcp/handlers/prediction/visual-test-regression.js +7 -6
- package/dist/mcp/handlers/prediction/visual-test-regression.js.map +1 -1
- package/dist/mcp/handlers/quality-analyze.d.ts.map +1 -1
- package/dist/mcp/handlers/quality-analyze.js +53 -52
- package/dist/mcp/handlers/quality-analyze.js.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.js +19 -18
- package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
- package/dist/mcp/handlers/test/test-execute-parallel.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-execute-parallel.js +7 -6
- package/dist/mcp/handlers/test/test-execute-parallel.js.map +1 -1
- package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-generate-enhanced.js +2 -1
- package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
- package/dist/mcp/handlers/test/test-optimize-sublinear.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-optimize-sublinear.js +3 -2
- package/dist/mcp/handlers/test/test-optimize-sublinear.js.map +1 -1
- package/dist/mcp/handlers/test-execute.d.ts.map +1 -1
- package/dist/mcp/handlers/test-execute.js +11 -10
- package/dist/mcp/handlers/test-execute.js.map +1 -1
- package/dist/mcp/handlers/test-generate.d.ts.map +1 -1
- package/dist/mcp/handlers/test-generate.js +4 -3
- package/dist/mcp/handlers/test-generate.js.map +1 -1
- package/dist/mcp/server.d.ts +4 -4
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +9 -2
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts.map +1 -1
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js +10 -9
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js.map +1 -1
- package/dist/mcp/streaming/StreamingMCPTool.d.ts.map +1 -1
- package/dist/mcp/streaming/StreamingMCPTool.js +2 -1
- package/dist/mcp/streaming/StreamingMCPTool.js.map +1 -1
- package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts.map +1 -1
- package/dist/mcp/streaming/TestExecuteStreamHandler.js +6 -5
- package/dist/mcp/streaming/TestExecuteStreamHandler.js.map +1 -1
- package/dist/reasoning/TestTemplateCreator.d.ts +10 -2
- package/dist/reasoning/TestTemplateCreator.d.ts.map +1 -1
- package/dist/reasoning/TestTemplateCreator.js +81 -21
- package/dist/reasoning/TestTemplateCreator.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/pattern.types.d.ts +39 -3
- package/dist/types/pattern.types.d.ts.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 +3 -3
- 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/dist/utils/ProcessExit.d.ts +23 -0
- package/dist/utils/ProcessExit.d.ts.map +1 -0
- package/dist/utils/ProcessExit.js +40 -0
- package/dist/utils/ProcessExit.js.map +1 -0
- package/dist/utils/SecureRandom.d.ts +171 -0
- package/dist/utils/SecureRandom.d.ts.map +1 -0
- package/dist/utils/SecureRandom.js +229 -0
- package/dist/utils/SecureRandom.js.map +1 -0
- package/dist/utils/SecureUrlValidator.d.ts +167 -0
- package/dist/utils/SecureUrlValidator.d.ts.map +1 -0
- package/dist/utils/SecureUrlValidator.js +306 -0
- package/dist/utils/SecureUrlValidator.js.map +1 -0
- package/dist/utils/SecureValidation.d.ts +131 -0
- package/dist/utils/SecureValidation.d.ts.map +1 -0
- package/dist/utils/SecureValidation.js +265 -0
- package/dist/utils/SecureValidation.js.map +1 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +5 -4
- package/dist/utils/validation.js.map +1 -1
- package/package.json +31 -8
|
@@ -0,0 +1,671 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xp-practices
|
|
3
|
+
description: Apply XP practices including pair programming, ensemble programming, continuous integration, and sustainable pace. Use when implementing agile development practices, improving team collaboration, or adopting technical excellence practices.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
category: development
|
|
6
|
+
tags: [xp, pair-programming, ensemble-programming, continuous-integration, sustainable-pace, agile, teamwork]
|
|
7
|
+
difficulty: intermediate
|
|
8
|
+
estimated_time: 2-3 hours
|
|
9
|
+
author: user
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Extreme Programming (XP) Practices
|
|
13
|
+
|
|
14
|
+
## Core Philosophy
|
|
15
|
+
|
|
16
|
+
XP emphasizes technical excellence, rapid feedback, and sustainable pace. It's about doing the simple thing that could possibly work, then iterating based on real feedback.
|
|
17
|
+
|
|
18
|
+
## The Five Values
|
|
19
|
+
|
|
20
|
+
1. **Communication** - Everyone knows what everyone else is doing
|
|
21
|
+
2. **Simplicity** - Do the simplest thing that could possibly work
|
|
22
|
+
3. **Feedback** - Get feedback early and often
|
|
23
|
+
4. **Courage** - Tell the truth about progress and estimates, adapt when needed
|
|
24
|
+
5. **Respect** - Everyone contributes value, treat team members well
|
|
25
|
+
|
|
26
|
+
## Core XP Practices
|
|
27
|
+
|
|
28
|
+
### 1. Pair Programming
|
|
29
|
+
|
|
30
|
+
**Definition:** Two developers working together at one workstation. One writes code (driver), the other reviews each line as it's typed (navigator).
|
|
31
|
+
|
|
32
|
+
#### Pairing Styles
|
|
33
|
+
|
|
34
|
+
**Driver-Navigator (Classic)**
|
|
35
|
+
- Driver: Writes code
|
|
36
|
+
- Navigator: Reviews, suggests, thinks ahead
|
|
37
|
+
- Rotate every 20-30 minutes
|
|
38
|
+
|
|
39
|
+
**Ping-Pong Pairing (with TDD)**
|
|
40
|
+
```
|
|
41
|
+
Person A: Writes failing test
|
|
42
|
+
Person B: Makes test pass
|
|
43
|
+
Person B: Refactors
|
|
44
|
+
Person B: Writes next failing test
|
|
45
|
+
Person A: Makes test pass
|
|
46
|
+
[Continue...]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Strong-Style Pairing**
|
|
50
|
+
- "For an idea to go from your head to the computer, it must go through someone else's hands"
|
|
51
|
+
- Great for mentoring/knowledge transfer
|
|
52
|
+
|
|
53
|
+
#### When to Pair
|
|
54
|
+
|
|
55
|
+
**ALWAYS pair for:**
|
|
56
|
+
- Complex or risky code
|
|
57
|
+
- Learning new technology
|
|
58
|
+
- Onboarding new team members
|
|
59
|
+
- Critical bug fixes
|
|
60
|
+
- Architectural decisions
|
|
61
|
+
|
|
62
|
+
**CAN pair for:**
|
|
63
|
+
- Regular feature development
|
|
64
|
+
- Refactoring sessions
|
|
65
|
+
- Code reviews (live pairing review)
|
|
66
|
+
|
|
67
|
+
**DON'T pair for:**
|
|
68
|
+
- Simple, well-understood tasks
|
|
69
|
+
- Spikes/research (pair to discuss findings)
|
|
70
|
+
- Personal learning time
|
|
71
|
+
- Admin work
|
|
72
|
+
|
|
73
|
+
#### Making Pairing Work
|
|
74
|
+
|
|
75
|
+
**Do:**
|
|
76
|
+
- ✅ Switch roles regularly (20-30 min)
|
|
77
|
+
- ✅ Take breaks together
|
|
78
|
+
- ✅ Speak your thoughts aloud
|
|
79
|
+
- ✅ Ask questions
|
|
80
|
+
- ✅ Challenge ideas respectfully
|
|
81
|
+
- ✅ Keep sessions 2-4 hours max
|
|
82
|
+
|
|
83
|
+
**Don't:**
|
|
84
|
+
- ❌ Grab keyboard without asking
|
|
85
|
+
- ❌ Check phone/email while pairing
|
|
86
|
+
- ❌ Dominate the conversation
|
|
87
|
+
- ❌ Pair all day every day (exhausting)
|
|
88
|
+
- ❌ Pair with same person exclusively
|
|
89
|
+
|
|
90
|
+
#### Remote Pairing Tools
|
|
91
|
+
|
|
92
|
+
- **VS Code Live Share** - Shared editing, debugging
|
|
93
|
+
- **Tuple** - Low-latency screen sharing for pairing
|
|
94
|
+
- **Zoom/Meet** - Standard video with screen share
|
|
95
|
+
- **tmux/screen** - Terminal sharing for CLI work
|
|
96
|
+
|
|
97
|
+
### 2. Ensemble Programming (Mob Programming)
|
|
98
|
+
|
|
99
|
+
**Definition:** 3+ developers working together on the same code at the same workstation.
|
|
100
|
+
|
|
101
|
+
#### Ensemble Setup
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
[Projector/Large Screen]
|
|
105
|
+
↓
|
|
106
|
+
[Computer with Code]
|
|
107
|
+
↓
|
|
108
|
+
[Driver]
|
|
109
|
+
← ← ←
|
|
110
|
+
[Navigator 1] [Navigator 2] [Navigator 3]
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Rotation:** Driver switches every 5-10 minutes
|
|
114
|
+
|
|
115
|
+
#### Ensemble Patterns
|
|
116
|
+
|
|
117
|
+
**Strong-Style Mob**
|
|
118
|
+
- Navigators direct, driver types
|
|
119
|
+
- Driver doesn't add own ideas while driving
|
|
120
|
+
- Forces clear communication
|
|
121
|
+
|
|
122
|
+
**Rotating Facilitator**
|
|
123
|
+
- One person manages time/rotation
|
|
124
|
+
- Keeps discussion focused
|
|
125
|
+
- Rotates like driver position
|
|
126
|
+
|
|
127
|
+
**Expert Learning**
|
|
128
|
+
- Expert explains while driving
|
|
129
|
+
- Others learn and ask questions
|
|
130
|
+
- Useful for knowledge transfer
|
|
131
|
+
|
|
132
|
+
#### When to Ensemble
|
|
133
|
+
|
|
134
|
+
**Great for:**
|
|
135
|
+
- Complex problem solving
|
|
136
|
+
- Architectural decisions
|
|
137
|
+
- Learning new frameworks
|
|
138
|
+
- Kickstarting difficult features
|
|
139
|
+
- Resolving blockers
|
|
140
|
+
|
|
141
|
+
**Not great for:**
|
|
142
|
+
- Simple, well-understood tasks
|
|
143
|
+
- When people need deep focus
|
|
144
|
+
- Long-term (unsustainable)
|
|
145
|
+
|
|
146
|
+
### 3. Continuous Integration
|
|
147
|
+
|
|
148
|
+
**Definition:** Integrate code into shared repository frequently (multiple times per day), with automated build and tests.
|
|
149
|
+
|
|
150
|
+
#### CI Workflow
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
Developer:
|
|
154
|
+
1. Pull latest from main
|
|
155
|
+
2. Make small change (<2 hours work)
|
|
156
|
+
3. Run tests locally (all pass)
|
|
157
|
+
4. Commit and push to main
|
|
158
|
+
5. CI runs tests automatically
|
|
159
|
+
6. If tests fail → fix immediately
|
|
160
|
+
|
|
161
|
+
Pipeline:
|
|
162
|
+
main ← commit
|
|
163
|
+
↓
|
|
164
|
+
[Run Tests]
|
|
165
|
+
↓
|
|
166
|
+
[Build]
|
|
167
|
+
↓
|
|
168
|
+
[Deploy to Staging]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
#### CI Best Practices
|
|
172
|
+
|
|
173
|
+
**Commit frequently:**
|
|
174
|
+
- Small commits (< 2 hours of work)
|
|
175
|
+
- Each commit should pass all tests
|
|
176
|
+
- Commit to main/trunk (no long-lived branches)
|
|
177
|
+
|
|
178
|
+
**Keep build fast:**
|
|
179
|
+
- Full build + tests < 10 minutes
|
|
180
|
+
- Faster feedback = more valuable
|
|
181
|
+
- Parallelize slow tests
|
|
182
|
+
|
|
183
|
+
**Fix broken builds immediately:**
|
|
184
|
+
- Broken build = top priority
|
|
185
|
+
- Don't commit more code until fixed
|
|
186
|
+
- Revert commit if fix takes too long
|
|
187
|
+
|
|
188
|
+
**Automate everything:**
|
|
189
|
+
- Tests run automatically
|
|
190
|
+
- Build happens automatically
|
|
191
|
+
- Deploy to staging automatically
|
|
192
|
+
|
|
193
|
+
### 4. Test-Driven Development (TDD)
|
|
194
|
+
|
|
195
|
+
(See `tdd-london-chicago` skill for deep dive)
|
|
196
|
+
|
|
197
|
+
**Red-Green-Refactor cycle:**
|
|
198
|
+
1. Write failing test (Red)
|
|
199
|
+
2. Write minimal code to pass (Green)
|
|
200
|
+
3. Refactor while keeping tests green
|
|
201
|
+
|
|
202
|
+
**XP emphasis:** Tests as executable specifications, safety net for refactoring.
|
|
203
|
+
|
|
204
|
+
### 5. Simple Design
|
|
205
|
+
|
|
206
|
+
**Four Rules of Simple Design** (Kent Beck):
|
|
207
|
+
1. Passes all tests
|
|
208
|
+
2. Reveals intention (clear, expressive)
|
|
209
|
+
3. No duplication (DRY principle)
|
|
210
|
+
4. Fewest elements (no speculative code)
|
|
211
|
+
|
|
212
|
+
**Apply in order - tests first!**
|
|
213
|
+
|
|
214
|
+
#### Examples
|
|
215
|
+
|
|
216
|
+
**Not simple:**
|
|
217
|
+
```javascript
|
|
218
|
+
// Speculative generalization
|
|
219
|
+
class PaymentProcessor {
|
|
220
|
+
process(payment, options = {}) {
|
|
221
|
+
// Supports 15 payment types we might need someday
|
|
222
|
+
// Has configuration for every possible scenario
|
|
223
|
+
// 500 lines of "just in case" code
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Simple:**
|
|
229
|
+
```javascript
|
|
230
|
+
// Just what we need today
|
|
231
|
+
class PaymentProcessor {
|
|
232
|
+
processCreditCard(cardInfo) {
|
|
233
|
+
// Does one thing well
|
|
234
|
+
// 30 lines of clear code
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Add complexity only when needed
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### 6. Refactoring
|
|
242
|
+
|
|
243
|
+
**Definition:** Improving code structure without changing behavior.
|
|
244
|
+
|
|
245
|
+
#### When to Refactor
|
|
246
|
+
|
|
247
|
+
**The Rule of Three:**
|
|
248
|
+
1. First time: Just do it
|
|
249
|
+
2. Second time: Wince and duplicate
|
|
250
|
+
3. Third time: Refactor
|
|
251
|
+
|
|
252
|
+
**Refactor when:**
|
|
253
|
+
- Tests are green
|
|
254
|
+
- You see duplication
|
|
255
|
+
- Code is hard to understand
|
|
256
|
+
- Adding feature reveals poor design
|
|
257
|
+
- During green phase of TDD
|
|
258
|
+
|
|
259
|
+
**Don't refactor when:**
|
|
260
|
+
- Tests are failing
|
|
261
|
+
- Under deadline pressure (address later)
|
|
262
|
+
- Code works and rarely changes
|
|
263
|
+
|
|
264
|
+
#### Safe Refactoring
|
|
265
|
+
|
|
266
|
+
**Always:**
|
|
267
|
+
1. Have tests that pass
|
|
268
|
+
2. Refactor in small steps
|
|
269
|
+
3. Run tests after each step
|
|
270
|
+
4. Commit working code frequently
|
|
271
|
+
|
|
272
|
+
**Common Refactorings:**
|
|
273
|
+
- Extract method
|
|
274
|
+
- Rename for clarity
|
|
275
|
+
- Remove duplication
|
|
276
|
+
- Introduce parameter object
|
|
277
|
+
- Replace conditional with polymorphism
|
|
278
|
+
|
|
279
|
+
### 7. Collective Code Ownership
|
|
280
|
+
|
|
281
|
+
**Principle:** Anyone can improve any part of the codebase.
|
|
282
|
+
|
|
283
|
+
**Benefits:**
|
|
284
|
+
- No bottlenecks (no waiting for "that one person")
|
|
285
|
+
- Knowledge spreads across team
|
|
286
|
+
- Code quality improves (more eyes)
|
|
287
|
+
- Bus factor > 1
|
|
288
|
+
|
|
289
|
+
**Requirements:**
|
|
290
|
+
- Comprehensive test suite (safety net)
|
|
291
|
+
- Coding standards (consistency)
|
|
292
|
+
- Continuous integration (catch issues fast)
|
|
293
|
+
- Code reviews or pairing (maintain quality)
|
|
294
|
+
|
|
295
|
+
**In practice:**
|
|
296
|
+
```
|
|
297
|
+
❌ "That's Alice's module, only she can change it"
|
|
298
|
+
✅ "I see an issue in this module, I'll pair with Alice to fix it"
|
|
299
|
+
✅ "I need to change this module, I'll write tests first"
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### 8. Coding Standards
|
|
303
|
+
|
|
304
|
+
**Purpose:** Consistency makes collaboration easier.
|
|
305
|
+
|
|
306
|
+
**What to standardize:**
|
|
307
|
+
- Formatting (use auto-formatter: Prettier, Black)
|
|
308
|
+
- Naming conventions
|
|
309
|
+
- File structure
|
|
310
|
+
- Testing patterns
|
|
311
|
+
- Documentation style
|
|
312
|
+
|
|
313
|
+
**How to maintain:**
|
|
314
|
+
- Automated linting (ESLint, Pylint)
|
|
315
|
+
- Pre-commit hooks
|
|
316
|
+
- CI enforcement
|
|
317
|
+
- Pair/ensemble programming (natural alignment)
|
|
318
|
+
|
|
319
|
+
**Don't:**
|
|
320
|
+
- Have 50-page style guides no one reads
|
|
321
|
+
- Enforce arbitrary preferences
|
|
322
|
+
- Spend hours debating tabs vs spaces (use formatter)
|
|
323
|
+
|
|
324
|
+
### 9. Sustainable Pace
|
|
325
|
+
|
|
326
|
+
**Principle:** Team should work at a pace they can sustain indefinitely.
|
|
327
|
+
|
|
328
|
+
**40-hour work week:**
|
|
329
|
+
- No routine overtime
|
|
330
|
+
- Regular hours = sustainable productivity
|
|
331
|
+
- Tired developers write bugs
|
|
332
|
+
|
|
333
|
+
**Warning signs of unsustainable pace:**
|
|
334
|
+
- Regular late nights/weekends
|
|
335
|
+
- Increasing bug rate
|
|
336
|
+
- Declining code quality
|
|
337
|
+
- Team burnout/turnover
|
|
338
|
+
- Decreased morale
|
|
339
|
+
|
|
340
|
+
**How to maintain:**
|
|
341
|
+
- Realistic estimates
|
|
342
|
+
- Buffer time in plans
|
|
343
|
+
- Say no to unrealistic deadlines
|
|
344
|
+
- Measure velocity, plan accordingly
|
|
345
|
+
- Take vacations
|
|
346
|
+
|
|
347
|
+
### 10. Small Releases
|
|
348
|
+
|
|
349
|
+
**Principle:** Release working software frequently.
|
|
350
|
+
|
|
351
|
+
**Benefits:**
|
|
352
|
+
- Fast feedback from users
|
|
353
|
+
- Reduced risk (small changes)
|
|
354
|
+
- Easier to debug (what changed?)
|
|
355
|
+
- Business value delivered sooner
|
|
356
|
+
|
|
357
|
+
**How small?**
|
|
358
|
+
- Deploy to production: daily or weekly
|
|
359
|
+
- Internal release: multiple times per day
|
|
360
|
+
- Feature flags for incomplete work
|
|
361
|
+
|
|
362
|
+
**Continuous Deployment:**
|
|
363
|
+
```
|
|
364
|
+
Commit → CI Tests → Deploy Staging → Automated Tests → Deploy Production
|
|
365
|
+
[All automated, happens multiple times per day]
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### 11. On-Site Customer
|
|
369
|
+
|
|
370
|
+
**Modern interpretation:** Product Owner embedded with team.
|
|
371
|
+
|
|
372
|
+
**Customer responsibilities:**
|
|
373
|
+
- Writes user stories
|
|
374
|
+
- Prioritizes backlog
|
|
375
|
+
- Answers questions immediately
|
|
376
|
+
- Accepts completed work
|
|
377
|
+
- Makes scope decisions
|
|
378
|
+
|
|
379
|
+
**Not realistic:** Customer physically present 40hrs/week
|
|
380
|
+
|
|
381
|
+
**Practical compromise:**
|
|
382
|
+
- Daily standup attendance
|
|
383
|
+
- Available for questions (Slack/quick calls)
|
|
384
|
+
- Sprint planning and review
|
|
385
|
+
- Regular demo sessions
|
|
386
|
+
|
|
387
|
+
### 12. Metaphor / Ubiquitous Language
|
|
388
|
+
|
|
389
|
+
**Principle:** Shared vocabulary between technical and non-technical team members.
|
|
390
|
+
|
|
391
|
+
**Example - E-commerce System:**
|
|
392
|
+
```
|
|
393
|
+
Shared language:
|
|
394
|
+
- "Cart" (not "session shopping container")
|
|
395
|
+
- "Checkout" (not "payment initialization workflow")
|
|
396
|
+
- "Order" (not "purchase transaction record")
|
|
397
|
+
|
|
398
|
+
Everyone uses same terms:
|
|
399
|
+
- Product owner writes stories using these words
|
|
400
|
+
- Developers name classes/methods using these words
|
|
401
|
+
- Tests use these words
|
|
402
|
+
- Documentation uses these words
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
**Benefits:**
|
|
406
|
+
- Clearer communication
|
|
407
|
+
- Code reflects business domain
|
|
408
|
+
- Less translation needed
|
|
409
|
+
- Easier onboarding
|
|
410
|
+
|
|
411
|
+
## Combining XP Practices
|
|
412
|
+
|
|
413
|
+
### Practice Synergies
|
|
414
|
+
|
|
415
|
+
**TDD + Pair Programming**
|
|
416
|
+
```
|
|
417
|
+
Ping-pong pairing with TDD:
|
|
418
|
+
Person A writes test → Person B makes it pass
|
|
419
|
+
High quality code, fast feedback, knowledge sharing
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
**Collective Ownership + CI + Tests**
|
|
423
|
+
```
|
|
424
|
+
Anyone can change anything because:
|
|
425
|
+
- Tests catch regressions immediately
|
|
426
|
+
- CI runs tests on every commit
|
|
427
|
+
- Broken builds fixed immediately
|
|
428
|
+
No fear of stepping on toes
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
**Simple Design + Refactoring**
|
|
432
|
+
```
|
|
433
|
+
Start with simplest design
|
|
434
|
+
When requirements change → refactor
|
|
435
|
+
Tests give confidence to refactor
|
|
436
|
+
Never build more than needed
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
## Adapting XP for Your Context
|
|
440
|
+
|
|
441
|
+
### Startup Context
|
|
442
|
+
- **Keep:** TDD, CI, Simple Design, Small Releases
|
|
443
|
+
- **Adapt:** Pair occasionally (not always), lighter standards
|
|
444
|
+
- **Skip:** Might not need dedicated on-site customer
|
|
445
|
+
|
|
446
|
+
### Enterprise Context
|
|
447
|
+
- **Keep:** All practices, especially sustainable pace
|
|
448
|
+
- **Adapt:** More formal standards, documentation requirements
|
|
449
|
+
- **Add:** Architecture reviews, security scans
|
|
450
|
+
|
|
451
|
+
### Remote Team
|
|
452
|
+
- **Keep:** All core practices
|
|
453
|
+
- **Adapt:** Remote pairing tools, async communication
|
|
454
|
+
- **Add:** Over-communicate, document decisions
|
|
455
|
+
|
|
456
|
+
### Legacy Codebase
|
|
457
|
+
- **Start with:** Tests for changes, CI, Refactoring
|
|
458
|
+
- **Build towards:** TDD for new code, Collective ownership
|
|
459
|
+
- **Be patient:** Can't adopt everything at once
|
|
460
|
+
|
|
461
|
+
## Common Objections (and Responses)
|
|
462
|
+
|
|
463
|
+
**"Pair programming is twice as slow"**
|
|
464
|
+
→ Studies show 15% slower to write, 15% fewer bugs, better design. Net positive.
|
|
465
|
+
|
|
466
|
+
**"We don't have time for TDD"**
|
|
467
|
+
→ You don't have time NOT to. Debugging takes longer than writing tests.
|
|
468
|
+
|
|
469
|
+
**"Continuous integration is too hard to set up"**
|
|
470
|
+
→ Start simple: GitHub Actions with one test. Build from there.
|
|
471
|
+
|
|
472
|
+
**"Collective ownership will create chaos"**
|
|
473
|
+
→ Only with poor tests and no CI. Fix those first.
|
|
474
|
+
|
|
475
|
+
**"40-hour weeks won't work for our deadlines"**
|
|
476
|
+
→ Your deadlines are based on unsustainable pace. Adjust estimates.
|
|
477
|
+
|
|
478
|
+
## XP in Quality Engineering
|
|
479
|
+
|
|
480
|
+
### QE-Specific Applications
|
|
481
|
+
|
|
482
|
+
**Ensemble Testing Sessions**
|
|
483
|
+
- 3-5 people exploring together
|
|
484
|
+
- Share testing heuristics in real-time
|
|
485
|
+
- Rapid bug discovery and investigation
|
|
486
|
+
|
|
487
|
+
**Test Code Pairing**
|
|
488
|
+
- Pair on test automation
|
|
489
|
+
- Share testing patterns
|
|
490
|
+
- Improve test quality
|
|
491
|
+
|
|
492
|
+
**Quality as Team Responsibility**
|
|
493
|
+
- Developers write tests
|
|
494
|
+
- QE does exploratory testing
|
|
495
|
+
- Everyone owns quality
|
|
496
|
+
|
|
497
|
+
**Continuous Testing**
|
|
498
|
+
- Tests run on every commit
|
|
499
|
+
- Fast feedback on quality
|
|
500
|
+
- No separate QE phase
|
|
501
|
+
|
|
502
|
+
## Measuring XP Success
|
|
503
|
+
|
|
504
|
+
**Code Quality Metrics:**
|
|
505
|
+
- Test coverage trend
|
|
506
|
+
- Defect density
|
|
507
|
+
- Code churn
|
|
508
|
+
|
|
509
|
+
**Team Health Metrics:**
|
|
510
|
+
- Velocity consistency
|
|
511
|
+
- Team satisfaction surveys
|
|
512
|
+
- Turnover rate
|
|
513
|
+
|
|
514
|
+
**Delivery Metrics:**
|
|
515
|
+
- Deployment frequency
|
|
516
|
+
- Lead time for changes
|
|
517
|
+
- Mean time to recovery
|
|
518
|
+
|
|
519
|
+
**Don't measure:**
|
|
520
|
+
- Lines of code written
|
|
521
|
+
- Hours worked
|
|
522
|
+
- Number of commits
|
|
523
|
+
|
|
524
|
+
## Resources
|
|
525
|
+
|
|
526
|
+
**Books:**
|
|
527
|
+
- **Extreme Programming Explained** by Kent Beck
|
|
528
|
+
- **Extreme Programming Installed** by Jeffries, Anderson, Hendrickson
|
|
529
|
+
- **Pair Programming Illuminated** by Williams & Kessler
|
|
530
|
+
|
|
531
|
+
**Modern Practices:**
|
|
532
|
+
- Remote mob programming techniques
|
|
533
|
+
- DevOps integration with XP
|
|
534
|
+
- Continuous deployment patterns
|
|
535
|
+
|
|
536
|
+
## Using with QE Agents
|
|
537
|
+
|
|
538
|
+
### Agent-Human Pair Testing
|
|
539
|
+
|
|
540
|
+
**qe-test-generator** + Human QE:
|
|
541
|
+
```typescript
|
|
542
|
+
// Ping-pong pattern with AI agent
|
|
543
|
+
// Human writes test charter
|
|
544
|
+
const charter = "Test payment processing edge cases";
|
|
545
|
+
|
|
546
|
+
// Agent generates test code
|
|
547
|
+
const test = await qe-test-generator.generate(charter);
|
|
548
|
+
|
|
549
|
+
// Human reviews and refines
|
|
550
|
+
const refinedTest = await human.review(test);
|
|
551
|
+
|
|
552
|
+
// Agent implements refinements
|
|
553
|
+
await qe-test-generator.implement(refinedTest);
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
### Ensemble Testing with Multiple Agents
|
|
557
|
+
|
|
558
|
+
```typescript
|
|
559
|
+
// Mob testing: Multiple agents + human coordinator
|
|
560
|
+
const ensemble = await FleetManager.startEnsemble({
|
|
561
|
+
facilitator: 'human',
|
|
562
|
+
participants: [
|
|
563
|
+
'qe-test-generator',
|
|
564
|
+
'qe-coverage-analyzer',
|
|
565
|
+
'qe-security-scanner'
|
|
566
|
+
],
|
|
567
|
+
rotation: '10min',
|
|
568
|
+
charter: 'Design test strategy for new payment API'
|
|
569
|
+
});
|
|
570
|
+
|
|
571
|
+
// Human directs, agents execute and suggest
|
|
572
|
+
// Rotate which agent is "driving" every 10 minutes
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
### Continuous Integration with Agents
|
|
576
|
+
|
|
577
|
+
```yaml
|
|
578
|
+
# AI agents in CI pipeline
|
|
579
|
+
name: XP CI with Agents
|
|
580
|
+
|
|
581
|
+
on: [push]
|
|
582
|
+
|
|
583
|
+
jobs:
|
|
584
|
+
test:
|
|
585
|
+
steps:
|
|
586
|
+
# Agent runs risk analysis
|
|
587
|
+
- name: Risk Analysis
|
|
588
|
+
run: aqe agent run qe-regression-risk-analyzer
|
|
589
|
+
|
|
590
|
+
# Agent generates tests for changes
|
|
591
|
+
- name: Generate Tests
|
|
592
|
+
run: aqe agent run qe-test-generator
|
|
593
|
+
|
|
594
|
+
# Agent executes all tests
|
|
595
|
+
- name: Execute Tests
|
|
596
|
+
run: aqe agent run qe-test-executor
|
|
597
|
+
|
|
598
|
+
# Agent analyzes coverage
|
|
599
|
+
- name: Coverage Check
|
|
600
|
+
run: aqe agent run qe-coverage-analyzer
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
### Collective Code & Test Ownership
|
|
604
|
+
|
|
605
|
+
```typescript
|
|
606
|
+
// Agents help maintain collective ownership
|
|
607
|
+
// Any team member can improve any test
|
|
608
|
+
// Agents ensure consistency
|
|
609
|
+
|
|
610
|
+
await qe-quality-analyzer.enforceStandards({
|
|
611
|
+
scope: 'all-tests',
|
|
612
|
+
standards: ['naming-conventions', 'test-structure', 'assertions'],
|
|
613
|
+
autoFix: true // Agent fixes simple violations
|
|
614
|
+
});
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
### Sustainable Pace with Agent Assistance
|
|
618
|
+
|
|
619
|
+
```typescript
|
|
620
|
+
// Agents handle grunt work, humans focus on high-value tasks
|
|
621
|
+
const workDistribution = {
|
|
622
|
+
agents: [
|
|
623
|
+
'Repetitive regression testing',
|
|
624
|
+
'Log analysis and pattern detection',
|
|
625
|
+
'Test data generation',
|
|
626
|
+
'Coverage gap analysis',
|
|
627
|
+
'Performance monitoring'
|
|
628
|
+
],
|
|
629
|
+
humans: [
|
|
630
|
+
'Exploratory testing',
|
|
631
|
+
'Risk assessment',
|
|
632
|
+
'Test strategy decisions',
|
|
633
|
+
'Domain-specific edge cases',
|
|
634
|
+
'Stakeholder communication'
|
|
635
|
+
]
|
|
636
|
+
};
|
|
637
|
+
|
|
638
|
+
// Result: 40-hour work week, sustainable, high productivity
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
---
|
|
642
|
+
|
|
643
|
+
## Related Skills
|
|
644
|
+
|
|
645
|
+
**Core Quality Practices:**
|
|
646
|
+
- [agentic-quality-engineering](../agentic-quality-engineering/) - Agents as pair partners
|
|
647
|
+
- [holistic-testing-pact](../holistic-testing-pact/) - Whole-team quality practices
|
|
648
|
+
- [context-driven-testing](../context-driven-testing/) - Adapt XP to context
|
|
649
|
+
|
|
650
|
+
**Development Practices:**
|
|
651
|
+
- [tdd-london-chicago](../tdd-london-chicago/) - TDD within XP workflow
|
|
652
|
+
- [refactoring-patterns](../refactoring-patterns/) - Safe refactoring techniques
|
|
653
|
+
- [code-review-quality](../code-review-quality/) - Review as pairing alternative
|
|
654
|
+
|
|
655
|
+
**Testing Specializations:**
|
|
656
|
+
- [exploratory-testing-advanced](../exploratory-testing-advanced/) - Ensemble exploration
|
|
657
|
+
- [test-automation-strategy](../test-automation-strategy/) - CI/CD integration
|
|
658
|
+
|
|
659
|
+
---
|
|
660
|
+
|
|
661
|
+
## Remember
|
|
662
|
+
|
|
663
|
+
XP practices work together as a system. Don't cherry-pick randomly:
|
|
664
|
+
- Start with practices that give immediate value
|
|
665
|
+
- Build supporting practices gradually
|
|
666
|
+
- Adapt to your context
|
|
667
|
+
- Measure results
|
|
668
|
+
|
|
669
|
+
**The goal:** Sustainable delivery of high-quality software through technical excellence and teamwork.
|
|
670
|
+
|
|
671
|
+
**With Agents**: XP practices amplify agent effectiveness. Pair humans with agents for best results. Agents handle repetitive work, humans provide judgment and creativity.
|