Web Novel AI-Flavor Remover
uu201/character-arc
Finds and rewrites AI-sounding passages in Chinese web novel text, changing as few words as possible while keeping plot, characters and names intact.
Rewrites AI-sounding Chinese web novel text so it reads naturally, changing as little as possible and keeping plot, names and numbers intact.
SKILL.md written in Chinese; this summary is our English description.
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install zenstory-ai/oh-story-claudecode story-deslop --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/zenstory-ai/oh-story-claudecode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/story-deslop .claude/skills/story-deslop && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "story-deslop" agent skill from https://github.com/zenstory-ai/oh-story-claudecode/tree/main/skills/story-deslop into .claude/skills/story-deslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-deslop", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/zenstory-ai/oh-story-claudecode/tree/main/skills/story-deslopType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install zenstory-ai/oh-story-claudecode story-deslop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zenstory-ai/oh-story-claudecode.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/story-deslop .agents/skills/story-deslop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "story-deslop" agent skill from https://github.com/zenstory-ai/oh-story-claudecode/tree/main/skills/story-deslop into .agents/skills/story-deslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-deslop", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install zenstory-ai/oh-story-claudecode story-deslop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zenstory-ai/oh-story-claudecode.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/story-deslop .cursor/skills/story-deslop && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "story-deslop" agent skill from https://github.com/zenstory-ai/oh-story-claudecode/tree/main/skills/story-deslop into .cursor/skills/story-deslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-deslop", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/zenstory-ai/oh-story-claudecode.git --path skills/story-deslop--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install zenstory-ai/oh-story-claudecode story-deslop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zenstory-ai/oh-story-claudecode.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/story-deslop .gemini/skills/story-deslop && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "story-deslop" agent skill from https://github.com/zenstory-ai/oh-story-claudecode/tree/main/skills/story-deslop into .gemini/skills/story-deslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-deslop", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install zenstory-ai/oh-story-claudecode story-deslopInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/zenstory-ai/oh-story-claudecode.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/story-deslop .github/skills/story-deslop && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "story-deslop" agent skill from https://github.com/zenstory-ai/oh-story-claudecode/tree/main/skills/story-deslop into .github/skills/story-deslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-deslop", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install zenstory-ai/oh-story-claudecode story-deslop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zenstory-ai/oh-story-claudecode.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/story-deslop .opencode/skills/story-deslop && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "story-deslop" agent skill from https://github.com/zenstory-ai/oh-story-claudecode/tree/main/skills/story-deslop into .opencode/skills/story-deslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-deslop", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
story-deslopRewrites AI-sounding Chinese web novel text so it reads naturally, changing as little as possible and keeping plot, names and numbers intact.
AI flavor is treated as a style problem, not a grammar error: prose that is too polished, symmetrical and exhaustive. The agent first loads the book's style rules, then edits with a light hand, changing a word before a sentence and a sentence before a paragraph, keeping names, places, numbers and chapter titles, and altering only how things are said, never what happens. Doubtful passages are flagged for review in the report instead of being changed in the text.
Safeguards stop over-cutting: whole paragraphs are never deleted, foreshadowing, hooks and causal anchors are checked before any removal, and deletion is capped at 15%, 25% or 35% of the text for light, medium and heavy cases. Functional punctuation pauses stay, random punctuation piles are cleaned up, and the skill does not promise any AI-detector score. Bundled scripts check AI patterns, degeneration and punctuation, and references cover banned words and author memory.
Where the runtime exposes project subagents (Claude, OpenCode, Codex or Antigravity), the work can be delegated to them; otherwise the agent edits directly and notes that fallback on the last line of its report. The skill text is in Chinese.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2cf7be6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 5 files in scripts/ (JavaScript and Python), which the agent can run.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Web Novel AI-Trace Remover loads about 2.6k tokens when it runs, and up to ~25k if it reads all its reference files. Until then it costs about 24 tokens; SKILL.md has 549 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from zenstory-ai/oh-story-claudecode at commit 2cf7be6, republished under its MIT licence (© zenstory-ai). 549 words, ~2,607 tokens.
.claude/skills/story-deslop/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.文风裁决:正文写作、改写或审稿前先读 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 名),不得因其他端文件存在而误判。Claude 用subagent_type,OpenCode 用subagent工具的agent参数,Codex 用同名agent_type,Antigravity 用invoke_subagent+TypeName。运行时未暴露 custom-agent registry /invoke_subagent、返回未知 agent,或检测到.zcode/(ZCode 3.3.4 不执行项目 custom agents)时降级 solo/direct:报告里一句白话告诉作者「这次由我直接改」,Fallback: project custom agents unavailable -> solo原文只写进报告最后一行「技术备注:」。Spawn 版本提示(不阻断 spawn):先读取项目根
.story-deployed的agents_version。与本版agents_version: 34不一致时(标记缺失、字段缺失/非整数、小于或大于 34)照常按文件存在性检查并 spawn,同时用一句白话提示作者「写作助手是旧版,运行 /story-setup 后新开对话」,Notice: agents bundle 版本不匹配(项目 {N},本版 34)原文写进技术备注行;大于 34 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,Fallback: ... -> solo同样只进技术备注行。
AI味不按语法错误处理,也不需要"修正"。它属于风格问题:过于书面化、过于对仗工整、过于面面俱到。去AI味的本质,是把文字从过度工整拉回具体、自然、可读。
去AI味不等于重写。目标是改最少的字,让整段文字的"味"变过来。能改一个词就不改一句,能删一句就不重写一段。没有问题的句子尽量保留原句;人名、地名、数字、章节名、专有名词优先保留。
过度去AI味保护:
[需复核] 而非删除,不计入当前等级的删除比例上限[需复核],而非插入正文去AI味只改"怎么说",不改"说什么"。剧情、人设、情节走向一概不动;不新增原文没有的情节、设定、关系或时间线。如果原文有逻辑问题,那不是去AI味的活。
去AI味不是把文字全部磨成句号。质问里的 ?、爆发峰值的少量 ! 可以保留;犹豫、未尽、打断或拖长用动作、短句、换行、逗号或句号重排。默认不保留 …… / ——;本书明确选择并登记的功能性停顿保留,也要清理无功能的 !!! 和随机标点堆砌。
去AI味治读感,不承诺任何分数结果。若用户贴出工具报告,只把能对应到正文的问题转成具体修改点;不写“0% AI / 100% 真人”,不注水、故意错字或打乱标点。去AI味仍以原文剧情边界为准,不把表达修复变成新增情节或新增事件链。
若作者记忆 state 已存在,改写前用 scripts/author_memory_commit.py query --workspace {工作区} --book-root {书目录} --kind prose_style [--genre {题材}] [--workflow 去AI味] 获取匹配的 active 文风条目(--workspace 必传;--genre 填本书题材类型),把输出的 lines(≤2KB)交给 inline/spawn 执行者作为自然倾向,不逐条展示或最大化命中,不牺牲连贯、节奏和字数;当前请求、原文剧情功能和本 skill 保护规则优先。用户明确声明长期文风习惯时,改写后按 references/author-memory.md 用 record 写入并按其「回执怎么告诉作者」转告;只记作者明确说的,一次性要求、反复修改、检测器 findings 和助手自己的结果不记录。
去AI味需要知道自然网文文本的特征。以下是从热门网文中提炼的非模板化写作特征,作为对比基准:
| 维度 | 自然文本 | AI味文本 |
|---|---|---|
| 段落长度 | 随 beat 长短不一:爽点/转折压短,推理/氛围/情绪链放长 | 通篇同一长度,整齐均匀 |
| 句内节奏 | 叙述以逗号长句为主(逗号之间 8-12 字、整句 20-30 字,见 anti-ai-writing.md 规则 3) | 要么长句臃肿,要么通篇碎句像提纲 |
| 对话标签 | 标签低频且不公式化,多用动作/上下文引出;普通"说"可保留 | 几乎每句都有"说道/问道/笑道" |
| 情绪表达 | 直写有上下文支撑,反应带后果 | 空转的情绪总结句,或给每个情绪词配微动作 |
| 比喻 | 生活化("像哈士奇护食") | 文学化("如寒冰般") |
| 语气词 | "嘤""嘶""靠""行吧" | 几乎没有 |
| 省略 | 大量省略,读者自己脑补 | 面面俱到,生怕读者不懂 |
| 排比 | 偶尔1-2个,从不连续3+ | 连续3-5个排比是标配 |
| 结尾 | 动作/对话收尾 | 总结/升华/感慨收尾 |
来自大量网文写作研究:
去 AI 味只有一条管线:确定性检测器 → 按分级选 Gate → 一次定点改写 → 复扫。长篇写作的章末检测与按需审查、story-review 的确定性预检用的是同一套检测器与 Gate,本 skill 是它的独立入口。
先认篇幅:目标是单个 正文.md(同目录常有 小节大纲.md 或 设定.md)按短篇处理,门禁 F/G 保留短篇卖点(主观审判句、火葬场预告、心死式章尾);正文/ 下逐章文件或章节片段按长篇处理。拿不准问作者一句。
对用户提交的文本做快速扫描,标记AI味浓重的位置。报告写给作者:问题用白话说并附原文,脚本名、检测器类别名、Gate 字母不进报告。
<!-- author-report -->
## AI味检测报告
### 整体评估
- AI味等级:{轻度/中度/重度}
- 主要问题:{1-3 个白话描述}
### 问题标记
| 位置 | 类型 | 原文 | 问题 |
|------|------|------|------|
| 第X段 | 套话 | "眼中闪过一丝..." | 典型AI高频词 |
| 第Y段 | 句式 | "...,带着..." / 连续3句排比 | AI惯用句式,过于工整 |
| 第Z段 | 情绪空转 | "一丝悲伤涌上心头" | 只总结情绪,没有落点 |
| 第M段 | 节奏 | 段段4-6句、长度均匀 | 整段同节奏 |
| 第N段 | 重复描写 | 同一动作连续拆写 | 相邻段重复同一瞬间 |
| 第P段 | 解释腔 | "她不知道的是…" / "之所以…是因为" | 叙述者跳出角色解释、剧透或下结论 |
| 第Q段 | 动作清单 | "伸手拿起…取过…放下…转身…" | 像监控录像,缺人物的感受 |类型 → Gate 速查(选 Gate 用,不写进表):套话 = A,句式 = B,情绪空转 = C,节奏 = D,对话腔调 = E,结尾升华 = F,解释腔 = G,重复描写 = C/D,动作清单 = D/E。
评价只输出 AI味等级(轻度/中度/重度)与问题标记;不做「上乘 / 新人投稿属上乘 / 性价比高」这类横向市场判断——skill 没有平台投稿分布数据,这类措辞是无依据的越权担保。
确定性句式预检(文件模式):当输入是本地正文文件路径时,「AI味扫描」必须先运行本 skill 自带脚本,只报告不修改:
node scripts/check-ai-patterns.js --check --fail-on=blocking <正文文件...>not-is-comparison / em-dash / voice-contrast / negation-parade / reverse-not-is / trailer-ending / trailer-summary)是写作/去 AI 味时优先处理的问题:章尾预告与章尾状态总结(trailer-ending / trailer-summary)归 Gate F,其余 blocking 并入 Gate B。formulaic-parallelism 工整并列)只作读感提示;完整类别和修法见 references/anti-ai-writing.md。其中工整并列会扫描台词,必须读语境判断,不能因为 hook 对台词低误报豁免就跳过。[需复核] 并保留。用户明确指定 Gate 时,直接使用该范围;未指定时按下表定档、选处理策略:
| AI味程度 | 特征 | 处理策略 |
|---|---|---|
| 轻度 | 少量禁用词,偶有书面腔 | 只过 Gate A + B |
| 中度 | 多处禁用词 + 句式套路 + 心理描写抽象 | 过 Gate A + B + C + D + G |
| 重度 | 全文AI味明显,节奏/对话/结尾/解释腔都有问题 | 完整 7 Gate + 重点段落重写 |
定档只看这六项(阈值是参考值,按题材放宽,如古风的对话标签天然偏多):
| 指标 | 计算方式 | 轻度 | 中度 | 重度 |
|---|---|---|---|---|
| 禁用词密度 | 命中次数 / 千字 | ≤5 | 6-15 | >15 |
| 连续排比段数 | 连续相同句式结构的段落数 | ≤2 | 3-4 | ≥5 |
| 空转情绪句 | 无落点的情绪总结句数 / 总段落数 | ≤10% | 10-25% | >25% |
| 对话标签密度 | "说道/问道/笑道" 等 / 对话句数 | ≤30% | 30-50% | >50% |
| 平均段落句数 | 总句数 / 总段落数 | ≤3 | 3-5 | >5 |
| 重复描写密度 | 同一信息/动作/情绪连续多段拆写的处数 / 千字 | ≤1处/千字 | 2-3处/千字 | ≥4处/千字 |
.deslop-whitelist 里的词是命中片段的一部分时不算(免得误报世界观术语)。改写顺序(只排所选 Gate 的先后,不扩大范围):先去泛化与套话(禁用词、抽象情绪、工整对仗、解释腔),再去书面腔,最后回自然节奏、对话差异与结尾落点;做法与范例见 references/anti-ai-writing.md。
「诊断与分级」完成后,按以下顺序选择执行路径:
narrative-writer agent:按当前运行时调用;Antigravity 用 invoke_subagent(TypeName: "narrative-writer"),Claude/OpenCode/Codex 用各自字段。prompt 照 references/agent-calls.md 填,只在交给写手时读。实际执行者逐项清除前读 references/deslop-gates.md 的删除保护、所选 Gate 细则与「写法抽查」;inline 与 agent 使用同源规则。按上文「改写顺序」排所选 Gate 的先后,不另起一次全篇去味。
当输入是正文文件路径,且「逐项清除」已落盘修改后,先做句式/段落复扫,再做机械标点兜底(破折号要按功能改写,故先于机械替换报出):
node scripts/check-ai-patterns.js --check --fail-on=blocking <正文文件...>
node scripts/check-degeneration.js --check <正文文件...>
node scripts/normalize-punctuation.js <正文文件...>作用边界:
check-ai-patterns.js 只报告不改写:severity=blocking 的类别优先改正文并复扫;advisory 先通读判断,确属提纲感、解释腔或模板腔再改,功能性写法标 [需复核]。references/anti-ai-writing.md。check-degeneration.js 报告模型退化(逐字复读/打转、末尾截断、占位符、工程词泄漏 细纲/情节点 等),每条带 severity: blocking|advisory。blocking 是退化信号,去AI味改不掉,应回去重新生成那一段再 deslop;advisory(tier2 章节/歧义词)只提示。normalize-punctuation.js 机械兜底:保留书级白名单获准的停顿,清除其余残留的 ……、漏网破折号 ——/—、双连字符 -- 和独立行 ---;默认不改变引号风格,也不把有功能的 ? / 少量 ! 改成句号。「」;只有用户或项目明确要求时,才给标点脚本加 --quote-mode ascii 或 --quote-mode yan。视角改写复核(仅本次要求切换视角时):交付前回读原文,逐项核对新增的感知/认知句。原文只说明事件发生,不等于人物已经看见或知道;不得自行补观察时点。没有原文依据的“进门时发现”“后来看到”等句子删去,或只呈现原有、当前场景可见的物件状态;不可得的信息暂不叙述。这个检查先于交付,不能用句式脚本通过代替。
<!-- author-report -->
## 去AI味结果
- AI味:{轻度/中度/重度} → 改后 {轻度/已基本去除};主要问题:{1-3 个白话描述}
- 改了 {N} 处:{最多的 2-4 类,如「删掉"眼中闪过一丝"一类套话 6 处;拆开连续排比 3 处」}
- 字数:{N0} → {N1}({删/增}{百分比}){;超过本档删减上限时写明已分段处理}
### 改前改后
{逐段展示,每处一句说明为什么改;超过 30 处时只展示前 10 处 + 末 5 处,其余按问题类型计数}
### 需要你看一眼
{标 [需复核] 的地方:原文 + 为什么没动或拿不准;没有就写"无"}
### 润色后全文
{文件模式(默认;章节/正文文件、批量与长篇去AI):直接改写落盘,写明改了哪个文件,本节只回 ≤200 字代表性片段,不向父会话返回全文。文本模式(仅限交互式贴入、无文件路径的零散片段):完整输出润色后的文本。}
下一步:{一句话,如「要我接着处理下一章吗?」}
技术备注:{降级或版本提示的原文;没有就删掉这一行}字数硬约束:删除比例不得超过「诊断与分级」对应上限(轻度 ≤15%、中度 ≤25%、重度 ≤35%)。超限时分段输出并在报告里标记,不得整段删除正文。
收敛终止:
[需复核],移交人工| 场景 | 操作 |
|---|---|
| 用户贴一段文字说"太AI了" | 执行完整检测 + 润色流程 |
| 用户说"帮我润色" | 先检测AI味,再润色 |
| 用户说"检查下有没有AI味" | 只做检测,不做修改 |
用户写作中要求 仅标注 / 只检测 / 不要改 | 嵌入式提醒模式:执行「AI味扫描」和「诊断与分级」,跳过「逐项清除」「确定性收尾」「输出润色结果」;输出问题标记表,不修改原文,不写文件 |
按需加载以下文件:
| 文件 | 何时加载 |
|---|---|
| references/banned-words.md | 检测和替换禁用词时 |
| references/deslop-gates.md | 逐项清除前:删除保护与所选 Gate 的细则、示例 |
| references/agent-calls.md | 交给 narrative-writer 去味时:prompt 模板 |
| references/anti-ai-writing.md | 去AI味完整指南:预防+改写顺序+范例 |
| scripts/normalize-punctuation.js | 文件模式落盘后做确定性标点收尾;默认保留引号风格 |
| scripts/check-ai-patterns.js | 文件模式「AI味扫描」预检与「确定性收尾」复扫(只看引号外叙述),只报告不改写 |
| scripts/check-degeneration.js | 文件模式「确定性收尾」复扫,只报告不改写 |
| references/author-memory.md + scripts/author_memory_commit.py | 读取或更新跨会话作者文风习惯时 |
流水线: 通用 位置: 润色(共享收尾)
| 时机 | 跳转到 | 命令 |
|---|---|---|
| 继续写作 | 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 |
© zenstory-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 12 other files (scripts, references) in skills/story-deslop of zenstory-ai/oh-story-claudecode.
Open the folder on GitHubat commit 2cf7be6
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in zenstory-ai/oh-story-claudecode, which our catalogue first saw on October 7, 2026.
Web Novel AI-Trace Remover next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Web Novel AI-Trace Remover this skillzenstory-ai/oh-story-claudecode | 7.4k | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Web Novel AI-Flavor Removeruu201/character-arc | 583 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Web Novel Polishing and De-AIuu201/character-arc | 583 | 1 repos | ~508 | Automated safety check: Pass | MIT | |
| User-Facing Text Cleanupguillaumemeyer/watermarks-remover | 24k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Chinese Text Humanizerop7418/Humanizer-zh | 19k | — | ~2k | Automated safety check: Pass | MIT | |
| Natural Japanese Business Writingcoji/natural-japanese | 1.9k | — | ~2.1k | Automated safety check: Pass | MIT |
uu201/character-arc
Finds and rewrites AI-sounding passages in Chinese web novel text, changing as few words as possible while keeping plot, characters and names intact.
uu201/character-arc
Polishes AI-generated web novel text to remove machine-sounding patterns, with rewriting strategies, instruction templates, style techniques and before-and-after examples.
guillaumemeyer/watermarks-remover
Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact.
op7418/Humanizer-zh
Edits Chinese articles, comments and documents to remove filler, repetition and template phrasing while keeping the facts, the level of certainty and the author's voice.
coji/natural-japanese
Writes and edits Japanese business documents so they read clearly and naturally, removes AI-sounding phrasing and can score how AI-like a text reads.
iflytek/skillhub
Audits and rewrites formulaic, AI-sounding prose while keeping facts, voice and format, using a local Python scorer and inspect-only, rewrite or embedded-gate modes.
zenstory-ai/oh-story-claudecode
Drives a Chrome window over the DevTools Protocol with the agent-browser CLI, so the agent can reuse your logged-in sessions, read pages and pull tokens.
zenstory-ai/oh-story-claudecode
Reviews Chinese web-novel text with several reviewer agents in parallel, falling back to a single-agent pass, and reports structure, character, prose and setting problems with fixes.
zenstory-ai/oh-story-claudecode
Scans popular short web-fiction rankings on Chinese platforms such as Dianzhong and Heiyan to surface trending emotional hooks, themes and topic candidates with an expiry warning.
zenstory-ai/oh-story-claudecode
Routes a Chinese web-novel writing request to the matching tool in a 13-skill toolbox, covers author habit memory, and can launch a local dashboard for browsing a project.
zenstory-ai/oh-story-claudecode
Reverse-imports an existing novel, half-finished or complete, into the standard project structure so story-long-write or story-short-write can continue it.
zenstory-ai/oh-story-claudecode
Breaks down a long Chinese web novel chapter by chapter into plot, rhythm, characters, and style, through a resumable staged analysis.
Categories
Rewrites AI-sounding Chinese web novel text so it reads naturally, changing as little as possible and keeping plot, names and numbers intact. AI flavor is treated as a style problem, not a grammar error: prose that is too polished, symmetrical and exhaustive. The agent first loads the book's style rules, then edits with a light hand, changing a word before a sentence and a sentence before a paragraph, keeping names, places, numbers and chapter titles, and altering only how things are said, never what happens.
Web Novel AI-Trace Remover fits situations like: polishing a web novel chapter that reads stiff, templated or machine-written; cleaning AI traces from a draft before publishing; revising a single paragraph or one category of AI patterns again.
Run `npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -a claude-code`. Or copy the skill folder (skills/story-deslop in zenstory-ai/oh-story-claudecode) into .claude/skills/story-deslop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -a codex`. Or copy the skill folder (skills/story-deslop in zenstory-ai/oh-story-claudecode) into .agents/skills/story-deslop in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add zenstory-ai/oh-story-claudecode --skill story-deslop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/story-deslop, .gemini/skills/story-deslop, .github/skills/story-deslop and .opencode/skills/story-deslop in your project.
Going by SKILL.md and its folder, Web Novel AI-Trace Remover needs JavaScript and Python for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: Node.js, for the bundled check scripts; Python, for the author-memory script.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Web Novel AI-Trace Remover is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 22k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Web Novel AI-Trace Remover: Web Novel AI-Flavor Remover (uu201/character-arc, 583 stars), Web Novel Polishing and De-AI (uu201/character-arc, 583 stars), User-Facing Text Cleanup (guillaumemeyer/watermarks-remover, 24k stars) and Chinese Text Humanizer (op7418/Humanizer-zh, 19k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
zenstory-ai (a GitHub organization) maintains it in zenstory-ai/oh-story-claudecode, which has 7,424 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 10, 2026.
Source: zenstory-ai/oh-story-claudecode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.