Eudic Anki Pipeline (Einheitlicher Skill)
Zielgruppe
Diese Datei richtet sich an den ausführenden Agenten. Der Benutzer gibt Ziele in natürlicher Sprache vor; der Agent führt sie von Anfang bis Ende aus.
Verteilung
Dieser Skill befindet sich unter skills/eudic-to-anki/ im Quellrepository, sodass er mit der Vercel Skills CLI installiert werden kann (npx skills add <besitzer>/<repo> --skill eudic-to-anki). Nach der Installation behandeln Sie dieses Verzeichnis (in dem SKILL.md liegt) als das aktuelle Arbeitsverzeichnis für alle folgenden Befehle. Siehe die Repository-Root README.md für die genaue Installationszeile, sobald das Repository öffentlich auf GitHub ist.
Umfang
Einzelner Skill, modulare Interna:
- Export-Modul:
modules/export/README.md - Coach-Modul:
modules/coach/README.md - Import-Modul:
modules/import/README.md - Audio-Modul:
modules/audio/README.md - Workflow-Playbooks:
workflows/*.md
Alle folgenden Befehle gehen davon aus, dass das aktuelle Arbeitsverzeichnis die Skill-Root ist: eudic-to-anki/.
Standardeinstellungen
- Datum: gestern (lokale Zeitzone), sofern der Benutzer keinen Bereich angibt.
- Quelle: alle Eudic-Kategorien, sofern der Benutzer keine Kategorie angibt.
- Deck:
words, sofern der Benutzer nichts anderes angibt. - Notiztyp:
TRVS-Lab. - Zwischenartefakte: Nur das dedizierte Dokumente-Artefaktverzeichnis des Benutzers. Verwenden Sie die kanonische absolute Form
<ABS_TEMP_DIR>wie z.B./Users/alice/Documents/eudic-to-anki-temp. - Optionaler Überschreibung für lokale Tests/benutzerdefinierte Setups:
EUDIC_TO_ANKI_TEMP_DIR=/pfad/zu/temp. - Für regelgebundene Läufe erweitern Sie Artefaktpfade zu einem absoluten Verzeichnis wie
/Users/alice/Documents/eudic-to-anki-temp; führen Sie sie nicht mit~oder$HOMEaus.
Ausführungsdisziplin
<ABS_TEMP_DIR> unten bedeutet das erweiterte Artefaktverzeichnis des Benutzers, z.B. /Users/alice/Documents/eudic-to-anki-temp.
- Führen Sie regelgebundene Befehle nur als direkte argv-Befehle aus.
- Wickeln Sie sie nicht in
/bin/zsh -lc ...,zsh -lc ...,bash -lc ...,env ...oderFOO=bar ...ein. - Verketten Sie sie nicht mit
&&,||,;, Pipes oder Subshells um einen regelgebundenen Befehl herum. Führen Sie Vorbereitung und den Hauptbefehl als separate Tool-Aufrufe aus. - Wenn das aktuelle Verzeichnis die Skill-Root ist, verwenden Sie relative Skriptpfade wie
python3 scripts/eudic_export.py .... - Wenn das aktuelle Verzeichnis woanders ist, verwenden Sie absolute installierte Skill-Pfade wie
python3 /Users/alice/.agents/skills/eudic-to-anki/scripts/eudic_export.py .... - Wenn Login-Zsh zum Laden von Token erforderlich ist, rufen Sie
python3 scripts/run_with_login_zsh.py python3 scripts/eudic_export.py ...direkt auf; fügen Sie keinen weiteren Shell-Wrapper hinzu. - Wenn
<ABS_TEMP_DIR>nicht existiert, erstellen Sie es zuerst mit einem separaten direkten Befehl:mkdir -p /Users/alice/Documents/eudic-to-anki-temp.
Schnellstart (Agentenablauf)
- Stellen Sie sicher, dass das temporäre Verzeichnis existiert:
mkdir -p <ABS_TEMP_DIR>
- Umgebungsprüfung:
bash scripts/check_env.sh
- Wörter exportieren:
python3 scripts/eudic_export.py --all-categories --start-date <D> --end-date <D> --format csv --output <ABS_TEMP_DIR>/_day_<D>_export.csv
- Platzhalter erstellen + Autoren-Coach:
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- Der Agent schreibt verfeinertes Coach-JSON. Jede Notiz muss
part_of_speechenthalten, und jedemeaning-Zeile muss mit einem POS-Marker wien.,vt.,vi.,adj.oderadv.beginnen. Dann zusammenführen (Einzeldatei oder Batches +scripts/merge_coach_with_partial.py).
- Validieren:
python3 scripts/validate_trvs_coach_json.py <ABS_TEMP_DIR>/_day_<D>_import.json
- Mit Audio importieren (erfolgreicher Import löst standardmäßig eine Anki-Synchronisation aus; verwenden Sie
--no-sync, um dies zu überspringen):
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-commandwird als argv geparst und ohne Shell ausgeführt; Shell-Operatoren wie Pipes/Umleitungen werden nicht unterstützt.
- Bereinigung nach Erfolg:
bash scripts/cleanup_import_artifacts.sh
Qualitätsgates
- Der Agent erstellt Coach-Inhalte; kopieren Sie standardmäßig nicht massenhaft Eudic
exp/phonin Coach-Felder. - Coach-JSON muss POS explizit erhalten: fügen Sie
part_of_speechbei jeder Notiz ein und behalten Sie POS-Marker am Anfang jeder chinesischenmeaning-Zeile. - Verwenden Sie bei großen Listen gebündelte Unteragenten und validieren Sie jeden Batch vor dem Zusammenführen.
- Wenn die Unteragentenausgabe base64 ist, decodieren Sie sie via:
python3 scripts/decode_subagent_transcript_b64.py <subagent.jsonl> -o <ABS_TEMP_DIR>/coach_batch_01.json
- Blockieren Sie den Import bei Validierungsfehlern (
U+FFFD, Mojibake-Marker, falsche Feldtypen, fehlende POS-Marker inmeaningoder fehlendepart_of_speech). - Nach einem erfolgreichen Import führt
ankiconnect_import.pystandardmäßig eine Anki-Synchronisation durch; übergeben Sie--no-sync, um dies zu überspringen. - Wenn die Validierung fehlschlägt (insbesondere
root-Format), generieren Sie nur den fehlgeschlagenen Batch/die fehlgeschlagenen Wörter neu und führen Sie die Validierung erneut durch, bevor Sie zusammenführen/importieren.
Playbooks
- Gestern-Ablauf:
workflows/yesterday.md - Datumsbereich-Ablauf:
workflows/date-range.md - Benutzerwortliste-Ablauf:
workflows/word-list.md
Sicherheit
- Speichern Sie Token-Werte niemals in nachverfolgten Dateien.
- Bevorzugen Sie
EUDIC_TOKENaus der Umgebung. - Wenn AnkiConnect nicht verfügbar ist, stoppen Sie und geben Sie Setup-Anleitungen.