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.zipInstalls 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.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
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_emailmastery < 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:
- Grammar — word order, conjugation, clause structure, articles
- Formal/informal — register consistency
- Vocabulary — wrong word, English mixing, register-wrong synonyms
- Missing elements — greeting, closing, required fields
- Spelling — minor at A2, weightier at B2+
- 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, 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.
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-dband drives spaced repetition priority. - Always save the session file in
/results/for later analysis byfluent-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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| fluent-writing (this skill) | 0 | 15d | Review | Intermediate |
| humanizer | 90 | 6mo | No flags | Beginner |
| humanizer-zh | 40 | 6mo | No flags | Intermediate |
| copy-editing | 7 | 6mo | No flags | Beginner |
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
humanizer-zh
op7418
去除文本中的 AI 生成痕迹。适用于编辑或审阅文本,使其听起来更自然、更像人类书写。 基于维基百科的"AI 写作特征"综合指南。检测并修复以下模式:夸大的象征意义、 宣传性语言、以 -ing 结尾的肤浅分析、模糊的归因、破折号过度使用、三段式法则、 AI 词汇、否定式排比、过多的连接性短语。
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.
chinese-writing
miantiao-me
中文写作技能指南,用于生成高质量的周刊、博客及科技资讯类文章。
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.
humanizer
prestarius
|