/** * Agentic QE v3 - Requirements Validation MCP Tool * * qe/requirements/validate - Validate requirements for testability * * This tool wraps the requirements-validation domain service. */ import { MCPToolBase, MCPToolConfig, MCPToolContext } from '../base'; import { ToolResult } from '../../types'; export interface RequirementsValidateParams { requirements: RequirementInput[]; generateBDD?: boolean; checkAmbiguity?: boolean; minTestability?: number; [key: string]: unknown; } export interface RequirementInput { id: string; title: string; description: string; acceptanceCriteria?: string[]; type?: 'user-story' | 'functional' | 'non-functional' | 'technical'; } export interface RequirementsValidateResult { validationResults: ValidationResult[]; summary: ValidationSummary; bddScenarios?: BDDScenario[]; recommendations: string[]; } export interface ValidationResult { requirementId: string; isValid: boolean; testabilityScore: TestabilityScore; errors: ValidationError[]; ambiguityReport?: AmbiguityReport; } export interface TestabilityScore { value: number; category: 'excellent' | 'good' | 'fair' | 'poor'; factors: { name: string; score: number; issues: string[]; }[]; } export interface ValidationError { code: string; message: string; severity: 'error' | 'warning' | 'info'; suggestion?: string; } export interface AmbiguityReport { ambiguousTerms: { term: string; context: string; alternatives: string[]; }[]; overallScore: number; suggestions: string[]; } export interface BDDScenario { id: string; feature: string; scenario: string; given: string[]; when: string[]; then: string[]; tags: string[]; } export interface ValidationSummary { total: number; valid: number; invalid: number; avgTestability: number; blockers: number; } export declare class RequirementsValidateTool extends MCPToolBase { readonly config: MCPToolConfig; execute(params: RequirementsValidateParams, context: MCPToolContext): Promise>; } //# sourceMappingURL=validate.d.ts.map