UNPKG

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
/** * 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