aiwg
Version:
Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo
119 lines • 3.89 kB
TypeScript
/**
* Writing Validation Engine
*
* Core validation engine that scans text for AI detection patterns, banned phrases,
* and authenticity markers. Provides comprehensive scoring and issue reporting.
*
* @implements @.aiwg/requirements/use-cases/UC-001-validate-ai-generated-content.md
* @architecture @.aiwg/architecture/software-architecture-doc.md - Section 5.1 WritingValidator
* @nfr @.aiwg/requirements/nfr-modules/performance.md - NFR-PERF-001 (<60s validation)
* @nfr @.aiwg/requirements/nfr-modules/accuracy.md - NFR-ACC-001 (<5% false positives)
* @tests @test/unit/writing/validation-engine.test.ts
* @depends @src/writing/validation-rules.ts
* @depends @src/writing/pattern-library.ts
*/
import { RuleSet, ValidationContext, Severity } from './validation-rules.js';
export interface ValidationIssue {
type: 'banned_phrase' | 'ai_pattern' | 'missing_authenticity' | 'formulaic_structure';
severity: Severity;
message: string;
location: {
start: number;
end: number;
line: number;
column: number;
};
suggestion?: string;
context?: string;
ruleId?: string;
}
export interface ValidationSummary {
totalIssues: number;
criticalCount: number;
warningCount: number;
infoCount: number;
authenticityScore: number;
aiPatternScore: number;
wordCount: number;
sentenceCount: number;
}
export interface ValidationResult {
score: number;
issues: ValidationIssue[];
summary: ValidationSummary;
suggestions: string[];
humanMarkers: string[];
aiTells: string[];
}
export interface AuthenticityAnalysis {
score: number;
humanMarkers: string[];
missingMarkers: string[];
aiTells: string[];
}
/**
* Core Writing Validation Engine
*/
export declare class WritingValidationEngine {
private ruleLoader;
private ruleSet;
private initialized;
constructor(guideBasePath?: string);
/**
* Initialize the engine by loading rules
*/
initialize(): Promise<void>;
/**
* Validate content and return comprehensive results
*/
validate(content: string, context?: ValidationContext): Promise<ValidationResult>;
/**
* Validate a file
*/
validateFile(filePath: string, context?: ValidationContext): Promise<ValidationResult>;
/**
* Validate multiple files in batch
*/
validateBatch(files: string[], context?: ValidationContext): Promise<Map<string, ValidationResult>>;
/**
* Detect banned phrases in content
*/
detectBannedPhrases(content: string, context?: ValidationContext): ValidationIssue[];
/**
* Detect AI writing patterns
*/
detectAIPatterns(content: string, context?: ValidationContext): ValidationIssue[];
/**
* Detect formulaic structures
*/
detectFormulicStructures(content: string): ValidationIssue[];
/**
* Analyze content for authenticity markers
*/
analyzeAuthenticity(content: string): AuthenticityAnalysis;
/**
* Validate content for specific context
*/
validateForContext(content: string, context: 'academic' | 'technical' | 'executive' | 'casual'): Promise<ValidationResult>;
/**
* Load rules from AIWG
*/
loadRulesFromGuide(guidePath: string): void;
/**
* Update rules with custom rule set
*/
updateRules(rules: Partial<RuleSet>): void;
/**
* Generate report from validation results
*/
generateReport(results: ValidationResult | Map<string, ValidationResult>, format: 'text' | 'json' | 'html'): string;
private findPatternMatches;
private calculateSummary;
private calculateOverallScore;
private generateSuggestions;
private getContextAdjustments;
private generateTextReport;
private generateBatchReport;
private generateHtmlReport;
}
//# sourceMappingURL=validation-engine.d.ts.map