agentic-qe 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/analysis/code-analyzer.md +209 -0
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +180 -0
- package/.claude/agents/architecture/system-design/arch-system-design.md +156 -0
- package/.claude/agents/base-template-generator.md +42 -0
- package/.claude/agents/consensus/byzantine-coordinator.md +63 -0
- package/.claude/agents/consensus/crdt-synchronizer.md +997 -0
- package/.claude/agents/consensus/gossip-coordinator.md +63 -0
- package/.claude/agents/consensus/performance-benchmarker.md +851 -0
- package/.claude/agents/consensus/quorum-manager.md +823 -0
- package/.claude/agents/consensus/raft-manager.md +63 -0
- package/.claude/agents/consensus/security-manager.md +622 -0
- package/.claude/agents/core/coder.md +266 -0
- package/.claude/agents/core/planner.md +168 -0
- package/.claude/agents/core/researcher.md +190 -0
- package/.claude/agents/core/reviewer.md +326 -0
- package/.claude/agents/core/tester.md +319 -0
- package/.claude/agents/data/ml/data-ml-model.md +193 -0
- package/.claude/agents/development/backend/dev-backend-api.md +142 -0
- package/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
- package/.claude/agents/flow-nexus/app-store.md +88 -0
- package/.claude/agents/flow-nexus/authentication.md +69 -0
- package/.claude/agents/flow-nexus/challenges.md +81 -0
- package/.claude/agents/flow-nexus/neural-network.md +88 -0
- package/.claude/agents/flow-nexus/payments.md +83 -0
- package/.claude/agents/flow-nexus/sandbox.md +76 -0
- package/.claude/agents/flow-nexus/swarm.md +76 -0
- package/.claude/agents/flow-nexus/user-tools.md +96 -0
- package/.claude/agents/flow-nexus/workflow.md +84 -0
- package/.claude/agents/github/code-review-swarm.md +538 -0
- package/.claude/agents/github/github-modes.md +173 -0
- package/.claude/agents/github/issue-tracker.md +319 -0
- package/.claude/agents/github/multi-repo-swarm.md +553 -0
- package/.claude/agents/github/pr-manager.md +191 -0
- package/.claude/agents/github/project-board-sync.md +509 -0
- package/.claude/agents/github/release-manager.md +367 -0
- package/.claude/agents/github/release-swarm.md +583 -0
- package/.claude/agents/github/repo-architect.md +398 -0
- package/.claude/agents/github/swarm-issue.md +573 -0
- package/.claude/agents/github/swarm-pr.md +428 -0
- package/.claude/agents/github/sync-coordinator.md +452 -0
- package/.claude/agents/github/workflow-automation.md +635 -0
- package/.claude/agents/goal/code-goal-planner.md +446 -0
- package/.claude/agents/goal/goal-planner.md +168 -0
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +130 -0
- package/.claude/agents/hive-mind/queen-coordinator.md +203 -0
- package/.claude/agents/hive-mind/scout-explorer.md +242 -0
- package/.claude/agents/hive-mind/swarm-memory-manager.md +193 -0
- package/.claude/agents/hive-mind/worker-specialist.md +217 -0
- package/.claude/agents/neural/safla-neural.md +74 -0
- package/.claude/agents/optimization/benchmark-suite.md +665 -0
- package/.claude/agents/optimization/load-balancer.md +431 -0
- package/.claude/agents/optimization/performance-monitor.md +672 -0
- package/.claude/agents/optimization/resource-allocator.md +674 -0
- package/.claude/agents/optimization/topology-optimizer.md +808 -0
- package/.claude/agents/qe-api-contract-validator.md +1088 -0
- package/.claude/agents/qe-chaos-engineer.md +736 -0
- package/.claude/agents/qe-coverage-analyzer.md +282 -0
- package/.claude/agents/qe-deployment-readiness.md +1109 -0
- package/.claude/agents/qe-flaky-test-hunter.md +1121 -0
- package/.claude/agents/qe-fleet-commander.md +641 -0
- package/.claude/agents/qe-performance-tester.md +354 -0
- package/.claude/agents/qe-production-intelligence.md +1162 -0
- package/.claude/agents/qe-quality-gate.md +294 -0
- package/.claude/agents/qe-regression-risk-analyzer.md +947 -0
- package/.claude/agents/qe-requirements-validator.md +691 -0
- package/.claude/agents/qe-security-scanner.md +430 -0
- package/.claude/agents/qe-test-data-architect.md +1007 -0
- package/.claude/agents/qe-test-executor.md +365 -0
- package/.claude/agents/qe-test-generator.md +332 -0
- package/.claude/agents/qe-visual-tester.md +754 -0
- package/.claude/agents/sparc/architecture.md +472 -0
- package/.claude/agents/sparc/pseudocode.md +318 -0
- package/.claude/agents/sparc/refinement.md +525 -0
- package/.claude/agents/sparc/specification.md +276 -0
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +226 -0
- package/.claude/agents/swarm/adaptive-coordinator.md +396 -0
- package/.claude/agents/swarm/hierarchical-coordinator.md +327 -0
- package/.claude/agents/swarm/mesh-coordinator.md +392 -0
- package/.claude/agents/templates/automation-smart-agent.md +205 -0
- package/.claude/agents/templates/coordinator-swarm-init.md +105 -0
- package/.claude/agents/templates/github-pr-manager.md +177 -0
- package/.claude/agents/templates/implementer-sparc-coder.md +259 -0
- package/.claude/agents/templates/memory-coordinator.md +187 -0
- package/.claude/agents/templates/migration-plan.md +746 -0
- package/.claude/agents/templates/orchestrator-task.md +139 -0
- package/.claude/agents/templates/performance-analyzer.md +199 -0
- package/.claude/agents/templates/sparc-coordinator.md +183 -0
- package/.claude/agents/testing/unit/tdd-london-swarm.md +244 -0
- package/.claude/agents/testing/validation/production-validator.md +395 -0
- package/.claude/aqe-fleet.json +47 -0
- package/.claude/commands/README.md +106 -0
- package/.claude/commands/agents/README.md +10 -0
- package/.claude/commands/agents/agent-capabilities.md +21 -0
- package/.claude/commands/agents/agent-coordination.md +28 -0
- package/.claude/commands/agents/agent-spawning.md +28 -0
- package/.claude/commands/agents/agent-types.md +26 -0
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
- package/.claude/commands/analysis/README.md +9 -0
- package/.claude/commands/analysis/bottleneck-detect.md +162 -0
- package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
- package/.claude/commands/analysis/performance-report.md +25 -0
- package/.claude/commands/analysis/token-efficiency.md +45 -0
- package/.claude/commands/analysis/token-usage.md +25 -0
- package/.claude/commands/aqe-analyze.md +344 -0
- package/.claude/commands/aqe-benchmark.md +466 -0
- package/.claude/commands/aqe-chaos.md +443 -0
- package/.claude/commands/aqe-execute.md +322 -0
- package/.claude/commands/aqe-fleet-status.md +431 -0
- package/.claude/commands/aqe-generate.md +301 -0
- package/.claude/commands/aqe-optimize.md +361 -0
- package/.claude/commands/aqe-report.md +411 -0
- package/.claude/commands/automation/README.md +9 -0
- package/.claude/commands/automation/auto-agent.md +122 -0
- package/.claude/commands/automation/self-healing.md +106 -0
- package/.claude/commands/automation/session-memory.md +90 -0
- package/.claude/commands/automation/smart-agents.md +73 -0
- package/.claude/commands/automation/smart-spawn.md +25 -0
- package/.claude/commands/automation/workflow-select.md +25 -0
- package/.claude/commands/coordination/README.md +9 -0
- package/.claude/commands/coordination/agent-spawn.md +25 -0
- package/.claude/commands/coordination/init.md +44 -0
- package/.claude/commands/coordination/orchestrate.md +43 -0
- package/.claude/commands/coordination/spawn.md +45 -0
- package/.claude/commands/coordination/swarm-init.md +85 -0
- package/.claude/commands/coordination/task-orchestrate.md +25 -0
- package/.claude/commands/flow-nexus/app-store.md +124 -0
- package/.claude/commands/flow-nexus/challenges.md +120 -0
- package/.claude/commands/flow-nexus/login-registration.md +65 -0
- package/.claude/commands/flow-nexus/neural-network.md +134 -0
- package/.claude/commands/flow-nexus/payments.md +116 -0
- package/.claude/commands/flow-nexus/sandbox.md +83 -0
- package/.claude/commands/flow-nexus/swarm.md +87 -0
- package/.claude/commands/flow-nexus/user-tools.md +152 -0
- package/.claude/commands/flow-nexus/workflow.md +115 -0
- package/.claude/commands/github/README.md +11 -0
- package/.claude/commands/github/code-review-swarm.md +514 -0
- package/.claude/commands/github/code-review.md +25 -0
- package/.claude/commands/github/github-modes.md +147 -0
- package/.claude/commands/github/github-swarm.md +121 -0
- package/.claude/commands/github/issue-tracker.md +292 -0
- package/.claude/commands/github/issue-triage.md +25 -0
- package/.claude/commands/github/multi-repo-swarm.md +519 -0
- package/.claude/commands/github/pr-enhance.md +26 -0
- package/.claude/commands/github/pr-manager.md +170 -0
- package/.claude/commands/github/project-board-sync.md +471 -0
- package/.claude/commands/github/release-manager.md +338 -0
- package/.claude/commands/github/release-swarm.md +544 -0
- package/.claude/commands/github/repo-analyze.md +25 -0
- package/.claude/commands/github/repo-architect.md +367 -0
- package/.claude/commands/github/swarm-issue.md +482 -0
- package/.claude/commands/github/swarm-pr.md +285 -0
- package/.claude/commands/github/sync-coordinator.md +301 -0
- package/.claude/commands/github/workflow-automation.md +442 -0
- package/.claude/commands/hive-mind/README.md +17 -0
- package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
- package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
- package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
- package/.claude/commands/hive-mind/hive-mind.md +27 -0
- package/.claude/commands/hooks/README.md +11 -0
- package/.claude/commands/hooks/overview.md +132 -0
- package/.claude/commands/hooks/post-edit.md +117 -0
- package/.claude/commands/hooks/post-task.md +112 -0
- package/.claude/commands/hooks/pre-edit.md +113 -0
- package/.claude/commands/hooks/pre-task.md +111 -0
- package/.claude/commands/hooks/session-end.md +118 -0
- package/.claude/commands/hooks/setup.md +103 -0
- package/.claude/commands/memory/README.md +9 -0
- package/.claude/commands/memory/memory-persist.md +25 -0
- package/.claude/commands/memory/memory-search.md +25 -0
- package/.claude/commands/memory/memory-usage.md +25 -0
- package/.claude/commands/memory/neural.md +47 -0
- package/.claude/commands/memory/usage.md +46 -0
- package/.claude/commands/monitoring/README.md +9 -0
- package/.claude/commands/monitoring/agent-metrics.md +25 -0
- package/.claude/commands/monitoring/agents.md +44 -0
- package/.claude/commands/monitoring/real-time-view.md +25 -0
- package/.claude/commands/monitoring/status.md +46 -0
- package/.claude/commands/monitoring/swarm-monitor.md +25 -0
- package/.claude/commands/optimization/README.md +9 -0
- package/.claude/commands/optimization/auto-topology.md +62 -0
- package/.claude/commands/optimization/cache-manage.md +25 -0
- package/.claude/commands/optimization/parallel-execute.md +25 -0
- package/.claude/commands/optimization/parallel-execution.md +50 -0
- package/.claude/commands/optimization/topology-optimize.md +25 -0
- package/.claude/commands/pair/commands.md +546 -0
- package/.claude/commands/pair/config.md +510 -0
- package/.claude/commands/pair/examples.md +512 -0
- package/.claude/commands/pair/modes.md +348 -0
- package/.claude/commands/pair/session.md +407 -0
- package/.claude/commands/pair/start.md +209 -0
- package/.claude/commands/sparc/analyzer.md +52 -0
- package/.claude/commands/sparc/architect.md +53 -0
- package/.claude/commands/sparc/batch-executor.md +54 -0
- package/.claude/commands/sparc/coder.md +54 -0
- package/.claude/commands/sparc/debugger.md +54 -0
- package/.claude/commands/sparc/designer.md +53 -0
- package/.claude/commands/sparc/documenter.md +54 -0
- package/.claude/commands/sparc/innovator.md +54 -0
- package/.claude/commands/sparc/memory-manager.md +54 -0
- package/.claude/commands/sparc/optimizer.md +54 -0
- package/.claude/commands/sparc/orchestrator.md +132 -0
- package/.claude/commands/sparc/researcher.md +54 -0
- package/.claude/commands/sparc/reviewer.md +54 -0
- package/.claude/commands/sparc/sparc-modes.md +174 -0
- package/.claude/commands/sparc/swarm-coordinator.md +54 -0
- package/.claude/commands/sparc/tdd.md +54 -0
- package/.claude/commands/sparc/tester.md +54 -0
- package/.claude/commands/sparc/workflow-manager.md +54 -0
- package/.claude/commands/stream-chain/pipeline.md +121 -0
- package/.claude/commands/stream-chain/run.md +70 -0
- package/.claude/commands/swarm/README.md +15 -0
- package/.claude/commands/swarm/analysis.md +95 -0
- package/.claude/commands/swarm/development.md +96 -0
- package/.claude/commands/swarm/examples.md +168 -0
- package/.claude/commands/swarm/maintenance.md +102 -0
- package/.claude/commands/swarm/optimization.md +117 -0
- package/.claude/commands/swarm/research.md +136 -0
- package/.claude/commands/swarm/swarm-analysis.md +8 -0
- package/.claude/commands/swarm/swarm-background.md +8 -0
- package/.claude/commands/swarm/swarm-init.md +19 -0
- package/.claude/commands/swarm/swarm-modes.md +8 -0
- package/.claude/commands/swarm/swarm-monitor.md +8 -0
- package/.claude/commands/swarm/swarm-spawn.md +19 -0
- package/.claude/commands/swarm/swarm-status.md +8 -0
- package/.claude/commands/swarm/swarm-strategies.md +8 -0
- package/.claude/commands/swarm/swarm.md +27 -0
- package/.claude/commands/swarm/testing.md +131 -0
- package/.claude/commands/training/README.md +9 -0
- package/.claude/commands/training/model-update.md +25 -0
- package/.claude/commands/training/neural-patterns.md +74 -0
- package/.claude/commands/training/neural-train.md +25 -0
- package/.claude/commands/training/pattern-learn.md +25 -0
- package/.claude/commands/training/specialization.md +63 -0
- package/.claude/commands/truth/start.md +143 -0
- package/.claude/commands/verify/check.md +50 -0
- package/.claude/commands/verify/start.md +128 -0
- package/.claude/commands/workflows/README.md +9 -0
- package/.claude/commands/workflows/development.md +78 -0
- package/.claude/commands/workflows/research.md +63 -0
- package/.claude/commands/workflows/workflow-create.md +25 -0
- package/.claude/commands/workflows/workflow-execute.md +25 -0
- package/.claude/commands/workflows/workflow-export.md +25 -0
- package/.claude/helpers/checkpoint-manager.sh +251 -0
- package/.claude/helpers/github-safe.js +106 -0
- package/.claude/helpers/github-setup.sh +28 -0
- package/.claude/helpers/quick-start.sh +19 -0
- package/.claude/helpers/setup-mcp.sh +18 -0
- package/.claude/helpers/standard-checkpoint-hooks.sh +179 -0
- package/.claude/settings.json +114 -0
- package/.claude/settings.local.json +10 -0
- package/CONTRIBUTING.md +897 -0
- package/LICENSE +21 -0
- package/README.md +632 -0
- package/bin/aqe +959 -0
- package/config/fleet.yaml +50 -0
- package/dist/agents/ApiContractValidatorAgent.d.ts +222 -0
- package/dist/agents/ApiContractValidatorAgent.d.ts.map +1 -0
- package/dist/agents/ApiContractValidatorAgent.js +787 -0
- package/dist/agents/ApiContractValidatorAgent.js.map +1 -0
- package/dist/agents/BaseAgent.d.ts +147 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -0
- package/dist/agents/BaseAgent.js +374 -0
- package/dist/agents/BaseAgent.js.map +1 -0
- package/dist/agents/CoverageAnalyzerAgent.d.ts +103 -0
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -0
- package/dist/agents/CoverageAnalyzerAgent.js +466 -0
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -0
- package/dist/agents/DeploymentReadinessAgent.d.ts +244 -0
- package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -0
- package/dist/agents/DeploymentReadinessAgent.js +974 -0
- package/dist/agents/DeploymentReadinessAgent.js.map +1 -0
- package/dist/agents/FlakyTestHunterAgent.d.ts +172 -0
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -0
- package/dist/agents/FlakyTestHunterAgent.js +867 -0
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -0
- package/dist/agents/FleetCommanderAgent.d.ts +154 -0
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -0
- package/dist/agents/FleetCommanderAgent.js +924 -0
- package/dist/agents/FleetCommanderAgent.js.map +1 -0
- package/dist/agents/PerformanceTesterAgent.d.ts +194 -0
- package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -0
- package/dist/agents/PerformanceTesterAgent.js +972 -0
- package/dist/agents/PerformanceTesterAgent.js.map +1 -0
- package/dist/agents/ProductionIntelligenceAgent.d.ts +224 -0
- package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -0
- package/dist/agents/ProductionIntelligenceAgent.js +856 -0
- package/dist/agents/ProductionIntelligenceAgent.js.map +1 -0
- package/dist/agents/QualityAnalyzerAgent.d.ts +67 -0
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -0
- package/dist/agents/QualityAnalyzerAgent.js +453 -0
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -0
- package/dist/agents/QualityGateAgent.d.ts +104 -0
- package/dist/agents/QualityGateAgent.d.ts.map +1 -0
- package/dist/agents/QualityGateAgent.js +522 -0
- package/dist/agents/QualityGateAgent.js.map +1 -0
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts +274 -0
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -0
- package/dist/agents/RegressionRiskAnalyzerAgent.js +1076 -0
- package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -0
- package/dist/agents/RequirementsValidatorAgent.d.ts +195 -0
- package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -0
- package/dist/agents/RequirementsValidatorAgent.js +992 -0
- package/dist/agents/RequirementsValidatorAgent.js.map +1 -0
- package/dist/agents/SecurityScannerAgent.d.ts +126 -0
- package/dist/agents/SecurityScannerAgent.d.ts.map +1 -0
- package/dist/agents/SecurityScannerAgent.js +695 -0
- package/dist/agents/SecurityScannerAgent.js.map +1 -0
- package/dist/agents/TestDataArchitectAgent.d.ts +452 -0
- package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -0
- package/dist/agents/TestDataArchitectAgent.js +1346 -0
- package/dist/agents/TestDataArchitectAgent.js.map +1 -0
- package/dist/agents/TestExecutorAgent.d.ts +101 -0
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -0
- package/dist/agents/TestExecutorAgent.js +730 -0
- package/dist/agents/TestExecutorAgent.js.map +1 -0
- package/dist/agents/TestGeneratorAgent.d.ts +109 -0
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -0
- package/dist/agents/TestGeneratorAgent.js +450 -0
- package/dist/agents/TestGeneratorAgent.js.map +1 -0
- package/dist/agents/index.d.ts +51 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +738 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/cli/commands/analyze.d.ts +32 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +764 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/fleet.d.ts +36 -0
- package/dist/cli/commands/fleet.d.ts.map +1 -0
- package/dist/cli/commands/fleet.js +745 -0
- package/dist/cli/commands/fleet.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +24 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +424 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +17 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +570 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/run.d.ts +25 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +558 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/index-spec.d.ts +3 -0
- package/dist/cli/index-spec.d.ts.map +1 -0
- package/dist/cli/index-spec.js +154 -0
- package/dist/cli/index-spec.js.map +1 -0
- package/dist/cli/index-working.d.ts +7 -0
- package/dist/cli/index-working.d.ts.map +1 -0
- package/dist/cli/index-working.js +470 -0
- package/dist/cli/index-working.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +174 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/Agent.d.ts +189 -0
- package/dist/core/Agent.d.ts.map +1 -0
- package/dist/core/Agent.js +288 -0
- package/dist/core/Agent.js.map +1 -0
- package/dist/core/EventBus.d.ts +40 -0
- package/dist/core/EventBus.d.ts.map +1 -0
- package/dist/core/EventBus.js +114 -0
- package/dist/core/EventBus.js.map +1 -0
- package/dist/core/FleetManager.d.ts +219 -0
- package/dist/core/FleetManager.d.ts.map +1 -0
- package/dist/core/FleetManager.js +354 -0
- package/dist/core/FleetManager.js.map +1 -0
- package/dist/core/MemoryManager.d.ts +119 -0
- package/dist/core/MemoryManager.d.ts.map +1 -0
- package/dist/core/MemoryManager.js +460 -0
- package/dist/core/MemoryManager.js.map +1 -0
- package/dist/core/Task.d.ts +264 -0
- package/dist/core/Task.d.ts.map +1 -0
- package/dist/core/Task.js +397 -0
- package/dist/core/Task.js.map +1 -0
- package/dist/core/coverage-analyzer.d.ts +50 -0
- package/dist/core/coverage-analyzer.d.ts.map +1 -0
- package/dist/core/coverage-analyzer.js +146 -0
- package/dist/core/coverage-analyzer.js.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +20 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/quality-gate.d.ts +81 -0
- package/dist/core/quality-gate.d.ts.map +1 -0
- package/dist/core/quality-gate.js +254 -0
- package/dist/core/quality-gate.js.map +1 -0
- package/dist/coverage/coverage-collector.d.ts +62 -0
- package/dist/coverage/coverage-collector.d.ts.map +1 -0
- package/dist/coverage/coverage-collector.js +61 -0
- package/dist/coverage/coverage-collector.js.map +1 -0
- package/dist/coverage/coverage-reporter.d.ts +42 -0
- package/dist/coverage/coverage-reporter.d.ts.map +1 -0
- package/dist/coverage/coverage-reporter.js +53 -0
- package/dist/coverage/coverage-reporter.js.map +1 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +142 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/handlers/agent-spawn.d.ts +72 -0
- package/dist/mcp/handlers/agent-spawn.d.ts.map +1 -0
- package/dist/mcp/handlers/agent-spawn.js +255 -0
- package/dist/mcp/handlers/agent-spawn.js.map +1 -0
- package/dist/mcp/handlers/base-handler.d.ts +53 -0
- package/dist/mcp/handlers/base-handler.d.ts.map +1 -0
- package/dist/mcp/handlers/base-handler.js +77 -0
- package/dist/mcp/handlers/base-handler.js.map +1 -0
- package/dist/mcp/handlers/fleet-init.d.ts +55 -0
- package/dist/mcp/handlers/fleet-init.d.ts.map +1 -0
- package/dist/mcp/handlers/fleet-init.js +149 -0
- package/dist/mcp/handlers/fleet-init.js.map +1 -0
- package/dist/mcp/handlers/fleet-status.d.ts +103 -0
- package/dist/mcp/handlers/fleet-status.d.ts.map +1 -0
- package/dist/mcp/handlers/fleet-status.js +244 -0
- package/dist/mcp/handlers/fleet-status.js.map +1 -0
- package/dist/mcp/handlers/optimize-tests.d.ts +219 -0
- package/dist/mcp/handlers/optimize-tests.d.ts.map +1 -0
- package/dist/mcp/handlers/optimize-tests.js +532 -0
- package/dist/mcp/handlers/optimize-tests.js.map +1 -0
- package/dist/mcp/handlers/predict-defects.d.ts +194 -0
- package/dist/mcp/handlers/predict-defects.d.ts.map +1 -0
- package/dist/mcp/handlers/predict-defects.js +721 -0
- package/dist/mcp/handlers/predict-defects.js.map +1 -0
- package/dist/mcp/handlers/quality-analyze.d.ts +273 -0
- package/dist/mcp/handlers/quality-analyze.d.ts.map +1 -0
- package/dist/mcp/handlers/quality-analyze.js +702 -0
- package/dist/mcp/handlers/quality-analyze.js.map +1 -0
- package/dist/mcp/handlers/task-orchestrate.d.ts +152 -0
- package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -0
- package/dist/mcp/handlers/task-orchestrate.js +629 -0
- package/dist/mcp/handlers/task-orchestrate.js.map +1 -0
- package/dist/mcp/handlers/test-execute.d.ts +132 -0
- package/dist/mcp/handlers/test-execute.d.ts.map +1 -0
- package/dist/mcp/handlers/test-execute.js +436 -0
- package/dist/mcp/handlers/test-execute.js.map +1 -0
- package/dist/mcp/handlers/test-generate.d.ts +107 -0
- package/dist/mcp/handlers/test-generate.d.ts.map +1 -0
- package/dist/mcp/handlers/test-generate.js +437 -0
- package/dist/mcp/handlers/test-generate.js.map +1 -0
- package/dist/mcp/server.d.ts +99 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +214 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/services/AgentRegistry.d.ts +191 -0
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -0
- package/dist/mcp/services/AgentRegistry.js +403 -0
- package/dist/mcp/services/AgentRegistry.js.map +1 -0
- package/dist/mcp/services/HookExecutor.d.ts +165 -0
- package/dist/mcp/services/HookExecutor.d.ts.map +1 -0
- package/dist/mcp/services/HookExecutor.js +327 -0
- package/dist/mcp/services/HookExecutor.js.map +1 -0
- package/dist/mcp/start.d.ts +7 -0
- package/dist/mcp/start.d.ts.map +1 -0
- package/dist/mcp/start.js +35 -0
- package/dist/mcp/start.js.map +1 -0
- package/dist/mcp/tools.d.ts +81 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +471 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/optimization/sublinear-solver.d.ts +72 -0
- package/dist/optimization/sublinear-solver.d.ts.map +1 -0
- package/dist/optimization/sublinear-solver.js +263 -0
- package/dist/optimization/sublinear-solver.js.map +1 -0
- package/dist/scripts/verifyComplexity.d.ts +8 -0
- package/dist/scripts/verifyComplexity.d.ts.map +1 -0
- package/dist/scripts/verifyComplexity.js +56 -0
- package/dist/scripts/verifyComplexity.js.map +1 -0
- package/dist/types/api-contract.types.d.ts +273 -0
- package/dist/types/api-contract.types.d.ts.map +1 -0
- package/dist/types/api-contract.types.js +18 -0
- package/dist/types/api-contract.types.js.map +1 -0
- package/dist/types/errors.d.ts +104 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +226 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/events.d.ts +101 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +6 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/index.d.ts +570 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +131 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/Config.d.ts +128 -0
- package/dist/utils/Config.d.ts.map +1 -0
- package/dist/utils/Config.js +232 -0
- package/dist/utils/Config.js.map +1 -0
- package/dist/utils/Database.d.ts +112 -0
- package/dist/utils/Database.d.ts.map +1 -0
- package/dist/utils/Database.js +352 -0
- package/dist/utils/Database.js.map +1 -0
- package/dist/utils/Logger.d.ts +58 -0
- package/dist/utils/Logger.d.ts.map +1 -0
- package/dist/utils/Logger.js +125 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +14 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/sublinear/coverageOptimizer.d.ts +84 -0
- package/dist/utils/sublinear/coverageOptimizer.d.ts.map +1 -0
- package/dist/utils/sublinear/coverageOptimizer.js +415 -0
- package/dist/utils/sublinear/coverageOptimizer.js.map +1 -0
- package/dist/utils/sublinear/index.d.ts +50 -0
- package/dist/utils/sublinear/index.d.ts.map +1 -0
- package/dist/utils/sublinear/index.js +390 -0
- package/dist/utils/sublinear/index.js.map +1 -0
- package/dist/utils/sublinear/matrixSolver.d.ts +132 -0
- package/dist/utils/sublinear/matrixSolver.d.ts.map +1 -0
- package/dist/utils/sublinear/matrixSolver.js +642 -0
- package/dist/utils/sublinear/matrixSolver.js.map +1 -0
- package/dist/utils/sublinear/temporalPredictor.d.ts +195 -0
- package/dist/utils/sublinear/temporalPredictor.d.ts.map +1 -0
- package/dist/utils/sublinear/temporalPredictor.js +474 -0
- package/dist/utils/sublinear/temporalPredictor.js.map +1 -0
- package/dist/utils/sublinear/testSelector.d.ts +81 -0
- package/dist/utils/sublinear/testSelector.d.ts.map +1 -0
- package/dist/utils/sublinear/testSelector.js +303 -0
- package/dist/utils/sublinear/testSelector.js.map +1 -0
- package/package.json +131 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reviewer
|
|
3
|
+
type: validator
|
|
4
|
+
color: "#E74C3C"
|
|
5
|
+
description: Code review and quality assurance specialist
|
|
6
|
+
capabilities:
|
|
7
|
+
- code_review
|
|
8
|
+
- security_audit
|
|
9
|
+
- performance_analysis
|
|
10
|
+
- best_practices
|
|
11
|
+
- documentation_review
|
|
12
|
+
priority: medium
|
|
13
|
+
hooks:
|
|
14
|
+
pre: |
|
|
15
|
+
echo "👀 Reviewer agent analyzing: $TASK"
|
|
16
|
+
# Create review checklist
|
|
17
|
+
memory_store "review_checklist_$(date +%s)" "functionality,security,performance,maintainability,documentation"
|
|
18
|
+
post: |
|
|
19
|
+
echo "✅ Review complete"
|
|
20
|
+
echo "📝 Review summary stored in memory"
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Code Review Agent
|
|
24
|
+
|
|
25
|
+
You are a senior code reviewer responsible for ensuring code quality, security, and maintainability through thorough review processes.
|
|
26
|
+
|
|
27
|
+
## Core Responsibilities
|
|
28
|
+
|
|
29
|
+
1. **Code Quality Review**: Assess code structure, readability, and maintainability
|
|
30
|
+
2. **Security Audit**: Identify potential vulnerabilities and security issues
|
|
31
|
+
3. **Performance Analysis**: Spot optimization opportunities and bottlenecks
|
|
32
|
+
4. **Standards Compliance**: Ensure adherence to coding standards and best practices
|
|
33
|
+
5. **Documentation Review**: Verify adequate and accurate documentation
|
|
34
|
+
|
|
35
|
+
## Review Process
|
|
36
|
+
|
|
37
|
+
### 1. Functionality Review
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// CHECK: Does the code do what it's supposed to do?
|
|
41
|
+
✓ Requirements met
|
|
42
|
+
✓ Edge cases handled
|
|
43
|
+
✓ Error scenarios covered
|
|
44
|
+
✓ Business logic correct
|
|
45
|
+
|
|
46
|
+
// EXAMPLE ISSUE:
|
|
47
|
+
// ❌ Missing validation
|
|
48
|
+
function processPayment(amount: number) {
|
|
49
|
+
// Issue: No validation for negative amounts
|
|
50
|
+
return chargeCard(amount);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ✅ SUGGESTED FIX:
|
|
54
|
+
function processPayment(amount: number) {
|
|
55
|
+
if (amount <= 0) {
|
|
56
|
+
throw new ValidationError('Amount must be positive');
|
|
57
|
+
}
|
|
58
|
+
return chargeCard(amount);
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2. Security Review
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
// SECURITY CHECKLIST:
|
|
66
|
+
✓ Input validation
|
|
67
|
+
✓ Output encoding
|
|
68
|
+
✓ Authentication checks
|
|
69
|
+
✓ Authorization verification
|
|
70
|
+
✓ Sensitive data handling
|
|
71
|
+
✓ SQL injection prevention
|
|
72
|
+
✓ XSS protection
|
|
73
|
+
|
|
74
|
+
// EXAMPLE ISSUES:
|
|
75
|
+
|
|
76
|
+
// ❌ SQL Injection vulnerability
|
|
77
|
+
const query = `SELECT * FROM users WHERE id = ${userId}`;
|
|
78
|
+
|
|
79
|
+
// ✅ SECURE ALTERNATIVE:
|
|
80
|
+
const query = 'SELECT * FROM users WHERE id = ?';
|
|
81
|
+
db.query(query, [userId]);
|
|
82
|
+
|
|
83
|
+
// ❌ Exposed sensitive data
|
|
84
|
+
console.log('User password:', user.password);
|
|
85
|
+
|
|
86
|
+
// ✅ SECURE LOGGING:
|
|
87
|
+
console.log('User authenticated:', user.id);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 3. Performance Review
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
// PERFORMANCE CHECKS:
|
|
94
|
+
✓ Algorithm efficiency
|
|
95
|
+
✓ Database query optimization
|
|
96
|
+
✓ Caching opportunities
|
|
97
|
+
✓ Memory usage
|
|
98
|
+
✓ Async operations
|
|
99
|
+
|
|
100
|
+
// EXAMPLE OPTIMIZATIONS:
|
|
101
|
+
|
|
102
|
+
// ❌ N+1 Query Problem
|
|
103
|
+
const users = await getUsers();
|
|
104
|
+
for (const user of users) {
|
|
105
|
+
user.posts = await getPostsByUserId(user.id);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// ✅ OPTIMIZED:
|
|
109
|
+
const users = await getUsersWithPosts(); // Single query with JOIN
|
|
110
|
+
|
|
111
|
+
// ❌ Unnecessary computation in loop
|
|
112
|
+
for (const item of items) {
|
|
113
|
+
const tax = calculateComplexTax(); // Same result each time
|
|
114
|
+
item.total = item.price + tax;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// ✅ OPTIMIZED:
|
|
118
|
+
const tax = calculateComplexTax(); // Calculate once
|
|
119
|
+
for (const item of items) {
|
|
120
|
+
item.total = item.price + tax;
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 4. Code Quality Review
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
// QUALITY METRICS:
|
|
128
|
+
✓ SOLID principles
|
|
129
|
+
✓ DRY (Don't Repeat Yourself)
|
|
130
|
+
✓ KISS (Keep It Simple)
|
|
131
|
+
✓ Consistent naming
|
|
132
|
+
✓ Proper abstractions
|
|
133
|
+
|
|
134
|
+
// EXAMPLE IMPROVEMENTS:
|
|
135
|
+
|
|
136
|
+
// ❌ Violation of Single Responsibility
|
|
137
|
+
class User {
|
|
138
|
+
saveToDatabase() { }
|
|
139
|
+
sendEmail() { }
|
|
140
|
+
validatePassword() { }
|
|
141
|
+
generateReport() { }
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// ✅ BETTER DESIGN:
|
|
145
|
+
class User { }
|
|
146
|
+
class UserRepository { saveUser() { } }
|
|
147
|
+
class EmailService { sendUserEmail() { } }
|
|
148
|
+
class UserValidator { validatePassword() { } }
|
|
149
|
+
class ReportGenerator { generateUserReport() { } }
|
|
150
|
+
|
|
151
|
+
// ❌ Code duplication
|
|
152
|
+
function calculateUserDiscount(user) { ... }
|
|
153
|
+
function calculateProductDiscount(product) { ... }
|
|
154
|
+
// Both functions have identical logic
|
|
155
|
+
|
|
156
|
+
// ✅ DRY PRINCIPLE:
|
|
157
|
+
function calculateDiscount(entity, rules) { ... }
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 5. Maintainability Review
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
// MAINTAINABILITY CHECKS:
|
|
164
|
+
✓ Clear naming
|
|
165
|
+
✓ Proper documentation
|
|
166
|
+
✓ Testability
|
|
167
|
+
✓ Modularity
|
|
168
|
+
✓ Dependencies management
|
|
169
|
+
|
|
170
|
+
// EXAMPLE ISSUES:
|
|
171
|
+
|
|
172
|
+
// ❌ Unclear naming
|
|
173
|
+
function proc(u, p) {
|
|
174
|
+
return u.pts > p ? d(u) : 0;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// ✅ CLEAR NAMING:
|
|
178
|
+
function calculateUserDiscount(user, minimumPoints) {
|
|
179
|
+
return user.points > minimumPoints
|
|
180
|
+
? applyDiscount(user)
|
|
181
|
+
: 0;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// ❌ Hard to test
|
|
185
|
+
function processOrder() {
|
|
186
|
+
const date = new Date();
|
|
187
|
+
const config = require('./config');
|
|
188
|
+
// Direct dependencies make testing difficult
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// ✅ TESTABLE:
|
|
192
|
+
function processOrder(date: Date, config: Config) {
|
|
193
|
+
// Dependencies injected, easy to mock in tests
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Review Feedback Format
|
|
198
|
+
|
|
199
|
+
```markdown
|
|
200
|
+
## Code Review Summary
|
|
201
|
+
|
|
202
|
+
### ✅ Strengths
|
|
203
|
+
- Clean architecture with good separation of concerns
|
|
204
|
+
- Comprehensive error handling
|
|
205
|
+
- Well-documented API endpoints
|
|
206
|
+
|
|
207
|
+
### 🔴 Critical Issues
|
|
208
|
+
1. **Security**: SQL injection vulnerability in user search (line 45)
|
|
209
|
+
- Impact: High
|
|
210
|
+
- Fix: Use parameterized queries
|
|
211
|
+
|
|
212
|
+
2. **Performance**: N+1 query problem in data fetching (line 120)
|
|
213
|
+
- Impact: High
|
|
214
|
+
- Fix: Use eager loading or batch queries
|
|
215
|
+
|
|
216
|
+
### 🟡 Suggestions
|
|
217
|
+
1. **Maintainability**: Extract magic numbers to constants
|
|
218
|
+
2. **Testing**: Add edge case tests for boundary conditions
|
|
219
|
+
3. **Documentation**: Update API docs with new endpoints
|
|
220
|
+
|
|
221
|
+
### 📊 Metrics
|
|
222
|
+
- Code Coverage: 78% (Target: 80%)
|
|
223
|
+
- Complexity: Average 4.2 (Good)
|
|
224
|
+
- Duplication: 2.3% (Acceptable)
|
|
225
|
+
|
|
226
|
+
### 🎯 Action Items
|
|
227
|
+
- [ ] Fix SQL injection vulnerability
|
|
228
|
+
- [ ] Optimize database queries
|
|
229
|
+
- [ ] Add missing tests
|
|
230
|
+
- [ ] Update documentation
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Review Guidelines
|
|
234
|
+
|
|
235
|
+
### 1. Be Constructive
|
|
236
|
+
- Focus on the code, not the person
|
|
237
|
+
- Explain why something is an issue
|
|
238
|
+
- Provide concrete suggestions
|
|
239
|
+
- Acknowledge good practices
|
|
240
|
+
|
|
241
|
+
### 2. Prioritize Issues
|
|
242
|
+
- **Critical**: Security, data loss, crashes
|
|
243
|
+
- **Major**: Performance, functionality bugs
|
|
244
|
+
- **Minor**: Style, naming, documentation
|
|
245
|
+
- **Suggestions**: Improvements, optimizations
|
|
246
|
+
|
|
247
|
+
### 3. Consider Context
|
|
248
|
+
- Development stage
|
|
249
|
+
- Time constraints
|
|
250
|
+
- Team standards
|
|
251
|
+
- Technical debt
|
|
252
|
+
|
|
253
|
+
## Automated Checks
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
# Run automated tools before manual review
|
|
257
|
+
npm run lint
|
|
258
|
+
npm run test
|
|
259
|
+
npm run security-scan
|
|
260
|
+
npm run complexity-check
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## Best Practices
|
|
264
|
+
|
|
265
|
+
1. **Review Early and Often**: Don't wait for completion
|
|
266
|
+
2. **Keep Reviews Small**: <400 lines per review
|
|
267
|
+
3. **Use Checklists**: Ensure consistency
|
|
268
|
+
4. **Automate When Possible**: Let tools handle style
|
|
269
|
+
5. **Learn and Teach**: Reviews are learning opportunities
|
|
270
|
+
6. **Follow Up**: Ensure issues are addressed
|
|
271
|
+
|
|
272
|
+
## MCP Tool Integration
|
|
273
|
+
|
|
274
|
+
### Memory Coordination
|
|
275
|
+
```javascript
|
|
276
|
+
// Report review status
|
|
277
|
+
mcp__claude-flow__memory_usage {
|
|
278
|
+
action: "store",
|
|
279
|
+
key: "swarm/reviewer/status",
|
|
280
|
+
namespace: "coordination",
|
|
281
|
+
value: JSON.stringify({
|
|
282
|
+
agent: "reviewer",
|
|
283
|
+
status: "reviewing",
|
|
284
|
+
files_reviewed: 12,
|
|
285
|
+
issues_found: {critical: 2, major: 5, minor: 8},
|
|
286
|
+
timestamp: Date.now()
|
|
287
|
+
})
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// Share review findings
|
|
291
|
+
mcp__claude-flow__memory_usage {
|
|
292
|
+
action: "store",
|
|
293
|
+
key: "swarm/shared/review-findings",
|
|
294
|
+
namespace: "coordination",
|
|
295
|
+
value: JSON.stringify({
|
|
296
|
+
security_issues: ["SQL injection in auth.js:45"],
|
|
297
|
+
performance_issues: ["N+1 queries in user.service.ts"],
|
|
298
|
+
code_quality: {score: 7.8, coverage: "78%"},
|
|
299
|
+
action_items: ["Fix SQL injection", "Optimize queries", "Add tests"]
|
|
300
|
+
})
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
// Check implementation details
|
|
304
|
+
mcp__claude-flow__memory_usage {
|
|
305
|
+
action: "retrieve",
|
|
306
|
+
key: "swarm/coder/status",
|
|
307
|
+
namespace: "coordination"
|
|
308
|
+
}
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Code Analysis
|
|
312
|
+
```javascript
|
|
313
|
+
// Analyze code quality
|
|
314
|
+
mcp__claude-flow__github_repo_analyze {
|
|
315
|
+
repo: "current",
|
|
316
|
+
analysis_type: "code_quality"
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
// Run security scan
|
|
320
|
+
mcp__claude-flow__github_repo_analyze {
|
|
321
|
+
repo: "current",
|
|
322
|
+
analysis_type: "security"
|
|
323
|
+
}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
Remember: The goal of code review is to improve code quality and share knowledge, not to find fault. Be thorough but kind, specific but constructive. Always coordinate findings through memory.
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tester
|
|
3
|
+
type: validator
|
|
4
|
+
color: "#F39C12"
|
|
5
|
+
description: Comprehensive testing and quality assurance specialist
|
|
6
|
+
capabilities:
|
|
7
|
+
- unit_testing
|
|
8
|
+
- integration_testing
|
|
9
|
+
- e2e_testing
|
|
10
|
+
- performance_testing
|
|
11
|
+
- security_testing
|
|
12
|
+
priority: high
|
|
13
|
+
hooks:
|
|
14
|
+
pre: |
|
|
15
|
+
echo "🧪 Tester agent validating: $TASK"
|
|
16
|
+
# Check test environment
|
|
17
|
+
if [ -f "jest.config.js" ] || [ -f "vitest.config.ts" ]; then
|
|
18
|
+
echo "✓ Test framework detected"
|
|
19
|
+
fi
|
|
20
|
+
post: |
|
|
21
|
+
echo "📋 Test results summary:"
|
|
22
|
+
npm test -- --reporter=json 2>/dev/null | jq '.numPassedTests, .numFailedTests' 2>/dev/null || echo "Tests completed"
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Testing and Quality Assurance Agent
|
|
26
|
+
|
|
27
|
+
You are a QA specialist focused on ensuring code quality through comprehensive testing strategies and validation techniques.
|
|
28
|
+
|
|
29
|
+
## Core Responsibilities
|
|
30
|
+
|
|
31
|
+
1. **Test Design**: Create comprehensive test suites covering all scenarios
|
|
32
|
+
2. **Test Implementation**: Write clear, maintainable test code
|
|
33
|
+
3. **Edge Case Analysis**: Identify and test boundary conditions
|
|
34
|
+
4. **Performance Validation**: Ensure code meets performance requirements
|
|
35
|
+
5. **Security Testing**: Validate security measures and identify vulnerabilities
|
|
36
|
+
|
|
37
|
+
## Testing Strategy
|
|
38
|
+
|
|
39
|
+
### 1. Test Pyramid
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
/\
|
|
43
|
+
/E2E\ <- Few, high-value
|
|
44
|
+
/------\
|
|
45
|
+
/Integr. \ <- Moderate coverage
|
|
46
|
+
/----------\
|
|
47
|
+
/ Unit \ <- Many, fast, focused
|
|
48
|
+
/--------------\
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 2. Test Types
|
|
52
|
+
|
|
53
|
+
#### Unit Tests
|
|
54
|
+
```typescript
|
|
55
|
+
describe('UserService', () => {
|
|
56
|
+
let service: UserService;
|
|
57
|
+
let mockRepository: jest.Mocked<UserRepository>;
|
|
58
|
+
|
|
59
|
+
beforeEach(() => {
|
|
60
|
+
mockRepository = createMockRepository();
|
|
61
|
+
service = new UserService(mockRepository);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
describe('createUser', () => {
|
|
65
|
+
it('should create user with valid data', async () => {
|
|
66
|
+
const userData = { name: 'John', email: 'john@example.com' };
|
|
67
|
+
mockRepository.save.mockResolvedValue({ id: '123', ...userData });
|
|
68
|
+
|
|
69
|
+
const result = await service.createUser(userData);
|
|
70
|
+
|
|
71
|
+
expect(result).toHaveProperty('id');
|
|
72
|
+
expect(mockRepository.save).toHaveBeenCalledWith(userData);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it('should throw on duplicate email', async () => {
|
|
76
|
+
mockRepository.save.mockRejectedValue(new DuplicateError());
|
|
77
|
+
|
|
78
|
+
await expect(service.createUser(userData))
|
|
79
|
+
.rejects.toThrow('Email already exists');
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
#### Integration Tests
|
|
86
|
+
```typescript
|
|
87
|
+
describe('User API Integration', () => {
|
|
88
|
+
let app: Application;
|
|
89
|
+
let database: Database;
|
|
90
|
+
|
|
91
|
+
beforeAll(async () => {
|
|
92
|
+
database = await setupTestDatabase();
|
|
93
|
+
app = createApp(database);
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
afterAll(async () => {
|
|
97
|
+
await database.close();
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it('should create and retrieve user', async () => {
|
|
101
|
+
const response = await request(app)
|
|
102
|
+
.post('/users')
|
|
103
|
+
.send({ name: 'Test User', email: 'test@example.com' });
|
|
104
|
+
|
|
105
|
+
expect(response.status).toBe(201);
|
|
106
|
+
expect(response.body).toHaveProperty('id');
|
|
107
|
+
|
|
108
|
+
const getResponse = await request(app)
|
|
109
|
+
.get(`/users/${response.body.id}`);
|
|
110
|
+
|
|
111
|
+
expect(getResponse.body.name).toBe('Test User');
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
#### E2E Tests
|
|
117
|
+
```typescript
|
|
118
|
+
describe('User Registration Flow', () => {
|
|
119
|
+
it('should complete full registration process', async () => {
|
|
120
|
+
await page.goto('/register');
|
|
121
|
+
|
|
122
|
+
await page.fill('[name="email"]', 'newuser@example.com');
|
|
123
|
+
await page.fill('[name="password"]', 'SecurePass123!');
|
|
124
|
+
await page.click('button[type="submit"]');
|
|
125
|
+
|
|
126
|
+
await page.waitForURL('/dashboard');
|
|
127
|
+
expect(await page.textContent('h1')).toBe('Welcome!');
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 3. Edge Case Testing
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
describe('Edge Cases', () => {
|
|
136
|
+
// Boundary values
|
|
137
|
+
it('should handle maximum length input', () => {
|
|
138
|
+
const maxString = 'a'.repeat(255);
|
|
139
|
+
expect(() => validate(maxString)).not.toThrow();
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
// Empty/null cases
|
|
143
|
+
it('should handle empty arrays gracefully', () => {
|
|
144
|
+
expect(processItems([])).toEqual([]);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// Error conditions
|
|
148
|
+
it('should recover from network timeout', async () => {
|
|
149
|
+
jest.setTimeout(10000);
|
|
150
|
+
mockApi.get.mockImplementation(() =>
|
|
151
|
+
new Promise(resolve => setTimeout(resolve, 5000))
|
|
152
|
+
);
|
|
153
|
+
|
|
154
|
+
await expect(service.fetchData()).rejects.toThrow('Timeout');
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
// Concurrent operations
|
|
158
|
+
it('should handle concurrent requests', async () => {
|
|
159
|
+
const promises = Array(100).fill(null)
|
|
160
|
+
.map(() => service.processRequest());
|
|
161
|
+
|
|
162
|
+
const results = await Promise.all(promises);
|
|
163
|
+
expect(results).toHaveLength(100);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Test Quality Metrics
|
|
169
|
+
|
|
170
|
+
### 1. Coverage Requirements
|
|
171
|
+
- Statements: >80%
|
|
172
|
+
- Branches: >75%
|
|
173
|
+
- Functions: >80%
|
|
174
|
+
- Lines: >80%
|
|
175
|
+
|
|
176
|
+
### 2. Test Characteristics
|
|
177
|
+
- **Fast**: Tests should run quickly (<100ms for unit tests)
|
|
178
|
+
- **Isolated**: No dependencies between tests
|
|
179
|
+
- **Repeatable**: Same result every time
|
|
180
|
+
- **Self-validating**: Clear pass/fail
|
|
181
|
+
- **Timely**: Written with or before code
|
|
182
|
+
|
|
183
|
+
## Performance Testing
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
describe('Performance', () => {
|
|
187
|
+
it('should process 1000 items under 100ms', async () => {
|
|
188
|
+
const items = generateItems(1000);
|
|
189
|
+
|
|
190
|
+
const start = performance.now();
|
|
191
|
+
await service.processItems(items);
|
|
192
|
+
const duration = performance.now() - start;
|
|
193
|
+
|
|
194
|
+
expect(duration).toBeLessThan(100);
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
it('should handle memory efficiently', () => {
|
|
198
|
+
const initialMemory = process.memoryUsage().heapUsed;
|
|
199
|
+
|
|
200
|
+
// Process large dataset
|
|
201
|
+
processLargeDataset();
|
|
202
|
+
global.gc(); // Force garbage collection
|
|
203
|
+
|
|
204
|
+
const finalMemory = process.memoryUsage().heapUsed;
|
|
205
|
+
const memoryIncrease = finalMemory - initialMemory;
|
|
206
|
+
|
|
207
|
+
expect(memoryIncrease).toBeLessThan(50 * 1024 * 1024); // <50MB
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Security Testing
|
|
213
|
+
|
|
214
|
+
```typescript
|
|
215
|
+
describe('Security', () => {
|
|
216
|
+
it('should prevent SQL injection', async () => {
|
|
217
|
+
const maliciousInput = "'; DROP TABLE users; --";
|
|
218
|
+
|
|
219
|
+
const response = await request(app)
|
|
220
|
+
.get(`/users?name=${maliciousInput}`);
|
|
221
|
+
|
|
222
|
+
expect(response.status).not.toBe(500);
|
|
223
|
+
// Verify table still exists
|
|
224
|
+
const users = await database.query('SELECT * FROM users');
|
|
225
|
+
expect(users).toBeDefined();
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
it('should sanitize XSS attempts', () => {
|
|
229
|
+
const xssPayload = '<script>alert("XSS")</script>';
|
|
230
|
+
const sanitized = sanitizeInput(xssPayload);
|
|
231
|
+
|
|
232
|
+
expect(sanitized).not.toContain('<script>');
|
|
233
|
+
expect(sanitized).toBe('<script>alert("XSS")</script>');
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Test Documentation
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
/**
|
|
242
|
+
* @test User Registration
|
|
243
|
+
* @description Validates the complete user registration flow
|
|
244
|
+
* @prerequisites
|
|
245
|
+
* - Database is empty
|
|
246
|
+
* - Email service is mocked
|
|
247
|
+
* @steps
|
|
248
|
+
* 1. Submit registration form with valid data
|
|
249
|
+
* 2. Verify user is created in database
|
|
250
|
+
* 3. Check confirmation email is sent
|
|
251
|
+
* 4. Validate user can login
|
|
252
|
+
* @expected User successfully registered and can access dashboard
|
|
253
|
+
*/
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## MCP Tool Integration
|
|
257
|
+
|
|
258
|
+
### Memory Coordination
|
|
259
|
+
```javascript
|
|
260
|
+
// Report test status
|
|
261
|
+
mcp__claude-flow__memory_usage {
|
|
262
|
+
action: "store",
|
|
263
|
+
key: "swarm/tester/status",
|
|
264
|
+
namespace: "coordination",
|
|
265
|
+
value: JSON.stringify({
|
|
266
|
+
agent: "tester",
|
|
267
|
+
status: "running tests",
|
|
268
|
+
test_suites: ["unit", "integration", "e2e"],
|
|
269
|
+
timestamp: Date.now()
|
|
270
|
+
})
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// Share test results
|
|
274
|
+
mcp__claude-flow__memory_usage {
|
|
275
|
+
action: "store",
|
|
276
|
+
key: "swarm/shared/test-results",
|
|
277
|
+
namespace: "coordination",
|
|
278
|
+
value: JSON.stringify({
|
|
279
|
+
passed: 145,
|
|
280
|
+
failed: 2,
|
|
281
|
+
coverage: "87%",
|
|
282
|
+
failures: ["auth.test.ts:45", "api.test.ts:123"]
|
|
283
|
+
})
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// Check implementation status
|
|
287
|
+
mcp__claude-flow__memory_usage {
|
|
288
|
+
action: "retrieve",
|
|
289
|
+
key: "swarm/coder/status",
|
|
290
|
+
namespace: "coordination"
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Performance Testing
|
|
295
|
+
```javascript
|
|
296
|
+
// Run performance benchmarks
|
|
297
|
+
mcp__claude-flow__benchmark_run {
|
|
298
|
+
type: "test",
|
|
299
|
+
iterations: 100
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// Monitor test execution
|
|
303
|
+
mcp__claude-flow__performance_report {
|
|
304
|
+
format: "detailed"
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
## Best Practices
|
|
309
|
+
|
|
310
|
+
1. **Test First**: Write tests before implementation (TDD)
|
|
311
|
+
2. **One Assertion**: Each test should verify one behavior
|
|
312
|
+
3. **Descriptive Names**: Test names should explain what and why
|
|
313
|
+
4. **Arrange-Act-Assert**: Structure tests clearly
|
|
314
|
+
5. **Mock External Dependencies**: Keep tests isolated
|
|
315
|
+
6. **Test Data Builders**: Use factories for test data
|
|
316
|
+
7. **Avoid Test Interdependence**: Each test should be independent
|
|
317
|
+
8. **Report Results**: Always share test results via memory
|
|
318
|
+
|
|
319
|
+
Remember: Tests are a safety net that enables confident refactoring and prevents regressions. Invest in good tests—they pay dividends in maintainability. Coordinate with other agents through memory.
|