Speaking coach
Skill OleksiiDotsenko/english-exam-coach/plugins/english-exam-coach/skills/speaking-coach
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.From its SKILL.md
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.
One thing to look at
- 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.
SKILL.md
5.9 KB, ~1.4k tokens by cl100k_base, 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.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.