# Story Deslop

网文去AI味。从表达、叙事用笔、故事因果三层诊断并修复文本，保留作者文风与已定剧情。触发方式：/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。

- Repository: https://github.com/zenstory-ai/oh-story-claudecode (8225 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -g -a claude-code -y`
Codex: `npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -g -a codex -y`
Cursor: `npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -g -a cursor -y`
Gemini CLI: `npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add zenstory-ai/oh-story-claudecode`

## Description

网文去AI味。从表达、叙事用笔、故事因果三层诊断并修复文本，保留作者文风与已定剧情。触发方式：/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# story-deslop：网文去AI味

**文风裁决**：先读 [references/style-resolution.md](references/style-resolution.md)，加载本书文风，复用调用方的 `style_resolution` 与作者偏好；单独调用时按当前请求与本书文风裁决。同一裁决交给后续执行者。

**改写重点：表达自然、笔墨有重心、故事有依据；诊断与执行都按作者范围。**

---

## 执行边界

- 未限定范围的独立去味，完整检查表达、用笔、故事三层。三层是检查对象，不按词频分轻中重；每层可以没有问题。用户明确只查词句、某段或某类问题时，尊重范围。
- 普通去味可修表达、恢复已有承接、调整已定内容的详略；允许删除整段无功能内容，保护伏笔、因果、人物选择、情绪体验与揭露顺序。需要改变事件、动机、结果或新增成立条件时，按故事层区分设计提案和已授权重写。不能用新微动作、粗话、证据或冲突制造“真人感”。
- 文风裁决只影响表达，不改变事实与信息边界。准确直写、心理活动、带立场的叙述和有功能的停顿均可保留，不机械套 Show/Tell、句长或删减率。
- 用户只要检测或标注时，只出诊断，不修改正文。作者只说「去AI味」「这篇太AI了」时按改稿处理：表达与用笔直接改，故事层缺口给出方案，作者授权后再改。作者报告用白话、原文位置与阅读后果，不把检测类别名、脚本字段当评价。
- 长篇项目（书目录下有 `正文/` 与 `追踪/`）需要改变事件、关系、人物所知或结果时，即使作者已授权，也带着诊断和授权转 `/story-long-write`「修改第X章」执行，由那边备份原文并同步追踪；本流程只改表达、用笔和已有依据的承接。
- 不推断作者身份或承诺检测分数。用户提供外部检测报告或 `/story-review` 的审稿结论时，只提取能对应到正文的具体问题，作为本次范围。

### 作者偏好边界

只接收调用方已有的作者偏好，不查询或记录作者记忆；独立调用时不加载记忆文件。偏好作为自然倾向，不逐条追求命中，不牺牲连贯、节奏和字数；当前请求、原文剧情功能和本 skill 保护规则优先。

## 去味流程

### Phase 1：读原文与三层扫描

从正文路径确定书目录和篇幅：单个 `正文.md` 一般是短篇，`正文/` 下逐章文件一般是长篇；优先采用作者与项目的明确说明。按开头的文风裁决读本书要求，通读本次正文，按需查相关前文和已定设计，不整读无关全书。资料缺失时继续有依据的部分，标明未知。本次涉及多章时，逐章完成 Phase 1, 4 再进下一章，交给写手时每章派一次。

默认完整读取以下三份方法后扫描；明确限定范围时按 [references/deslop-gates.md](references/deslop-gates.md) 选择需要的方法：

| 方法 | 检查什么 |
|---|---|
| [references/expression.md](references/expression.md) | 先治理电报体与短碎句，再查词句、声口和机械复现 |
| [references/narrative-focus.md](references/narrative-focus.md) | 场景作用、详略、关键过程与细节功能 |
| [references/story-logic.md](references/story-logic.md) | 行为、因果、立场、变化、后果与知情顺序 |

本地正文先运行确定性预检，只报告不改写。下列命令均从本 skill 根执行，正文参数使用绝对路径：

```bash
node scripts/check-ai-patterns.js --check --fail-on=blocking <正文文件...>
```

脚本命中是定位线索，零命中不代替三层扫描。每类提示归哪层、判断什么，见 expression.md 末节的索引；blocking 要改到净或按白名单保留（见 Phase 4），advisory 回到语境判断，不为归零机械改稿。完整词条仅在需要定位某种表达时查 [references/banned-words.md](references/banned-words.md)。

文件前 6 行内、章节标题下有 `<!-- 去味:跳过 -->` 而作者这次要求去味时，照常处理：blocking 清零后删掉这一行；仍有剩余阻塞时保留，并在报告里告诉作者这章仍按跳过处理。

### Phase 2：定位问题与确定改法

The rest: https://github.com/zenstory-ai/oh-story-claudecode/blob/HEAD/skills/story-deslop/SKILL.md
