From fluent
Runs interactive reading comprehension sessions for language learners with target-language texts and comprehension questions. Invoked via /fluent-reading command.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fluent:fluent-readingThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Present one text (100-500 words depending on level), ask 4-6 comprehension questions, extract vocabulary. Builds passive-to-active bridge: learners decode target-language writing, then answer questions that force recall.
Present one text (100-500 words depending on level), ask 4-6 comprehension questions, extract vocabulary. Builds passive-to-active bridge: learners decode target-language writing, then answer questions that force recall.
Trigger this skill only when the learner types /fluent-reading. The skill is gated with disable-model-invocation: true — 15-20 min interactive session with DB writes should never start from an ambiguous prompt.
Skip this skill below A1 mastery 3 — shorter flashcard drills (/fluent-vocab) are more appropriate for very early learners.
python3 "${CLAUDE_PLUGIN_ROOT:-${CLAUDE_PROJECT_DIR:-.}}/.claude/hooks/read-db.py"
Need: learner-profile (level, target language, interests), mastery-db.skills_mastery.reading.
# 👀 {target_language} Reading Practice
Hallo {name}!
Today we're practicing **reading comprehension**. I'll show you a short {target_language} text, then ask you questions about it.
**Focus:** main ideas, details, vocabulary in context
**Level:** {CEFR}
**Duration:** 15-20 min
**Tips:**
- Read the whole text first
- Don't translate every word — get the gist
- Use context clues for unknown words
- Read the questions before rereading the text
**Ready? Let's read!** 📖
A2 types (100-200 words): personal email, short news, advertisement, instructions, simple story, blog post, social media post, info leaflet.
B1 (200-350 words): opinion pieces, longer narratives, structured guides.
B2+ (350-500): editorials, technical explanations, interviews.
Match the topic to learner-profile.focus_areas when possible.
## 📄 Reading Text {N}
**Topic:** {topic}
**Type:** {text_type}
**Length:** ~{word_count} words
---
{target-language text — clean formatting, no inline translation}
---
Take your time. When you're done, type **"ready"**.
Rotate across these types:
Main idea:
## Vraag 1: Hoofdidee (main idea)
{question in target language}
a) {option 1}
b) {option 2}
c) {option 3}
**Type a, b, or c:**
Details:
## Vraag 2: Details
{specific question about the text}
**Type your answer:**
Vocabulary in context:
## Vraag 3: Vocabulaire
In the text it says "{word/phrase}". What does this mean?
a) {meaning 1}
b) {meaning 2}
c) {meaning 3}
Inference:
## Vraag 4: Begrijpen
{question requiring inference — not directly stated}
**Answer in {target language}:**
True / false:
## Vraag 5: Waar of niet waar?
{statement}
**Type your answer:**
{✅ or ❌}
**Answer:** {correct_answer}
**Explanation:** {why — reference the text}
{If incorrect: **The text says:** "{relevant_quote}"}
**Score: {X}/10**
---
After the questions:
## 📚 New Vocabulary from the Text
| {target_language} | {native_language} | Example from text |
|-------|---------|-------------------|
| {word 1} | {meaning} | "{sentence}" |
| {word 2} | {meaning} | "{sentence}" |
**Save these for future review?** (They'll enter spaced repetition.)
Type "yes" to add, "no" to skip.
If yes, stage each word for new_vocabulary[] in the end-of-session DB update.
## 📊 Reading Session Complete!
**Text:** {title/topic}
**Length:** {words} words
**Questions:** {N}
**Accuracy:** {percent}%
### Comprehension Breakdown
- Main idea: {✅ or ❌}
- Details: {score}
- Vocabulary: {score}
- Inference: {score}
### New Words Added: {count}
{list}
### For Next Time
- {suggestion based on which question type was weakest}
**{target-language well done}!** 📖✨
Use the fluent-db-updater skill:
command_used: "/fluent-reading", skills_practiced: ["reading"]skill_scores.reading: {exercises: N, correct: count_right, time_minutes}errors[] — per question-type weakness (category comprehension, vocabulary, inference)new_vocabulary[] — words the learner chose to savefocus_next_session[]Save to /results/fluent-reading-session-{NNN}.md — include the full text + Q&A for later analysis.
📄 Reading Text 1
Topic: Making weekend plans Type: Personal email Length: ~75 words
Beste Mohammad,
Bedankt voor je email! Leuk dat je naar Amsterdam komt volgende maand. Ik heb tijd op zaterdag 15 maart. Zullen we om 14:00 uur afspreken bij het Centraal Station? We kunnen naar een café gaan en daarna door de stad wandelen.
Het weer is meestal koud in maart, dus neem een warme jas mee! Ik verheug me erop om je te zien.
Groetjes, Lisa
Take your time. When you're done, type "ready".
Vraag 1: Hoofdidee
Waar gaat deze email over?
a) Lisa is op vakantie in Iran. b) Lisa en Mohammad maken plannen voor een ontmoeting. c) Lisa vraagt naar het weer.
Learner: "b"
✅ Correct!
Answer: b) Lisa en Mohammad maken plannen voor een ontmoeting.
Explanation: The email's core is the meetup plan — date, time, place, and activity. The weather is a secondary detail.
Score: 10/10
/fluent-reading.CURSUS NEDERLANDS VOOR BEGINNERS
Wil je Nederlands leren? Start deze maand nog!
- Kleine groepen (max 8 personen)
- Ervaren docenten
- 2x per week, 's avonds
- Locatie: Centrum Amsterdam
- Prijs: €150 per maand
Aanmelden kan via email: info@nederlandscursus.nl
Bel voor meer informatie: 020-123-4567
Eerste les gratis!
Keep a small bank per target language — don't reuse the same text in consecutive sessions.
npx claudepluginhub m98/fluent --plugin fluentAccelerates language acquisition by selecting and consuming target-language content at i+1 (just above current level) through structured exposure. Useful for learners building reading and listening skills.
Shows language learning progress, statistics, mastery levels, streak, and achievements. Useful when learners ask about their stats or dashboard.
Tiers vocabulary from a text or topic into everyday, academic, and technical categories with teaching priorities. Use when pre-teaching vocabulary or identifying language barriers.