/** * Proficiency Tracker * * 스킬 숙련도를 추적하고 레벨 계산을 수행하는 오케스트레이터. * * 레벨 공식 (Hybrid): * countScore = log2(1 + N) / log2(151) // Power Law of Practice * successScore = 0.3 + successRate * 0.7 // 성공률 반영 * recencyFactor = exp(-daysSince * 0.007) // ACT-R Forgetting Curve (완화: 30일→0.81) * difficultyBonus = avgDifficulty * 0.1 // 난이도 보상 * level = ceil(clamp(countScore * successScore * recencyFactor + difficultyBonus, 0, 1) * maxLevel) * * ACT-R 순수 활성화 값은 actrActivation 필드에 별도 저장 (분석용). */ import type { MemoryDatabase } from '../db/database.js'; import type { ProficiencyConfig } from '../types/index.js'; import type { ProficiencyRecord, LevelUpdateResult, SimulationScenario } from './types.js'; export declare class ProficiencyTracker { private db; private config; private engine; constructor(db: MemoryDatabase, config: ProficiencyConfig); /** * 스킬 연습 기록 + 레벨 재계산 */ recordPractice(skillMemoryId: string, outcome: 'success' | 'partial' | 'failure', difficulty: number, contextTags?: string[], sessionId?: string): LevelUpdateResult; /** * 레벨 재계산 (Hybrid: Power Law + Forgetting Curve) */ recalculateLevel(proficiencyId: string): LevelUpdateResult; /** * 숙련도 레코드 보장: 없으면 생성 */ ensureProficiency(skillMemoryId: string): ProficiencyRecord; /** * 숙련도 목록 조회 */ listProficiencies(projectPath?: string): ProficiencyRecord[]; /** * 시뮬레이션: 이벤트 시퀀스 → 레벨 진행 반환 */ simulate(scenario: SimulationScenario): number[]; } /** * 실용적 레벨 공식 * * Power Law of Practice (log 성장) + Forgetting Curve (지수 감쇠) + 난이도 보너스 */ export declare function computePracticalLevel(experienceCount: number, successRate: number, daysSinceLastPractice: number, avgDifficulty: number, maxLevel: number, actrActivation?: number): number; //# sourceMappingURL=tracker.d.ts.map