Agent skill

Fluent Sm2 Calculator

by m98 in m98/fluent

SM-2 spaced-repetition algorithm reference for the Fluent language learning system.

MITAuto-check passedEducation

Install Fluent Sm2 Calculator

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

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

GitHub CLI
$ gh skill install m98/fluent fluent-sm2-calculator --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-sm2-calculator .claude/skills/fluent-sm2-calculator && 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-sm2-calculator
GitHub stars
421
Token cost
~1.2k tokens
SKILL.md length
450 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

SM-2 spaced-repetition algorithm reference for the Fluent language learning system.

  • Works in 7 steps: Convert score to quality → Update interval → Update easiness factor → …
  • The tutor schedules the next review of a vocabulary item
  • SKILL.md covers Overview, When to Use, Instructions and Examples, plus 2 more sections
  • Calls python3

What it does

Fluent Sm2 Calculator is an agent skill from m98/fluent. SM-2 spaced-repetition algorithm reference for the Fluent language learning system. Use whenever the tutor schedules the next review of a vocabulary item, grammar rule, or error pattern — i.e. after every answered review question. Defines the 0-5 quality scale, interval formula, easiness-factor update, and mastery-level transitions that keep the spaced-repetition database correct.

Its SKILL.md is about 1.2k 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 Study guides and flashcards and 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

  • The tutor schedules the next review of a vocabulary item
  • Error pattern — i.e

Example prompts

  • “/fluent-sm2-calculator”

Requirements

  • Python 3

Workflow steps

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

  1. Convert score to quality
  2. Update interval
  3. Update easiness factor
  4. Update mastery level
  5. Update per-item fields
  6. Route to correct queue
  7. Preferred implementation

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 nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    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 Sm2 Calculator loads about 1.2k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 450 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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). 450 words, ~1,228 tokens.

Download SKILL.mdSave it as .claude/skills/fluent-sm2-calculator/SKILL.md (or your agent's skills folder).
name
fluent-sm2-calculator
description
SM-2 spaced-repetition algorithm reference for the Fluent language learning system. Use whenever the tutor schedules the next review of a vocabulary item, grammar rule, or error pattern — i.e. after every answered review question. Defines the 0-5 quality scale, interval formula, easiness-factor update, and mastery-level transitions that keep the spaced-repetition database correct.

SM-2 Calculator

Overview

Fluent uses SM-2 (SuperMemo 2) to decide when the learner next sees an item. This skill is the single source of truth for the algorithm. Every practice skill updates <data_dir>/spaced-repetition.json (where <data_dir> is resolved by fluent_paths.data_dir()) through these rules after each answered question.

When to Use

Load this skill whenever the tutor:

  • Grades a review-queue item and must compute its next due date.
  • Maps a 0-10 score to an SM-2 quality.
  • Updates easiness_factor, interval_days, repetitions, or mastery_level on a spaced-repetition item.
  • Decides which queue (today / tomorrow / this_week / later) to place an item in.

Skip this skill when the fluent-db-updater skill is already being used — the update-db.py script runs SM-2 internally.

Instructions

1. Convert score to quality
ScoreQualityMeaning
10/105Perfect, instant recall
8-94Correct after hesitation
6-73Correct with difficulty
4-52Incorrect but remembered when shown
2-31Incorrect, familiar
0-10Complete blackout

Rule: quality = floor(score / 2).

2. Update interval
if quality >= 3:   # correct
    if repetitions == 0:
        interval = 1
    elif repetitions == 1:
        interval = 6
    else:
        interval = round(previous_interval * easiness_factor)
    repetitions += 1
else:              # incorrect
    interval = 1
    repetitions = 0
3. Update easiness factor

Apply after every answer:

EF_new = EF + (0.1 - (5 - quality) * (0.08 + (5 - quality) * 0.02))
EF_new = max(1.3, EF_new)
4. Update mastery level

Track consecutive_correct and consecutive_incorrect per item:

if consecutive_correct >= 5:
    mastery_level = min(5, mastery_level + 1)
    consecutive_correct = 0
elif consecutive_incorrect >= 3:
    mastery_level = max(0, mastery_level - 1)
    consecutive_incorrect = 0
5. Update per-item fields

After each answer, the item in spaced-repetition.json must have:

  • easiness_factor — updated via formula
  • interval_days — new interval
  • repetitions — incremented or reset
  • consecutive_correct / consecutive_incorrect — one incremented, the other reset
  • total_reviews — incremented
  • mastery_level — possibly changed
  • due_date — today + interval_days (YYYY-MM-DD)
  • last_reviewed — today
6. Route to correct queue

After updating:

  • interval_days == 1 → review_queue.tomorrow
  • interval_days <= 7 → review_queue.this_week
  • interval_days > 7 → review_queue.later

If the learner got it wrong (quality < 3), keep the item in review_queue.today so it reappears in the same session.

Show full SKILL.md (195 more words)Show less
7. Preferred implementation

Do not hand-edit spaced-repetition.json. Call .claude/hooks/update-db.py with a review_results array — the script runs SM-2 atomically and rebuilds the queue. Only do manual math when the script is unavailable. See the fluent-db-updater skill for the payload schema.

bash
python3 "${CLAUDE_PLUGIN_ROOT:-${CLAUDE_PROJECT_DIR:-.}}/.claude/hooks/update-db.py" <<'EOF'
{
  "session_id": "session-NNN",
  "date": "YYYY-MM-DD",
  "review_results": [
    { "item_id": "vocab_huis", "quality": 4 }
  ]
}
EOF

Examples

See .claude/references/sm2-worked-examples.md for 4 worked examples covering: correct answer (regular case), wrong answer (reset + EF drop), 5th consecutive correct (mastery bump), 3rd consecutive wrong (mastery drop). Each example shows the full before/after state.

Quick version:

  • Correct, q=4: interval = round(prev * EF), repetitions += 1, EF barely moves.
  • Wrong, q<3: interval = 1, repetitions = 0, EF drops sharply, item stays in today's queue.

Critical Rules

  • Floor EF at 1.3. Never let the easiness factor drop lower — rounds to infinite daily reviews.
  • Reset repetitions on wrong answer. The item returns to the start of the learning sequence.
  • Do not hand-tune intervals. Trust the algorithm. Shortcuts break long-term retention.
  • Prefer update-db.py. Only reimplement this math when the script is unavailable.

Why This Matters

SM-2 reviews items just before the learner forgets them, maximizing long-term retention per minute of practice. Wrong scheduling means wasted reviews (too early) or forgotten items (too late). The whole Fluent system rests on these numbers being correct.

© 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-sm2-calculator of m98/fluent.

Open the folder on GitHubat commit 86fb80f

Compare with similar skills

Fluent Sm2 Calculator 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 Sm2 Calculator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fluent Sm2 Calculator this skillm98/fluent421—~1.2kAutomated safety check: PassMIT
Study Companion Enmingchen666/Reviva241—~5.7kAutomated safety check: PassNone
Language Learningsundial-org/awesome-openclaw-skills663—~2.7kAutomated safety check: PassNone
Deep Reading Analystginobefun/deep-reading-analyst-skill3534 repos~3.6kAutomated safety check: PassMIT
NihaishaJuneYaooo/nihaisha-nishi-tcm2.2k—~4kAutomated safety check: PassNone
Claude Certification Tutorrohitg00/ai-engineering-from-scratch66k—~3kAutomated safety check: PassMIT

Similar skills

  • 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…

    241 GitHub stars~5.7k tokensUpdated 18 days ago
    EducationAuto-check passed
  • Language Learning

    sundial-org/awesome-openclaw-skills

    AI language tutor for learning ANY language through conversation, vocab drills, grammar lessons, flashcards, and immersive practice.

    663 GitHub stars~2.7k tokensUpdated 7 mo ago
    EducationAuto-check passed
  • Deep Reading Analyst

    ginobefun/deep-reading-analyst-skill

    Comprehensive framework for deep analysis of articles, papers, and long-form content using 10+ thinking models (SCQA, 5W2H, critical thinking, inversion, mental models, first principles, systems…

    353 GitHub starsUsed in 4 repos~3.6k tokens
    EducationAuto-check passed
  • Nihaisha

    JuneYaooo/nihaisha-nishi-tcm

    A skill your agent uses when the user asks about Ni Haisha / 倪海厦 TCM course material, especially Shang Han Lun / 伤寒论, Jingui / 金匮要略, Zhongjing Xinfa / 仲景心法, clinical cases / 临床案例 / 倪师医案, Bagang…

    2.2k GitHub stars~4k tokensUpdated 23 days ago
    EducationAuto-check passed
  • Claude Certification Tutor

    rohitg00/ai-engineering-from-scratch

    Guides a learner through one of four independent Claude certification tracks with onboarding, lessons, practice labs, mock exams and remediation.

    66k GitHub stars~3k tokensUpdated today
    EducationAuto-check passed
  • StudyVault Quiz Tutor

    bevibing/tutor-skills

    Quizzes you on the notes in an Obsidian StudyVault, tracks proficiency per concept and drills weak areas in four-question rounds.

    1.3k GitHub stars~1.4k tokensUpdated 7 mo 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.

    421 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.

    421 GitHub stars~1.3k 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…

    421 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…

    421 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.

    421 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.

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

Categories

Questions about Fluent Sm2 Calculator

What does Fluent Sm2 Calculator do?

SM-2 spaced-repetition algorithm reference for the Fluent language learning system. Fluent Sm2 Calculator is an agent skill from m98/fluent. SM-2 spaced-repetition algorithm reference for the Fluent language learning system.

When should I use Fluent Sm2 Calculator?

Fluent Sm2 Calculator fits situations like: the tutor schedules the next review of a vocabulary item; error pattern — i.e.

How do I install Fluent Sm2 Calculator in Claude Code?

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

How do I install Fluent Sm2 Calculator in Codex?

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

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

What does Fluent Sm2 Calculator need to run?

Going by SKILL.md and its folder, Fluent Sm2 Calculator needs the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Fluent Sm2 Calculator 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 Sm2 Calculator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Fluent Sm2 Calculator use?

Fluent Sm2 Calculator 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 Sm2 Calculator use?

About 1.2k tokens (SKILL.md is roughly 4.9k 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 Sm2 Calculator?

Skills that share tags, products or a category with Fluent Sm2 Calculator: Study Companion En (mingchen666/Reviva, 241 stars), Language Learning (sundial-org/awesome-openclaw-skills, 663 stars), Deep Reading Analyst (ginobefun/deep-reading-analyst-skill, 353 stars) and Nihaisha (JuneYaooo/nihaisha-nishi-tcm, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fluent Sm2 Calculator?

m98 (a GitHub user) maintains it in m98/fluent, which has 421 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.