skills/learnwy/skills/english-learner

english-learner

SKILL.md

English Learner

Personal vocabulary learning assistant with persistent storage and mastery tracking.

Keywords (Special Commands)

Keyword Action
学习 / review / quiz Start interactive learning session
stats / 统计 Show learning statistics

All other input is treated as content to translate/learn (English, Chinese, or mixed).

Workflow

1. CHECK KEYWORD    → If "学习"/"review"/"quiz" → Learning Mode
2. PARSE INPUT      → Understand user intent (clarify if ambiguous)
3. IDENTIFY CONTENT → Extract word(s)/phrase(s)/sentence(s) into a list
4. IF AMBIGUOUS     → AskUserQuestion to confirm before processing
5. BATCH LOOKUP     → python vocab_manager.py batch_get '["word1", "word2", ...]'
6. AI GENERATES     → For each "not_found" word, AI provides definition/phonetic/examples
7. BATCH SAVE       → python vocab_manager.py batch_save '[{...}, {...}]'
8. LOG QUERY        → python vocab_manager.py log_query <query> <type>
9. RESPOND          → Unified format output

CRITICAL: Step 7 is MANDATORY. Every word/phrase MUST be saved before responding.

Input Clarification

If input is unclear or contains multiple items:

AskUserQuestion:
- question: "我理解你想查询以下内容,请确认:"
- header: "确认"
- options:
  - label: "单词: apple, banana", description: "分别查询这两个单词"
  - label: "短语: break the ice", description: "查询这个短语"
  - label: "全部", description: "查询所有内容"

Scripts

All scripts in {skill_root}/scripts/. Data in ~/.english-learner/.

# vocab_manager.py - Single operations
python vocab_manager.py get_word <word>
python vocab_manager.py save_word <word> <definition> [phonetic] [examples_json]
python vocab_manager.py get_phrase "<phrase>"
python vocab_manager.py save_phrase "<phrase>" <definition> [phonetic] [examples_json]
python vocab_manager.py log_query <query> <type>
python vocab_manager.py stats
python vocab_manager.py update_mastery <item> <is_word:true/false> <correct:true/false>

# vocab_manager.py - Batch operations (PREFERRED for multiple words)
python vocab_manager.py batch_get '["word1", "word2", ...]'
python vocab_manager.py batch_save '[{"word": "...", "definition": "...", "phonetic": "...", "examples": [...]}]'

# sentence_parser.py
python sentence_parser.py classify <text>
python sentence_parser.py parse <sentence>
python sentence_parser.py batch_check <words>

# quiz_manager.py
python quiz_manager.py generate [count] [type] [focus]
python quiz_manager.py review [limit]
python quiz_manager.py summary

Unified Response Format

Word (单词)

Required fields: English, phonetic, definitions (all meanings), examples

📖 **{english}** {phonetic}

**词义 Definitions:**

1. **{pos1}** {chinese1}
   - {example1_en}
   - {example1_cn}

2. **{pos2}** {chinese2}
   - {example2_en}
   - {example2_cn}

**同义词:** {synonyms}
**反义词:** {antonyms}

---
📊 查询次数: {lookup_count} | 掌握度: {mastery}%

Example:

📖 **run** /rʌn/

**词义 Definitions:**

1. **v.** 跑,奔跑
   - I run every morning.
   - 我每天早上跑步。

2. **v.** 运行,运转
   - The program runs smoothly.
   - 程序运行顺畅。

3. **v.** 经营,管理
   - She runs a small business.
   - 她经营一家小公司。

4. **n.** 跑步;一段路程
   - I went for a run.
   - 我去跑了一圈。

**同义词:** sprint, jog, operate
**反义词:** walk, stop

---
📊 查询次数: 5 | 掌握度: 40%

Phrase (短语)

Required fields: English, phonetic, meaning, literal meaning, examples

📖 **{english_phrase}** {phonetic}

**释义:** {chinese_meaning}
**字面意思:** {literal_meaning}

**例句:**
- {example1_en}
  {example1_cn}
- {example2_en}
  {example2_cn}

---
📊 查询次数: {lookup_count} | 掌握度: {mastery}%

Example:

📖 **break the ice** /breɪk ðə aɪs/

**释义:** 打破僵局;打破沉默
**字面意思:** 打破冰块

**例句:**
- He told a joke to break the ice at the meeting.
  他在会上讲了个笑话来打破僵局。
- A good question can help break the ice.
  一个好问题可以帮助打破沉默。

---
📊 查询次数: 2 | 掌握度: 60%

Sentence (句子)

Required fields: Original, translation, phonetic guide, word/phrase breakdown

📝 **句子分析**

**原文:** {original}
**译文:** {translation}
**朗读:** {phonetic_guide}

---

**词汇拆解:**

{For each key word/phrase, use Word/Phrase format above}

Example:

📝 **句子分析**

**原文:** The early bird catches the worm.
**译文:** 早起的鸟儿有虫吃。(比喻:勤奋的人有收获)
**朗读:** /ðə ˈɜːli bɜːd ˈkætʃɪz ðə wɜːm/

---

**词汇拆解:**

📖 **early** /ˈɜːli/

**词义 Definitions:**
1. **adj.** 早的,提前的
   - I'm an early riser.
   - 我是个早起的人。

---

📖 **catch** /kætʃ/

**词义 Definitions:**
1. **v.** 抓住,捕获
   - The cat caught a mouse.
   - 猫抓住了一只老鼠。
2. **v.** 赶上(车、飞机等)
   - I need to catch the 8am train.
   - 我需要赶上早上8点的火车。

---

📖 **worm** /wɜːm/

**词义 Definitions:**
1. **n.** 虫,蠕虫
   - Birds eat worms.
   - 鸟吃虫子。

---
📊 新增词汇: early, catch, worm

Learning Mode (学习)

When user says 学习 / review / quiz:

1. python quiz_manager.py generate 5 all low_mastery

2. For EACH item:
   
   AskUserQuestion #1:
   - question: "📖 **{word}** 的意思是什么?"
   - header: "Quiz"
   - options:
     - label: "认识", description: "我知道这个词的意思"
     - label: "模糊", description: "有点印象但不确定"
     - label: "不认识", description: "完全不知道"
   
3. Show answer (unified Word/Phrase format)

4. AskUserQuestion #2:
   - question: "掌握程度如何?"
   - header: "Mastery"
   - options:
     - label: "完全掌握", description: "+10 mastery"
     - label: "基本掌握", description: "+5 mastery"
     - label: "需要加强", description: "-5 mastery"

5. python vocab_manager.py update_mastery <item> true <result>

6. Continue or show summary

Data Structure

~/.english-learner/
├── words/{prefix}.json     # Words grouped by first 2 letters
├── phrases/{first_word}.json
├── history/{date}.json     # Daily query logs
└── memory/
    ├── SOUL.md
    └── USER.md

Word Data Schema

{
  "word": "run",
  "definitions": [
    {"pos": "v.", "meaning": "跑,奔跑", "examples": ["I run every morning."]},
    {"pos": "v.", "meaning": "运行,运转", "examples": ["The program runs."]},
    {"pos": "n.", "meaning": "跑步", "examples": ["I went for a run."]}
  ],
  "phonetic": "/rʌn/",
  "synonyms": ["sprint", "jog"],
  "antonyms": ["walk", "stop"],
  "created_at": "2024-01-15T10:00:00",
  "lookup_count": 5,
  "mastery": 40
}

Stats Response Format

When user says stats / 统计:

📊 **学习统计**

| 类别 | 数量 |
|------|------|
| 总词汇 | {total_words} |
| 总短语 | {total_phrases} |
| 已掌握 (≥80%) | {mastered_words} |
| 学习中 (30-79%) | {learning_words} |
| 新词汇 (<30%) | {new_words} |
| 总查询次数 | {total_lookups} |

Learning Mode - Empty Vocabulary

If quiz_manager.py returns empty list (no words to review):

📚 **词库为空**

还没有添加任何词汇。试试查询一些单词或句子吧!

**示例:**
- 输入 `apple` 查询单词
- 输入 `break the ice` 查询短语
- 输入一句英文或中文来翻译和学习

Execution Checklist (AI MUST Follow)

Before responding to user, verify:

  • All words extracted from input (EN or CN)
  • Batch lookup executed via batch_get
  • New words SAVED via batch_save (NOT optional!)
  • Query logged via log_query
  • Response uses unified format

Common Mistake: Only logging query without saving words. FIX: Always run batch_save for new words.

Weekly Installs
100
Repository
learnwy/skills
First Seen
Feb 25, 2026
Installed on
opencode99
gemini-cli98
github-copilot98
codex98
amp98
kimi-cli98