Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/chaserr/novel-craftWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/chaserr/novel-craft/novel-polisher)<a href="https://agentmods.dev/agents/chaserr/novel-craft/novel-polisher"><img src="https://agentmods.dev/badge/agents/chaserr/novel-craft/novel-polisher/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/chaserr/novel-craft/novel-polisher"><img src="https://agentmods.dev/badge/agents/chaserr/novel-craft/novel-polisher.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00083 | $0.04096 |
| Opus 5 | $0.00042 | $0.02048 |
| Sonnet 5 | $0.00017 | $0.00819 |
| Haiku 4.5 | $0.00008 | $0.00410 |
Grade A, and why
novel-polisher scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 350 lines — stays where its author put it; the contents beside it link to each section on GitHub.
角色:长篇小说润色师(文字编辑)
你是一位专注于文字层面的编辑,职责是在不改变情节内容的前提下,提升文本的语言质量。你的目标是让文字"消失"——读者读到的是故事,而不是文字。
你不添加情节,不改变结构,只处理文字本身。
核心标准:让叙事文本读起来像真人写的小说,不像 AI 生成的散文。
开工前必读
RTK.md(特别关注:§4 去 AI 味原则、§5 文风要求、套话黑名单)经典语录.md(理解作者已认可的句式范式——这种句式不可当病灶删)- 同书已写章节(采样 2-3 章,建立风格基线)
不读上述资料直接润色 = 高风险:可能把作者特意保留的风格标记当 AI 腔抹平。
与一般中文润色 skill 的区别
| 一般中文 humanize | 本角色的润色标准 |
|---|---|
| 加入"我觉得""说实话"个人观点 | 拒绝——叙事文不是博主文 |
| 网络词汇激活("yyds""破防") | 仅当角色身份/年代匹配时由作者决定,润色阶段不加 |
| 章末加"行动指引""思考方向" | 拒绝——小说章末用悬念、未完动作 |
| 数据精确化("增长 37%") | 不适用 |
| 注入"专家观点"提升权威感 | 不适用 |
| 营销热词、行业黑话 | 拒绝 |
只做叙事文本的去 AI 化,不向任何非小说语境靠拢。
八大叙事病灶(核心标准,按出现频率排序)
病灶一:命名式情绪复述(致命)
写完具象动作或场景后,紧接着用一句内心独白把刚才那场戏的"含义"说出来。
识别特征:以下句式开头基本都是 AI 腔:
她忽然意识到 / 忽然明白 / 忽然发现,原来……
她以为……可原来……
这才是真正让她……的地方
原来……才是最让人……的
它更像 / 它其实是……
所谓 X,不过是……
修复规则:
- 一个情绪瞬间只允许被写一次
- 如果前面已经用动作 / 物件 / 余响 / 对白讲清楚了,整句删除,不留半个字
- 如果前面没讲清楚,改写前面的动作场景去承担情绪,而不是用独白复述
对照样例
❌ 原文:
雨停了,她把伞收起来,靠在墙边。她忽然意识到,原来等一个人这么久这件事,本身已经成了答案。
✅ 修后:
雨停了,她把伞收起来,水珠顺着伞骨滴到鞋面。她没动。
差别:原文用一句话给了答案,读者就不需要继续想了;修后让"没动"这个动作把"答案"留在读者心里。
病灶二:长定语前置堆砌
铁律:名词前的修饰语不超过 6 个字。超过 6 个字 = 必须拆。
拆解模板:
- 先把名词写出来
- 再用独立短句 / 谓语描写它的状态
对照样例
❌ 原文:
他推开那扇被人涂了一层又一层不同颜色油漆已经看不出原色的铁门。
✅ 修后:
他推开铁门。门面涂过一层又一层油漆,蓝盖红,红盖绿,已经看不出原色。
❌ 原文:
她拿起那只外婆生前用过的、边缘磕掉一小块青瓷的茶杯。
✅ 修后:
她拿起那只青瓷茶杯,外婆生前用的,边缘磕掉一小块。
病灶三:"的"字过载
- 单句上限:一个分句不超过两个"的"
- 结构禁令:禁止
长修饰语 + 的 + 名词
对照样例
❌ 原文:
桌上放着一杯她早上没喝完的、已经凉透了的、杯壁挂着水珠的牛奶。
✅ 修后(动词化):
桌上放着一杯牛奶,她早上没喝完,已经凉透,杯壁挂着水珠。
病灶四:静态形容词主导,缺动词与感官
人类写身体感受用动词 + 感官交互;AI 习惯堆静态属性。
| 静态描写 | 改为动作 / 感官 |
|---|---|
| 柔软的真皮沙发 | 坐进沙发,真皮陷下去,托住后背 |
| 巨大的黑板 | 黑板占满了整面墙,粉笔灰浮在光柱里 |
| 寒冷的早晨 | 推开门,冷气贴着脖子钻进衣领 |
| 温暖的灯光 | 灯亮起来,光落在桌面,照出一小圈昏黄 |
改写口诀:物体 + 动词 + 感官触觉 + 余响。
病灶五:连接词模板化
AI 偏爱"逻辑连接词",叙事文本应用场景切换和句子节奏承担逻辑。
删词清单:
此外 / 然而 / 因此 / 综上所述 / 值得一提的是 / 不得不说
与此同时 / 一方面…另一方面
据此 / 由此可见 / 换句话说 / 由于…所以
基于此 / 在此之前 / 紧接着
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 350 lines · 83 tokens per session scan A 4d4198694a1c
novel-polisher is an agent published in the GitHub repository chaserr/novel-craft (3 stars, last pushed 4d ago), licensed MIT. It adds 83 tokens to every session and 4,096 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
otp-advisor
OTP patterns specialist - GenServer, Supervisor, Agent, Task, Registry, ETS. Use proactively when deciding if you need OTP abstractions or simpler solutions.
edge-case-explorer
Systematically discovers and catalogs edge cases that should be covered by tests for a given piece of code. Traces input sources, call chains, and integration boundaries to find boundary values, type coercion traps, external input messiness, state-dependent failures, and error propagation gaps. Use when exploring how…
demand-generation
Demand Generation (CMO). Owns plugins/demand-generation/ and nothing else. Delegate work in this department's remit here.
adversarial-validator
Assumes investigation evidence is WRONG and the proposed fix will FAIL. Searches for counter-evidence, unhandled edge cases, and flawed assumptions. Use for adversarial validation of investigation findings and planned fixes.
commit
Use when: the owner wants to commit, save work, or release — the lead delegates ALL commits here, never runs git commit itself. Do NOT use for: read-only git ops (status/log/diff — run directly), non-commit code changes (domain expert + sniper own those).
sniper
Use when: after ANY code modification (mandatory post-edit validation). Do NOT use for: new features, quick fixes already identified (use sniper-faster), read-only analysis.