Vocabulary builder
Skill OleksiiDotsenko/english-exam-coach/plugins/english-exam-coach/skills/vocabulary-builder
Claude Code plugin for CEFR-aligned English exam prep: IELTS, TOEFL iBT (2026 format), CEFR B1-C2. Original content only; append-only progress tracking.
npx -y skills add OleksiiDotsenko/english-exam-coach --skill vocabulary-builderAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 27 days oldThe repository was created 27 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when the user wants to learn, review, or be quizzed on English vocabulary for exams: leveled word sets (B1-C2), collocations, academic vocabulary, phrasal verbs, or spaced-repetition review of previously studied items ("quiz me on my words", "new C1 vocabulary", "review my vocab"). Maintains a Leitner-box review state on disk and logs quiz results to the progress log.
SKILL.md
4.4 KB, as published. Nobody here has run it
Vocabulary Builder
Leveled vocabulary with collocations and a file-based Leitner system. Paths
are relative to ${CLAUDE_PLUGIN_ROOT} (if unset, resolve relative to this
file). The review state lives in the user's progress directory
($EXAM_COACH_HOME or ~/english-exam-coach/), NOT in the plugin.
When to use
The user asks for new vocabulary at a level or topic, asks to review/quiz existing vocabulary, or meets unknown words in another drill and wants them kept.
Steps
-
New set: identify level (B1–C2) and theme (topic, exam register, e.g. "hedging for C1 writing"). Follow the structure in
data/item-bank/seed/vocabulary-sets.md: 5–8 items per set, each with collocations and one original example sentence. Level the words, not just the theme: pick items whose frequency/register fits the level — B1 high-frequency everyday; B2 common academic (roughly the AWL mid-bands); C1 lower-frequency and abstract; C2 idiomatic/precise nuance — and write the example sentence at that level too, so the set carries level-appropriate language beyond the headword. Note that hedging and precision-verb sets sit at C1/C2, not B1–B2. Open lists like the Academic Word List may be referenced nominatively. -
Persist for review: append new items to
<base>/vocab-box.json(create if missing). The file is a JSON array; each element is{"item": ..., "level": ..., "box": 1, "added": "YYYY-MM-DD", "due": "YYYY-MM-DD"}with ISO dates. New items enter box 1 withdue= today, so they surface in the next review round. Canonical Leitner intervals (must matchvocabulary-sets.md): box 1 = next session · box 2 = 1 day · box 3 = 3 days · box 4 = 7 days · box 5 = 30 days (mature). This file is working state and MAY be rewritten — unlikeattempts.jsonl, which this skill never touches directly. -
Review ("quiz me"): read
vocab-box.json, select items withdue <= today(oldest first, max ~12 per round). Quiz actively — ask for the word from a definition/gap sentence, or a collocation completion; a plain "do you remember this?" is not a test. Correct → box +1 (max 5), setdue= today + the new box's interval above; wrong → back to box 1,due= today (next session). Rewrite the file once at the end of the round. -
Score the round (n correct / n asked) and show which items fell back to box 1.
-
Log the round (silently):
python3 "${CLAUDE_PLUGIN_ROOT}/skills/progress-tracker/scripts/log_attempt.py" \ --exam <target-exam or cefr level file, e.g. cefr-c1> \ --skill vocabulary-builder --task-type spaced-review \ --level <level> --score <n> --max <asked> --seconds <time>(On Windows without
python3, usepythonorpyinstead.) When an item is missed for a reason worth re-testing beyond the word itself — a wrong form, a collocation, a register slip — log it withlog_error.pyundervocabularyand runqueue.py sync; the word stays in the Leitner box, the pattern enters the queue. See../progress-tracker/references/the-loop.md. A due-based round often mixes levels, but the log takes one--leveland one--exam: set--levelto the modal (most common) level of the items quizzed and--examto the user's target exam (or thecefr-<level>file matching that modal level) — for a mixed round the review level is only a rough anchor. For a new-set study session without a quiz, do not log — only tested recall counts as an attempt.
Boundaries
- Word lists and example sentences are original or from open sources named nominatively; never proprietary coursebook or exam-board vocabulary banks.
vocab-box.jsonis the only file this skill rewrites; never touchattempts.jsonlexcept throughlog_attempt.py.- Do not log rounds that didn't happen; unanswered items count as wrong only if the user gave up, not if the session was cut short.