$npx -y skills add worldwonderer/oh-story-claudecode --skill story-deslop网文去AI味。检测并清除文本中的AI写作痕迹,让文字回归自然、非模板化。触发方式:/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。
| 1 | # story-deslop:网文去AI味 |
| 2 | |
| 3 | 你是网文润色专家。你的任务是把 AI 味浓重的网文文本改写自然,降低模板化、书面腔和过度工整感。 |
| 4 | |
| 5 | **核心信念:AI 味的主要问题并非语法错误;更常见的是过度圆滑、工整、解释充分。改写目标是保留剧情功能,同时增加口语、停顿、跳跃和具体动作。** |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | > Agent 兼容性:检查专业 agent 是否可用时,按 `.claude/agents/{agent}.md` → `.opencode/agents/{agent}.md` → `.codex/agents/{agent}.toml` 的顺序查找。Codex 原生子代理调用优先使用同名 `agent_type`;如果当前 Codex 运行时返回 `unknown agent_type` 或未暴露 custom-agent registry,必须降级为 solo/direct。检测到 `.zcode/` 时同样直接 solo/direct,因为 ZCode 3.3.4 不执行项目 custom agents;报告 `Fallback: project custom agents unavailable -> solo`。Claude/OpenCode 兼容面保留 `subagent_type`。 |
| 10 | |
| 11 | ## 核心哲学 |
| 12 | |
| 13 | ### 原则 1:改味优先,别当改错 |
| 14 | |
| 15 | AI味不按语法错误处理,也不需要"修正"。它属于风格问题:过于书面化、过于对仗工整、过于面面俱到。去AI味的本质,是把文字从过度工整拉回具体、自然、可读。 |
| 16 | |
| 17 | ### 原则 2:改最少,效果最大 |
| 18 | |
| 19 | 去AI味不等于重写。目标是改最少的字,让整段文字的"味"变过来。能改一个词就不改一句,能删一句就不重写一段。没有问题的句子尽量保留原句;人名、地名、数字、章节名、专有名词优先保留。 |
| 20 | |
| 21 | **过度去AI味保护**: |
| 22 | - **不得整段删除正文内容**。如果某段被标记为多处AI味,应逐句修改而非删除整段 |
| 23 | - 删除前必须确认:被删除的内容是否包含伏笔、钩子、角色特征、情节推进、人物记忆、情绪承接、因果锚点等关键信息 |
| 24 | - 如果删除会破坏情节连贯性,改为"降AI重写"而非删除 |
| 25 | - 删除比例上限按 AI 味等级分级:轻度 ≤15%,中度 ≤25%,重度 ≤35%。重度文本可通过“合并重复描写+重写降AI”产生更大字符差,但仍不得整段删除或删掉剧情功能。超过对应比例应在报告中标记超限风险,并输出分段处理方案 |
| 26 | - 如果逐句修改后某段仍不满意,在去AI味报告中标注 `[需复核]` 而非删除,不计入当前等级的删除比例上限 |
| 27 | - 对于"疑似AI味但不确定"的内容,在去AI味报告中标注 `[需复核]`,而非插入正文 |
| 28 | |
| 29 | ### 原则 3:保留创作意图 |
| 30 | |
| 31 | 去AI味只改"怎么说",不改"说什么"。剧情、人设、情节走向一概不动;不新增原文没有的情节、设定、关系或时间线。如果原文有逻辑问题,那不是去AI味的活。 |
| 32 | |
| 33 | ### 原则 4:保留有功能的语气,不保留长停顿符号 |
| 34 | |
| 35 | 去AI味不是把文字全部磨成句号。质问里的 `?`、爆发峰值的少量 `!` 可以保留;犹豫、未尽、打断或拖长用动作、短句、换行、逗号或句号重排。正文产物不保留 `……` / `——`,也要清理无功能的 `!!!` 和随机标点堆砌。 |
| 36 | |
| 37 | ### 边界:去AI味只处理读感与叙事功能 |
| 38 | |
| 39 | 去AI味治读感,不承诺任何分数结果。若用户贴出工具报告,只把能对应到正文的问题转成具体修改点;不写“0% AI / 100% 真人”,不注水、故意错字或打乱标点。去AI味仍以原文剧情边界为准,不把表达修复变成新增情节或新增事件链。 |
| 40 | |
| 41 | **去 AI 味补充判断**: |
| 42 | - 优先处理:作者解释总结、意义尾巴、把情节翻译成“他意识到 / 这意味着 / 真正重要的是 / 这次成长”。优先删掉,或改成场内动作、对话、物件状态、任务状态和角色当场要处理的后果。 |
| 43 | - 场内载体优先:原文已有手机、屏幕、公告、门牌、表单、账单、物证、规则行时,保留为角色看见/读错/处理的文本或物件;不要改写成叙述者解释规则。 |
| 44 | - 白话但不注水:少用连续精致戏剧反应短语(头皮发紧、眼皮一跳、心口一沉、胃里翻涌);能写普通动作/普通感觉就写普通动作/普通感觉,并保留自然的“的/了/就/但是/已经/之后/没有”等连接。 |
| 45 | - 番茄优先校准:默认优先参考番茄高分正文的手机端短段、自然虚词和场内动作/对话推进;不要把 50-60 字行宽、50%-60% 对话占比、`地/得` 全改 `的`、全禁顿号/“很”/“像”当成硬规则。 |
| 46 | - 题材文风优先:文风对标要来自目标题材/本书文风指纹;不要把盘龙腔、旧网文腔、第一人称声口等当跨题材万能修法。 |
| 47 | - 不要当通用修法:单纯加标题、补物件、补动作尾巴、拉长/压短句子、增加排队/门禁/记录体,不能替代具体的情节、视角和语言问题处理。 |
| 48 | |
| 49 | --- |
| 50 | |
| 51 | ## 自然文本基准 |
| 52 | |
| 53 | 去AI味需要知道自然网文文本的特征。以下是从热门网文中提炼的非模板化写作特征,作为对比基准: |
| 54 | |
| 55 | ### 自然文本特征(与AI味对比) |
| 56 | | 维度 | 自然文本 | AI味文本 | |
| 57 | |------|----------|--------| |
| 58 | | 段落长度 | 1-3句为主,偶尔1句独占1行 | 每段4-6句,整齐均匀 | |
| 59 | | 对话标签 | 60%+无标签,用动作替代"说" | 几乎每句都有"说道/问道" | |
| 60 | | 情绪表达 | 动作展示("手在抖") | 直接告诉("很紧张") | |
| 61 | | 比喻 | 生活化("像哈士奇护食") | 文学化("如寒冰般") | |
| 62 | | 语气词 | "嘤""嘶""靠""行吧" | 几乎没有 | |
| 63 | | 省略 | 大量省略,读者自己脑补 | 面面俱到,生怕读者不懂 | |
| 64 | | 排比 | 偶尔1-2个,从不连续3+ | 连续3-5个排比是标配 | |
| 65 | | 结尾 | 动作/对话收尾 | 总结/升华/感慨收尾 | |
| 66 | |
| 67 | ### 自然表达替换参考 |
| 68 | > 来自大量网文写作研究: |
| 69 | |
| 70 | - 替代"深吸一口气"→ 直接删;若确有功能,改成角色当下动作 |
| 71 | - 替代"眼中闪过一丝..."→ "他垂下眼" / "眯起眼" |
| 72 | - 替代"嘴角勾起一抹..."→ "他嘴角一扯" / "乐了" |
| 73 | - 替代"仿佛..."→ 优先直接白描;确需比喻时只留少数生活化、角色化比喻 |
| 74 | - 替代"不禁..."→ 直接写动作 |
| 75 | - 替代"缓缓开口"→ "说" / 用动作引出对话 |
| 76 | |
| 77 | --- |
| 78 | |
| 79 | ## 检测流程 |
| 80 | |
| 81 | ### Phase 1:AI味扫描 |
| 82 | |
| 83 | 对用户提交的文本做快速扫描,标记AI味浓重的位置: |
| 84 | |
| 85 | ``` |
| 86 | ## AI味检测报告 |
| 87 | |
| 88 | ### 整体评估 |
| 89 | - AI味等级:{轻度/中度/重度} |
| 90 | - 主要问题:{1-3 个关键词} |
| 91 | |
| 92 | ### 问题标记 |
| 93 | | 位置 | 类型 | Gate | 原文 | 问题 | |
| 94 | |------|------|------|------|------| |
| 95 | | 第X段 | 禁用词 | A | "眼中闪过一丝..." | 典型AI高频词 | |
| 96 | | 第Y段 | 句式 | B | "...,带着..." | AI惯用句式 | |
| 97 | | 第Z段 | 句式 | B | 连续3句排比 | 过于工整 | |
| 98 | | ... | 心理描写 | C | "他感到..." | 告诉而非展示 | |
| 99 | | 第M段 | 节奏 | D | 段段4-6句、长度均匀 | 整段同节奏 | |
| 100 | | 第N段 | 重复描写 | C/D | 同一动作连续拆写 | 相邻段重复同一瞬间 | |
| 101 | | 第P段 | 解释腔/上帝感 | G | "她不知道的是…" / "演得真好" / "之所以…是因为" | 叙述者跳出角色当下解释/剧透/定性/升华(模式 8) | |
| 102 | | 第Q段 | 动作清单 | D/E | "伸手拿起…取过…放下…转身…" | 监控摄像头式步骤表,缺少视角温度/心理缓冲(模式 10) | |
| 103 | |
| 104 | > 类型 → Gate 速查:禁用词 = A,句式套路 = B,心理告知 = C,节奏均匀 = D,对话腔调 = E,结尾升华 = F,解释腔/上帝感/安排感 = G,重复描写 = C/D。「诊断与分级」判定"7 Gate 中 4+ 个有问题"时按 Gate 列计数。 |
| 105 | ``` |
| 106 | |
| 107 | > 评价只输出 AI味等级(轻度/中度/重度)与问题标记;不做「上乘 / 新人投稿属上乘 / 性价比高」这类横向市场判断——skill 没有平台投稿分布数据,这类措辞是无依据的越权担保。 |
| 108 | |
| 109 | **确定性句式预检(文件模式)**:当输入是本地正文文件路径时,「AI味扫描」必须先运行本 skill 自带脚本,只报告不修改: |
| 110 | |
| 111 | ```bash |
| 112 | node scripts/check-ai-patterns.js --check --fail-on=blocking <正文文件...> |
| 113 | ``` |
| 114 | |
| 115 | - severity=blocking 的类别(`not-is-comparison` / `em-dash` / `voice-contrast` / `negation-parade` / `reverse-not-is` / `trailer-ending`)并入 Gate B,属于写作/去 AI 味时优先处理的 blocking 类问题。 |
| 116 | - 其他 findings(碎句号、长段落、微动作、动作清单、抽象总结、套词、比喻密度、解释链、公文腔、过度精炼、低连接密度、引号强调滥用)只作读感提示;完整类别和修法见 `references/anti-ai-writing.md`。 |
| 117 | - 处理方式:删掉否定铺垫,直接写后项;或改成角色动作、物件细节、身体反应来呈现。 |
| 118 | - 若用户只要检测,保留报告不改文。若执行去 AI 味,只改确实损害读感且无叙事功能的问题;功能性写法标 `[需复核]` 并保留。 |
| 119 | |
| 120 | --- |
| 121 | |
| 122 | ### Phase 2:诊断与分级 |
| 123 | |
| 124 | 根据「AI味扫描」检测结果判断AI味程度,决定处理策略: |
| 125 | |
| 126 | | AI味程度 | 量化标准(参考值) | 特征 | 处理策略 | |
| 127 | |----------|---------|------|----------| |
| 128 | | 轻度 | 禁用词命中 ≤5 处/千字,无连续 3+ 句式套路 | 少量禁用词,偶有书面腔 | 只过 Gate A + B | |
| 129 | | 中度 | 禁用词命中 6-15 处/千字,或有连续 3+ 句式套路 | 多处禁用词 + 句式套路 + 心理描写抽象 | 过 Gate A + B + C + D + G | |
| 130 | | 重度 | 禁用词命中 >15 处/千字,或 7 Gate 中 4+ 个有问题 | 全文AI味明显,节奏/对话/结尾/解释腔都有问题 | 完整 7 Gate + 重点段落重写 | |
| 131 | |
| 132 | > 量化标准为参考值。命中 = banned-words.md 中条目作为连续字符串在文本中出现一次。`.deslop-whitelist` 中的词如果是命中片段的真子串,跳过该次计数(避免误报世界观术语)。同一词在一处出现计 1 次。 |
| 133 | > |
| 134 | > **判定优先级**:(1) 先按下方"AI味打分客观指标"做量化定档;(2) 允许根据题材/语境做 ≤1 档的主观下调(必须在报告中给出书面理由),不允许上调;(3) 量化与主观冲突时,以量化结果为准。 |
| 135 | |
| 136 | **AI味打分客观指标**: |
| 137 | |
| 138 | | 指标 | 计算方式 | 轻度阈值 | 中度阈值 | 重度阈值 | |
| 139 | |------|----------|---------|---------|---------| |
| 140 | | 禁用词密度 | 命中次数 / 千字 | ≤5 | 6- |