english-learner
Installation
SKILL.md
English Learner
Personal vocabulary assistant with persistent storage, mastery tracking, and spaced repetition.
Three auto-intercept modes (passive, hook-driven)
| Mode | Trigger | Action |
|---|---|---|
| English intercept | User writes in English (EN ratio ≥ 0.6) | If issues found: show 1–3 corrections in a "💡 English Tip" table. If clean: render exactly "✅ English looks fluent — no issues found." Always call vocab record-input with had_issues + issue_count. |
| Chinese intercept | User writes in Chinese (CN ratio ≥ 0.3, OR contains 翻译/怎么说/用英语 intent). Always fires — never silently skipped. Tiered output: full mode for normal messages; light mode when ≥ 500 chars OR contains code keywords (代码/编程/bug/修复/重构/编译/部署/配置文件). | Full: "🌐 中译英" block — corrections (if any) + 2–3 EN translations + 2–3 vocab + batch_save. Light: "🌐 中译英 (light)" — 1 EN translation + optional 1 vocab. Both call record-input with language: zh. |
| Other-language intercept | User writes prose in JA / KO / ES / FR / DE / RU / AR / etc. (low EN, low ZH ratios). Always fires. Tiered: full mode for normal, light mode when ≥ 800 chars. | Full: "🌐 Translate & Learn" — detect language, translate, 2–3 vocab, auto-save. Light: 1 EN translation + optional 1 vocab. Both call record-input with language: ja/ko/other. |
All modes wired through learnwy-dispatch (UserPromptSubmit + Stop hooks). They never block the user's actual task — corrections come first, work continues.
Every fired turn logs an entry to prose_log so we can compute fluency rate, by-language activity, and 30-day trend (vocab prose-stats).
Detailed rules, exclusion filters, and Markdown formats: see references/intercept-modes.md.