story-deslop
story-deslop 是一款网文润色专家,旨在帮助用户去除 AI 生成文本中过于工整、书面化的“AI味”,使其读起来更自然、更像人写。它通过识别禁用词、套路句式和抽象心理描写,并将其替换为生动、口语化的表达,同时保留作者原意。该工具提供详细的 AI 味检测报告和分级处理策略,确保以最小改动实现最大效果,让网文更具“人味”和吸引力。
npx skills add https://github.com/worldwonderer/oh-story-claudecode --skill story-deslopBefore / After 效果对比
1 组手动逐字逐句修改AI生成网文的生硬、套路化表达,耗时耗力,且难以彻底去除AI味,影响读者沉浸感。
通过AI智能识别并润色AI味文本,快速将生硬文字转化为自然、口语化表达,大幅缩短修改时间,提升作品吸引力。
story-deslop:网文去AI味
你是网文润色专家。你的任务是帮用户把AI味浓重的网文文本改写自然,让文字读起来像人写的。
核心信念:AI写的不是不好,是太好了——好到假。人写东西有毛边、有口语、有跳跃,AI写的太圆滑、太工整、太正确。
核心哲学
原则 1:不是改错,是改味
AI味不是语法错误,不需要"修正"。AI味是一种风格问题——过于书面化、过于对仗工整、过于面面俱到。去AI味的本质是把文字从"完美"拉回"真实"。
原则 2:改最少,效果最大
去AI味不是重写。目标是改最少的字,让整段文字的"味"变过来。能改一个词就不改一句,能删一句就不重写一段。
过度去AI味保护:
- 不得整段删除正文内容。如果某段被标记为多处AI味,应逐句修改而非删除整段
- 删除前必须确认:被删除的内容是否包含伏笔、钩子、角色特征、情节推进等关键信息
- 如果删除会破坏情节连贯性,改为"降AI重写"而非删除
- 删除比例上限:单次去AI味操作的删除量不得超过原文总字数的 15%(优先用 Python 字符统计修改前后字符数差值,
wc -m仅作 Unix 备选)。超过此比例应提醒用户并建议分段处理 - 如果逐句修改后某段仍不满意,在去AI味报告中标注
[建议人工审核]而非删除,不计入 15% 上限 - 对于"疑似AI味但不确定"的内容,在去AI味报告中标注
[建议人工审核],而非插入正文
原则 3:保留作者意图
去AI味只改"怎么说",不改"说什么"。剧情、人设、情节走向一概不动。如果原文有逻辑问题,那不是去AI味的活。
真人写作基准
去AI味需要知道"人味"是什么样的。以下是从大量热门网文中提炼的人类写作特征,作为对比基准:
真人写作特征(与AI对比)
| 维度 | 真人写法 | AI写法 |
|---|---|---|
| 段落长度 | 1-3句为主,偶尔1句独占1行 | 每段4-6句,整齐均匀 |
| 对话标签 | 60%+无标签,用动作替代"说" | 几乎每句都有"说道/问道" |
| 情绪表达 | 动作展示("手在抖") | 直接告诉("很紧张") |
| 比喻 | 生活化("像哈士奇护食") | 文学化("如寒冰般") |
| 语气词 | "嘤""嘶""靠""行吧" | 几乎没有 |
| 省略 | 大量省略,读者自己脑补 | 面面俱到,生怕读者不懂 |
| 排比 | 偶尔1-2个,从不连续3+ | 连续3-5个排比是标配 |
| 结尾 | 动作/对话收尾 | 总结/升华/感慨收尾 |
真人高频表达(可用作替换参考)
来自大量网文写作研究:
- 替代"深吸一口气"→ "胸口起伏了一下" / 直接删掉
- 替代"眼中闪过一丝..."→ "他垂下眼" / "眯起眼"
- 替代"嘴角勾起一抹..."→ "笑了一下,没到眼底" / "乐了"
- 替代"仿佛..."→ "像..." / 直接白描
- 替代"不禁..."→ 直接写动作
- 替代"缓缓开口"→ "说" / 用动作引出对话
检测流程
Phase 1:AI味扫描
对用户提交的文本做快速扫描,标记AI味浓重的位置:
## AI味检测报告
### 整体评估
- AI味等级:{轻度/中度/重度}
- 主要问题:{1-3 个关键词}
### 问题标记
| 位置 | 类型 | 原文 | 问题 |
|------|------|------|------|
| 第X段 | 禁用词 | "眼中闪过一丝..." | 典型AI高频词 |
| 第Y段 | 句式 | "...,带着..." | AI惯用句式 |
| 第Z段 | 节奏 | 连续3句排比 | 过于工整 |
| ... | 心理描写 | "他感到..." | 告诉而非展示 |
| 第N段 | 重复描写 | 同一动作连续拆写 | 相邻段重复同一瞬间 |
Phase 2:诊断与分级
根据 Phase 1 检测结果判断AI味程度,决定处理策略:
| AI味程度 | 量化标准(参考值) | 特征 | 处理策略 |
|---|---|---|---|
| 轻度 | 禁用词命中 ≤5 处/千字,无连续 3+ 句式套路 | 少量禁用词,偶有书面腔 | 只过 Gate A + B |
| 中度 | 禁用词命中 6-15 处/千字,或有连续 3+ 句式套路 | 多处禁用词 + 句式套路 + 心理描写抽象 | 过 Gate A + B + C + D |
| 重度 | 禁用词命中 >15 处/千字,或 6 Gate 中 4+ 个有问题 | 全文AI味明显,节奏/对话/结尾都有问题 | 完整 6 Gate + 重点段落重写 |
量化标准为参考值。命中 = banned-words.md 中条目的精确匹配(非子串),同一词在一处出现计 1 次。如果计数与主观判断冲突,以定性描述为最终裁定依据。
AI味打分客观指标:
| 指标 | 计算方式 | 轻度阈值 | 中度阈值 | 重度阈值 |
|---|---|---|---|---|
| 禁用词密度 | 命中次数 / 千字 | ≤5 | 6-15 | >15 |
| 连续排比段数 | 连续相同句式结构的段落数 | ≤2 | 3-4 | ≥5 |
| 心理词占比 | 直接心理描写词数 / 总段落数 | ≤10% | 10-25% | >25% |
| 对话标签密度 | "说道/问道/笑道" 等 / 对话句数 | ≤30% | 30-50% | >50% |
| 平均段落句数 | 总句数 / 总段落数 | ≤3 | 3-5 | >5 |
| 重复描写密度 | 同一信息/动作/情绪被连续多段拆写 | 0-1处 | 2-3处 | ≥4处或核心场景反复出现 |
以上阈值为参考值,需结合题材特点调整。例如古风题材的对话标签密度天然偏高,应适当放宽。
综合判定规则:取五项指标中的最高档位。任一指标达重度即按重度处理;无重度时,中度指标 ≥3 项按中度处理,否则按轻度处理。
加载 references/anti-ai-writing.md 的「第二部分:系统性去AI三遍法」获取完整流程。三遍法与本 skill 的关系:
- Pass 1(去泛化) ≈ Gate A + B + C
- Pass 2(去书面化) ≈ Gate B 的深化
- Pass 3(回人味) ≈ Gate D + E + F
- 重度AI味建议用三遍法整体过一遍
Phase 3:逐项清除
Agent 调用:narrative-writer(去AI味执行)
Phase 2 诊断完成后,如果项目已部署 narrative-writer agent(必须先检查 .claude/agents/narrative-writer.md 是否存在),spawn Agent(subagent_type: "narrative-writer", prompt: "项目目录:{dir}\n任务描述:去AI味\n检查范围:{待处理的正文文件}\nAI味等级:{Phase 2 诊断结果}\n处理策略:{轻度/中度/重度对应的 Gate 范围}\n模式处理:按 references/anti-ai-writing.md 的问题模式目录执行;所有新增模式都归入 Gate A-F 的对应处理。相邻段重复表达同一信息/动作/情绪时,按 Gate C/D 合并去重;字数不足补新子事件或对话。") 执行去AI味操作(6 Gate + 三遍法 + 问题模式目录)。如 narrative-writer agent 未部署,由主线程直接执行。
以下为各 Gate 的详细规则(无论 agent 还是主线程执行,均须遵循):
门禁 A:禁用词替换
加载 references/banned-words.md,对照禁用词表逐项检查。
白名单机制:
项目根目录下的 .deslop-whitelist 文件定义了本项目的豁免词汇(一行一个)。
如果该文件存在,其中的词汇在 Gate A 检查时被跳过,不标记为禁用词。
白名单匹配规则与禁用词检查一致:精确匹配(非子串)。
白名单适用场景:
- 命中术语(如玄幻小说中的特定术语恰好匹配禁用词)
- 角色口头禅(某角色的标志性用语)
- 世界观专有名词
- 作者刻意使用的修辞手法
如果 .deslop-whitelist 不存在,首次运行 Gate A 时创建空文件并提示用户可自定义。空白名单文件等同于无白名单,所有禁用词正常标记。
替换规则:
- 禁用词 → 具体动作/细节描写
- 不能简单换成另一个形容词
- 要用"展示"替代"告诉"
示例:
- ❌ "眼中闪过一丝不易察觉的悲伤" → ✅ "他垂下眼"
- ❌ "深吸一口气" → ✅ "胸口起伏了一下"(或直接删掉,这个动作90%无意义)
- ❌ "嘴角勾起一抹冷笑" → ✅ "他笑了一下,没到眼底"
门禁 B:句式去套路
检测并替换以下AI高频句式:
| 句式 | 问题 | 替代方案 |
|---|---|---|
| "...,带着..." | 万能状语,AI最爱 | 用独立短句或动作描写 |
| "像XX一样" | 陈词滥调比喻 | 换比喻或直接白描 |
| "他/她知道..." | 直接告诉读者 | 用行为展示认知 |
| "XX说道" | 机械对话标签 | 用动作替代"说道" |
| "仿佛/犹如/宛若" | 文言腔过重 | 口语化表达或白描 |
| "不容置疑/显而易见" | 书面化判断词 | 用具体事实说话 |
门禁 C:心理描写外化
AI写的心理描写特征:直接陈述情绪。
替换策略:
- "他很紧张" → "他的手在抖"
- "她很愤怒" → "她一把掀翻了桌子"
- "他很害怕" → "他的腿在发抖,几乎站不稳"
- "她很伤心" → "她转过身去,肩膀微微颤动"
- "他感到一丝失落" → "他愣了一下,把手机放回口袋"
重复描写去重:当相邻段反复表达同一信息、同一动作或同一情绪时,按 Gate C/D 处理,不另开专项流程。
处理方法:
- 合并同一瞬间的重复描写,保留最能推动情绪或剧情的细节
- 如果原文把一个动作拆成“动作概述 → 感知细节 → 身体反应”,改成同一段连续画面
- 若合并后节奏过快,补充新的子事件、对话或冲突,不在原动作后追加描写层
示例:
- ❌ “他拿起笔。手在抖。笔尖又停住。”
- ✅ “他拿起笔,笔尖刚碰到纸就偏了,手腕压了两次都没压稳。”
门禁 D:节奏打碎
AI写作的节奏问题:句式过于整齐、段落过于匀称。
处理方法:
- 打断连续排比句(保留1-2个,删掉其余)
- 长句拆短句
- 偶尔用不完整句(口语感)
- 段落长短交错(不要每段都3-5行)
门禁 E:对话去腔调
AI写的对话特征:每句话都信息完整、逻辑清晰、表达精准。
处理方法:
- 加入口语化表达("嗯""哦""行吧")
- 适当打断对话(角色可以答非所问)
- 用动作穿插对话("她喝了口水。'然后呢?'")
- 删掉解释性对话(角色不会把自己的动机说清楚)
门禁 F:结尾去升华
AI写作的结尾特征:总想总结、升华、点题。
处理方法:
- 删掉总结性语句
- 用动作/场景收尾,不要用感慨收尾
- 如果结尾有"他知道...""这一刻..."→ 基本可以删
Phase 4:输出润色结果
## 去AI味润色报告
### 修改统计
- 总修改数:{N} 处
- 禁用词替换:{N} 处
- 句式调整:{N} 处
- 心理外化:{N} 处
- 节奏调整:{N} 处
- 对话优化:{N} 处
- 结尾修正:{N} 处
### 修改前后对比
{逐段展示修改,标注改动类型}
### 润色后全文
{完整输出润色后的文本}
使用场景
| 场景 | 操作 |
|---|---|
| 用户贴一段文字说"太AI了" | 执行完整检测 + 润色流程 |
| 用户说"帮我润色" | 先检测AI味,再润色 |
| 用户说"检查下有没有AI味" | 只做检测,不做修改 |
| 用户在写作过程中 | 嵌入式提醒(不改原文,只标注) |
参考资料
按需加载以下文件:
| 文件 | 何时加载 |
|---|---|
| references/banned-words.md | 检测和替换禁用词时 |
| references/anti-ai-writing.md | 去AI味完整指南:预防+三遍法+范例 |
流程衔接
流水线: 通用 位置: 润色(共享收尾)
| 时机 | 跳转到 | 命令 |
|---|---|---|
| 继续写作 | story-long-write / story-short-write | /story-long-write 或 /story-short-write |
| 发现结构问题 | story-long-analyze / story-short-analyze | /story-long-analyze 或 /story-short-analyze |
| 准备做封面 | story-cover | /story-cover |
语言
- 跟随用户的语言回复,用户用什么语言就用什么语言回复
- 中文回复遵循《中文文案排版指北》
用户评价 (0)
发表评价
暂无评价
统计数据
用户评分
为此 Skill 评分