Speaking coach
Skill OleksiiDotsenko/english-exam-coach/plugins/english-exam-coach/skills/speaking-coach
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 speaking-coachAssembled 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 practice English exam speaking (IELTS Parts 1-3, TOEFL iBT speaking tasks, B1-C2 interview/long turn/collaborative tasks), wants a speaking prompt or cue card, or wants feedback on a spoken answer provided as a transcript, self-recording description, or audio file. Generates original tasks in the exam's format with real timings and gives criteria-based feedback (fluency, coherence, lexis, grammar, pronunciation) with a range estimate and CEFR level. Logs every scored attempt.
SKILL.md
5.9 KB, as published. Nobody here has run it
Speaking Coach
Terminal-friendly speaking practice: record or perform → transcribe →
evaluate. Paths are relative to ${CLAUDE_PLUGIN_ROOT} (if unset, resolve
relative to the plugin root — the directory two levels above this file,
.../plugins/english-exam-coach).
When to use
The user wants a speaking task, mock speaking interview, or feedback on an answer they spoke (pasted as transcript or provided as an audio file).
Steps
-
Identify exam + level + part. Load
data/exam-formats/<exam-id>.md,data/cefr/speaking-descriptors.md, anddata/cefr/speaking-calibration-anchors.md(leveled transcript samples). Seed shapes:data/item-bank/seed/speaking-tasks.md(imitate format, never reuse). -
Generate the task with the exam's real prep/speaking times (e.g. IELTS Part 2: 1 min prep, 1–2 min talk; TOEFL interview answers: 45 s each with no preparation time). Pitch the prompt's demand to the level (B1 concrete/personal; B2 opinion on a familiar topic; C1 abstract, asks the speaker to weigh/hypothesise; C2 nuanced) —
speaking-calibration- anchors.mdshows an at-level answer to aim the prompt at. Visual-dependent tasks (Cambridge B1 Part 2 describe-a-photo; B2 First / C1 Advanced Part 2 compare-photographs; C2 Part 2 picture discussion) can't be rendered here; say so and offer a non-visual part instead of faking it. IELTS Speaking uses no visual prompts — its Part 2 is a text cue card and IS fully renderable. Tell the user how to respond, in order of preference:- record themselves (any voice recorder) and paste an accurate transcript, noting hesitations/self-corrections honestly;
- or speak first and then type from memory (say that this loses fluency information);
- for a paired-format task (collaborative discussion), play the partner: alternate short turns with the user in chat.
TOEFL Listen and Repeat (7 of the 11 TOEFL speaking items) works differently: deliver each sentence once via
saywhen available (else read it once as a partner), have the user repeat it from memory and type what they said, and score each sentence on exactness — content words, word order, grammatical endings. Report the sentence length at which recall broke down; that breakdown point is itself the diagnostic. Log with--task-type toefl-listen-and-repeat --score <n> --max 7. -
Evaluate the transcript against the five paraphrased CEFR aspects (range, accuracy, fluency, interaction, coherence) and the exam's criteria structure. Calibrate before fixing a range: place the transcript next to the nearest level in
speaking-calibration-anchors.mdper aspect (aspects may land on different levels — say so). The anchors start at B1: if the transcript sits clearly below the B1 anchor on most aspects, report it as below B1 (approx. A1/A2) rather than snapping up to B1, and log--level/--cefr-estimateas A1 or A2 accordingly. From text alone, fluency and pronunciation are only partly observable — judge fluency from fillers/self-corrections if the transcript preserves them, and say so; only comment on pronunciation the user asks about or reports ("I struggle with th-"). -
Return: (a) estimate as a range + CEFR level; (b) 3–5 prioritized fixes with your phrase → stronger phrase rewrites from the user's own answer; (c) one upgraded model answer fragment (2–3 sentences, next level up); (d) one follow-up question to re-drill the weakest point now.
-
Log the attempt (silently):
python3 "${CLAUDE_PLUGIN_ROOT}/skills/progress-tracker/scripts/log_attempt.py" \ --exam <exam-id> --skill speaking-coach --task-type <slug> \ --level <anchor> --band-estimate "<low>-<high>" --cefr-estimate <cefr> \ --seconds <time-on-task>On Windows, if
python3isn't found, usepythonorpyinstead. Use the exact--task-typeslug fromdata/task-types.md. Add--criteria "fluency=B2,lexis=B2,grammar=B1,..."with the per-aspect levels you just judged, and be honest about the evidence:--evidence-grade partialfor a transcript typed from memory (the content survived, the delivery did not),fullonly when it came from audio. -
Run the clock, and close the loop. For a timed task, run it under the real exam clock instead of "start when ready" — that constraint is most of the task's difficulty:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/progress-tracker/scripts/timed_speak.py" \ --exam <exam-id> --task <slug>It prints the seconds to log and
--timing-source script. Afterwards log 2–5 mistakes withlog_error.py, runqueue.py sync, and offer a second attempt at the same task, reporting the per-aspect delta. Full protocol:../progress-tracker/references/the-loop.md. For TOEFL estimate the 1–6 band scale:--score <band> --max 6(half bands allowed; official CEFR alignment: 4 ≈ B2, 5 ≈ C1, 6 = C2).
Boundaries
- Never claim to hear audio you cannot access; if an audio file is provided and cannot be transcribed in this environment, ask for a transcript instead of inventing one.
- Descriptors are paraphrased public CEFR only; no official rubrics.
- Estimates are indicative ranges, never official scores.
- Do not log attempts the user didn't make.