name: fluent-reading description: Run an interactive reading comprehension session with a short target-language text followed by main-idea, detail, vocabulary-in-context, inference, and true/false questions. Triggered only when the learner types /fluent-reading. Presents the text, waits for the learner to read, then asks questions one at a time with immediate feedback, and optionally adds new vocabulary to the spaced-repetition queue. allowed-tools: Read, Write, Bash disable-model-invocation: true
Reading Comprehension Session
Overview
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.
When to Use
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.
Instructions
1. Load context
python3 "${CLAUDE_PLUGIN_ROOT:-${CLAUDE_PROJECT_DIR:-.}}/.claude/hooks/read-db.py"
Need: learner-profile (level, target language, interests), mastery-db.skills_mastery.reading.
2. Opening
# 👀 {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!** 📖
3. Pick text type + length
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.
4. Present the text
## 📄 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"**.
5. Question sequence (one at a time)
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:**
6. Feedback per question
{✅ or ❌}
**Answer:** {correct_answer}
**Explanation:** {why — reference the text}
{If incorrect: **The text says:** "{relevant_quote}"}
**Score: {X}/10**
---
7. Vocabulary review
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.
8. Session summary
## 📊 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}!** 📖✨
9. Update all databases
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 (categorycomprehension,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.
Examples
Example 1 — personal email text (Dutch A2)
📄 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".
Example 2 — main-idea question on the above
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
Critical Rules
- Wait for "ready" before asking the first question. Rushing the reading step defeats the purpose.
- One question at a time. Multiple at once invites skimming.
- Ask questions in the target language (at least from A2 up). Reading-comprehension checks should happen in the same language as the text.
- Quote the text in explanations so the learner can trace the answer back to the source.
- Vocabulary opt-in. Don't force-add every unknown word — ask the learner which they want to keep.
- Never auto-invoke. Gated; must fire only on explicit
/fluent-reading.
Sample Text Bank (Dutch A2)
Advertisement
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.