/** * Traceability Checker - Maintain 100% bidirectional traceability * from requirements → code → tests → deployment * * Features: * - Bidirectional tracing (requirements ↔ code ↔ tests) * - Orphan detection (requirements without code, code without requirements) * - Coverage analysis (percentage of requirements traced) * - Gap identification (missing code, tests, documentation) * - Matrix generation (CSV, Excel, Markdown, HTML) * - Construction gate validation (100% P0 requirements traced) * * Performance targets: * - NFR-TRACE-001: ID extraction <1min for 1000 files * - NFR-TRACE-05: Matrix generation <30s for 1000 requirements */ import { TraceabilityMatrix } from './matrix-generator.js'; export interface Requirement { id: string; type: 'use-case' | 'nfr' | 'user-story' | 'feature' | 'acceptance-criteria'; title: string; priority?: 'P0' | 'P1' | 'P2'; filePath: string; } export interface CodeReference { filePath: string; requirementIds: string[]; lineNumbers: number[]; } export interface TestReference { filePath: string; requirementIds: string[]; testNames: string[]; } export interface ScanResult { requirements: Map; code: Map; tests: Map; scanTime: number; } export interface TraceabilityLink { requirementId: string; type: 'use-case' | 'nfr' | 'user-story' | 'feature' | 'acceptance-criteria'; linkedItems: LinkedItem[]; coverage: CoverageMetrics; lastVerified: Date; } export interface LinkedItem { type: 'code' | 'test' | 'documentation' | 'deployment'; path: string; lineNumber?: number; verified: boolean; confidence: number; } export interface CoverageMetrics { hasCode: boolean; hasTests: boolean; hasDocumentation: boolean; hasDeployment: boolean; completeness: number; } export interface TraceabilityReport { totalRequirements: number; tracedRequirements: number; coveragePercentage: number; orphanedRequirements: string[]; orphanedCode: string[]; orphanedTests: string[]; gapsByRequirement: Map; matrix: TraceabilityMatrix; } export interface VerificationResult { verified: boolean; issues: string[]; warnings: string[]; } export interface OrphanReport { orphanedRequirements: string[]; orphanedCode: string[]; orphanedTests: string[]; severity: Map; } export interface CoverageReport { percentage: number; byType: Map; byPriority: Map; gaps: GapAnalysis; } export interface GapAnalysis { requirementsWithoutCode: string[]; requirementsWithoutTests: string[]; requirementsWithoutDocumentation: string[]; codeWithoutRequirements: string[]; testsWithoutRequirements: string[]; } export interface ValidationResult { passed: boolean; coverage: number; threshold: number; issues: string[]; } export interface GateValidationResult { passed: boolean; p0Coverage: number; p1Coverage: number; issues: string[]; warnings: string[]; } /** * TraceabilityChecker - Main class for traceability analysis */ export declare class TraceabilityChecker { private projectPath; private idExtractor; private matrixGenerator; private requirements; private codeReferences; private testReferences; constructor(projectPath: string); /** * Scan requirements directory for requirement IDs */ scanRequirements(requirementsPath?: string): Promise>; /** * Scan code directory for requirement IDs */ scanCode(codePath?: string): Promise>; /** * Scan test directory for requirement IDs */ scanTests(testPath?: string): Promise>; /** * Scan all directories (requirements, code, tests) */ scanAll(): Promise; /** * Build traceability links from scan results */ buildTraceabilityLinks(): Promise>; /** * Verify links integrity */ verifyLinks(links: Map): Promise; /** * Detect orphaned requirements, code, and tests */ detectOrphans(): Promise; /** * Calculate overall coverage */ calculateCoverage(): Promise; /** * Calculate coverage by requirement type */ calculateCoverageByType(type: 'use-case' | 'nfr'): Promise>; /** * Identify gaps in traceability */ identifyGaps(): Promise; /** * Generate traceability matrix */ generateMatrix(): Promise; /** * Export matrix to file */ exportMatrix(format: 'csv' | 'excel' | 'markdown' | 'html', outputPath?: string): Promise; /** * Generate comprehensive traceability report */ generateReport(): Promise; /** * Generate gap report (markdown format) */ generateGapReport(): Promise; /** * Export report to file */ exportReport(format: 'markdown' | 'json' | 'html', outputPath?: string): Promise; /** * Validate traceability against threshold */ validateTraceability(threshold: number): Promise; /** * Check Construction gate criteria (100% P0 requirements traced) */ checkConstructionGate(): Promise; /** * Add a traceability link manually */ addLink(requirementId: string, linkedItem: LinkedItem): Promise; /** * Remove a traceability link */ removeLink(requirementId: string, itemPath: string): Promise; /** * Update a traceability link */ updateLink(requirementId: string, itemPath: string, updates: Partial): Promise; private extractTitle; private extractPriority; private extractTestNames; private calculateCoverageForRequirements; } //# sourceMappingURL=traceability-checker.d.ts.map