Agent skill

Fluent Learn

by m98 in m98/fluent

Main adaptive language-learning session that mixes skills (writing, speaking, vocabulary, reading) and exercise types based on the learner's current level, weak patterns, and due reviews.

MITAuto-check: notesEducation

Install Fluent Learn

skills CLI
$ npx skills add m98/fluent --skill fluent-learn -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install m98/fluent fluent-learn --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/m98/fluent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/fluent-learn .claude/skills/fluent-learn && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
fluent-learn
GitHub stars
420
Token cost
~1.8k tokens
SKILL.md length
622 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

Main adaptive language-learning session that mixes skills (writing, speaking, vocabulary, reading) and exercise types based on the learner's current level, weak patterns, and due reviews.

  • Works in 9 steps: Load learner context → Analyze today's plan → Greet → …
  • Tasks that involve Language learning
  • SKILL.md covers Overview, When to Use, Instructions and Examples, plus 2 more sections
  • Calls python3

What it does

Fluent Learn is an agent skill from m98/fluent. Main adaptive language-learning session that mixes skills (writing, speaking, vocabulary, reading) and exercise types based on the learner's current level, weak patterns, and due reviews. Triggered only when the learner types /fluent-learn. Greets the learner, shows today's plan, asks what to practice, runs interleaved exercises one at a time, and updates all databases at the end.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Education, covering Language learning. The repository describes itself as: The AI Language Learning Kit for Claude Code and others. The licence is MIT.

When your agent uses it

  • Tasks that involve Language learning

Example prompts

  • “/fluent-learn”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Read, Write, Bash

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Load learner context
  2. Analyze today's plan
  3. Greet
  4. Route
  5. Adaptive mix (option 6)
  6. Adaptive difficulty
  7. Exercise types by skill
  8. Per-answer feedback
  9. Session end

What it can do on your machine

Read from SKILL.md and the folder at commit 86fb80f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Fluent Learn loads about 1.8k tokens when it runs. Until then it costs about 99 tokens; SKILL.md has 622 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~99
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from m98/fluent at commit 86fb80f, republished under its MIT licence (© m98). 622 words, ~1,765 tokens.

Download SKILL.mdSave it as .claude/skills/fluent-learn/SKILL.md (or your agent's skills folder).
name
fluent-learn
description
Main adaptive language-learning session that mixes skills (writing, speaking, vocabulary, reading) and exercise types based on the learner's current level, weak patterns, and due reviews. Triggered only when the learner types /fluent-learn. Greets the learner, shows today's plan, asks what to practice, runs interleaved exercises one at a time, and updates all databases at the end.
allowed-tools
Read, Write, Bash
disable-model-invocation
true

Main Adaptive Learning Session

Overview

The flagship command. Interleaves skills, adapts difficulty per answer, and covers the whole evidence-based loop: active recall → immediate feedback → spaced repetition → tracking. Typically runs 15-20 min, mixing 2-3 patterns to force discrimination.

When to Use

Trigger this skill only when the learner types /fluent-learn. The skill is gated with disable-model-invocation: true — an ambiguous auto-trigger would launch a 20-min interactive session and mutate 6 JSON databases.

Skip this skill the very first time a learner runs the system — route to /fluent-setup instead.

Instructions

1. Load learner context
bash
python3 "${CLAUDE_PLUGIN_ROOT:-${CLAUDE_PROJECT_DIR:-.}}/.claude/hooks/read-db.py"

Need all 6 DBs. If any missing, direct the learner to /fluent-setup and stop.

2. Analyze today's plan
  • Streak: learner-profile.current_streak_days
  • Due reviews: computed.due_reviews_count
  • Weak patterns: mistakes-db.error_patterns where mastery_level <= 2 (descending by frequency)
  • Recent performance: progress-db.weekly_summary
  • Skills not practiced recently: check mastery-db.skills_mastery.{skill}.last_practiced
3. Greet
markdown
# {greeting in target language}, {name}! 👋

**Today's Status:**
- 🔥 Streak: {X} {day/days}
- 📚 Review items due: {Y}
- 🎯 Focus area: {weakest skill or top weak pattern}
- ⭐ Level: {current} → {target} ({progress}%)

**What would you like to practice today?**

1. 📝 Writing (emails, letters, forms)
2. 🗣️ Speaking (typed conversation)
3. 📖 Vocabulary (flashcard drills)
4. 👀 Reading (comprehension)
5. 🔄 Spaced Review (today's due items)
6. 🎲 Surprise me! (adaptive mix)

**Type a number or skill name:**
4. Route
  • 1-5 → hand off to the matching skill (fluent-writing, fluent-speaking, fluent-vocab, fluent-reading, fluent-review). Those skills cover everything needed; this skill's job here is just to dispatch.
  • 6 (adaptive mix) → use this skill's own exercise sequencer (below).
5. Adaptive mix (option 6)

Plan a 20-min session:

  1. Warm-up (3 min) — easy vocabulary recognition on already-strong words. Builds confidence.
  2. Targeted drill 1 (7 min) — top weak pattern. 3-4 isolated exercises + 1 application.
  3. Targeted drill 2 (5 min) — second weak pattern. Same structure.
  4. Integration (5 min) — short writing or speaking task that forces both patterns together.

Run one exercise at a time with immediate feedback via fluent-feedback-formatter.

Use fluent-session-analyzer to choose which patterns to target.

6. Adaptive difficulty

After every 3-4 exercises, check rolling accuracy:

  • <50% → drop difficulty (smaller chunks, more scaffolding, offer hints)
  • 50-70% → hold — this is the target zone
  • >70% → raise difficulty (longer sentences, less scaffolding, rarer vocabulary)

Formula reference:

if mastery_level <= 1:
    difficulty = "easy"
elif mastery_level == 2:
    difficulty = "medium" if recent_accuracy > 0.60 else "easy"
elif mastery_level == 3:
    difficulty = "medium" if recent_accuracy > 0.70 else "medium"
elif mastery_level >= 4:
    difficulty = "hard" if recent_accuracy > 0.80 else "medium"
7. Exercise types by skill

Writing: sentence completion, translation, error correction, full email, reordering.

Speaking: personal Qs, picture description, role-play, phonetic typing.

Vocabulary: recognition, production, cloze, associations, synonym matching.

Reading: short text + comprehension, cloze paragraph, true/false, summarization.

8. Per-answer feedback

Use fluent-feedback-formatter template. Score 0-10 + severity tag. Stage for end-of-session update.

Also prompt the learner to retype the correct form after a critical mistake — motor memory helps:

markdown
Now type the correct version yourself: "{correct_sentence}"
9. Session end
markdown
## 🎉 Session Complete!

**Today's Stats:**
- ⏱️ Duration: {X} min
- ✅ Exercises: {Y}
- 📊 Accuracy: {Z}%
- 📈 Improvement: +{N}% from start

**Breakthroughs:** ✨
- {what mastered or improved}

**Next Time Focus:**
- {what to practice next}

**Streak:** 🔥 {X} {day/days}! {motivational line}

{goodbye in target language}! 👏

Then use the fluent-db-updater skill:

  • command_used: "/fluent-learn"
  • skills_practiced: [all skills touched]
  • skill_scores per skill
  • errors[], new_vocabulary[], review_results[]
  • breakthroughs[], focus_next_session[], session_notes

Save exchange to /results/fluent-learn-session-{NNN}.md.

Show full SKILL.md (241 more words)Show less

Examples

Example 1 — greeting for an active learner

Goedemorgen, Mohammad! 👋

Today's Status:

  • 🔥 Streak: 6 days
  • 📚 Review items due: 6
  • 🎯 Focus area: formal_informal confusion (5 total occurrences)
  • ⭐ Level: A1 → A2 (38%)

What would you like to practice today?

  1. 📝 Writing (emails, letters, forms)
  2. 🗣️ Speaking (typed conversation)
  3. 📖 Vocabulary (flashcard drills)
  4. 👀 Reading (comprehension)
  5. 🔄 Spaced Review (today's due items)
  6. 🎲 Surprise me! (adaptive mix)

Type a number or skill name:

Example 2 — adaptive mix mid-session

After 4 exercises, accuracy is 55% (target zone). Hold difficulty; introduce pattern #2:

Nice — you're right in the sweet spot. Let's switch patterns now.

Exercise 5: omdat word order

Rewrite this correctly: "omdat ik ben te laat"

Type your answer:

Critical Rules

  • Never auto-invoke. Gated; 15-20 min interactive + DB writes.
  • Always load all 6 DBs at start. Missing context → generic, demotivating content.
  • One exercise at a time.
  • Interleave. Don't drill one pattern for 20 min — mix 2-3 patterns to force discrimination.
  • Use the helper skills (fluent-sm2-calculator, fluent-feedback-formatter, fluent-db-updater, fluent-session-analyzer) — don't reimplement.
  • Use the learner's name + target-language greetings throughout.
  • Celebrate progress. If mistakes-db shows a pattern dropping in frequency, call it out: "You fixed the omdat word order that tripped you up last time — nice."

Personality Notes

  • Encouraging — celebrate small wins, be gentle with mistakes.
  • Systematic — track everything, quantify progress.
  • Fun — emojis, gamification, mini-celebrations on streaks/milestones.
  • Patient — one question at a time.
  • Expert — explain why, not just what.
  • Adaptive — adjust to the learner's performance in real time.

© m98, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/fluent-learn of m98/fluent.

Open the folder on GitHubat commit 86fb80f

Compare with similar skills

Fluent Learn next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Fluent Learn compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fluent Learn this skillm98/fluent420—~1.8kAutomated safety check: NotesMIT
Pronunciation Specialistbitwize-music-studio/claude-ai-music-skills5361 repos~2.3kAutomated safety check: PassCC0-1.0
Duolingo Playpockebot/openpocket847—~1.1kAutomated safety check: PassMIT
Study Companion Enmingchen666/Reviva236—~5.7kAutomated safety check: PassNone
Adult Language Learninghezkvectory/hermes-edu-skills106—~737Automated safety check: PassMIT
Pre Generation Checkbitwize-music-studio/claude-ai-music-skills536—~2.1kAutomated safety check: PassCC0-1.0

Similar skills

  • Pronunciation Specialist

    bitwize-music-studio/claude-ai-music-skills

    Scans lyrics for pronunciation risks and prevents Suno mispronunciations.

    536 GitHub starsUsed in 1 repo~2.3k tokens
    EducationAuto-check passed
  • Duolingo Play

    pockebot/openpocket

    Help users complete Duolingo language lessons. An agent skill from pockebot/openpocket.

    847 GitHub stars~1.1k tokensUpdated 2 mo ago
    EducationAuto-check passed
  • Study Companion En

    mingchen666/Reviva

    General study companion for learning, review, exam prep, exam-point analysis, syllabus/exam-outline interpretation, finals speedrun teaching, concept explanation, problem solving, homework coaching…

    236 GitHub stars~5.7k tokensUpdated 16 days ago
    EducationAuto-check passed
  • Adult Language Learning

    hezkvectory/hermes-edu-skills

    把成人语言学习从收藏资料变成真实场景输入、主动输出、纠错和复现。核心不是再推荐一堆资料,而是让用户今天能完成一个可检查的小成果。

    106 GitHub stars~737 tokensUpdated 4 mo ago
    EducationAuto-check passed
  • Pre Generation Check

    bitwize-music-studio/claude-ai-music-skills

    Validates all pre-generation gates before sending tracks to Suno.

    536 GitHub stars~2.1k tokensUpdated 13 days ago
    EducationAuto-check passed
  • Lyric Reviewer

    bitwize-music-studio/claude-ai-music-skills

    Reviews lyrics against a quality checklist before Suno generation.

    536 GitHub stars~2.8k tokensUpdated 13 days ago
    EducationAuto-check passed

More from m98/fluent

All 12 skills in this repo
  • Fluent Progress

    m98/fluent

    Show the learner's language learning progress, statistics, mastery levels, streak, and achievements.

    420 GitHub stars~1.5k tokensUpdated 3 mo ago
    Auto-check: notes
  • Parse Fluent /results/.md session files to extract error patterns, strengths, accuracy trends, and focus areas for the next session.

    420 GitHub stars~1.3k tokensUpdated 3 mo ago
    Auto-check passed
  • SM-2 spaced-repetition algorithm reference for the Fluent language learning system.

    420 GitHub stars~1.2k tokensUpdated 3 mo ago
    Auto-check passed
  • Atomically update all 6 Fluent learner databases (learner-profile, progress, mistakes, mastery, spaced-repetition, session-log) at session end by calling .claude/hooks/update-db.py with a single…

    420 GitHub stars~1.6k tokensUpdated 3 mo ago
    Auto-check passed
  • Canonical feedback template for every learner answer in the Fluent system — celebrate correct parts, correct mistakes with category and brief explanation, show the full correct version, score out of…

    420 GitHub stars~1.2k tokensUpdated 3 mo ago
    Auto-check passed
  • Fluent Reading

    m98/fluent

    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.

    420 GitHub stars~1.8k tokensUpdated 3 mo ago
    Auto-check: notes

Categories

Questions about Fluent Learn

What does Fluent Learn do?

Main adaptive language-learning session that mixes skills (writing, speaking, vocabulary, reading) and exercise types based on the learner's current level, weak patterns, and due reviews. Fluent Learn is an agent skill from m98/fluent. Main adaptive language-learning session that mixes skills (writing, speaking, vocabulary, reading) and exercise types based on the learner's current level, weak patterns, and due reviews.

When should I use Fluent Learn?

Fluent Learn fits situations like: tasks that involve Language learning.

How do I install Fluent Learn in Claude Code?

Run `npx skills add m98/fluent --skill fluent-learn -a claude-code`. Or copy the skill folder (.claude/skills/fluent-learn in m98/fluent) into .claude/skills/fluent-learn in your project. Claude Code loads it when a task matches its description.

How do I install Fluent Learn in Codex?

Run `npx skills add m98/fluent --skill fluent-learn -a codex`. Or copy the skill folder (.claude/skills/fluent-learn in m98/fluent) into .agents/skills/fluent-learn in your project. Codex loads it when a task matches its description.

Can I use Fluent Learn in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add m98/fluent --skill fluent-learn -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fluent-learn, .gemini/skills/fluent-learn, .github/skills/fluent-learn and .opencode/skills/fluent-learn in your project.

What does Fluent Learn need to run?

Going by SKILL.md and its folder, Fluent Learn needs the command-line tools its instructions call (python3). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Bash.

Does Fluent Learn access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Fluent Learn safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Fluent Learn use?

Fluent Learn is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fluent Learn use?

About 1.8k tokens (SKILL.md is roughly 7.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Fluent Learn?

Skills that share tags, products or a category with Fluent Learn: Pronunciation Specialist (bitwize-music-studio/claude-ai-music-skills, 536 stars), Duolingo Play (pockebot/openpocket, 847 stars), Study Companion En (mingchen666/Reviva, 236 stars) and Adult Language Learning (hezkvectory/hermes-edu-skills, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fluent Learn?

m98 (a GitHub user) maintains it in m98/fluent, which has 420 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on June 15, 2026.

Source: m98/fluent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.