From fluent
Runs interactive writing practice sessions with systematic error analysis across grammar, register, vocabulary, structure, and spelling. Selects scenarios matched to learner mastery level and CEFR stage.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fluent:fluent-writingThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Full-text writing practice with systematic correction. One scenario per session, detailed feedback broken down by severity and category, DB update at end. Mastery-driven scenario selection keeps the task at the right level — challenging, not frustrating.
Full-text writing practice with systematic correction. One scenario per session, detailed feedback broken down by severity and category, DB update at end. Mastery-driven scenario selection keeps the task at the right level — challenging, not frustrating.
Trigger this skill only when the learner types /fluent-writing. The skill is gated with disable-model-invocation: true — a 15-20 min interactive session with DB writes should never start from an ambiguous prompt.
Skip this skill in favor of /fluent-vocab if the learner has not yet hit mastery 2 in basic vocabulary — writing needs a minimum word bank.
python3 "${CLAUDE_PLUGIN_ROOT:-${CLAUDE_PROJECT_DIR:-.}}/.claude/hooks/read-db.py"
Need: learner-profile (level, target language, focus areas), mistakes-db (weak writing patterns), mastery-db (writing sub-skills).
From mastery-db.skills_mastery:
writing_formal_email mastery < 4)writing_informal_email < 4)writing_forms < 4)Scenarios must match the learner's CEFR level — A2 uses everyday situations, B1+ adds opinion / complaint / inquiry.
## ✍️ Writing Exercise
**Scenario:** {clear description in native language}
**Task:** Write a {type} in {target_language}.
**Requirements:**
- Length: {X-Y} words
- Include: {must-include elements}
- Register: {formal / informal}
- Level: {CEFR}
{Optional: example structure for harder tasks}
**Write your {text_type} below:**
Don't correct mid-composition. Let the learner finish.
Check every sentence for these categories:
Tag each finding with a severity: 🔴 critical, 🟡 moderate, 🟢 minor.
Diverges slightly from the standard fluent-feedback-formatter template because writing answers are multi-sentence. Use this variant:
## Feedback
### ✅ What You Did Well
- {strength 1}
- {strength 2}
### ❌ Areas to Improve
**Critical:** 🔴
- {issue}: "{wrong}" → **"{correct}"** — {why}
**Moderate:** 🟡
- {issue}: {explanation}
**Minor:** 🟢
- {spelling / punctuation}
### 📝 Corrected Version
{fully corrected text}
**Score: {X}/10**
**Breakdown:**
- Grammar: {Y}/10
- Vocabulary: {Z}/10
- Structure: {W}/10
- Communication: {V}/10
---
If score < 7, offer:
**Want to try again?** Rewriting with the corrections locks in the patterns.
Type "rewrite" to try again, or "next" to continue.
## 📊 Writing Session Summary
**Text Type:** {type}
**Score:** {X}/10
**Key Takeaways:**
- {learning 1}
- {learning 2}
- {learning 3}
**Next Time:**
- Focus on: {weak pattern}
- Review: {relevant flashcards}
{target-language "well done"}! ✍️
Use the fluent-db-updater skill:
command_used: "/fluent-writing", skills_practiced: ["writing"]skill_scores.writing: {exercises: 1, correct: 1_if_score_≥_7_else_0, time_minutes}errors[] — one per distinct pattern found (dedupe; the script bumps frequency)focus_next_session[] — top 2 patterns to drillAlso save the exchange as /results/fluent-writing-session-{NNN}.md with the full task, the learner's original text, the corrected version, and the error table. The fluent-session-analyzer skill depends on this format.
✍️ Writing Exercise
Scenario: You need to cancel a doctor's appointment you have on Thursday.
Task: Write a formal email to the doctor's office in Dutch.
Requirements:
- Length: 40-60 words
- Include: greeting, reason, request for new appointment, closing
- Register: formal
- Level: A2
Write your email below:
Learner: "Hallo, Ik schrijf je omdat ik kan niet komen op donderdag. Ik ben ziek. Kunnen we een andere dag afspreken? Bedankt, Mohammad"
Feedback
✅ What You Did Well
- Clear reason for cancellation.
- Correct request structure.
❌ Areas to Improve
Critical: 🔴
formal_informal: "Hallo" + "je" — formal email needs "Beste meneer/mevrouw" + "u". Mixed registers cost exam points.grammar: "ik kan niet komen" is OK standalone, but after "omdat" Dutch word order flips: "omdat ik niet kan komen".Moderate: 🟡
missing: no formal closing. Use "Met vriendelijke groet,".Minor: 🟢
- Capitalize "Donderdag"? Actually no — Dutch doesn't capitalize weekdays. You were right.
📝 Corrected Version
Beste meneer/mevrouw, Ik schrijf u omdat ik niet kan komen op donderdag. Ik ben ziek. Kunnen we een andere dag afspreken? Met vriendelijke groet, MohammadScore: 6/10
- Grammar: 6/10 — omdat word order tripped you up.
- Vocabulary: 8/10 — solid word choice.
- Structure: 5/10 — missing proper opening + closing.
- Communication: 7/10 — message was clear despite issues.
mistakes-db and drives spaced repetition priority./results/ for later analysis by fluent-session-analyzer./fluent-writing.Formal emails: always "u" (not "je"); open Beste meneer/mevrouw {NAME},; closing Met vriendelijke groet, + name.
Informal emails: "je" not "u"; open Hallo {NAME},; closing Groetjes, or Tot snel,.
Common mistakes: mixing formal/informal in one text; word order in omdat clauses (verb last); time expressions (om 10:00 uur, op dinsdag).
Add similar sections for other target languages as the learner needs them.
npx claudepluginhub m98/fluent --plugin fluentBuilds progressive writing practice with baseline assessment, CEFR level mapping, process-writing cycles, and focused corrective feedback targeting accuracy, fluency, and register control.
Formats learner answer feedback with corrections, severity tags, and scores out of 10. Used after every practice session turn in the Fluent system.
Routes to five focused writing skills covering grammar, punctuation, tone calibration, technical writing, and common non-native mistakes. Use this to choose the correct skill for text review.