From writing
Writes authentic human-like prose for articles, blog posts, emails, marketing copy via iterative workflow: gathers context, applies principles, reviews and auto-fixes issues until clean.
How this skill is triggered — by the user, by Claude, or both
Slash command
/writing:writeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**User request**: $ARGUMENTS
User request: $ARGUMENTS
Write prose content that reads as authentically human, not AI-generated.
Gather the writer's context (the 70%) → write content applying human-writing principles → review via writing-reviewer → auto-fix HIGH+ issues → loop until reviewer finds no HIGH+ issues → deliver.
Adapt based on what's provided:
| Input | Entry Point |
|---|---|
| Topic only | Gather context → outline → write → review loop |
| Topic + outline | Gather context → write from outline → review loop |
| Rough draft | Gather context for gaps → rewrite applying principles → review loop |
| Finished text | Skip writing, run review loop only (editing mode) |
| No input | Ask what to write |
Before writing anything, gather the writer's substance. This is the primary quality driver — prompting and editing are the remaining 30%.
Ask via AskUserQuestion:
If the user provides a rough draft, extract their existing substance and ask only about gaps.
Invoke the writing:human-writing skill to apply research-backed writing principles during generation.
Write the content to draft-{topic-slug}.md in the current working directory. Use a slugified version of the topic for the filename.
Incorporate the user's context as the core substance. Apply the principles from human-writing: avoid kill-list vocabulary, vary sentence length and structure, break symmetry, include specificity, take positions, embrace imperfection.
After writing (or receiving finished text for editing):
writing-reviewer agent on the draft fileAUTO_FIXABLE issuesNEEDS_HUMAN_INPUT issues to user with options; skip if user declinesConvergence guard: If a fix cycle introduces new HIGH+ issues (total HIGH+ count increases instead of decreasing), stop and present the situation to the user rather than continuing to loop.
| Constraint | Why |
|---|---|
| Context before content | Never generate prose without the writer's substance first |
| Converge, don't cap | No arbitrary iteration limit — run until no HIGH+ issues |
| Convergence guard | Stop if fixes create new problems — don't oscillate |
| DRY | Delegate principles to human-writing, review to writing-reviewer |
| File output | Write to draft-{topic-slug}.md in cwd |
| Atomic | Working draft updated in place; user sees final clean version |
Report when done:
npx claudepluginhub doodledood/claude-code-plugins --plugin writingApplies research-backed principles to craft human-like prose avoiding AI tells. For articles, blog posts, emails, marketing copy, social media—not code or docs.
Strips AI writing patterns from prose — removes negation-then-contrast, limits parallel lists, eliminates indirect repetition. Use for any human-facing text.
Writes human-sounding blog posts, guides, tutorials, and long-form content. Use for polishing notes, research, or drafts into developer-friendly articles.