const fs = require('fs');
const path = require('path');

const skillsDir = path.join(__dirname, '../skills');

// Translation Dictionary (Folder Name -> Korean Description)
const translations = {
    'brainstorming': '창의적인 작업(기능 추가, 컴포넌트 설계) 시작 전 필수 사용. 구현 전 의도와 요구사항을 파악하고 기획합니다.',
    'defuddle': 'URL 링크를 통해 웹페이지 문서의 군더더기를 제거하고 깔끔한 마크다운 정보만 추출하여 분석합니다.',
    'dispatching-parallel-agents': '상태 공유나 순차적 의존성이 없는 2개 이상의 독립적인 작업을 병렬로 처리할 때 사용합니다.',
    'executing-plans': '작성된 구현 계획서(PLAN)를 바탕으로 단계별 코드 작성을 실행하고 리뷰 체크포인트를 수행합니다.',
    'finishing-a-development-branch': '구현 및 테스트가 100% 완료된 후, 브랜치 병합(Merge/PR)을 결정하거나 정리하는 마무리 스킬입니다.',
    'json-canvas': 'JSON Canvas 형식의 시각적 마인드맵, 노드, 다이어그램, 플로우차트 파일(.canvas)을 생성하고 편집합니다.',
    'obsidian-bases': '옵시디언의 데이터베이스 뷰, 필터, 수식, 요약 기능 등을 포함하는 Base 파일(.base)을 통제합니다.',
    'obsidian-cli': '옵시디언 CLI 환경을 제어해 노트를 검색/생성하고, 플러그인을 디버깅하거나 에러를 캡처합니다.',
    'obsidian-markdown': '위키링크([[ ]]), 콜아웃, 프로퍼티(YAML) 등 옵시디언에 특화된 마크다운 문법(.md)을 완벽하게 작성합니다.',
    'receiving-code-review': '코드 리뷰 피드백을 수신했을 때, 무지성으로 반영하기 전 기술적인 타당성과 엣지 케이스를 검증합니다.',
    'requesting-code-review': '주요 기능 구현이 끝났을 때, 코드를 메인(Main)에 병합하기 전 엄격한 품질 검증(코드 리뷰)을 스스로 요청합니다.',
    'subagent-driven-development': '구현 계획서 내의 독립적인 작업(Task)들을 여러 하위 에이전트(Subagent)에게 병렬로 위임하여 개발을 가속합니다.',
    'systematic-debugging': '버그, 테스트 실패, 예기치 않은 동작 발생 시, 해결책을 던지기 전 체계적인 디버깅 루프를 가동합니다.',
    'test-driven-development': '실제 운영 코드를 작성하기 전, 무조건 먼저 실패하는 테스트 코드(TDD)를 작성하여 기능 명세를 강제합니다.',
    'using-git-worktrees': '대규모 리팩토링이나 새로운 기능을 시작할 때 메인 환경을 오염시키지 않도록 격리된 Git Worktree를 생성합니다.',
    'using-superpowers': '대화 시작 시 1회 필수 가동 스킬. 에이전트가 어떤 스킬과 자원을 보유하고 있는지 파악하고 환경을 준비합니다.',
    'verification-before-completion': '작업을 최종 완료 처리하기 전, 테스트와 검증 명령어 라인을 강제로 실행하여 완벽한 성공 여부를 증명합니다.',
    'writing-plans': '본격적인 코드 작성에 돌입하기 전, 복잡한 요구사항에 대한 아키텍처 스펙과 다단계 구현 계획서를 수립합니다.',
    'writing-skills': '현재 CLI 시스템에 새로운 스킬 룰을 구축하거나, 기존 스킬 문서를 수정 및 디버깅할 때 사용합니다.'
};

let translatedCount = 0;

if (fs.existsSync(skillsDir)) {
    const folders = fs.readdirSync(skillsDir);
    
    folders.forEach(folder => {
        const skillPath = path.join(skillsDir, folder, 'SKILL.md');
        
        if (translations[folder] && fs.existsSync(skillPath)) {
            let content = fs.readFileSync(skillPath, 'utf8');
            
            // Regex to match existing description in YAML frontmatter (with or without quotes)
            // It matches 'description:' followed by anything until the end of the line
            const newContent = content.replace(/^description:\s*(?:".*?"|.*)$/m, `description: ${translations[folder]}`);
            
            if (content !== newContent) {
                fs.writeFileSync(skillPath, newContent, 'utf8');
                console.log(`[Translated] ${folder}`);
                translatedCount++;
            }
        }
    });
}

console.log(`\n🎉 번역 완료: 총 ${translatedCount}개의 스킬 설명이 로컬라이징 되었습니다.`);
