Community생산성 & 협업github.com

Eudic-Anki 파이프라인 스킬

Eudic에서 단어를 내보내고, TRVS-Lab 형식의 노트를 생성하며, 오디오를 추가하고, AnkiConnect를 통해 Anki로 가져오는 워크플로우를 제공하는 에이전트 스킬입니다.

Eudic-Anki 파이프라인 스킬란 무엇인가요?

이 스킬은 Eudic 앱에서 학습한 단어들을 Anki(간격 반복 학습 프로그램)로 자동으로 가져오는 종합 워크플로우를 제공합니다. Eudic의 단어 내보내기, TRVS-Lab 노트 형식으로의 변환, TTS(Text-To-Speech) 오디오 추가, AnkiConnect를 통한 Anki 데스크탑 앱으로의 자동 임포트까지 전 과정을 에이전트가 자동으로 처리합니다. 주요 기능 모듈로는 Eudic 단어 내보내기(export), 코치(coach) JSON 생성, AnkiConnect 임포트(import), Edge TTS 기반 오디오 생성(audio) 등이 있으며, 사용자는 자연어로 날짜 범위나 특정 단어 목록을 지정할 수 있습니다. 모든 명령어는 스킬 루트 디렉토리에서 실행되며, 환경 변수(EUDIC_TOKEN)를 통한 안전한 인증, 작업 산출물을 사용자의 지정된 임시 디렉토리에 저장하는 구조를 따릅니다. 품질 관문(quality gate)을 통해 POS(품사) 표기, meaning 필드 형식, 인코딩 등을 엄격히 검증하며, 대량 데이터는 배치 처리하고 각 배치별로 검증을 수행합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add trvs-lab/eudic-to-anki-skills

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Eudic Anki 파이프라인 (통합 스킬)

대상

이 파일은 실행 중인 에이전트를 위한 것입니다. 사용자는 자연어 형태의 목표를 제시하며, 에이전트는 처음부터 끝까지(end-to-end) 실행합니다.

배포

이 스킬은 소스 저장소의 skills/eudic-to-anki/ 디렉토리 아래에 있으며, Vercel skills CLI(npx skills add <owner>/<repo> --skill eudic-to-anki)를 통해 설치할 수 있습니다. 설치 후, 이 디렉토리(SKILL.md가 있는 곳)를 아래 모든 명령어의 현재 작업 디렉토리(cwd)로 취급하십시오. 정확한 설치 명령어는 저장소가 GitHub에 공개된 후 저장소 루트의 README.md를 참조하십시오.

범위

단일 스킬, 모듈식 내부 구조:

  • 내보내기 모듈: modules/export/README.md
  • 코치 모듈: modules/coach/README.md
  • 가져오기 모듈: modules/import/README.md
  • 오디오 모듈: modules/audio/README.md
  • 워크플로우 플레이북: workflows/*.md

아래 모든 명령어는 cwd가 이 스킬 루트(eudic-to-anki/)인 것으로 가정합니다.

기본값

  • 날짜: 사용자가 범위를 지정하지 않으면 전날(현지 시간대)
  • 출처: 사용자가 카테고리를 지정하지 않으면 모든 Eudic 카테고리
  • 덱: words (사용자가 지정하지 않은 경우)
  • 노트 유형: TRVS-Lab
  • 중간 산출물: 사용자의 전용 Documents 아티팩트 디렉토리에만 저장합니다. 표준 절대 경로 <ABS_TEMP_DIR> (예: /Users/alice/Documents/eudic-to-anki-temp)를 사용하십시오.
  • 로컬 테스트/사용자 정의 설정을 위한 선택적 재정의: EUDIC_TO_ANKI_TEMP_DIR=/path/to/temp
  • 규칙에 민감한 실행의 경우, 아티팩트 경로를 /Users/alice/Documents/eudic-to-anki-temp와 같은 절대 디렉토리로 확장하십시오. ~ 또는 $HOME을 사용하여 실행하지 마십시오.

실행 규율

아래에서 <ABS_TEMP_DIR>은 사용자의 확장된 아티팩트 디렉토리(예: /Users/alice/Documents/eudic-to-anki-temp)를 의미합니다.

  • 규칙이 적용된 명령어는 직접 argv 명령어로만 실행하십시오.
  • /bin/zsh -lc ..., zsh -lc ..., bash -lc ..., env ..., FOO=bar ... 등으로 감싸지 마십시오.
  • 규칙이 적용된 명령어 앞에 &&, ||, ;, 파이프, 또는 서브쉘로 연결하지 마십시오. 준비 명령어와 메인 명령어는 별도의 도구 호출로 실행하십시오.
  • cwd가 이 스킬 루트일 때는 python3 scripts/eudic_export.py ...와 같이 상대 스크립트 경로를 사용하십시오.
  • cwd가 다른 곳일 때는 python3 /Users/alice/.agents/skills/eudic-to-anki/scripts/eudic_export.py ...와 같이 절대 설치 스킬 경로를 사용하십시오.
  • 토큰 로딩을 위해 로그인 zsh가 필요한 경우, python3 scripts/run_with_login_zsh.py python3 scripts/eudic_export.py ...를 직접 호출하고, 그 주위에 다른 쉘 래퍼를 추가하지 마십시오.
  • <ABS_TEMP_DIR>이 존재하지 않으면, 먼저 별도의 직접 명령어 mkdir -p /Users/alice/Documents/eudic-to-anki-temp로 생성하십시오.

빠른 시작 (에이전트 흐름)

  1. 임시 디렉토리가 있는지 확인:
    • mkdir -p <ABS_TEMP_DIR>
  2. 환경 확인:
    • bash scripts/check_env.sh
  3. 단어 내보내기:
    • python3 scripts/eudic_export.py --all-categories --start-date <D> --end-date <D> --format csv --output <ABS_TEMP_DIR>/_day_<D>_export.csv
  4. 플레이스홀더 + 작성자 코치 생성:
    • python3 scripts/build_dia_json_from_csv.py --csv <ABS_TEMP_DIR>/_day_<D>_export.csv --output <ABS_TEMP_DIR>/_day_<D>_partial.json --batch-date <D> --eudic-words-only
    • 에이전트가 세련된 코치 JSON을 작성합니다. 각 노트는 part_of_speech를 포함해야 하며, 모든 meaning 줄은 n., vt., vi., adj., adv.와 같은 POS 표시자로 시작해야 합니다. 그런 다음 병합합니다(단일 파일 또는 배치 + scripts/merge_coach_with_partial.py).
  5. 검증:
    • python3 scripts/validate_trvs_coach_json.py <ABS_TEMP_DIR>/_day_<D>_import.json
  6. 오디오와 함께 가져오기 (성공적인 가져오기는 기본적으로 Anki 동기화를 트리거합니다. 건너뛰려면 --no-sync 사용):
    • python3 scripts/ankiconnect_import.py --input <ABS_TEMP_DIR>/_day_<D>_import.json --deck words --create-deck --dia-upsert --audio-provider command --audio-format mp3 --audio-command 'python3 scripts/edge_tts_runner.py --text "{word}" --output "{output}"'
    • --audio-command는 argv로 구문 분석되어 쉘 없이 실행됩니다. 파이프/리다이렉션과 같은 쉘 연산자는 지원되지 않습니다.
  7. 성공 후 정리:
    • bash scripts/cleanup_import_artifacts.sh

품질 관문

  • 에이전트가 코치 콘텐츠를 작성합니다. 기본적으로 Eudic의 exp/phon을 그대로 코치 필드에 대량 복사하지 마십시오.
  • 코치 JSON은 POS를 명시적으로 보존해야 합니다. 모든 노트에 part_of_speech를 포함하고, 각 중국어 meaning 줄의 시작 부분에 POS 표시자를 유지하십시오.
  • 대량 목록의 경우 배치로 서브에이전트를 사용하고 병합하기 전에 각 배치를 검증하십시오.
  • 서브에이전트 출력이 base64인 경우 다음을 통해 디코딩하십시오:
    • python3 scripts/decode_subagent_transcript_b64.py <subagent.jsonl> -o <ABS_TEMP_DIR>/coach_batch_01.json
  • 검증기 오류(U+FFFD, 모지바케 표시자, 잘못된 필드 유형, meaning에 POS 표시자 누락, 또는 part_of_speech 누락)가 있으면 가져오기를 차단하십시오.
  • 성공적인 가져오기 후 ankiconnect_import.py는 기본적으로 Anki 동기화를 실행합니다. 건너뛰려면 --no-sync를 전달하십시오.
  • 검증에 실패하면(특히 root 형식), 실패한 배치/단어만 재생성하고 병합/가져오기 전에 검증기를 다시 실행하십시오.

플레이북

  • 전날 흐름: workflows/yesterday.md
  • 날짜 범위 흐름: workflows/date-range.md
  • 사용자 단어 목록 흐름: workflows/word-list.md

안전

  • 토큰 값을 추적된 파일에 저장하지 마십시오.
  • 환경 변수 EUDIC_TOKEN을 선호하십시오.
  • AnkiConnect를 사용할 수 없는 경우 중단하고 설정 안내를 제공하십시오.

관련 스킬