Install
$ agentstack add skill-oleksiidotsenko-english-exam-coach-writing-evaluator ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Writing Evaluator
Generates original writing prompts and evaluates responses. Paths are relative to ${CLAUDE_PLUGIN_ROOT} (if unset, resolve relative to this file).
When to use
The user pasted a piece of writing for assessment, OR asked for a practice writing task in a named exam format, OR asked how to improve exam writing.
Steps
- Identify exam + level + task type. If unclear, ask once. Load:
data/exam-formats/.md(format, word count, timing, criteria names)data/cefr/writing-descriptors.md(assessment anchors)data/cefr/calibration-anchors.md(leveled reference samples)skills/writing-evaluator/references/task-anatomy.md(structure and
register expectations per task type)
- If GENERATING a prompt: produce an ORIGINAL prompt matching the
format's structure, word count and timing (seed examples: data/item-bank/seed/writing-prompts.md — imitate shape, never reuse content). State the time limit and word target. Offer to time the attempt: note the start time, and compute elapsed seconds when the answer arrives.
- If EVALUATING: assess against that exam's criteria structure (e.g.
Task Achievement/Response, Coherence & Cohesion, Lexical Resource, Grammatical Range & Accuracy for IELTS; content, communicative achievement, organisation, language for the B1–C2 exams; development, organisation, language use for TOEFL), anchored in the paraphrased CEFR descriptors. Check task-specific requirements first: word count, all content points covered, register, format conventions (greeting/sign-off, headings for reports/proposals). Then CALIBRATE before fixing the range: compare the text with the leveled samples in data/cefr/calibration-anchors.md and pick the nearest anchor per criterion — criteria may land on different levels (say so if they do). Never show anchor texts to the user as model answers.
- Return, in this order:
- (a) estimate as a RANGE (e.g. "IELTS ~6.5–7.0", "on track for a C1
pass") plus the normalized CEFR level;
- (b) 3–5 prioritized fixes, each shown as *your sentence → improved
sentence* using the user's own text;
- (c) one model upgrade: a single paragraph rewritten at the next level up,
with a one-line explanation of what changed.
- Log the attempt (silently, right after scoring):
``bash python3 "${CLAUDE_PLUGIN_ROOT}/skills/progress-tracker/scripts/log_attempt.py" \ --exam --skill writing-evaluator --task-type \ --level --band-estimate "-" --cefr-estimate \ --seconds ` Use --score/--max instead of --band-estimate only when the exam truly uses a numeric scale for the task (e.g. TOEFL: --score 4.5 --max 6` on the 1–6 band scale). If time on task is unknown, ask or use the task's standard timing.
Boundaries
- Do NOT reproduce official rubrics, past papers, or answer keys; criteria
names may be used, official descriptor text may not.
- Descriptors are paraphrased from the public CEFR framework only.
- Estimates are ranges and indicative, never official assessment.
- Never log an attempt the user didn't actually make.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: OleksiiDotsenko
- Source: OleksiiDotsenko/english-exam-coach
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.