english-worksheet
BSecurityCreates personalized English homework worksheets and answer keys for a single ESL/EFL learner, built from a student profile. The profile comes from existing data (an english-tutoring record, lesson transcripts, a written analysis, old handouts, tutor notes) or from a short interview with the tutor. The tutor chooses how many worksheets, and gets either one combined .docx or one .docx per worksheet. Use when the user asks for worksheets, homework, practice exercises, drills, or a practice pack...
- 0 votes
- 0 copies
- 1 view
- Added November 10, 2026
Works with
Security analysis
84/100- Installs packages at runtime which could introduce malicious dependencies
- Installs packages at runtime which could introduce malicious dependenciesin scripts/md_to_docx.py
Pro scans all 4 files and shows the line behind each finding
npx -y skills add ratherlegit/english-teaching --skill english-worksheet --agent claude-codeAre you the author of english-worksheet?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ratherlegit-english-worksheet)---
name: english-worksheet
description: Creates personalized English homework worksheets and answer keys for a single ESL/EFL learner, built from a student profile. The profile comes from existing data (an english-tutoring record, lesson transcripts, a written analysis, old handouts, tutor notes) or from a short interview with the tutor. The tutor chooses how many worksheets, and gets either one combined .docx or one .docx per worksheet. Use when the user asks for worksheets, homework, practice exercises, drills, or a practice pack for an English learner, e.g. "make homework for Maria based on this analysis" or "I need 5 worksheets on articles and past tense for my student". For lesson plans use english-tutoring (one student) or english-classroom (a group).
---
# English Worksheets
Build homework worksheets that target what one learner actually gets wrong, then export them as Word files. The profile is the product: a worksheet pack is only as good as the evidence about the student behind it. Adapt to what the tutor asks for. Do not force steps they have already answered.
## Step 0: Find the student
Look for the student by name before asking anything.
1. `~/eng-teaching-records/worksheets/<name-slug>.md` (lowercase, hyphens). This skill's own file: profile, focus areas, worksheet log. If it exists, load it, skip Step 1, and ask only whether anything changed since last time.
2. `~/eng-teaching-records/<name-slug>.md`, the english-tutoring record. Read-only. Import level, interests, goal, location, English variety, vocabulary log, and grammar already covered. Never write to this file. **If it has an `## Analysis` section** (written by english-analysis from a recorded lesson), read the most recent one and use it as the main evidence for focus areas, as described in `references/student-profile.md` ("Using a saved Analysis").
Create `~/eng-teaching-records/worksheets/` if it does not exist. Records live outside the skill folder on purpose, so they survive updates.
## Step 1: Build the student profile
Ask how the tutor wants to build it, offering these as options:
- **Ingest existing data**: a student record, transcripts, a written analysis, old worksheets or handouts, notes, a folder. Accept file paths, folders, or pasted text.
- **Answer interview questions**.
- **Both**: ingest first, then interview only for the gaps.
**Ingesting.** Read every file fully, then follow `references/student-profile.md` ("Ingesting data") to extract: profile fields, recurring error patterns with quoted evidence, strengths, vocabulary and grammar already taught, and the student's own stated goals and weaknesses. Show the extracted profile in one compact block, then ask the tutor to confirm or correct it. The block must include a vocabulary line that names the source and its size, for example "Vocabulary log: olena.md, about 150 items, last taught 10/25", so the tutor can see the full log is the source and not only recent words. Interview only for missing fields.
**Interviewing.** Offer a **detailed** interview (one question at a time, the default) or a **light** one (four bundled prompts). Use the question set in `references/student-profile.md` ("Interview"). The most important answer is the focus areas: what this student keeps getting wrong, in the tutor's own words. If the tutor cannot say, offer to look at a sample of the student's writing or speech and analyze it.
Save or update the profile file (format in `references/student-profile.md`) once the tutor confirms it.
## Step 2: Plan the worksheets
Ask these, one at a time, never suggesting a default number:
1. **How many worksheets do you want?** The tutor suggests the number.
2. **One combined file, or one file per worksheet?** The file opens straight on worksheet 1: **no cover or overview page**. The worksheets explain themselves, and the plan table goes to the tutor in chat.
3. **Answer key?** Default yes, as a separate file the student never sees.
4. **Vocabulary review?** Ask whenever the student has a vocabulary list or log. Default yes: one vocabulary review part in every worksheet, 6 words plus 1 worked example, taken from the student's own list.
5. Only if not already known: minutes per worksheet (default 15 to 20) and whether speaking or recording tasks are welcome.
Then propose a plan as a table and wait for approval before writing anything:
| # | Title | Focus (from the profile) | Vocabulary review (words and activity) | Exercise types | Minutes |
|---|---|---|---|---|---|
Rules for the plan:
- Order by priority: the most frequent and most noticeable errors first, then the less frequent ones. Within a pack, move from simple to complex where there is a natural order.
- If the tutor wants more worksheets than there are distinct focus areas, split by skill (grammar, vocabulary, speaking, pronunciation, writing, listening) and add review worksheets. If fewer, cover the top priorities and say plainly what was left out.
- **One point per worksheet.** Never combine two separate topics, even if both are on the profile (for example conditionals and future forms). If there are more topics than worksheets, leave one out and say so, or add a worksheet. The title, rule, table, examples, Watch out box, and activities must all be about the same point.
- Vary exercise types across the pack (see `references/exercise-types.md`).
- **Choose focus points that are worth the learner's time.** Before scheduling a point, ask: (1) Is the evidence reliable? Machine transcripts clean up and also invent errors, so a pattern seen only in garbled or low-audio stretches, or in one or two odd phrases, is a "check first" point, not a worksheet. (2) Is it too basic for the level? A B2 or higher learner can be offended by a drill on something obvious, so skip points a learner at that level would never get wrong. (3) Does the learner's first language predict the error? Prefer errors that the first language explains (for example article omission for Ukrainian, Russian and other article-free languages; prepositions; word order; false friends). Say plainly in the plan which of these three checks the point passes.
- Never schedule a point the profile marks as mastered or excluded. Treat a point with only one weak piece of evidence as "check first" and say so.
## Step 3: Write the worksheets
Write the whole pack as one markdown file following `references/exercise-types.md` (file format, focus box, exercise catalog, answer key, quality checks). The rules that matter most:
**Focus box and Watch out**
- Open each worksheet with a focus box (called Grammar Focus on every worksheet, including verb patterns and word choice; use Language Focus instead only if the whole pack is vocabulary, and never mix the two names in one pack), then a separate Watch out box. Together they fit one page at most. The page is a ceiling, not a target. Contents and order: "The focus box" in the reference. The box opens with the rule, then a short numbered how-to-do-it list, then the table and examples; there is no "why it matters" line and no dialogue. Page 1 holds only the title, the focus box and the Watch out box: put `<!-- pagebreak -->` right after the Watch out box so the activities start on page 2.
- **One point only.** The title, rule, table, examples, and Watch out items are all about the same point. **Narrow means one topic, stated in one sentence.** The topic may be one form, or a comparison of 2 tenses (3 only if the point really needs it), but then the comparison is the whole focus and everything else is cut. Before drafting the box, write a 14-line spec and check it: (1) the topic in one sentence, (2) steps or key points, and why, (3) every term the learner needs, each explained, (4) every complication inside the topic (two nouns, two verbs, exceptions), each with an example, (5) each table column and the one example word it uses, (6) for every word or idea named in the rule or steps, the example that shows it ("of: example 1, in: example 2, and: example 3"), (7) what you cut from the topic and where it goes (a later worksheet), so the box does not hint at it, (8) the student's real error forms from the profile mapped to the steps, so every step has a Watch out or Part A item and no step explains something the worksheet never uses, (9) the type of each line: a step is an action done to a sentence, in order; a key point is a fact to know (forms, when to use which), and facts go in a Key points or Verb forms list, never in the steps, (10) the order the learner meets things, with the table columns in the same order, and words like other, more, rest or also used only after the things they refer to, (11) that every line stands alone: no step says "steps 1 to 3", "see above" or "the table", and each repeats the idea in its own words, (12) a coverage check of the activities against the box: every term used in the rule is defined before use (for example subject and main noun), the box says how to decide any judgement it asks for (plural nouns usually end in -s), every preposition, tense, spelling rule and word type an item needs is named in the box or the item is rewritten, worked-example answers need no unlisted rule, any "usually" or "most" tip names the common exception pattern or says that exceptions exist, with one example that an activity item uses (for example "most plurals end in -s or -es; a few are irregular, like people"), and instructions that say "one word from Part D" name which words count, and (13) instruction wording: every activity instruction uses the box's exact terms (not a near-synonym or a wider term such as subject for main noun) and says exactly what the learner types (a verb form, a word, a sentence). Check each instruction against one item, including the worked example: does the instruction fit what the item really asks, and (14) scope: the title and rule name every idea the worksheet tests, so a worksheet that also tests a second idea (for example a with plural nouns, or a versus an) is split or retitled; every absolute word (never, always, only) is limited to a stated closed list, and a defined word like determiner or specific is a complete list or defined, never a vague "such as"; "only one" says whether none is allowed; words outside the list that appear in items are addressed or kept out; the definition of a noun or term covers every case the items use (time words, ideas); instructions say whether capital letters count; table headers use the box's own term ("determiner"), not just "word"; and no item repeats an example. The vocabulary review part is exempt from the topic test, but its sentences use only what the box teaches. Then finish this sentence: "After this worksheet the student can ___" with one short phrase, and cut anything that is not in it (other tenses outside the comparison, unrelated sentence types, side rules). Every step in How to do it must either carry out the topic or be a tip for doing the topic well, and must be something done to a sentence (never "choose from the table": the rule must stand on its own and the table only illustrates it); a step that belongs to another topic is cut. Every activity item must use only what the box teaches, so an item that needs a cut rule is rewritten. Read them in order before moving on: if the table or examples do not match the rule, the box has two topics, so split it.
- **When a word or pattern has more than one use, say exactly when each applies.** Never state a pattern as always true if it has exceptions ("ask and pay need no word before a person, and for before a thing", not "verbs need to or for"). A table must be a guide for deciding, not only a formula: include a column or line that says when to use each form, with an example for each case.
- **Cover the obvious complications inside the topic.** For an agreement or pattern rule, say what happens with two nouns, two verbs or other common combinations in one short step each, with an example for each, so the learner is never left asking "what if there are two?". Describe words that do not matter for the rule as "do not decide the verb", never as "skip" or "ignore".
- **Table columns say what they are.** Never label a column "most", "some" or "normal": that invites the question "what are the exceptions?". Name the group exactly ("other verbs") and state the exceptions in the rule ("be and have have their own forms"). Use the same example word in the rule and the table (work in both), and never put a new word in the table.
- **Introduce everything the table shows.** Every column, verb or category in a table is named and explained in the rule or steps first (for example "two very common verbs change differently: be and have"). Never let a table introduce a new idea.
- **Italics for the words you talk about, and say it once.** When the box or an instruction refers to a word as a word (*a*, *the*, *Monday*, *our*), put it in italics, never in quotation marks (hard to read), so it cannot be mixed up with the explanation. Bold marks the key words inside example sentences. In lines that are italic as a whole (instructions, the Watch out *Why*), write the discussed words in plain type and rephrase so nothing is ambiguous. State each rule once: never follow a rule with a restatement. Define a term by what it does, in plain verbs, not with vague pairs like "which one or whose".
- **Judgement words get a test and an example for each reason.** When a rule depends on a judgement (specific, countable, formal), give the learner a yes/no test in one line and an example of every reason the test lists (mentioned before, the only one, the sentence says which one). Every example and item must pass that same test, so a noun the box calls specific has a visible reason in its sentence. Items give a preceding sentence that makes exactly one article correct, and avoid of, in and about phrases that could also count as saying which one. Names, possessives and numbers are named in the rule with an example when the worksheet uses them. Do not use a case the box does not teach (for example general statements) in an item.
- **Define terms directly and concretely.** Give the definition as a short adult statement plus real examples ("Countable nouns are things you can clearly count, like *meeting* and *office*. Uncountable nouns are abstract things or ideas that cannot be counted, like *information* and *advice*"). Never teach a term with a child-style test or game.
- **State the rule with its scope, and define every term in the rule line.** A rule that says "always X" must name the cases where it does not apply that the worksheet itself uses ("use a or an before a singular countable noun, unless the or my is already before it"). The sentences in the box and the activities must never contradict it. Define each term used in the rule (countable, uncountable) right in the rule section, and give examples that separate easy-to-confuse cases (letter versus sound: "a university", "an hour"). When a test the box teaches is unreliable for some words ("one, two" for abstract nouns), mark those words in the activity ("uncountable") instead of leaving the learner to guess. Say whether an instruction allows adding or deleting, not only changing. Never make the learner follow a requirement that a correct sentence breaks.
- **Use the real grammar term, never an invented label.** Say determiner, article, possessive, demonstrative, singular, plural, past participle, and explain each in a short phrase the first time ("a determiner is a word before a noun that shows which one or whose"). Never make up a plain-language name such as "small word" for a grammar category: it teaches the student a term they can't use to look anything up. Name each group inside the category (articles, possessives) so the learner connects it with what they already half-remember.
- **Demonstrate what you mention.** Any word, term or exception named in the rule or steps (for example "skip words after of or in") appears in an example that shows it, and each named item gets its own example. Use the real grammar terms (singular, plural) with a short explanation, not vague labels.
- **Say it clearly.** Plain words, every term explained or avoided, no vague labels ("normal verb"), and every sentence understandable on its own. Each definition and rule starts on its own line. Use your judgment.
- When a rule involves a describing word (an adjective), the steps say where the main word goes in relation to it ("put \"a\" or \"an\" before the describing word, and the first word after it decides") and the examples show it. Never mention describing words and then say only "leave them".
- A table of verb forms gives every subject its own row (I, you, he, she, it, we, they) with its own example sentence. When one table covers several verbs, write the subject in every cell ("he is", "he was", "he has") so each cell is its own example. Never add one Example column that shows a different verb on each row. If a table has no complete sentences, label every example with the form it shows ("Past simple, finished time: ...").
- The Watch out box has exactly 2 mistakes, each written "Don't use: ... Use: ..." and followed by a brief *Why:* in italics: one short sentence that gives the reason, not a repeat of the rule ("Why: yesterday is a finished time, and the present perfect cannot go with a finished time"). Never leave a correction without its reason.
**Activities**
- Provide the forms; never ask the student to write out forms in a list. Put the table in the focus box, then have the student use it in several activities, including writing.
- **Add a vocabulary review part** to every worksheet (unless the tutor said no): 6 words plus a worked example, from the student's own list, before the final writing task, with a different activity type in each worksheet. Prefer words not yet reviewed, skip niche or vulgar words, and reuse the worksheet's grammar where you can.
- Every item has exactly one correct answer unless it is labeled open. Test each item for a second acceptable answer (tense and article items especially) and add a detail that rules it out. Items use new sentences, never ones from the focus box. State how many mistakes or gaps there are.
- Questions and writing prompts are about the student's real life, specific, neutral (never vague, sensitive or private: no war, security, politics, health, money, family or exact location), answerable in one short sentence when they are "Answer about you" items, in the right time frame, and make sense for how their life really runs (occasional events are not treated as regular). The natural answer uses the target form.
- **Design for typing.** A message to correct goes inside the write box already, so the student edits it and never retypes it from scratch. In any exercise where the student types a form of a given verb, the verb goes in its own bold "Verb" column (multi-word verbs too, with the whole expression in the gap), with the sentence in a tinted "Your sentence" cell so they type the answer inside the sentence, and the instruction says where they type. Words suggested in a task fit the task's topic. A list of requirements is always bullets. Students type in the same Word or Google Docs file. Give each item a "Your answer" cell and use a `:::write` box for writing tasks. Never write "circle," "underline," or "draw a line." Gap-fills use plain blanks with no numbers inside the gaps, and the answers go in order in a `#` and `Your answer` table. Put a worked example as row 0 of every answer table.
**Student-facing language**
- Address the student in the second person. Be concise and clear: match the wording to the CEFR level, but never let simple wording make an item vague. Name the specific thing.
- **Never mention the tutor, teacher, instructor, or "the student".** For recordings, write "bring it to your next lesson".
- Personalize with the student's work, interests, and real situations. Do not copy the student's own error sentences. Write fresh sentences with the same error type.
- Do not mark acceptable informal English as wrong. Never reuse a word the profile lists as taught, unless the worksheet is reviewing it.
- Keep the tone encouraging: tasks say "try to", never "must" or "you need to", and a closing check is a tip ("Check to ensure ..."), not a command.
- No em dashes. No small label lines above headings.
**Look**
- Blue is the main color of every worksheet. Other elements use other light colors (yellow word banks, soft red Watch out boxes, green examples). Keep fills light so typed text is readable. Emoji icons in part headings are fine. Use an image only when a real file exists; never invent a path.
Before building, read every focus box and instruction as the student would, and rewrite anything vague. Then scan the student-facing text for the words *tutor*, *teacher*, *instructor*, and *student* (case-insensitive), and for *circle*, *underline*, *cross out*, *tick*, and *draw*, and rewrite every hit. Do this every time. Then run the walk-through check and the measured page-budget check from Quality checks in `references/exercise-types.md`, and write down the steps for at least one item per part. A box that tells the student to do something must show it done in its examples.
**Then review the focus box and every instruction as the learner, not the author.** These worksheets are review: the learner has met the topic before but does not remember the details and still makes the error, and the box is a clear refresher that helps them check and fix their own speaking and writing. The reviewing learner is therefore one level below the profile level, half-remembers the rule, reads slowly, and does not guess what is meant. If a subagent is available, give it only the box and the part instructions (no profile, no plan) and ask it to play that learner. Otherwise do it yourself, line by line, from the first word down. Answer in writing: (1) What is the topic, in one sentence? Does the title say the same thing? (2) For every line, what does a learner know after reading only this far? Flag any term not yet explained, any word or idea mentioned but not shown, and any line that does not serve the topic. (3) Do the steps on one example sentence, step by step, without the table. Could the learner do each step? (4) Is every item in Part A answerable using only the box? Fix every flag and review again until nothing is flagged. Do not export before this passes.
## Step 4: Build the files
Ask where to save if the tutor has not said; default to `~/Downloads/<student-slug>-worksheets/`. Run the bundled exporter from the skill folder (needs `pip install python-docx`):
- **Combined file**: `python3 scripts/md_to_docx.py pack.md out/pack.docx`
- **One file per worksheet**: `python3 scripts/md_to_docx.py pack.md out/ --split`
- The answer key is a separate markdown file exported the same way, never merged into the student's file.
If there is no shell access, say so plainly and give clean markdown to paste instead. If rendering is available (LibreOffice), look at the pages. On macOS without it, `qlmanage -t -s 1400 -o <dir> file.docx` makes a first-page preview, but it ignores table widths and page breaks, so it only confirms fonts, borders, and shading. If nothing can render the file, tell the tutor the layout was not visually checked.
## Step 5: Update the record
Append to the Worksheet Log in the student's worksheet profile: date, titles, focus areas covered, and the vocabulary words reviewed in each worksheet, so the next pack rotates to other words. Add new "already practiced" vocabulary. Offer to adjust the plan after the tutor has seen how the student did, and fold any new errors back into the Focus Areas table.
## Reference files
- `references/student-profile.md`: how to ingest data, the interview question set, and the profile file format. Read in Step 1.
- `references/exercise-types.md`: worksheet anatomy, exercise catalog with sizing, speaking tasks, answer key format, and quality checks. Read in Steps 2 and 3.
Files in this skill
- SKILL.md
- references/exercise-types.md
- references/student-profile.md
- scripts/md_to_docx.py
Attribution
Related skills
View all in education →Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.