Feedback Formatter

SkillDev tools

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 10, and classify severity (🔴 critical / 🟡 moderate / 🟢 minor). Use in every practice session (fluent-writing, fluent-vocab, fluent-speaking, fluent-reading, fluent-review) immediately after the learner submits an answer.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Feedback Formatter skill

What this skill tells your AI

The instructions your AI receives, as published by m98/fluent in .claude/skills/fluent-feedback-formatter/SKILL.md and read by ahel’s review.

Overview

Every practice session ends each turn with immediate feedback. Consistency matters — the learner builds mental models from the structure, and error patterns we mine from session files depend on predictable markers (❌, ✅, severity emoji). This skill defines the single feedback shape used across all Fluent practice skills.

When to Use

Load this skill whenever the tutor:

  • Grades a learner answer in any practice skill (fluent-learn, fluent-vocab, fluent-writing, fluent-speaking, fluent-reading, fluent-review).
  • Needs to classify an error by severity before writing to mistakes-db.json.
  • Needs to tag an error by category (grammar, vocabulary, prepositions, etc.).

Skip this skill for non-feedback output (greetings, summaries, progress reports).

Instructions

1. Standard template

{✅ or ❌} {one-line encouragement or gentle correction}

**Corrections:**
- ❌ "{wrong_part}" → **"{correct_part}"** ({category} — {brief_why})
- ✅ "{correct_part}" — {specific_praise}

**Correct version:**
"{full_correct_sentence}"

**Score: {X}/10** {emoji} {short_comment}

---

Skip the ❌ block if the answer is fully correct. Skip the ✅ block only if truly nothing was right (rare — usually at least word order or intent was right).

2. Tag severity on every error

SymbolSeverityMeaningExample
🔴CriticalBreaks communication or exam-blockerFormal/informal mix in formal email; wrong subordinate-clause word order
🟡ModerateNoticeable but understandablePreposition error, missing article
🟢MinorLow prioritySpelling, punctuation, accent marks

A single answer may contain multiple errors of different severity — tag each.

3. Use these category labels

These feed mistakes-db.json:

  • grammar — word order, conjugation, clause structure
  • formal_informal — u/je, uw/jouw, register mismatch
  • vocabulary — wrong word, English mixing, register-wrong synonym
  • spelling — minor
  • prepositions — om/op/in/bij/naar/etc.
  • articles — de/het, definite/indefinite
  • missing — omitted greeting, closing, required word

4. Tone rules

  • Encourage before correcting. Open with a ✅ or a warm ❌ ("Close! Let's tune one word."), not a bare Wrong..
  • Explain why, not just what. "Ik schrijf je" → "Ik schrijf u" (formal_informal — business emails require u) beats "Use u not je.".
  • Name the pattern. Helps the learner generalize: "This is the omdat word-order rule: verb goes last.".
  • Celebrate progress. "You didn't miss this last time — well done." when mistakes-db shows improvement.
  • Emojis on. The learner's profile has use_emojis: true by default. Keep them.

5. Hand score to SM-2

After scoring, feed the score into the SM-2 update via the fluent-sm2-calculator skill: quality = floor(score / 2).

Examples

See .claude/references/feedback-template.md for fully-rendered examples (mostly-correct answer with a minor slip; critical error with severity tagging). The reference file is the authoritative version — keep it and this skill in sync if updating.

Quick pattern:

  • Fully correct: open with ✅, skip ❌ block, list 1-2 ✅ strengths, show "Correct version" for echo, score 9-10/10.
  • Mistakes: open with warm ❌, list each correction with severity emoji + category + brief why, show full correct version, score with breakdown if the answer is long.

Critical Rules

  • Always use the template exactly. Deviations break session-file parsing downstream.
  • Severity tag is mandatory on every ❌ line. Drives spaced-repetition priority.
  • One score per answer. Total out of 10, with optional breakdown (grammar/vocab/structure) for long answers like writing tasks.
  • Never skip the "Correct version". Even if perfect, echoing the target form reinforces motor memory.

Why This Matters

Structured, consistent feedback:

  1. Lets the learner scan for what to fix at a glance.
  2. Makes session files parseable so PRACTICE.md analysis + /results mining work.
  3. Populates mistakes-db.json categories cleanly — which feeds spaced repetition, which drives the whole system.

Signals

GitHub stars
399
Forks
57
Last commit
Jun 2026
Advanced
Catalog kind
skill
Gateway key
fluent-feedback-formatter
Source
github.com/m98/fluent