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
61 lines • 2.15 kB
TypeScript
/**
* Pattern-based Quality Scoring Engine
*
* Scores SDLC artifacts against pattern definitions (required/recommended/antipattern).
* Scoring: required (60%) + recommended (40%) - antipattern penalty.
* Thresholds: excellent (90+), good (75+), acceptable (60+), needs-work (<60).
*
* @module quality/scoring
* @issue #192
*/
export interface PatternRule {
id: string;
pattern: string;
description: string;
weight?: number;
}
export interface PatternDefinition {
id: string;
name: string;
description: string;
required: PatternRule[];
recommended: PatternRule[];
antipatterns: PatternRule[];
}
export interface PatternMatch {
rule: PatternRule;
found: boolean;
matchCount: number;
}
export interface ScoringResult {
score: number;
grade: 'excellent' | 'good' | 'acceptable' | 'needs-work';
breakdown: {
required: number;
recommended: number;
antipatternPenalty: number;
};
matches: {
required: PatternMatch[];
recommended: PatternMatch[];
antipatterns: PatternMatch[];
};
patternId: string;
artifactPath: string;
}
export declare const REQUIRED_WEIGHT = 0.6;
export declare const RECOMMENDED_WEIGHT = 0.4;
export declare const THRESHOLDS: {
readonly excellent: 90;
readonly good: 75;
readonly acceptable: 60;
};
export declare function scoreContent(content: string, patterns: PatternDefinition, artifactPath?: string): ScoringResult;
export declare function matchPattern(content: string, rule: PatternRule): PatternMatch;
export declare function getGrade(score: number): ScoringResult['grade'];
export declare function loadBuiltinPattern(artifactType: string): Promise<PatternDefinition | null>;
export declare function loadPatternFromFile(filePath: string): Promise<PatternDefinition | null>;
export declare function getAvailablePatternTypes(): string[];
export declare function detectArtifactType(content: string, filePath: string): string | null;
export declare function scoreArtifact(filePath: string, patternType?: string): Promise<ScoringResult | null>;
//# sourceMappingURL=scoring.d.ts.map