MCPcopy Create free account
hub / github.com/PatrickSys/codebase-context / generateGuidance

Method generateGuidance

src/utils/usage-tracker.ts:342–387  ·  view source on GitHub ↗

* Generate actionable guidance from percentage + trend. * This is what AI agents can directly consume. * * Examples: * - "USE: inject() – 97% adoption, stable" * - "CAUTION: constructor DI – 3%, declining" * - "AVOID: BehaviorSubject – legacy pattern, declining"

(
    patternName: string,
    percentage: number,
    trend: PatternTrend | undefined,
    isAlternative: boolean = false,
    hasRisingAlternative: boolean = false
  )

Source from the content-addressed store, hash-verified

340 * - "AVOID: BehaviorSubject – legacy pattern, declining"
341 */
342 private generateGuidance(
343 patternName: string,
344 percentage: number,
345 trend: PatternTrend | undefined,
346 isAlternative: boolean = false,
347 hasRisingAlternative: boolean = false
348 ): string {
349 const trendLabel = trend ? `, ${trend.toLowerCase()}` : '';
350
351 // Alternative pattern that is rising (migration target)
352 if (isAlternative && trend === 'Rising') {
353 return `USE: ${patternName} – ${percentage}%, rising (migration target)`;
354 }
355
356 // Primary pattern that is declining while an alternative is rising
357 if (!isAlternative && trend === 'Declining' && hasRisingAlternative) {
358 return `CAUTION: ${patternName} – ${percentage}%, declining (legacy)`;
359 }
360
361 // Primary pattern with high adoption
362 if (!isAlternative && percentage >= 80) {
363 // If primary is declining, downgrade to PREFER
364 if (trend === 'Declining')
365 return `PREFER: ${patternName} – ${percentage}% adoption, declining`;
366 return `USE: ${patternName} – ${percentage}% adoption${trendLabel}`;
367 }
368
369 // Primary pattern with moderate adoption
370 if (!isAlternative && percentage >= 50) {
371 return `PREFER: ${patternName} – ${percentage}% adoption${trendLabel}`;
372 }
373
374 // Alternative pattern that is declining
375 if (isAlternative && trend === 'Declining') {
376 return `AVOID: ${patternName} – ${percentage}%, declining (legacy)`;
377 }
378
379 // Alternative with low adoption
380 if (isAlternative && percentage < 20) {
381 // If it's rising, we already handled it above. If stable/declining, it's a caution.
382 return `CAUTION: ${patternName} – ${percentage}% minority pattern${trendLabel}`;
383 }
384
385 // Default: just describe it
386 return `${patternName} – ${percentage}%${trendLabel}`;
387 }
388
389 /**
390 * Get robust date for a pattern (P90 percentile) to avoid "single file edit" skew

Callers 1

getConsensusMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected