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…
SM-2 spaced-repetition algorithm reference for the Fluent language learning system.
$ npx skills add m98/fluent --skill fluent-sm2-calculator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install m98/fluent fluent-sm2-calculator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "fluent-sm2-calculator" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-sm2-calculator into .claude/skills/fluent-sm2-calculator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-sm2-calculator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/m98/fluent/tree/main/.claude/skills/fluent-sm2-calculatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add m98/fluent --skill fluent-sm2-calculator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install m98/fluent fluent-sm2-calculator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/m98/fluent.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/fluent-sm2-calculator .agents/skills/fluent-sm2-calculator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fluent-sm2-calculator" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-sm2-calculator into .agents/skills/fluent-sm2-calculator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-sm2-calculator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add m98/fluent --skill fluent-sm2-calculator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install m98/fluent fluent-sm2-calculator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/m98/fluent.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/fluent-sm2-calculator .cursor/skills/fluent-sm2-calculator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "fluent-sm2-calculator" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-sm2-calculator into .cursor/skills/fluent-sm2-calculator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-sm2-calculator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/m98/fluent.git --path .claude/skills/fluent-sm2-calculator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add m98/fluent --skill fluent-sm2-calculator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install m98/fluent fluent-sm2-calculator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/m98/fluent.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/fluent-sm2-calculator .gemini/skills/fluent-sm2-calculator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "fluent-sm2-calculator" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-sm2-calculator into .gemini/skills/fluent-sm2-calculator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-sm2-calculator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install m98/fluent fluent-sm2-calculatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add m98/fluent --skill fluent-sm2-calculator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/m98/fluent.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/fluent-sm2-calculator .github/skills/fluent-sm2-calculator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "fluent-sm2-calculator" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-sm2-calculator into .github/skills/fluent-sm2-calculator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-sm2-calculator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add m98/fluent --skill fluent-sm2-calculator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install m98/fluent fluent-sm2-calculator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/m98/fluent.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/fluent-sm2-calculator .opencode/skills/fluent-sm2-calculator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "fluent-sm2-calculator" agent skill from https://github.com/m98/fluent/tree/main/.claude/skills/fluent-sm2-calculator into .opencode/skills/fluent-sm2-calculator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fluent-sm2-calculator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
fluent-sm2-calculatorSM-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. 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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 86fb80f. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from m98/fluent at commit 86fb80f, republished under its MIT licence (© m98). 450 words, ~1,228 tokens.
.claude/skills/fluent-sm2-calculator/SKILL.md (or your agent's skills folder).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.
Load this skill whenever the tutor:
easiness_factor, interval_days, repetitions, or mastery_level on a spaced-repetition item.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.
| Score | Quality | Meaning |
|---|---|---|
| 10/10 | 5 | Perfect, instant recall |
| 8-9 | 4 | Correct after hesitation |
| 6-7 | 3 | Correct with difficulty |
| 4-5 | 2 | Incorrect but remembered when shown |
| 2-3 | 1 | Incorrect, familiar |
| 0-1 | 0 | Complete blackout |
Rule: quality = floor(score / 2).
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 = 0Apply after every answer:
EF_new = EF + (0.1 - (5 - quality) * (0.08 + (5 - quality) * 0.02))
EF_new = max(1.3, EF_new)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 = 0After each answer, the item in spaced-repetition.json must have:
easiness_factor — updated via formulainterval_days — new intervalrepetitions — incremented or resetconsecutive_correct / consecutive_incorrect — one incremented, the other resettotal_reviews — incrementedmastery_level — possibly changeddue_date — today + interval_days (YYYY-MM-DD)last_reviewed — todayAfter updating:
interval_days == 1 → review_queue.tomorrowinterval_days <= 7 → review_queue.this_weekinterval_days > 7 → review_queue.laterIf the learner got it wrong (quality < 3), keep the item in review_queue.today so it reappears in the same session.
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.
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 }
]
}
EOFSee .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:
interval = round(prev * EF), repetitions += 1, EF barely moves.interval = 1, repetitions = 0, EF drops sharply, item stays in today's queue.update-db.py. Only reimplement this math when the script is unavailable.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
Just SKILL.md in .claude/skills/fluent-sm2-calculator of m98/fluent.
Open the folder on GitHubat commit 86fb80f
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Fluent Sm2 Calculator this skillm98/fluent | 421 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Study Companion Enmingchen666/Reviva | 241 | — | ~5.7k | Automated safety check: Pass | None | |
| Language Learningsundial-org/awesome-openclaw-skills | 663 | — | ~2.7k | Automated safety check: Pass | None | |
| Deep Reading Analystginobefun/deep-reading-analyst-skill | 353 | 4 repos | ~3.6k | Automated safety check: Pass | MIT | |
| NihaishaJuneYaooo/nihaisha-nishi-tcm | 2.2k | — | ~4k | Automated safety check: Pass | None | |
| Claude Certification Tutorrohitg00/ai-engineering-from-scratch | 66k | — | ~3k | Automated safety check: Pass | MIT |
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…
sundial-org/awesome-openclaw-skills
AI language tutor for learning ANY language through conversation, vocab drills, grammar lessons, flashcards, and immersive practice.
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…
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…
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.
bevibing/tutor-skills
Quizzes you on the notes in an Obsidian StudyVault, tracks proficiency per concept and drills weak areas in four-question rounds.
m98/fluent
Show the learner's language learning progress, statistics, mastery levels, streak, and achievements.
m98/fluent
Parse Fluent /results/.md session files to extract error patterns, strengths, accuracy trends, and focus areas for the next session.
m98/fluent
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…
m98/fluent
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…
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.
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.
Categories
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.
Fluent Sm2 Calculator fits situations like: the tutor schedules the next review of a vocabulary item; error pattern — i.e.
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.
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.
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.
Going by SKILL.md and its folder, Fluent Sm2 Calculator needs the command-line tools its instructions call (python3). Our summary lists: Python 3.
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.
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.
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.
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.
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.
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.