Agent skill

Fluent Progress

by m98 in m98/fluent

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

MITAuto-check: notesEducation

Install Fluent Progress

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

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

GitHub CLI
$ gh skill install m98/fluent fluent-progress --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-progress .claude/skills/fluent-progress && 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-progress
GitHub stars
420
Token cost
~1.5k tokens
SKILL.md length
403 words
Files
2
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

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

  • Works in 3 steps: Load all 6 databases → Generate the report → Optional interpretation footer
  • The learner asks how am I doing
  • SKILL.md covers Overview, When to Use, Instructions and Examples, plus 2 more sections
  • Calls python3

What it does

Fluent Progress is an agent skill from m98/fluent. Show the learner's language learning progress, statistics, mastery levels, streak, and achievements. Use when the learner asks "how am I doing", "show my progress", "stats", "dashboard", "what's my streak", "how many words have I learned", or invokes /fluent-progress. Read-only — safe to auto-invoke.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/evals.json`).

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

When your agent uses it

  • The learner asks how am I doing
  • Show my progress
  • Whats my streak
  • How many words have I learned

Example prompts

  • “how am I doing”
  • “show my progress”
  • “dashboard”
  • “/fluent-progress”

Requirements

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

Workflow steps

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

  1. Load all 6 databases
  2. Generate the report
  3. Optional interpretation footer

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
    • 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 Progress loads about 1.5k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 403 words of instructions outside code blocks.

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

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, 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). 403 words, ~1,548 tokens.

Download SKILL.mdSave it as .claude/skills/fluent-progress/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
fluent-progress
description
Show the learner's language learning progress, statistics, mastery levels, streak, and achievements. Use when the learner asks "how am I doing", "show my progress", "stats", "dashboard", "what's my streak", "how many words have I learned", or invokes /fluent-progress. Read-only — safe to auto-invoke.
allowed-tools
Read, Bash

Progress Dashboard

Overview

Show the learner a comprehensive, personalized progress report with visual statistics, skill mastery levels, trends, and next goals. This is read-only: do not modify any database files.

When to Use

Trigger this skill when:

  • Learner types /fluent-progress.
  • Learner asks about their progress, statistics, streak, mastery, achievements, or how they're improving.
  • Learner asks "how am I doing", "show me my stats", "am I getting better".
  • After a session ends, if the learner wants a broader view than the session summary.

Skip this skill when the learner is mid-practice — the ongoing session skill already shows per-turn feedback, and opening the full dashboard interrupts the flow.

Instructions

1. Load all 6 databases

Prefer the helper script over manual Read calls:

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

This returns a single JSON with all 6 databases + computed fields (due_reviews_count, next_session_id, streak_active, days_since_last_session).

If the helper is unavailable, fall back to reading each file directly. Resolve the data directory via fluent_paths.data_dir() first — do NOT hardcode data/ (plugin installs store data under ~/.claude/fluent-data/):

  • <data_dir>/learner-profile.json
  • <data_dir>/progress-db.json
  • <data_dir>/mastery-db.json
  • <data_dir>/mistakes-db.json
  • <data_dir>/spaced-repetition.json
  • <data_dir>/session-log.json

If any are missing, point the learner at /fluent-setup and stop.

2. Generate the report

Use this exact structure. Fill in values from the databases; compute percentages and progress bars yourself.

markdown
# 📊 {learner_name}'s {target_language} Learning Dashboard

**Last Updated:** {today}

---

## 🎯 Overview

**Current Level:** {current_level}
**Target Level:** {target_level}
**Progress to {next_level}:** {progress_bar} {percentage}%

**Days Studying:** {total_days}
**Current Streak:** 🔥 {streak_days} {day_or_days} {streak_message}
**Total Sessions:** {total_sessions}
**Total Study Time:** {total_minutes} minutes ({hours} hours)

---

## 💪 Skills Mastery

### Writing ✍️
**Level:** {n}/5 {stars}
**Accuracy:** {percent}%
**Progress:** {progress_bar}
**Last Practiced:** {date_or_never}

### Speaking 🗣️
**Level:** {n}/5 {stars}
**Accuracy:** {percent}%
**Progress:** {progress_bar}
**Last Practiced:** {date_or_never}

### Vocabulary 📚
**Level:** {n}/5 {stars}
**Words Known:** {count}
**Words Mastered:** {count}
**Progress:** {progress_bar}
**Last Practiced:** {date_or_never}

### Reading 👀
**Level:** {n}/5 {stars}
**Comprehension:** {percent}%
**Progress:** {progress_bar}
**Last Practiced:** {date_or_never}

---

## 📈 Progress Trends

### Accuracy Over Time
{generate ASCII chart from progress-db weekly_summary}

### This Week's Summary
- **Sessions:** {count}
- **Minutes:** {total}
- **Exercises:** {count}
- **Accuracy:** {percent}%
- **Skills Practiced:** {list}

---

## 🎯 Focus Areas

### 🔴 Critical (Needs Urgent Attention)
{patterns from mistakes-db with mastery 0-1 and high frequency}

### 🟡 Working On (Making Progress)
{patterns from mistakes-db with mastery 2-3}

### 🟢 Strong (Almost Mastered)
{patterns from mistakes-db with mastery 4-5}

---

## 🔄 Spaced Repetition Status

**Items Due Today:** {count}
**Items Due This Week:** {count}
**Items Mastered:** {count}

---

## 🏆 Achievements Unlocked

{list from learner-profile → achievements, show locked ones with 🔒}

---

## 📅 Session History

| Date | Duration | Skill | Accuracy |
|------|----------|-------|----------|
{most recent 5-10 sessions from session-log}

---

## 🎯 Next Goals

**Short-term (This Week):**
{derive from weak patterns + due reviews}

**Medium-term (This Month):**
{derive from skill mastery gaps}

**Long-term:**
{derive from target level gap}

---

## 💡 Recommendations

1. {top weak area from mistakes-db}
2. {skill not practiced recently}
3. {due review count if > 0}

---

"{personalized motivational message}"

Append this only if the learner seems new or asks what the numbers mean:

markdown
## 📖 How to Read Your Stats

**Mastery Levels:**
- ⭐☆☆☆☆ (1/5): Just started
- ⭐⭐☆☆☆ (2/5): Learning
- ⭐⭐⭐☆☆ (3/5): Good
- ⭐⭐⭐⭐☆ (4/5): Strong
- ⭐⭐⭐⭐⭐ (5/5): Mastered

**Accuracy bands:** 0-40% intensive, 40-60% learning, 60-75% good, 75-85% strong, 85%+ excellent.

Examples

Show full SKILL.md (183 more words)Show less
Example 1 — minimal (A1 learner, week 1)

📊 Mohammad's Dutch Learning Dashboard

Current Level: A1 → A2 (4% to A2) Current Streak: 🔥 3 days Total Sessions: 3 · 45 min

Vocabulary 📚

Level: 1/5 ⭐☆☆☆☆ · 12 words known · 0 mastered

Speaking / Writing / Reading: Not yet practiced.

Items Due Today: 6 — run /fluent-review first.

"Three days in a row — momentum matters. Keep going!"

Example 2 — trigger on natural-language question

Learner: "how am I doing on Dutch?" → auto-invoke this skill, render the full dashboard.

Critical Rules

  • Read-only. Never call update-db.py or edit any JSON in data/.
  • Use the current streak value from learner-profile.json. Never guess or increment.
  • Use day vs days correctly (1 = day, else days).
  • Skip sections with no data. If speaking hasn't been practiced, show "Not yet practiced" — don't fabricate numbers.
  • Cite the learner by name from learner-profile.json.
  • Use target-language greetings where natural (e.g. "Goed gedaan!" for Dutch).

Why This Skill Auto-Invokes

Unlike session commands, this is a pure read. A false-positive (Claude opens the dashboard when the learner asked something else) costs only a few tokens — no DB corruption, no interrupted practice. Worth the lower trigger bar.

© 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

SKILL.md and 1 other file in .claude/skills/fluent-progress of m98/fluent.

  • SKILL.md
  • evals/evals.json

Open the folder on GitHubat commit 86fb80f

Compare with similar skills

Fluent Progress 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 Progress compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fluent Progress this skillm98/fluent420—~1.5kAutomated safety check: NotesMIT
Learn Statsevolution-foundation/evo-nexus544—~645Automated safety check: PassCustom licence
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

Similar skills

  • Learn Stats

    evolution-foundation/evo-nexus

    Report spaced-repetition statistics: total facts, overdue count, retention rate, active decks, and facts added this week.

    544 GitHub stars~645 tokensUpdated 4 mo ago
    EducationAuto-check passed
  • 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 3 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
  • Create Skill Test

    dotnet/skills

    Official

    Scaffolds eval.yaml evaluation specs for agent skills in the dotnet/skills repository.

    5.6k GitHub starsUsed in 1 repo~5.7k tokens
    EducationAuto-check passed

More from m98/fluent

All 12 skills in this repo
  • 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 Learn

    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.

    420 GitHub stars~1.8k tokensUpdated 3 mo ago
    Auto-check: notes
  • 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

Questions about Fluent Progress

What does Fluent Progress do?

Show the learner's language learning progress, statistics, mastery levels, streak, and achievements. Fluent Progress is an agent skill from m98/fluent. Show the learner's language learning progress, statistics, mastery levels, streak, and achievements.

When should I use Fluent Progress?

Fluent Progress fits situations like: the learner asks how am I doing; show my progress; whats my streak; how many words have I learned.

How do I install Fluent Progress in Claude Code?

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

How do I install Fluent Progress in Codex?

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

Can I use Fluent Progress 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-progress -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-progress, .gemini/skills/fluent-progress, .github/skills/fluent-progress and .opencode/skills/fluent-progress in your project.

What does Fluent Progress need to run?

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

Does Fluent Progress 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 Progress 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 Progress use?

Fluent Progress 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 Progress use?

About 1.5k tokens (SKILL.md is roughly 6.2k 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 Progress?

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

Who maintains Fluent Progress?

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.