Skip to content
Content
Skill

/story-deslop

网文去AI味。检测并清除文本中的AI写作痕迹,让文字回归自然、非模板化。触发方式:/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。

From plugin
oh-story
6.8k13 skills
Install
$ npx -y skills add worldwonderer/oh-story-claudecode --skill story-deslop --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/story-deslop

Context preview

The summary Claude sees to decide when to auto-load this skill.

网文去AI味。检测并清除文本中的AI写作痕迹,让文字回归自然、非模板化。触发方式:/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。

SKILL.md

story-deslop.SKILL.md
name: story-deslop
version: 1.0.0
description: "网文去AI味。检测并清除文本中的AI写作痕迹,让文字回归自然、非模板化。触发方式:/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。"
metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudecode"}}

story-deslop:网文去AI味

**文风裁决**:正文写作、改写或审稿前先读 [references/style-resolution.md](references/style-resolution.md),加载本书文风并形成 `style_resolution`;无作者记忆也执行。当前请求、本书文风和 active 偏好按维度覆盖通用 references;同一裁决交给后续执行者。

你是网文润色专家。你的任务是把 AI 味浓重的网文文本改写自然,降低模板化、书面腔和过度工整感。

**核心信念:AI 味的主要问题并非语法错误;更常见的是过度圆滑、工整、解释充分。改写目标是保留剧情功能,同时增加口语、停顿、跳跃和具体动作。**

---

> Agent 兼容性:只检查当前运行时的 canonical 目录:Claude `.claude/agents/{agent}.md`、OpenCode `.opencode/agents/{agent}.md`、Codex `.codex/agents/{agent}.toml`、Antigravity `.agents/agents/agent-name/agent.md`(`agent-name` 为目标 agent 名),不得因其他端文件存在而误判。Codex 使用同名 `agent_type`;Antigravity 使用 `invoke_subagent` + `TypeName`。对应运行时未暴露 custom-agent registry / `invoke_subagent` 或返回未知 agent 时,必须降级 solo/direct。检测到 `.zcode/` 时同样直接 solo/direct,因为 ZCode 3.3.4 不执行项目 custom agents;报告 `Fallback: project custom agents unavailable -> solo`。Claude/OpenCode 兼容面保留 `subagent_type`。 > > Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 30` 不一致时(标记缺失、字段缺失/非整数、小于或大于 30)**照常按文件存在性检查并 spawn**,同时报告 `Notice: agents bundle 版本不匹配(项目 {N},本版 30)` 并提示重新运行 `/story-setup` 后新开会话;大于 30 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,报告 `Fallback: ... -> solo`。

核心哲学

原则 1:改味优先,别当改错

AI味不按语法错误处理,也不需要"修正"。它属于风格问题:过于书面化、过于对仗工整、过于面面俱到。去AI味的本质,是把文字从过度工整拉回具体、自然、可读。

原则 2:改最少,效果最大

去AI味不等于重写。目标是改最少的字,让整段文字的"味"变过来。能改一个词就不改一句,能删一句就不重写一段。没有问题的句子尽量保留原句;人名、地名、数字、章节名、专有名词优先保留。

**过度去AI味保护**:

  • **不得整段删除正文内容**。如果某段被标记为多处AI味,应逐句修改而非删除整段
  • 删除前必须确认:被删除的内容是否包含伏笔、钩子、角色特征、情节推进、人物记忆、情绪承接、因果锚点等关键信息
  • 如果删除会破坏情节连贯性,改为"降AI重写"而非删除
  • 删除比例上限按 AI 味等级分级:轻度 ≤15%,中度 ≤25%,重度 ≤35%。重度文本可通过“合并重复描写+重写降AI”产生更大字符差,但仍不得整段删除或删掉剧情功能。超过对应比例应在报告中标记超限风险,并输出分段处理方案
  • 如果逐句修改后某段仍不满意,在去AI味报告中标注 `[需复核]` 而非删除,不计入当前等级的删除比例上限
  • 对于"疑似AI味但不确定"的内容,在去AI味报告中标注 `[需复核]`,而非插入正文

原则 3:保留创作意图

去AI味只改"怎么说",不改"说什么"。剧情、人设、情节走向一概不动;不新增原文没有的情节、设定、关系或时间线。如果原文有逻辑问题,那不是去AI味的活。

原则 4:按文风保留有功能的语气与停顿

去AI味不是把文字全部磨成句号。质问里的 `?`、爆发峰值的少量 `!` 可以保留;犹豫、未尽、打断或拖长用动作、短句、换行、逗号或句号重排。默认不保留 `……` / `——`;本书明确选择并登记的功能性停顿保留,也要清理无功能的 `!!!` 和随机标点堆砌。

边界:去AI味只处理读感与叙事功能

去AI味治读感,不承诺任何分数结果。若用户贴出工具报告,只把能对应到正文的问题转成具体修改点;不写“0% AI / 100% 真人”,不注水、故意错字或打乱标点。去AI味仍以原文剧情边界为准,不把表达修复变成新增情节或新增事件链。

作者习惯

若作者记忆 state 已存在,改写前用 `scripts/author_memory_commit.py query --kind prose_style` 获取匹配的 active 文风条目(总输出 ≤2KB),并交给 inline/spawn 执行者作为自然倾向,不逐条展示或最大化命中,不牺牲连贯、节奏和字数;当前请求、原文剧情功能和本 skill 保护规则优先。用户明确声明长期文风习惯时,改写后按 [references/author-memory.md](references/author-memory.md) 用 `record` 写入并回传回执;重复修正/推断先待确认,一次性要求、检测器 findings 和助手自己的结果不记录。

---

自然文本基准

去AI味需要知道自然网文文本的特征。以下是从热门网文中提炼的非模板化写作特征,作为对比基准:

自然文本特征(与AI味对比)

| 维度 | 自然文本 | AI味文本 | |------|----------|--------| | 段落长度 | 随 beat 长短不一:爽点/转折压短,推理/氛围/情绪链放长 | 通篇同一长度,整齐均匀 | | 句内节奏 | 叙述以逗号长句为主(逗号之间 8-12 字、整句 20-30 字,见 anti-ai-writing.md 规则 3) | 要么长句臃肿,要么通篇碎句像提纲 | | 对话标签 | 标签低频且不公式化,多用动作/上下文引出;普通"说"可保留 | 几乎每句都有"说道/问道/笑道" | | 情绪表达 | 直写有上下文支撑,反应带后果 | 空转的情绪总结句,或给每个情绪词配微动作 | | 比喻 | 生活化("像哈士奇护食") | 文学化("如寒冰般") | | 语气词 | "嘤""嘶""靠""行吧" | 几乎没有 | | 省略 | 大量省略,读者自己脑补 | 面面俱到,生怕读者不懂 | | 排比 | 偶尔1-2个,从不连续3+ | 连续3-5个排比是标配 | | 结尾 | 动作/对话收尾 | 总结/升华/感慨收尾 |

自然表达替换参考

> 来自大量网文写作研究:

  • 替代"深吸一口气"→ 直接删;若确有功能,改成角色当下动作
  • 替代"眼中闪过一丝..."→ "他垂下眼" / "眯起眼"
  • 替代"嘴角勾起一抹..."→ "他嘴角一扯" / "乐了"
  • 替代"仿佛..."→ 优先直接白描;确需比喻时只留少数生活化、角色化比喻
  • 替代"不禁..."→ 直接写动作
  • 替代"缓缓开口"→ "说" / 用动作引出对话

---

检测流程

Phase 1:AI味扫描

对用户提交的文本做快速扫描,标记AI味浓重的位置:

## AI味检测报告

### 整体评估
- AI味等级:{轻度/中度/重度}
- 主要问题:{1-3 个关键词}

### 问题标记
| 位置 | 类型 | Gate | 原文 | 问题 |
|------|------|------|------|------|
| 第X段 | 禁用词 | A | "眼中闪过一丝..." | 典型AI高频词 |
| 第Y段 | 句式 | B | "...,带着..." | AI惯用句式 |
| 第Z段 | 句式 | B | 连续3句排比 | 过于工整 |
| ... | 心理描写 | C | "一丝悲伤涌上心头" | 空转的情绪总结句 |
| 第M段 | 节奏 | D | 段段4-6句、长度均匀 | 整段同节奏 |
| 第N段 | 重复描写 | C/D | 同一动作连续拆写 | 相邻段重复同一瞬间 |
| 第P段 | 解释腔/上帝感 | G | "她不知道的是…" / "演得真好" / "之所以…是因为" | 叙述者跳出角色当下解释/剧透/定性/升华(模式 8) |
| 第Q段 | 动作清单 | D/E | "伸手拿起…取过…放下…转身…" | 监控摄像头式步骤表,缺少视角温度/心理缓冲(模式 10) |

> 类型 → Gate 速查:禁用词 = A,句式套路 = B,情绪空转 = C,节奏均匀 = D,对话腔调 = E,结尾升华 = F,解释腔/上帝感/安排感 = G,重复描写 = C/D。「诊断与分级」判定"7 Gate 中 4+ 个有问题"时按 Gate 列计数。

> 评价只输出 AI味等级(轻度/中度/重度)与问题标记;不做「上乘 / 新人投稿属上乘 / 性价比高」这类横向市场判断——skill 没有平台投稿分布数据,这类措辞是无依据的越权担保。

**确定性句式预检(文件模式)**:当输入是本地正文文件路径时,「AI味扫描」必须先运行本 skill 自带脚本,只报告不修改:

node scripts/check-ai-patterns.js --check --fail-on=blocking <正文文件...>
  • severity=blocking 的类别(`not-is-comparison` / `em-dash` / `voice-contrast` / `negation-parade` / `reverse-not-is` / `trailer-ending` / `trailer-summary`)并入 Gate B,属于写作/去 AI 味时优先处理的 blocking 类问题。
  • 其他 findings(碎句号、长段落、微动作、套式反应细节、动作清单、抽象总结、套词、比喻密度、解释链、公文腔、过度精炼、低连接密度、引号强调滥用、`formulaic-parallelism` 工整并列)只作读感提示;完整类别和修法见 `references/anti-ai-writing.md`。其中工整并列会扫描台词,必须读语境判断,不能因为 hook 对台词低误报豁免就跳过。
  • 处理方式:删掉否定铺垫,直接写后项;或改成角色动作、物件细节、身体反应来呈现。
  • 若用户只要检测,保留报告不改文。若执行去 AI 味,只改确实损害读感且无叙事功能的问题;功能性写法标 `[需复核]` 并保留。

---

Phase 2:诊断与分级

用户明确指定 Gate 时,直接使用该范围;未指定时,根据「AI味扫描」检测结果判断 AI 味程度,决定处理策略:

| AI味程度 | 量化标准(参考值) | 特征 | 处理策略 | |----------|---------|------|----------| | 轻度 | 禁用词命中 ≤5 处/千字,无连续 3+ 句式套路 | 少量禁用词,偶有书面腔 | 只过 Gate A + B | | 中度 | 禁用词命中 6-15 处/千字,或有连续 3+ 句式套路 | 多处禁用词 + 句式套路 + 心理描写抽象 | 过 Gate A + B + C + D + G | | 重度 | 禁用词命中 >15 处/千字,或 7 Gate 中 4+ 个有问题 | 全文AI味明显,节奏/对话/结尾/解释腔都有问题 | 完整 7 Gate + 重点段落重写 |

> 量化标准为参考值。命中 = banned-words.md 中条目作为连续字符串在文本中出现一次。`.deslop-whitelist` 中的词如果是命中片段的真子串,跳过该次计数(避免误报世界观术语)。同一词在一处出现计 1 次。 > > **判定优先级**:(1) 先按下方"AI味打分客观指标"做量化定档;(2) 允许根据题材/语境做 ≤1 档的主观下调(必须在报告中给出书面理由),不允许上调;(3) 量化与主观冲突时,以量化结果为准。

**AI味打分客观指标**:

| 指标 | 计算方式 | 轻度阈值 | 中度阈值 | 重度阈值 | |------|----------|---------|---------|---------| | 禁用词密度 | 命中次数 / 千字 | ≤5 | 6-15 | >15 | | 连续排比段数 | 连续相同句式结构的段落数 | ≤2 | 3-4 | ≥5 | | 空转情绪句 | 无落点的情绪总结句数 / 总段落数 | ≤10% | 10-25% | >25% | | 对话标签密度 | "说道/问道/笑道" 等 / 对话句数 | ≤30% | 30-50% | >50% | | 平均段落句数 | 总句数 / 总段落数 | ≤3 | 3-5 | >5 | | 重复描写密度 | 同

Read more
Ships withoh-story

网文写作 skill 包,覆盖长篇与短篇网络小说的扫榜、拆文、写作、去AI味、封面图全流程。内置适配 Claude Code、Google Antigravity、OpenCode、ZCode、OpenClaw、Codex CLI、Reasonix;能读取项目文件的 Web AI / Agent 环境也可按通用 skills 路径使用。 Oh Story is an open-source skill pack that turns coding agents — Claude Code, Codex CLI,

Get the whole plugin
Stats
6,889
Stars
980
Forks
Active
Maintenance
JavaScript
Language
MIT
License
3h ago
Last commit
4mo ago
Created

Repo: worldwonderer/oh-story-claudecode

Other skills on oh-story.

story-cover
Skill

story-cover

小说封面生成。根据书名、作者名自动分析题材风格,调用 GPT-Image-2 生成含标题和署名的专业级网文封面;Codex CLI 优先使用内置 ImageGen,无需单独 API Key。触发方式:/story-cover、/封面、「帮我做个封面」「生成封面图」「做个小说封面」「封面设计」。

story-import
Skill

story-import

逆向导入已有小说。将已写好的小说(半成品或完本)反向解析为标准项目目录结构,兼容 story-long-write / story-short-write 后续写作流程;内部复用 story-long-analyze / story-short-analyze…

story-long-analyze
Skill

story-long-analyze

长篇网文拆文。深度拆解爆款长篇小说的黄金三章、人设架构、爽点设计、节奏控制。单一深度拆解管道:跑完黄金三章(Stage 1)后产出快速预览报告并询问是否继续全量拆解,确认后从 Stage 2 续跑逐章摘要、聚合分析、设定关系、汇总报告,全程产物落盘…

story-long-write
Skill

story-long-write

长篇网文写作。从大纲到正文,辅助长篇网络小说的创作,包括世界观、人物、情节线管理。触发方式:/story-long-write、/写长篇、「帮我开书」「写大纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。