A skill for Claude Code and OpenCode that removes signs of AI-generated fiction from prose, restoring the specificity, voice, and unresolved texture of human writing.
Clone directly into Claude Code's skills directory:
mkdir -p ~/.claude/skills
git clone https://github.com/yourusername/fictionizer.git ~/.claude/skills/fictionizerOr copy the skill file manually if you already have this repo cloned:
mkdir -p ~/.claude/skills/fictionizer
cp SKILL.md ~/.claude/skills/fictionizer/Clone directly into OpenCode's skills directory:
mkdir -p ~/.config/opencode/skills
git clone https://github.com/yourusername/fictionizer.git ~/.config/opencode/skills/fictionizerOr copy the skill file manually:
mkdir -p ~/.config/opencode/skills/fictionizer
cp SKILL.md ~/.config/opencode/skills/fictionizer/Note: OpenCode also scans
~/.claude/skills/for compatibility, so if you use both tools, a single clone into~/.claude/skills/fictionizer/is enough.
/fictionizer
[paste your fiction here]
/fictionizer
[paste your fiction here]
Or ask the model directly:
Please fictionize this passage: [your text]
To match a specific author's style, provide a writing sample:
/fictionizer
Here's a sample of my writing for voice matching:
[paste 2-3 paragraphs of your own fiction]
Now fictionize this passage:
[paste AI-generated fiction to rewrite]
The skill will analyze your sentence rhythm, interiority style, what your POV characters notice, and how you handle dialogue — then apply those patterns to the rewrite.
AI-generated fiction fails differently than AI-generated non-fiction. Where non-fiction AI tells are mostly about vocabulary and structure (em dashes, "showcase," rule of three), fiction AI tells are mostly about craft: the difference between naming an emotion and producing it, between sensory detail that could describe any version of a scene and detail that could only describe this one, between dialogue that efficiently moves a plot and dialogue that sounds like people talking.
This skill is based on close reading of AI-generated fiction across genres and comparison with published human writing. It targets the patterns that consistently distinguish AI output from human craft, regardless of genre.
AI fiction is competent in a way that is itself suspicious. Every scene has an arc. Every emotion gets named and resolved. Every sensory detail is appropriate. Every metaphor is on-theme. The problem is not that any single element is wrong — it is that human fiction is not this consistently correct. It lingers, omits, gets distracted, resolves too soon or not at all. The texture of real writing includes its unevenness.
| # | Pattern | Before | After |
|---|---|---|---|
| 1 | Emotion labeling | "She felt a wave of grief wash over her" | She picked up the photograph. Set it face-down. Picked it up again. |
| 2 | Generic sensory placeholders | "The kitchen smelled of something warm and comforting" | "The kitchen smelled of the onions her mother always burned..." |
| 3 | Over-explained subtext | "'Fine,' she said, meaning it wasn't fine at all" | "'Fine,' she said. 'Do you want more coffee?'" |
| 4 | Symmetrical dialogue | Clean Q&A exchanges where every question is answered | Characters who don't hear questions, answer differently, trail off |
| 5 | Flat interiority | "She thought about her relationship with her mother. It had always been complicated." | Associative, interrupted, contradictory thought |
| 6 | Unearned resolution | Character realizes something and feels it leave her body | Character stands at window until the TV downstairs goes quiet |
| 7 | Thematic over-announcement | "He understood that time was the one thing you could never get back" | He walked to the pharmacy. It was closed. He hadn't known. |
| 8 | The elegant recap | "After everything that had happened between them..." | "She didn't know if they were okay. She thought they might be." |
| # | Pattern | Before | After |
|---|---|---|---|
| 9 | Purple prose | "gossamer and trembling, liminal space between what was and what might yet be" | "the pale kind that arrives before full dark" |
| 10 | The thesis metaphor | Clock compared explicitly to a stopped marriage | Clock mentioned. Battery needs replacing. |
| 11 | Over-tagged dialogue | "said softly," "replied firmly," "admitted reluctantly" | "said" or no tag; beats that add rather than interpret |
| 12 | Simultaneous physical reactions | "Her heart raced, her palms went sweaty, her throat tightened, her knees felt weak" | She put her hand on the wall. |
| 13 | AI vocabulary in fiction | "palpable," "visceral," "poignant," "bittersweet," "haunting," "raw emotion" | Replace with the rendering the word was standing in for |
| 14 | Adjective stacking | "long, flowing, auburn hair and bright, expressive, intelligent eyes" | "Her hair was the color of old pennies" |
| 15 | Generic establishing shots | Full cozy-coffee-shop inventory before scene begins | Character takes first available seat next to an outlet |
| # | Pattern | Before | After |
|---|---|---|---|
| 16 | The perfect emotional arc | Dreading party → laughing with someone → leaving changed | Arrives, looks for coat hook, laughs, leaves before midnight |
| 17 | Chapters that end on resonance | Every chapter ending weighted, conclusive, thematically resonant | "She went to bed." |
| 18 | Even pacing | All scenes 600-900 words, same ratio of action to reflection | Compress some, expand others; let scene end at 150 words |
| 19 | Character introduction inventories | Full physical description in one pass: height, build, hair, eyes, suit | What the POV character would actually notice first |
| 20 | The flashback that explains | Flinch → immediate flashback to father slamming doors | She flinched. She crossed to the window. |
| # | Pattern | Before | After |
|---|---|---|---|
| 21 | Dialogue that moves the plot | Every scene reveals something, advances something | A conversation that establishes two people can barely talk |
| 22 | Dialogue as debate | Characters take clear positions and argue them coherently | People repeat themselves, miss the point, fight about the wrong thing |
| 23 | On-the-nose names and exposition | "Sarah, you know as well as I do that since Thomas took ill..." | Characters don't explain backstory to people who know it |
Before (AI-generated):
Maya felt a wave of anxiety wash over her as she stepped into her childhood home for the first time in ten years. The house smelled of something warm and familiar, bringing back a flood of memories. She could hear the sounds of her mother moving around in the kitchen.
"Maya," her mother said softly, emerging from the doorway. She was older now, her hair streaked with gray, but her eyes were still the same — warm and brown and full of love.
Maya felt a complex mixture of emotions: guilt, love, and relief all mingling together. "Hi, Mom," she said quietly.
"I'm glad you came," her mother replied warmly, a slight tremor in her voice betraying how much this moment meant to her.
For a moment they just looked at each other, ten years of silence stretching between them. Then, slowly, Maya stepped forward and her mother opened her arms, and they held each other for a long time.
As they finally pulled apart, Maya realized something had shifted inside her. The weight she'd been carrying was still there, but lighter somehow. She didn't know if everything would be okay. But she knew, for the first time, that it might be.
After (Fictionized):
Maya had been sitting in the driveway for eleven minutes when the porch light came on.
The house smelled like the inside of a cabinet — old wood, something floral and underlaid with something that wasn't. She left her shoes on.
"You want coffee?" her mother said.
"Sure."
Her mother had cut her hair. That was the main thing. It had been long her whole life, past her shoulders, and now it stopped at her jaw. Maya didn't know when that had happened.
They sat at the kitchen table. Her mother had put a coaster under Maya's mug without asking. Cork, with a map of Martha's Vineyard on it. Somewhere they had never been.
"You look good," her mother said.
"Thanks." Maya wrapped both hands around the mug. "You cut your hair."
"In March." Her mother touched the back of her neck. "I kept meaning to."
The refrigerator made a sound. Outside, a car. Another. A dog, somewhere, and then nothing.
"I should have called more," Maya said.
Her mother looked at the window for a moment. "Well," she said.
Maya drank her coffee. It was too hot.
Patterns removed: Emotion labeling (wave of anxiety, flood of memories, complex mixture of emotions); generic sensory placeholders (something warm and familiar, sounds of her mother); over-tagged dialogue (said softly, replied warmly); simultaneous physical reactions (implied through tremor); over-explained subtext (slight tremor betraying how much this meant); thematic over-announcement (something had shifted, weight was lighter); unearned resolution (she knew it might be okay); AI vocabulary (warmly, quietly, slowly); elegant recap (ten years of silence stretching between them).
This skill is a companion to the Humanizer skill for non-fiction. The two address different problems:
| Humanizer (non-fiction) | Fictionizer (fiction) | |
|---|---|---|
| Primary tell | Vocabulary and structure | Craft and rendering |
| Core problem | AI writing sounds like marketing copy | AI fiction sounds like competent pastiche |
| Main fix | Replace AI words; remove formatting bloat | Render instead of label; trust subtext |
| Dialogue issue | Sycophantic or chatbot-style | Symmetrical, efficient, debate-like |
| Resolution issue | Generic upbeat conclusions | Every scene resolves its emotional arc |
| Detail issue | Vague attributions, weasel words | Generic sensory placeholders |
Use both on the same piece if it is non-fiction with literary ambitions (essays, narrative journalism, memoir).
- 1.0.0 - Initial release. 23 patterns across content, language/style, structural, and dialogue categories.
MIT