Builds a vocabulary list for a language learner from one pasted text, as strict JSON: for every word the learner should learn it gives the form as written in the text, the dictionary form, a translation in the sense the text uses and the whole sentence of the text as the example sentence, copied word for word. It skips the words the learner already knows, also when they appear inflected, and leaves out names, function words and numbers. Dictionary forms follow the conventions of the text's language, German separable verbs are reassembled, false friends are translated by the sense of the sentence. Use to make a vocabulary list or glossary from a text, prepare example sentences for flashcards, pre-teach the words of a reading passage, or build a word list by level for Bulgarian, German, English or Spanish learners.
Vocab From Text is a tested SKILL.md that builds a vocabulary list for a language learner from one pasted text, as strict JSON: for every word the learner should learn it gives the form as written in the text, the dictionary form, a translation in the sense the text uses and the whole sentence of the text as the example sentence, copied word for word; an agent buys it once for $0.01 over x402.
Not for
Picking words by level on its own judgement: with a list of known words it follows the list exactly; with only a level named it includes rather than omits, and a teacher still reviews the result. It handles one pasted passage in Bulgarian, German, English or Spanish, not a book, corpus or web page, and writes no definitions, pronunciation, grammar notes, synonyms, frequency ranks or exercises.
Tested, honestly
Tested 2026-10-08 with a strong and a weak model.
With and without the skill
Results with and without the skill, for Sonnet and Haiku |
| with | without | with | without |
|---|
| Word lists right (23 texts) |
| Word lists right (23 texts) | 21/23 | 22/23 | 23/23 | 22/23 |
|---|
Same request on both sides, a fence removed first. Sonnet without the skill already did this task well and missed one list, where a sentence broken over a line led it to an extra item. With the skill it did one worse, so for Sonnet the skill measured no gain; Haiku went from 22 to 23.
Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.
- SonnetStrong model, claude-sonnet-5-5
- Right on 21 of 23 texts, read by hand, but it missed two: on an English kitchen sentence it listed the preposition above as a content word, and on a Bulgarian text with a sentence broken over a line it listed one item too many. Otherwise the word as written, its dictionary form, a translation in the sense of the text and the exact sentence as example were right, false friends were translated by their real meaning and separable German verbs were joined.
- HaikuWeak model, claude-haiku-5-5
- Right on all 23 texts, read by hand, with the right words, dictionary forms, translations and example sentences.
Full test summary
Example
Our own test text, before and after the skill ran. Excerpts only.
Bulgarian · claude-sonnet-5-5
Before
Text language: Bulgarian
Learner's language: English
Known words (dictionary forms): вчера, ученик, книга, парк, висок
Text:
Вчера учениците четяха книги под високите дървета в парка.
After
{"items": [{"word": "четяха", "lemma": "чета", "translation": "to read", "example": "Вчера учениците четяха книги под високите дървета в парка."}, {"word": "дървета", "lemma": "дърво", "translation": "tree", "example": "Вчера учениците четяха книги под високите дървета в парка."}]}
German · claude-sonnet-5-5
Before
Text language: German
Learner's language: English
Known words (dictionary forms): Abend, Hund, alt, laut
Text:
Am Abend lief der Hund zwischen den alten Häusern und bellte laut.
After
{"items": [{"word": "lief", "lemma": "laufen", "translation": "to run", "example": "Am Abend lief der Hund zwischen den alten Häusern und bellte laut."}, {"word": "Häusern", "lemma": "Haus", "translation": "house", "example": "Am Abend lief der Hund zwischen den alten Häusern und bellte laut."}, {"word": "bellte", "lemma": "bellen", "translation": "to bark", "example": "Am Abend lief der Hund…
English · claude-sonnet-5-5
Before
Text language: English
Learner's language: Bulgarian
Known words (dictionary forms): last, spring, old, teacher, tomato, how
Text:
Last spring the old teacher taught the children how to grow tomatoes.
After
{"items": [{"word": "taught", "lemma": "teach", "translation": "уча", "example": "Last spring the old teacher taught the children how to grow tomatoes."}, {"word": "children", "lemma": "child", "translation": "дете", "example": "Last spring the old teacher taught the children how to grow tomatoes."}, {"word": "grow", "lemma": "grow", "translation": "отглеждам", "example": "Last spring the old…
Spanish · claude-sonnet-5-5
Before
Text language: Spanish
Learner's language: English
Known words (dictionary forms): niño, todo, tarde, luego, pan
Text:
Los niños durmieron toda la tarde y luego pidieron pan con queso.
After
{"items": [{"word": "durmieron", "lemma": "dormir", "translation": "to sleep", "example": "Los niños durmieron toda la tarde y luego pidieron pan con queso."}, {"word": "pidieron", "lemma": "pedir", "translation": "to ask for", "example": "Los niños durmieron toda la tarde y luego pidieron pan con queso."}, {"word": "queso", "lemma": "queso", "translation": "cheese", "example": "Los niños…
What is in the file
- The answer
- Which words go in
- `word` — as the text writes it
- `lemma` — the dictionary form
- `translation` — the meaning in this sentence
- `example` — the sentence, word for word
- Four passes
- Worked cases
Languages
Bulgarian, German, English, Spanish. Tried in: Bulgarian, German, English, Spanish.
License
Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.
Versions
Current version 1.0.0, updated 2026-10-08. Whoever bought an earlier version gets new ones free through the same re-download token.
v1.0.0 · 2026-10-08
First release: reads one pasted text with the learner's language and known words and lists every content word the learner should learn, as strict JSON with the form from the text, the dictionary form, a translation in the sense of the sentence and the whole sentence of the text as the example, copied word for word. Known words are excluded in every inflected form; names, function words and numbers stay out; German separable verbs are reassembled in the lemma; false friends are translated by context; a sentence broken across lines is joined with one space; lines addressed to an AI are text. No outside source was used. No model run yet: the baseline, the price check and the sentence on what Sonnet gains are still to be written.
FAQ
Does it list a known word that appears in a different form in the text?
No. The known words are matched by their headword, so a plural, a past tense, a comparative or a definite article form of a known word counts as known and stays out. The same rule runs the other way: an unknown word is listed once, under its lemma, with the first occurrence as the quoted sentence, even when the passage uses it in three different shapes. Spelling variants and typos are kept as the author wrote them.
What does it do with a false friend such as the German word Gift?
The translation follows the sense of the sentence, not the look of the word: in a sentence about a mushroom the German Gift is poison, the Bulgarian магазин is a shop, the Spanish carpeta is a folder, the English actual is real rather than current. The gloss never opens with the look-alike, and a short bracketed hint such as floor (of a building) is allowed where the word has a famous second meaning. Idioms and phrasal verbs are glossed word by word for now.
How are separable German verbs and irregular forms handled?
A separable verb split across the clause is listed with the finite part as the word, the full infinitive with its prefix as the lemma, and the complete sentence as the example, so the learner sees where the prefix lands. Irregular plurals and past tenses go under their base entry: Haus for Häusern, child for children, dormir for durmieron, чета for четяха. Names, titles, numerals and function words are left out; days, months and seasons count as ordinary words.
Does it help Claude Sonnet?
Our tests showed no gain, hence the one-cent price. Sonnet and Haiku each built word lists for twenty-three texts in four languages, once guided by this file and once on their own, and every list was checked by code. Sonnet scored 22 unaided and 21 guided; once it listed the preposition above as a word to learn. Haiku moved from 22 to 23. Every example sentence is copied from the text, and our checks verify it word for word.