FL

fluent-writing

Practice writing skills with automated, detailed feedback and error categorization.

Install

mkdir -p .claude/skills/fluent-writing && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18993" && unzip -o skill.zip -d .claude/skills/fluent-writing && rm skill.zip

Installs to .claude/skills/fluent-writing

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Run an interactive writing practice session (emails, letters, forms, short texts) with systematic error analysis, category-tagged corrections, and detailed feedback. Triggered only when the learner types /fluent-writing. Selects a scenario matched to mastery, lets the learner compose, then analyzes grammar, register, vocabulary, structure, and spelling before updating all databases.
385 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Select writing scenarios based on mastery
  • Analyze grammar, register, vocabulary, structure, and spelling
  • Provide detailed feedback with severity tagging
  • Generate a corrected version of the text
  • Update learner and mistake databases

How it works

The skill selects a writing scenario based on the learner's mastery, presents the task, waits for the learner's full text, then performs systematic error analysis and provides detailed feedback. It then updates relevant databases.

Inputs & outputs

You give it
Learner's written text in response to a scenario
You get back
Detailed feedback, corrected text, score, and updated learner databases

When to use fluent-writing

  • Practicing formal emails
  • Improving business writing
  • Grammar and register check

About this skill

Writing Practice Session

Overview

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.

When to Use

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.

Instructions

1. Load context

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

2. Pick scenario type

From mastery-db.skills:

  • Formal email (if writing_formal_email mastery < 4)
  • Informal email (if writing_informal_email < 4)
  • Form filling (if writing_forms < 4)
  • Newsletter / personal text (if overall writing < 3)
  • Mixed scenarios (if all ≥ 4)

Scenarios must match the learner's CEFR level — A2 uses everyday situations, B1+ adds opinion / complaint / inquiry.

3. Present the task

## ✍️ Writing Exercise

**Scenario:** {clear description in explanation_language — use preferences.explanation_language, not native_language; if it equals target_language, describe the scenario in the target language too}

**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:**

4. Wait for the full text

Don't correct mid-composition. Let the learner finish.

5. Systematic error analysis

Check every sentence for these categories:

  1. Grammar — word order, conjugation, clause structure, articles
  2. Formal/informal — register consistency
  3. Vocabulary — wrong word, English mixing, register-wrong synonyms
  4. Missing elements — greeting, closing, required fields
  5. Spelling — minor at A2, weightier at B2+
  6. Structure — organization, flow, paragraphing

Tag each finding with a severity: 🔴 critical, 🟡 moderate, 🟢 minor.

6. Detailed feedback

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

---

7. Optional rewrite

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.

8. Session summary

## 📊 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"}! ✍️

9. Update all databases

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 drill

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

Examples

Example 1 — formal email task (Dutch A2)

✍️ 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,
Mohammad

Score: 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.

Critical Rules

  • One scenario per session. Don't chain multiple writing tasks — depth over breadth.
  • Wait for the full answer before correcting.
  • Severity tagging is mandatory. Fed into mistakes-db and drives spaced repetition priority.
  • Always save the session file in /results/ for later analysis by fluent-session-analyzer.
  • Never auto-invoke. This skill is gated; must fire only on explicit /fluent-writing.

Language Reference

Dutch A2 patterns

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.

When not to use it

  • When the learner has not yet hit mastery 2 in basic vocabulary
  • When the prompt is ambiguous and not an explicit /fluent-writing trigger

Limitations

  • Only one scenario per session is processed
  • Correction only occurs after the full text is submitted
  • Severity tagging is mandatory for all findings

How it compares

This skill offers a systematic, mastery-driven, and interactive writing practice session with detailed, category-tagged corrections and database updates, unlike general writing feedback tools.

Compared to similar skills

fluent-writing side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
fluent-writing (this skill)015dReviewIntermediate
humanizer906moNo flagsBeginner
humanizer-zh406moNo flagsIntermediate
copy-editing76moNo flagsBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

humanizer

davila7

Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases. Credits: Original skill by @blader - https://github.com/blader/humanizer

90175

humanizer-zh

op7418

去除文本中的 AI 生成痕迹。适用于编辑或审阅文本,使其听起来更自然、更像人类书写。 基于维基百科的"AI 写作特征"综合指南。检测并修复以下模式:夸大的象征意义、 宣传性语言、以 -ing 结尾的肤浅分析、模糊的归因、破折号过度使用、三段式法则、 AI 词汇、否定式排比、过多的连接性短语。

4070

copy-editing

davila7

When the user wants to edit, review, or improve existing marketing copy. Also use when the user mentions 'edit this copy,' 'review my copy,' 'copy feedback,' 'proofread,' 'polish this,' 'make this better,' or 'copy sweep.' This skill provides a systematic approach to editing marketing copy through multiple focused passes.

737

chinese-writing

miantiao-me

中文写作技能指南,用于生成高质量的周刊、博客及科技资讯类文章。

10

synonyms

QwenLM

Generate synonyms for words or phrases. Use this skill when the user needs alternative words with similar meanings, wants to expand vocabulary, or seeks varied expressions for writing.

10

humanizer

prestarius

|

00

Search skills

Search the agent skills registry