agentic-qe 3.7.12 → 3.7.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -25,8 +25,8 @@ export { SwarmObserver, createSwarmObserver, createInMemorySwarmObserver, InMemo
25
25
  export { EmbeddingGenerator, EmbeddingCache, HNSWEmbeddingIndex, HNSWIndexFactory, TestEmbeddingGenerator, CoverageEmbeddingGenerator, DefectEmbeddingGenerator, EmbeddingFactory, PERFORMANCE_TARGETS, } from './integrations/embeddings';
26
26
  export type { EmbeddingDimension, EmbeddingNamespace, QuantizationType, IEmbedding, IEmbeddingModelConfig, IEmbeddingOptions, IBatchEmbeddingResult, ISimilarityResult, ISearchOptions, EmbeddingModelType, IHNSWConfig, ICacheConfig, IEmbeddingStats, TestCaseMetadata, ITestCaseEmbedding, ISimilarTestResult, ITestEmbeddingOptions, ICoverageData, ICoverageGap, ICoverageEmbedding, ICoverageEmbeddingOptions, DefectSeverity, DefectType, IDefectMetadata, IDefectEmbedding, ISimilarDefectResult, IDefectPrediction, IDefectEmbeddingOptions, } from './integrations/embeddings';
27
27
  export type { TopologyType, AgentNode, CommunicationEdge, SwarmTopology, AgentHealthMetrics as StrangeLoopAgentHealthMetrics, ConnectivityMetrics, SwarmVulnerability, SwarmHealthObservation, TrendDirection, TrendAnalysis, BottleneckInfo, BottleneckAnalysis, PredictedVulnerability, SwarmModelDelta, SelfHealingActionType, ActionPriority, SelfHealingAction, ActionResult, ExecutedAction, SelfDiagnosis, StrangeLoopConfig, StrangeLoopStats, StrangeLoopEventType, StrangeLoopEvent, StrangeLoopEventListener, AgentProvider, ActionExecutor, } from './strange-loop';
28
- export { SwarmSkillValidator, createSwarmSkillValidator, DEFAULT_SWARM_VALIDATION_CONFIG, P0_SKILLS, DEFAULT_VALIDATION_MODELS, } from './validation';
29
- export type { SwarmValidationConfig, SwarmTopology as ValidationSwarmTopology, SwarmValidationResult, SwarmValidationSummary, SkillValidatorFn, } from './validation';
28
+ export { SwarmSkillValidator, createSwarmSkillValidator, DEFAULT_SWARM_VALIDATION_CONFIG, P0_SKILLS, DEFAULT_VALIDATION_MODELS, TriggerOptimizer, createTriggerOptimizer, parseSkillFrontmatter, VersionComparator, createVersionComparator, } from './validation';
29
+ export type { SwarmValidationConfig, SwarmTopology as ValidationSwarmTopology, SwarmValidationResult, SwarmValidationSummary, SkillValidatorFn, SkillMetadata, TriggerAnalysisConfig, TriggerAnalysisResult, TriggerSuggestion, TriggerOptimizationReport, VersionComparisonConfig, SkillVersion, VersionComparisonResult, VersionResult, ComparisonStats, TestCaseComparison, } from './validation';
30
30
  export declare const VERSION: string;
31
31
  export declare const ARCHITECTURE = "DDD with 12 Bounded Contexts";
32
32
  export declare const MAX_CONCURRENT_AGENTS = 15;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -73,7 +73,11 @@ SwarmSkillValidator, createSwarmSkillValidator,
73
73
  // Configuration
74
74
  DEFAULT_SWARM_VALIDATION_CONFIG,
75
75
  // Constants
76
- P0_SKILLS, DEFAULT_VALIDATION_MODELS, } from './validation';
76
+ P0_SKILLS, DEFAULT_VALIDATION_MODELS,
77
+ // Trigger Optimizer
78
+ TriggerOptimizer, createTriggerOptimizer, parseSkillFrontmatter,
79
+ // Version Comparator
80
+ VersionComparator, createVersionComparator, } from './validation';
77
81
  // Version info - read from package.json
78
82
  export const VERSION = pkg.version;
79
83
  export const ARCHITECTURE = 'DDD with 12 Bounded Contexts';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,6CAA6C;AAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,6CAA6C;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAEhC,qDAAqD;AACrD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,yCAAyC;AACzC,gEAAgE;AAChE,cAAc,UAAU,CAAC;AAEzB,sDAAsD;AACtD,cAAc,gBAAgB,CAAC;AAE/B,+DAA+D;AAC/D,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,SAAS,CAAC;AAcjB,wEAAwE;AACxE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzD,2CAA2C;AAC3C,cAAc,WAAW,CAAC;AAE1B,kDAAkD;AAClD,+CAA+C;AAC/C,OAAO,EACL,SAAS,EACT,eAAe,EACf,YAAY,EACZ,kBAAkB,GACnB,MAAM,OAAO,CAAC;AAEf,oEAAoE;AACpE,iGAAiG;AACjG,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAC;AAepB,oDAAoD;AACpD,gFAAgF;AAChF,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,EAC7B,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAgBpB,2DAA2D;AAC3D,cAAc,WAAW,CAAC;AAE1B,2DAA2D;AAC3D,cAAc,gBAAgB,CAAC;AAE/B,gEAAgE;AAChE,0GAA0G;AAC1G,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,QAAQ,CAAC;AAuBhB,+CAA+C;AAC/C,OAAO;AACL,WAAW;AACX,aAAa,EACb,mBAAmB,EACnB,2BAA2B,EAC3B,qBAAqB;AACrB,oBAAoB;AACpB,gBAAgB,EAChB,sBAAsB;AACtB,aAAa;AACb,cAAc,EACd,oBAAoB;AACpB,0BAA0B;AAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB;AAClB,4BAA4B;AAC5B,uBAAuB,EACvB,6BAA6B,EAC7B,yBAAyB;AACzB,SAAS;AACT,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAExB,mEAAmE;AACnE,gEAAgE;AAChE,OAAO;AACL,eAAe;AACf,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,gBAAgB;AAChB,yBAAyB;AACzB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB;AACxB,UAAU;AACV,gBAAgB;AAChB,YAAY;AACZ,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AA0EnC,+EAA+E;AAC/E,sCAAsC;AACtC,+EAA+E;AAE/E,OAAO;AACL,wBAAwB;AACxB,mBAAmB,EACnB,yBAAyB;AAEzB,gBAAgB;AAChB,+BAA+B;AAE/B,YAAY;AACZ,SAAS,EACT,yBAAyB;AACzB,oBAAoB;AACpB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB;AAErB,qBAAqB;AACrB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AA8BtB,wCAAwC;AACxC,MAAM,CAAC,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC;AAC3C,MAAM,CAAC,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC;;;;;;;;;;;;;;;;;;GAkBG"}
@@ -172518,7 +172518,7 @@ async function handleAQEHealth() {
172518
172518
  success: true,
172519
172519
  data: {
172520
172520
  status: healthStatus,
172521
- version: true ? "3.7.12" : "3.7.2",
172521
+ version: true ? "3.7.13" : "3.7.2",
172522
172522
  loadedDomains: domainCount,
172523
172523
  memory: memoryStats,
172524
172524
  hnsw: hnswStats,
@@ -16,4 +16,8 @@ export { ParallelEvalRunner, createParallelEvalRunner, DEFAULT_PARALLEL_EVAL_CON
16
16
  export type { ParallelEvalConfig, EvalTestCase, EvalTestCaseInput, EvalTestCaseExpectedOutput, EvalTestCaseValidation, EvalSuite, TestCaseTask, ParallelEvalResult, WorkerMessage, WorkerProgress, EvalProgress, LLMExecutor, } from './parallel-eval-runner.js';
17
17
  export { ValidationResultAggregator, createValidationResultAggregator, } from './validation-result-aggregator.js';
18
18
  export type { AggregatedValidationReport, AggregatorConfig, CrossModelReport, IssueSeverity, ModelAnomaly, ParallelValidationRunResult, RegressionReport, SkillValidationSummary, ValidationIssue, } from './validation-result-aggregator.js';
19
+ export { TriggerOptimizer, createTriggerOptimizer, parseSkillFrontmatter, } from './trigger-optimizer.js';
20
+ export type { SkillMetadata, TriggerAnalysisConfig, TriggerAnalysisResult, TriggerSuggestion, TriggerOptimizationReport, } from './trigger-optimizer.js';
21
+ export { VersionComparator, createVersionComparator, } from './version-comparator.js';
22
+ export type { VersionComparisonConfig, SkillVersion, VersionComparisonResult, VersionResult, ComparisonStats, TestCaseComparison, } from './version-comparator.js';
19
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAEL,mBAAmB,EACnB,yBAAyB,EAGzB,+BAA+B,EAG/B,SAAS,EACT,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAEV,qBAAqB,EACrB,aAAa,EAGb,qBAAqB,EACrB,sBAAsB,EAGtB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EACV,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,GAChB,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAEL,mBAAmB,EACnB,yBAAyB,EAGzB,+BAA+B,EAG/B,SAAS,EACT,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAEV,qBAAqB,EACrB,aAAa,EAGb,qBAAqB,EACrB,sBAAsB,EAGtB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EACV,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAM3C,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,uBAAuB,EACvB,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,kBAAkB,GACnB,MAAM,yBAAyB,CAAC"}
@@ -28,4 +28,12 @@ export { ParallelEvalRunner, createParallelEvalRunner, DEFAULT_PARALLEL_EVAL_CON
28
28
  // Validation Result Aggregator (ADR-056 Phase 5)
29
29
  // ============================================================================
30
30
  export { ValidationResultAggregator, createValidationResultAggregator, } from './validation-result-aggregator.js';
31
+ // ============================================================================
32
+ // Trigger Optimizer (ADR-056 Phase 5)
33
+ // ============================================================================
34
+ export { TriggerOptimizer, createTriggerOptimizer, parseSkillFrontmatter, } from './trigger-optimizer.js';
35
+ // ============================================================================
36
+ // Version Comparator (ADR-056: A/B testing between skill versions)
37
+ // ============================================================================
38
+ export { VersionComparator, createVersionComparator, } from './version-comparator.js';
31
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,OAAO;AACL,aAAa;AACb,mBAAmB,EACnB,yBAAyB;AAEzB,gBAAgB;AAChB,+BAA+B;AAE/B,YAAY;AACZ,SAAS,EACT,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AAepC,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAE/E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAiBnC,+EAA+E;AAC/E,iDAAiD;AACjD,+EAA+E;AAE/E,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,OAAO;AACL,aAAa;AACb,mBAAmB,EACnB,yBAAyB;AAEzB,gBAAgB;AAChB,+BAA+B;AAE/B,YAAY;AACZ,SAAS,EACT,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AAepC,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAE/E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAiBnC,+EAA+E;AAC/E,iDAAiD;AACjD,+EAA+E;AAE/E,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,mCAAmC,CAAC;AAc3C,+EAA+E;AAC/E,sCAAsC;AACtC,+EAA+E;AAE/E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAUhC,+EAA+E;AAC/E,mEAAmE;AACnE,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Trigger Optimizer
3
+ * ADR-056: Analyzes skill descriptions and tags to detect false positive/negative
4
+ * activation risks. Evaluates trigger precision and generates actionable suggestions.
5
+ *
6
+ * @module validation/trigger-optimizer
7
+ */
8
+ export interface SkillMetadata {
9
+ name: string;
10
+ description: string;
11
+ tags: string[];
12
+ category: string;
13
+ }
14
+ export interface TriggerAnalysisConfig {
15
+ skillsDir: string;
16
+ samplePromptsPerSkill: number;
17
+ similarityThreshold: number;
18
+ }
19
+ export interface TriggerAnalysisResult {
20
+ skillName: string;
21
+ description: string;
22
+ tags: string[];
23
+ falsePositiveRisk: number;
24
+ falseNegativeRisk: number;
25
+ overallTriggerScore: number;
26
+ suggestions: TriggerSuggestion[];
27
+ confusableSkills: string[];
28
+ }
29
+ export interface TriggerSuggestion {
30
+ type: 'add_keyword' | 'remove_keyword' | 'refine_description' | 'add_negative_pattern';
31
+ target: 'description' | 'tags';
32
+ current?: string;
33
+ suggested: string;
34
+ reason: string;
35
+ impact: 'high' | 'medium' | 'low';
36
+ }
37
+ export interface TriggerOptimizationReport {
38
+ timestamp: Date;
39
+ skillsAnalyzed: number;
40
+ avgTriggerScore: number;
41
+ skillsNeedingAttention: TriggerAnalysisResult[];
42
+ topSuggestions: TriggerSuggestion[];
43
+ confusionMatrix: Record<string, string[]>;
44
+ }
45
+ export declare function parseSkillFrontmatter(skillMdContent: string): SkillMetadata | null;
46
+ export declare class TriggerOptimizer {
47
+ private readonly config;
48
+ constructor(config?: Partial<TriggerAnalysisConfig>);
49
+ analyzeSkill(skillName: string, allSkills: SkillMetadata[]): TriggerAnalysisResult;
50
+ analyzeAll(skillsDir?: string): Promise<TriggerOptimizationReport>;
51
+ calculateSimilarity(text1: string, text2: string): number;
52
+ detectFalsePositiveRisk(skill: SkillMetadata, otherSkills: SkillMetadata[]): number;
53
+ detectFalseNegativeRisk(skill: SkillMetadata): number;
54
+ generateSuggestions(skill: SkillMetadata, falsePositiveRisk: number, falseNegativeRisk: number, confusable: string[]): TriggerSuggestion[];
55
+ private loadSkillsFromDir;
56
+ private buildSkillText;
57
+ private findConfusableSkills;
58
+ private calculateGenericTagPenalty;
59
+ }
60
+ export declare function createTriggerOptimizer(config?: Partial<TriggerAnalysisConfig>): TriggerOptimizer;
61
+ //# sourceMappingURL=trigger-optimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-optimizer.d.ts","sourceRoot":"","sources":["../../src/validation/trigger-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;IACvF,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC3C;AA8DD,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAuBlF;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAIvD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,qBAAqB;IA4B5E,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAgDxE,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAgBzD,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,MAAM;IA+BnF,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;IAsBrD,mBAAmB,CACjB,KAAK,EAAE,aAAa,EACpB,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,EAAE,GACnB,iBAAiB,EAAE;IAmFtB,OAAO,CAAC,iBAAiB;IAsCzB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,0BAA0B;CAKnC;AAMD,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,gBAAgB,CAElB"}
@@ -0,0 +1,356 @@
1
+ /**
2
+ * Trigger Optimizer
3
+ * ADR-056: Analyzes skill descriptions and tags to detect false positive/negative
4
+ * activation risks. Evaluates trigger precision and generates actionable suggestions.
5
+ *
6
+ * @module validation/trigger-optimizer
7
+ */
8
+ import * as fs from 'fs';
9
+ import * as path from 'path';
10
+ import * as yaml from 'yaml';
11
+ import { LoggerFactory } from '../logging/index.js';
12
+ const logger = LoggerFactory.create('trigger-optimizer');
13
+ // ============================================================================
14
+ // Constants
15
+ // ============================================================================
16
+ const DEFAULT_CONFIG = {
17
+ skillsDir: '.claude/skills',
18
+ samplePromptsPerSkill: 10,
19
+ similarityThreshold: 0.6,
20
+ };
21
+ const ACTION_VERBS = new Set([
22
+ 'test', 'validate', 'check', 'scan', 'analyze', 'generate', 'create',
23
+ 'debug', 'review', 'audit', 'monitor', 'deploy', 'configure', 'optimize',
24
+ 'measure', 'assess', 'evaluate', 'inspect', 'verify', 'report', 'fix',
25
+ 'refactor', 'migrate', 'build', 'run', 'execute', 'implement',
26
+ ]);
27
+ const STOP_WORDS = new Set([
28
+ 'a', 'an', 'the', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
29
+ 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
30
+ 'should', 'may', 'might', 'shall', 'can', 'need', 'dare', 'ought',
31
+ 'used', 'to', 'of', 'in', 'for', 'on', 'with', 'at', 'by', 'from',
32
+ 'as', 'into', 'through', 'during', 'before', 'after', 'above', 'below',
33
+ 'between', 'out', 'off', 'over', 'under', 'again', 'further', 'then',
34
+ 'once', 'and', 'but', 'or', 'nor', 'not', 'so', 'yet', 'both', 'either',
35
+ 'neither', 'each', 'every', 'all', 'any', 'few', 'more', 'most', 'other',
36
+ 'some', 'such', 'no', 'only', 'own', 'same', 'than', 'too', 'very',
37
+ 'just', 'because', 'if', 'when', 'while', 'this', 'that', 'these',
38
+ 'those', 'it', 'its', 'use', 'using',
39
+ ]);
40
+ const GENERIC_TAGS = new Set([
41
+ 'testing', 'test', 'quality', 'code', 'development', 'software',
42
+ 'tool', 'tools', 'automation', 'general', 'utility', 'helper',
43
+ 'common', 'basic', 'standard', 'default', 'main', 'core',
44
+ 'app', 'application', 'system', 'service', 'module',
45
+ ]);
46
+ const MIN_TAGS_FOR_GOOD_COVERAGE = 3;
47
+ const MIN_DESCRIPTION_WORDS = 8;
48
+ const WHEN_TO_USE_PATTERNS = [
49
+ 'use when', 'use for', 'when you need', 'ideal for', 'best for', 'designed for',
50
+ ];
51
+ // ============================================================================
52
+ // Helpers
53
+ // ============================================================================
54
+ function tokenize(text) {
55
+ return text
56
+ .toLowerCase()
57
+ .replace(/[^a-z0-9\s-]/g, ' ')
58
+ .split(/\s+/)
59
+ .filter(w => w.length > 1 && !STOP_WORDS.has(w));
60
+ }
61
+ function uniqueTokens(text) {
62
+ return new Set(tokenize(text));
63
+ }
64
+ export function parseSkillFrontmatter(skillMdContent) {
65
+ if (!skillMdContent.startsWith('---'))
66
+ return null;
67
+ const endIdx = skillMdContent.indexOf('\n---', 4);
68
+ if (endIdx === -1)
69
+ return null;
70
+ const fmContent = skillMdContent.slice(4, endIdx).trim();
71
+ if (!fmContent)
72
+ return null;
73
+ try {
74
+ const parsed = yaml.parse(fmContent);
75
+ if (!parsed || typeof parsed !== 'object' || !parsed.name)
76
+ return null;
77
+ return {
78
+ name: String(parsed.name),
79
+ description: String(parsed.description || ''),
80
+ tags: Array.isArray(parsed.tags) ? parsed.tags.map(String) : [],
81
+ category: String(parsed.category || 'uncategorized'),
82
+ };
83
+ }
84
+ catch (e) {
85
+ logger.debug('Failed to parse skill frontmatter', {
86
+ error: e instanceof Error ? e.message : String(e),
87
+ });
88
+ return null;
89
+ }
90
+ }
91
+ // ============================================================================
92
+ // TriggerOptimizer
93
+ // ============================================================================
94
+ export class TriggerOptimizer {
95
+ config;
96
+ constructor(config = {}) {
97
+ this.config = { ...DEFAULT_CONFIG, ...config };
98
+ }
99
+ analyzeSkill(skillName, allSkills) {
100
+ const skill = allSkills.find(s => s.name === skillName);
101
+ if (!skill) {
102
+ return {
103
+ skillName, description: '', tags: [],
104
+ falsePositiveRisk: 1, falseNegativeRisk: 1, overallTriggerScore: 0,
105
+ suggestions: [], confusableSkills: [],
106
+ };
107
+ }
108
+ const otherSkills = allSkills.filter(s => s.name !== skillName);
109
+ const falsePositiveRisk = this.detectFalsePositiveRisk(skill, otherSkills);
110
+ const falseNegativeRisk = this.detectFalseNegativeRisk(skill);
111
+ const confusable = this.findConfusableSkills(skill, otherSkills);
112
+ const suggestions = this.generateSuggestions(skill, falsePositiveRisk, falseNegativeRisk, confusable);
113
+ const overallTriggerScore = Math.max(0, Math.min(1, 1 - (falsePositiveRisk * 0.5 + falseNegativeRisk * 0.5)));
114
+ return {
115
+ skillName: skill.name, description: skill.description, tags: skill.tags,
116
+ falsePositiveRisk, falseNegativeRisk, overallTriggerScore,
117
+ suggestions, confusableSkills: confusable,
118
+ };
119
+ }
120
+ async analyzeAll(skillsDir) {
121
+ const dir = skillsDir || this.config.skillsDir;
122
+ const allSkills = this.loadSkillsFromDir(dir);
123
+ logger.info('Analyzing trigger quality', { count: allSkills.length, dir });
124
+ const results = allSkills.map(skill => this.analyzeSkill(skill.name, allSkills));
125
+ const avgTriggerScore = results.length > 0
126
+ ? results.reduce((sum, r) => sum + r.overallTriggerScore, 0) / results.length
127
+ : 0;
128
+ const skillsNeedingAttention = results
129
+ .filter(r => r.overallTriggerScore < 0.7)
130
+ .sort((a, b) => a.overallTriggerScore - b.overallTriggerScore);
131
+ const topSuggestions = results
132
+ .flatMap(r => r.suggestions)
133
+ .filter(s => s.impact === 'high')
134
+ .slice(0, 20);
135
+ const confusionMatrix = {};
136
+ for (const result of results) {
137
+ if (result.confusableSkills.length > 0) {
138
+ confusionMatrix[result.skillName] = result.confusableSkills;
139
+ }
140
+ }
141
+ const report = {
142
+ timestamp: new Date(),
143
+ skillsAnalyzed: allSkills.length,
144
+ avgTriggerScore,
145
+ skillsNeedingAttention,
146
+ topSuggestions,
147
+ confusionMatrix,
148
+ };
149
+ logger.info('Trigger analysis complete', {
150
+ analyzed: report.skillsAnalyzed,
151
+ avgScore: report.avgTriggerScore.toFixed(3),
152
+ needsAttention: report.skillsNeedingAttention.length,
153
+ });
154
+ return report;
155
+ }
156
+ calculateSimilarity(text1, text2) {
157
+ const tokens1 = uniqueTokens(text1);
158
+ const tokens2 = uniqueTokens(text2);
159
+ if (tokens1.size === 0 && tokens2.size === 0)
160
+ return 1;
161
+ if (tokens1.size === 0 || tokens2.size === 0)
162
+ return 0;
163
+ let intersection = 0;
164
+ for (const token of tokens1) {
165
+ if (tokens2.has(token))
166
+ intersection++;
167
+ }
168
+ const union = new Set([...tokens1, ...tokens2]).size;
169
+ return union === 0 ? 0 : intersection / union;
170
+ }
171
+ detectFalsePositiveRisk(skill, otherSkills) {
172
+ if (otherSkills.length === 0)
173
+ return 0;
174
+ const skillText = this.buildSkillText(skill);
175
+ let maxCrossCategorySimilarity = 0;
176
+ let totalCrossCategorySimilarity = 0;
177
+ let crossCategoryCount = 0;
178
+ for (const other of otherSkills) {
179
+ const otherText = this.buildSkillText(other);
180
+ const similarity = this.calculateSimilarity(skillText, otherText);
181
+ if (other.category !== skill.category) {
182
+ if (similarity > maxCrossCategorySimilarity) {
183
+ maxCrossCategorySimilarity = similarity;
184
+ }
185
+ totalCrossCategorySimilarity += similarity;
186
+ crossCategoryCount++;
187
+ }
188
+ }
189
+ const avgCrossCategorySimilarity = crossCategoryCount > 0
190
+ ? totalCrossCategorySimilarity / crossCategoryCount
191
+ : 0;
192
+ const risk = maxCrossCategorySimilarity * 0.6 + avgCrossCategorySimilarity * 0.4;
193
+ const genericTagPenalty = this.calculateGenericTagPenalty(skill.tags);
194
+ return Math.min(1, risk + genericTagPenalty * 0.2);
195
+ }
196
+ detectFalseNegativeRisk(skill) {
197
+ let risk = 0;
198
+ const descWords = tokenize(skill.description);
199
+ if (skill.tags.length === 0)
200
+ risk += 0.35;
201
+ else if (skill.tags.length < MIN_TAGS_FOR_GOOD_COVERAGE)
202
+ risk += 0.15;
203
+ if (descWords.length === 0)
204
+ risk += 0.35;
205
+ else if (descWords.length < MIN_DESCRIPTION_WORDS)
206
+ risk += 0.15;
207
+ const hasActionVerb = descWords.some(w => ACTION_VERBS.has(w));
208
+ if (!hasActionVerb)
209
+ risk += 0.1;
210
+ const descLower = skill.description.toLowerCase();
211
+ const hasWhenToUse = WHEN_TO_USE_PATTERNS.some(p => descLower.includes(p));
212
+ if (!hasWhenToUse)
213
+ risk += 0.1;
214
+ if (!skill.category || skill.category === 'uncategorized')
215
+ risk += 0.1;
216
+ return Math.min(1, risk);
217
+ }
218
+ generateSuggestions(skill, falsePositiveRisk, falseNegativeRisk, confusable) {
219
+ const suggestions = [];
220
+ const descWords = tokenize(skill.description);
221
+ if (skill.tags.length === 0) {
222
+ const suggestedTags = descWords.filter(w => w.length > 2).slice(0, 5);
223
+ if (suggestedTags.length > 0) {
224
+ suggestions.push({
225
+ type: 'add_keyword', target: 'tags',
226
+ suggested: suggestedTags.join(', '),
227
+ reason: 'Skill has no tags. Adding keywords from description improves discoverability.',
228
+ impact: 'high',
229
+ });
230
+ }
231
+ }
232
+ else if (skill.tags.length < MIN_TAGS_FOR_GOOD_COVERAGE) {
233
+ suggestions.push({
234
+ type: 'add_keyword', target: 'tags',
235
+ suggested: `Add ${MIN_TAGS_FOR_GOOD_COVERAGE - skill.tags.length} more relevant tags`,
236
+ reason: `Only ${skill.tags.length} tag(s) present. More tags reduce false negative risk.`,
237
+ impact: 'medium',
238
+ });
239
+ }
240
+ if (descWords.length < MIN_DESCRIPTION_WORDS) {
241
+ suggestions.push({
242
+ type: 'refine_description', target: 'description',
243
+ current: skill.description,
244
+ suggested: `Expand description to include specific use cases and action verbs (currently ${descWords.length} meaningful words)`,
245
+ reason: 'Description is too brief to reliably trigger on relevant prompts.',
246
+ impact: falseNegativeRisk > 0.5 ? 'high' : 'medium',
247
+ });
248
+ }
249
+ const hasActionVerb = descWords.some(w => ACTION_VERBS.has(w));
250
+ if (!hasActionVerb && descWords.length > 0) {
251
+ suggestions.push({
252
+ type: 'refine_description', target: 'description',
253
+ current: skill.description,
254
+ suggested: `Add action verbs like: ${Array.from(ACTION_VERBS).slice(0, 5).join(', ')}`,
255
+ reason: 'Description lacks action verbs that help match user intent.',
256
+ impact: 'medium',
257
+ });
258
+ }
259
+ const descLower = skill.description.toLowerCase();
260
+ const hasWhenToUse = WHEN_TO_USE_PATTERNS.some(p => descLower.includes(p));
261
+ if (!hasWhenToUse) {
262
+ suggestions.push({
263
+ type: 'refine_description', target: 'description',
264
+ current: skill.description,
265
+ suggested: 'Add a "Use when..." clause to clarify activation context',
266
+ reason: 'Descriptions with explicit usage context trigger more accurately.',
267
+ impact: 'medium',
268
+ });
269
+ }
270
+ if (confusable.length > 0 && falsePositiveRisk > 0.4) {
271
+ suggestions.push({
272
+ type: 'add_negative_pattern', target: 'description',
273
+ suggested: `Differentiate from: ${confusable.join(', ')}. Add distinguishing terms unique to this skill.`,
274
+ reason: `High overlap with ${confusable.length} other skill(s) in different categories.`,
275
+ impact: 'high',
276
+ });
277
+ }
278
+ const genericTags = skill.tags.filter(t => GENERIC_TAGS.has(t.toLowerCase()));
279
+ if (genericTags.length > 0 && falsePositiveRisk > 0.3) {
280
+ suggestions.push({
281
+ type: 'remove_keyword', target: 'tags',
282
+ current: genericTags.join(', '),
283
+ suggested: `Replace generic tags (${genericTags.join(', ')}) with more specific alternatives`,
284
+ reason: 'Overly generic tags cause false positive triggers across unrelated skills.',
285
+ impact: genericTags.length > 2 ? 'high' : 'medium',
286
+ });
287
+ }
288
+ return suggestions;
289
+ }
290
+ // ============================================================================
291
+ // Private Methods
292
+ // ============================================================================
293
+ loadSkillsFromDir(dir) {
294
+ const skills = [];
295
+ const resolvedDir = path.resolve(dir);
296
+ if (!fs.existsSync(resolvedDir)) {
297
+ logger.warn('Skills directory not found', { dir: resolvedDir });
298
+ return skills;
299
+ }
300
+ let entries;
301
+ try {
302
+ entries = fs.readdirSync(resolvedDir);
303
+ }
304
+ catch (e) {
305
+ logger.error('Failed to read skills directory', e instanceof Error ? e : new Error(String(e)));
306
+ return skills;
307
+ }
308
+ for (const entry of entries) {
309
+ const skillMdPath = path.join(resolvedDir, entry, 'SKILL.md');
310
+ if (!fs.existsSync(skillMdPath))
311
+ continue;
312
+ try {
313
+ const content = fs.readFileSync(skillMdPath, 'utf-8');
314
+ const metadata = parseSkillFrontmatter(content);
315
+ if (metadata)
316
+ skills.push(metadata);
317
+ }
318
+ catch (e) {
319
+ logger.debug('Failed to read skill file', {
320
+ path: skillMdPath,
321
+ error: e instanceof Error ? e.message : String(e),
322
+ });
323
+ }
324
+ }
325
+ logger.debug('Loaded skills', { dir: resolvedDir, count: skills.length });
326
+ return skills;
327
+ }
328
+ buildSkillText(skill) {
329
+ return [skill.description, ...skill.tags, skill.name].join(' ');
330
+ }
331
+ findConfusableSkills(skill, otherSkills) {
332
+ const skillText = this.buildSkillText(skill);
333
+ const confusable = [];
334
+ for (const other of otherSkills) {
335
+ const otherText = this.buildSkillText(other);
336
+ const similarity = this.calculateSimilarity(skillText, otherText);
337
+ if (similarity > this.config.similarityThreshold) {
338
+ confusable.push(other.name);
339
+ }
340
+ }
341
+ return confusable;
342
+ }
343
+ calculateGenericTagPenalty(tags) {
344
+ if (tags.length === 0)
345
+ return 0;
346
+ const genericCount = tags.filter(t => GENERIC_TAGS.has(t.toLowerCase())).length;
347
+ return genericCount / tags.length;
348
+ }
349
+ }
350
+ // ============================================================================
351
+ // Factory
352
+ // ============================================================================
353
+ export function createTriggerOptimizer(config) {
354
+ return new TriggerOptimizer(config);
355
+ }
356
+ //# sourceMappingURL=trigger-optimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-optimizer.js","sourceRoot":"","sources":["../../src/validation/trigger-optimizer.ts"],"names":[],"mappings":"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"}