game-copy-polish · 游戏文案包装
依赖
scripts/check_prose.py(机械终检层,纯 Python stdlib,无需安装依赖)。
先教功夫,再扫毛病
好的游戏文案不是"没有 AI 味的文案"。AI 味只是表面症状——根因是没有叙事脊柱。一篇有脊柱的文案天然不会堆翻案腔,因为每句话都在往前推,没有空间回头否定。
本 skill 分两半:
- Part A 正功夫(动笔前读 / 改稿时对标)——叙事原理和写法
- Part B 扫毛病(交稿前跑)——机械终检 + 密度红线
Part A · 正功夫
A0 推导纪律(动笔前的方向检查,先于一切技法)
规范层先行:作品类项目先有规范层(IP 宪法 / world bible——边界、核心动线、行为不变量)再动笔。没有规范层就先立,不在没有规范的地方写设定。
推导起点只能是规范层内核,两样东西都不是上游:
- 不是旧版成品——重导设定层要时序隔离:不打开旧版、不检索其中的人名/器物/台词。看过旧版再推导会不自觉长回旧形状,产出带完整论证外观的「假推导」(每级都写着"因为内核 X 所以 Y",但因果方向是反的),比不推导更危险
- 不是执行侧/合作方的既有设计文档——那些是参考答案,不是推导起点
从「要表达什么」往下长,不从素材往上攒:每一段要答得出「为什么存在」;只答得出「出处是什么」= 素材堆,文笔再好也救不回来。前史/起源类同理:时间在前 ≠ 推导在前,一律从内核逆向导出。
先抄不可推导事实,再推导(2026-08-25 实证,同日代价最大的一次):从上游(宪法 / 前史 / 已写成的角色稿)往下推之前,先把上游的「不可推导事实」逐条抄下来。
不可推导事实 = 只能读到、编不出来的东西:具体的人名、具体的一句原话、具体的物件、具体做过的一件事、具体的数字。
- 写人物时先抄三样:他为什么出发 / 他做过什么亏心事 / 他失去了什么。写不出来就说明还没读原稿
- 抄下来的清单同时是验收锚——产出里这几条事实不在,就是漂了,一眼可查
- 实证:三篇角色故事重写时,先定了三个立场再从「立场需要什么」倒推动机,结果把原稿里「替弟入阵」「派十二个人进山没回来」「他是震源」三个核心全换掉了。而结构层的自查全过——立场两两互斥、七节点齐全、三人对照表无一行雷同
- 为什么自查抓不住:设的检查全是结构检查,而结构自洽可以在完全不接触原材料的情况下达成。所以「推导自洽」永远不能当作「忠于上游」的证据,这两件事互相独立
归因纪律(2026-08-25 对抗性核伪实证):给作家 / 作品 / 理论下「规律性」判断之前,先问能不能举出反例。
- 举不出具体作品 + 具体段落的归因,一律不写。把「某某的手法」改写成无主语的「这种手法」——技术照讲,归因去掉
- 带数字的阈值(每百字几个、隔多远、留白几秒)必须标明是「经验估计」还是「有出处」,不许把猜测洗成规则
- 实证:一份手册写「余华只写动作、不写心理」,被《活着》原文反证(「我的心放下了」)。这类错最贵——带权威感、看不出问题、学了会内化成错的直觉,比没有规则更糟
- 同源双闸见
~/.claude/CLAUDE.md理论锚:年份归属不确定就只写理论名;引用前过误用黑名单
A1 叙事脊柱检查(动笔前三问)
三条全过 = 故事和游戏的脊柱是同一根。一条没过 = 还没准备好动笔。
① McKee 主控思想:写得出一句话吗?
公式:[什么变了] because [核心动词]
核心动词占 Cause 位——角色做的那件具体的、可做的动作(不是形容词)。Value 位是核心动词改变了什么。
| 角色 | 核心动词 | 主控思想 |
|---|---|---|
| (角色A) | (动词) | (什么变了),because 她/他学会了(核心动词) |
| (角色B) | (动词) | (什么变了),because 他/她一直在(核心动词) |
每个角色动笔前先填这张表。写不出主控思想 → 核心动词没找对,或者 Value 位是空的。回去找。
② Greimas 六行动元:六个位子都有人坐吗?
| 位 | 作用 | 检查 |
|---|---|---|
| Subject | 主角 | 有 |
| Object | 主角追求的东西 | 有——但高潮时 Object 会翻转吗?Object 翻转(追求的东西变了),整个行动元星座重排 = 高潮的结构来源 |
| Helper | 帮主角的力量 | 有 |
| Opponent | 阻碍主角的力量 | 最容易空——对手位空 = 冲突假了 = 故事没有张力。签名视觉的"矛盾"本质上是 Opponent 力量的物理化 |
| Sender | 派遣主角的力量 | 有 |
| Receiver | 最终受益者 | 有 |
③ Church FADT:核心动词能变成玩家操作吗?
intention + perceivable consequence——玩家能形成"做/不做"的意图,并看到"做/不做"的后果。
| 核心动词 | 玩家操作 | 意图 | 可感知后果 |
|---|---|---|---|
| (动词) | (对应的游戏操作) | 我要不要做这件事? | (做/不做分别带来什么) |
核心动词不能变成操作 → game-story 是贴皮不是同构。
A2 九条核心技法
① 一个动词撑全篇
每个角色只有一个核心动词。这个动词要承载三层含义:能力 / 性格 / 觉悟。
- 能力层:她/他活下来因为会做这件事
- 性格层:她/他差点死因为忘了这件事
- 觉悟层:她/他最终在做这件事的时候看见了全局
写法:全文围绕这一个动词展开。不是每句都写这个动词,是每个场景都在回应它。 角色做的每件事,要么是在做这个动作,要么是在抗拒这个动作,要么是在重新理解这个动作。游离出去的段落——删。
② 反套路 = 让读者和主角同时被骗
常规路线先让读者以为在走一条熟路(主角确实在变强、在通过一道道关),在高潮处揭示:路本身是陷阱/代价/考验的一部分。
关键:读者和主角同时被骗——这比全知视角看主角挣扎更有冲击力。不要提前暗示结局。
③ 签名资产从核心矛盾推导
角色的标志性视觉元素不是"觉得好看加上去的",是叙事逻辑的物理化。
设计任何角色的签名视觉时先问:这个视觉元素跟角色的核心矛盾有什么逻辑关系?答案只是"好看" → 还没推导到位。
推导方法:从核心动词出发——这个动词的反面是什么?这个动词的代价是什么?这个动词需要放弃什么?放弃的东西就是签名视觉的来源。
附带原则——角色的日常姿态比战斗姿态更能定义人物。
④ 物件叙事比形容词有力
物件不解释情感,它让读者自己产生情感。
- "她很难过" → 作者在告诉你
- "她蹲在那只鞋旁边,蹲了很久,没哭" → 作者给你一个场景,让你自己难过
升级用法——物件跨时空串联: 同一条路上两代人的遗物按深度排列。不用写任何家族史,读者自己算出来了。
写法:每个角色至少一件随身物,这件物必须在故事中出现至少两次,两次含义不同。
⑤ 重复结构制造叙事引力
平行重复不是偶然——每一组重复都在说历史在循环。重复中的微小差异就是角色的独特性。
两个角色在同一场景做同样的事——框架精确相同,但细节不同。一个说告别,另一个说"柴劈小块的,烧起来快"——生活指令,不是遗言。这个差异就是她这个人。
写法:至少一组平行重复(同一场景、不同角色或不同时间)。重复的框架要精确,差异要自然——不要刻意标记"这里不一样",让读者自己发现。
⑥ 叙事节奏 = 主题的形式化
故事的快慢节奏在模拟它在说的那件事。讲"跑和停"的故事,快段让读者跟着跑,慢段强迫读者停。读者和主角经历同样的节奏转换。
写法:快段用短句、密集动作、不给喘气。慢段用长句、感官细节、让时间膨胀。不要在慢段里塞动作,不要在快段里抒情。
⑦ Game-Story 同构(不是比喻,是"就是")
最好的游戏叙事不是在游戏之外讲故事(过场动画),是让游戏机制本身成为故事。
判断标准:玩家做的事和角色做的事在物理上是同一件事吗?
- 如果玩家"跑一圈"和角色"在世界里走一圈"是同一个动作——同构
- 如果核心资源的积累/消耗循环映射角色的行为模式——同构
- 如果"死亡/失败"在叙事上也成立(不只是重来,而是角色也在经历的东西)——同构
- 如果只是过场动画讲故事、然后回到跟故事无关的战斗——贴皮
写法:写角色故事前先列出该职业的全部核心卡/技能。每张核心卡在故事中必须有「肉身发现」的场景——角色通过物理行动发现这个机制,不是被告知。 非核心卡不必逐张嵌入,但核心循环的每个环节必须有叙事锚点。写完后用卡组/技能列表做覆盖率检查。
⑧ 一句话是方向盘不是总结
好的一句话定位在故事写完之前就应该存在——它是写故事的方向盘。
一句话的质量标准:
- 有对比结构(死/活、具象/抽象、已有/在追)
- 每个词都有叙事功能(不是修饰)
- 写的时候迷路了回来看这句话,看它有没有在说同一件事
不是写完之后的宣传语。
⑨ 全知标签隐化(叙述者词汇 ≤ 角色认知)
角色故事里,叙述者的词汇不能超过角色的认知层级。游戏术语(格线/盘/势/能量等机制词)是全知标签——角色还没看懂的东西,叙述者不能替角色命名。
- 角色先感受物理现象(刻线/石面上的线),术语只在角色的顿悟/觉醒时刻首次出现
- "盘"第一次出现 = 角色第一次意识到自己在棋盘上
- 这是 A2②(让读者和主角同时被骗)在词汇层的落地
- 验收:grep 游戏术语在故事中的分布,第一次出现必须在角色的认知转折点之后
写法:列出该游戏的全部机制词(术语表),在角色故事中标记每个词的首次出现位置。首次出现必须在角色的认知转折点之后——之前一律用物理描述替代。
出处:2026-08-25 棋门三传 v6 审稿,三步追到根因(格线在转太抽象 → 格线本身不该出现 → 全知标签隐化),33 处编辑验证。
A3 游戏文案四体裁 × 声音标准
角色介绍 / 人物档案
动作先于定义。 不要告诉读者"他是什么样的人",从一个动作让读者自己看出来。
- ❌ "他是一个沉默寡言但内心坚定的守卫"
- ✅ 从一个具体场景切入——他做了什么、说了什么、别人怎么反应
写前必做: 吃透该角色的玩法机制。不了解机制就写角色 = 叙事会抹平设计意图。
卡牌 flavor text
一格一景,不议论。 每段是一个具体的场景/画面/声音,不是对角色的评价。
- ❌ "XX 代表了永不停歇的战意"(议论)
- ✅ 给一个具体场景——谁在什么地方做了什么、旁观者看到了什么(场景)
白描 > 形容词。 能用一个具体细节说的,不用形容词。
- ❌ "极其猛烈地冲击"
- ✅ 用具体数字/物理细节:厚度、距离、声音、温度
同一角色的不同卡牌 flavor 构成变奏曲——同一件东西过不同视角,每个视角揭示它的一个面。结构相同,细节各异。
商店页 / 宣传语
第一句给画面,第二句给冲突,第三句给选择。 三句话讲完,读者知道这游戏在说什么。
- ❌ "这是一款融合了 XX 元素的 YY 游戏,玩家将在充满策略性的 ZZ 中体验独特的 WW"(说明书腔)
- ✅ 先给一个世界的画面,再给一个冲突,最后暗示玩家要面对的选择
世界观描写
让世界自己说话,别替它总结。 目标是让读者"住进去",不是"理解设定"。
- ❌ "XX 系统是本游戏的核心战斗机制"(说明书)
- ✅ 从居民/旅人/当事人的视角描述世界——他们看到什么、踩到什么、害怕什么
推导方向只有一条:从"要表达什么"往下长,不从素材往上攒。 看到什么酷就加什么,文笔再好也是散装。前史/起源叙事也是逆向导出——时间在前 ≠ 推导在前。
A4 视觉叙事六技法(角色故事长图页)
① 色板即角色声音
色板从核心动词推导——速度型角色用暖色/高对比,守护型用冷色/低饱和。不是"好看",是通感:颜色在说这个角色说的那件事。
② 压缩比因角色而异
不同角色的长图页长度可以不同——不是篇幅不够,是角色的节奏不同。速度型需要长卷展开动感,沉稳型不需要那么多空间。
③ 视觉母题当张力曲线
关键概念图的分布 = 故事的张力曲线。峰值场景配概念图,谷底场景用文字留白。不要均匀分布。
④ 双层考古叙事
故事里可以有两层时间:现在发生的事 + 过去留下的痕迹。物件串联两层。
⑤ 概念图按峰值分布
不要每个段落都配图。图是重炮——高潮、转折、揭示时才用。日常段落用文字,留出呼吸空间。
⑥ 单动词 vs 三字弧线
核心矛盾单一的角色用单动词撑三层含义;矛盾有阶段性的角色用三字弧线(如"守→困→放")。选择取决于角色复杂度。
A5 概念图与生图验收(场景 / 立绘 / 物件 / UI / 概念图 prompt)
⓪ 先过 A1,再谈造型(美术设计的第一动作)
出图前先写出这张图的主控思想——一句话,[什么变了] because [核心动词],跟写文案时一模一样。然后每个视觉元素逐个问:它在说这句话的哪半句?答不出的元素一律是装饰层,可以留但不许承重。
反 pattern(2026-08 实测踩过):从设定条目往下拆构造——「设定说这东西没做完 → 所以它没装订 → 所以是夹板加绳」。每步自洽,图也出得来,但整张图没在说任何一句话,纹样、包角、器件全是装饰,评审时只能讨论好不好看。造型是主控思想的物理化,不是设定条目的字面翻译。
物件类概念图的承重点通常就三个,其余是背景:谁用过它(使用痕迹)· 发生过什么(断口/缺失/未完成的动作)· 它现在的状态(等待/停止/正在进行)。三点各领一句话的一半。
⓪ˊ 辨识度闸:3 秒说得出这是什么(物件类第一验收项,先于一切承重点)
出图后第一件事不是看承重点,是把图给没读过任何设定的人看 3 秒,问一句「这是什么东西」。答不出物件的类别,这张图作废——所有叙事承重都挂在类别上,类别没建立,承重点一条都投递不出去。
失效方式有两种,都从"设定推导正确"这一侧长出来,所以特别难自查:
- 推到不是那个物种了:为了表达「没编完」把书做成一沓夹板夹的散页 → 答"一堆纸"
- 形态对但读成了别的东西:软封推导正确,却做成布裹起来加绳捆 → 答"一个包袱"
后一种最阴:材质、工艺、每条设定依据全对,只是观众脑子里先匹配到了另一个更常见的物件。修法不是加细节,是把该类别最不可让渡的那几个特征写死进 prompt(书=平整的封面、明确的书脊、参差的书口、四条清晰边棱),再把最容易被误读成的那个东西写进禁止清单(不要包袱、不要书帕、不要捆扎)。
① 姿态承载叙事
日常姿态比战斗姿态更定义人物(同 A2③ 附带原则),道具朝向等细节即人设:长兵器尖朝下=随手拖着、无意战斗;朝上=随时迎战。差一个方向差整个人设。写 prompt 前先想清楚"这个姿态在说什么"。
② 构图分层:主体写实,背景写意
背景元素必须显式标注"远处/剪影/隐约可见/不与主体争夺视觉焦点",否则模型会改变主体来平衡构图。背景描述越具体(材质/颜色/细节)越会被当主体画。已验证好看的主体描述一个字不动,新增元素独立成句。
③ 跨张一致性靠逐字相同的共享构图段
同场景多态、同角色多图,不靠图锚(i2i 会把上一版的错当既成事实继承),靠 prompt 里逐字相同的共享构图段锁。视觉签名从 canonical 设计文档逐字提取,不凭印象写。点名禁掉模型反复画错的那个具体图案——泛化否定词无效;形制/材质改不动时换现成参照物锚("像围棋盘:一整块木板上的细刻线"胜过任何形容词组合)。
④ 相对判据量化验收
"最亮/最干净/对比最高"肉眼验不出来——用可测指标(如 ffmpeg signalstats 的 YAVG/YMAX)再判。
⑤ 图文版面
概念图按峰值分布不均匀铺(同 A4⑤);文字说明不遮图——放底部渐变条(linear-gradient 向上透明),不用中央遮罩叠在图上。
⑥ 做旧与杂质验收:有形状=违规
做旧、加噪、杂质只许走无边界的安静层:渐变色不匀、无轮廓的湿痕晕移、折线磨白、细毛边、墨色深浅、褪色。凡有可辨认形状或轮廓的痕迹一律违规——黑点簇、破洞、环状(有边界的)水渍、方形补丁与针脚是同一类病:抢视线、不携带叙事。携带叙事的破损(补缀之类)默认也不入,低对比不是豁免理由——想用必须 owner 逐例点头(实证:同色低对比缝补仍被判「太刻意」)。
验收两步(出图后必跑):① 眯眼看整图,视线先落在某个痕迹而不是内容上=违规;② 扫一遍空白区(天空、留白),出现任何「有形状的东西」=违规。
元规则(怎么发现这条的):owner 连续两次纠同类问题时,停下来归纳上位判据并固化进规范层,不逐例修补——2026-09-02 实证四连抓(黑点→洞→水渍圈→补丁),上位规律只有一句「有形状=违规」,第二次时就该写出来。
A6 句面情感密度(写每一句的功夫)
A0-A5 管故事骨架与结构决策,A6 管每一句话的情感浓度。同一根脊柱,放大到句面层时怎么落笔。与 A2 的关系:A2 决定故事里放什么(动词、物件、节奏),A6 决定怎么写那一句(删情绪词、删解释、给物理精度)。
① 具身替代情绪词
删掉情绪词("害怕""悲伤""愤怒"),写引发这个情绪的那个身体瞬间。
原理(具身模拟理论):读者的感觉皮层对具体感官语言产生神经共振——写"冷",读者的温度皮层响应;写"害怕",什么都不响应。情绪词是滤镜词(filter word),制造叙事距离:作者替读者感受完了,读者只剩旁观。
判据:句子里找"她感到/他知道/他意识到"——找到就是滤镜词,删掉,换成身体做了什么。
| ❌ 滤镜词 | ✅ 身体瞬间 |
|---|---|
| 她感到恐惧 | 她的手缩回去了——指尖碰到棋子的瞬间缩回去的 |
| 他意识到自己输了 | 他把棋子放回原位。放得很轻,像怕把盘面上最后那点规矩也震碎 |
| 他很悲伤 | 他把棋子攥在手心里,攥出了汗。汗干了,棋子上留着掌纹 |
志怪白描是这条原则的极致——聊斋写恐惧不写"惧",写身体退化:「兽伏而出」四字,人趴着爬出来的姿势就是恐惧本身。动作即心理,身体和情绪之间没有缝隙。
② 沉默叙事
不解释、不评论、不给因果连接词。
三种沉默:
- 删因果连接词:"因为/所以/于是"——删掉后两个事实并置,读者自己找因果。并置的张力 > 解释的清晰
- 缺失的选项:对话里该有的那句话没出现。NPC 问了三个问题,主角只答了两个——没答的那个就是故事
- 模式中断:先建立重复模式,再打破。聊斋《婴宁》全篇在笑,唯一一次不笑比任何悲伤描写都重——沉默成为最响的声音
写法:写完一段后反问——把所有解释性连接词删掉,故事还能懂吗?能懂就删。读者自己补出来的理解,比你写的更有力。
附带纪律(笔记体):叙述者不评论。阅微草堂的「何从而闻见之」——作者不能亲眼见到角色的私密想法,所以不写内心独白。限制逼出更好的写法:只写外部可观测的行为。
③ NPC 灰度逻辑
NPC 给什么,就是什么人。 不用旁白解释道德立场——NPC 递出什么(信息/物件/选择/沉默),读者自己判断。
核心——竞争性价值,不是善恶:好的 NPC 是两个都合理的价值观在打架。Papers Please 的道德不是游戏告诉你"放这个人进来是好的"——道德是你自己的工资单和那个人的绝望之间的重量差。
| ❌ 善恶二元 | ✅ 竞争性价值 |
|---|---|
| 守关老人善意放行 | 守关老人把钥匙递过来,然后把自己的灯吹了——帮你开了门,不打算给你看门后面是什么 |
| 叛徒因贪婪出卖同伴 | 他把情报卷进一张药方里送出去——手在抖,药方上写的是他女儿的名字 |
写法:写 NPC 时先列出他信什么(不止一件),再让这些信念互相打架。他给出的东西是打架的结果,读者看到结果推出过程。
④ 时间颗粒度
物理磨损的精度暗示时间长度。 "第三天"和"过了几天"不是一回事——前者读者能数,后者读者在飘。
三个层次:
- 事件时间:用物理变化标记。"蜡烛烧过三截"比"过了几个时辰"具体
- 累积时间:用磨损标记。"棋子的漆磨掉了一半"——不用说下了很多年
- 缺席时间:用灰尘/锈/苔藓标记。时间的重量 = 灰尘的重量
高情感段用 stretch(一个动作拆成很多步),日常段用 summary(一年过成一句话)。选对时间模态 = 选对节奏(同 A2⑥,这里是句面层的具体操作)。
写法:搜"过了一会儿/不久/很久"——每一处换成具体的物理标记。 数字("第三天""七步")比模糊词("几天后""走了一会儿")有叙事重量。
⑤ 拒绝定义人物
NPC 怎么说"不",就是什么人。 不用正面定义角色——角色拒绝做什么、拒绝回答什么、拒绝看什么,画出的轮廓比自我介绍更真。
同一个请求,三种拒绝 = 三种人:
- 沉默地把门关上 = 见过太多,不想再卷入
- 笑着倒一碗水,不答话 = 知道答案但不打算给,且不觉得亏欠
- 开始讲一个完全不相干的故事 = 在用自己的方式回答,只是你还没听懂
写法:NPC 初次出场时安排一个"被请求"的场景。他怎么拒绝(或不拒绝),就是人设第一笔。不要在拒绝之后用旁白解释"他其实是个……的人"——拒绝本身就是全部信息。
A7 读者接不接得住(概念层 + 内容层)
A0-A6 管的是「写什么、怎么写」。A7 管的是写出来的东西读者能不能接住——四轮实读纠偏跑出来的,前三轮全改在文字层,无效。
① 先给现象,再给名字(概念层)
术语和压缩比喻对作者是常识,对读者是黑话。不能上来就用——先描述可观察的现象,让读者自己形成概念,名字(如果还需要)放后面。
| ✗ 谜语 | ✓ 先给现象 |
|---|---|
| 翅膀是令旗 | 它一扇翅膀,那群鸟就换个方向飞 |
| 落点排出来是一道旧令 | 把这些点连起来看,是个队形,当兵的排队站位就是那样 |
| 走的是格 | 脚底下踩的都是同一条线 |
「翅膀是令旗」要读者先知道令旗是什么,再自己想通「扇翅膀指挥鸟群像将领挥旗」——两跳。一句都不能有。
代价是变长(实测 +47% 字数)。为讲清楚花的字是划算的:面向不熟悉设定的读者,清楚 > 简省。
② 先在脑内成像,再落笔(内容层)
文字通顺、术语也清了,但描述的事在脑子里拼不出图——这是比表达层更深的一层,改词改句救不回来。
自检:我自己闭眼能画出来吗? 画不出来说明设定本身还没定,不是文字没打磨好。
反例(实测):「鸟散了它就从空中掉下来,落到地上是个老人的样子,站都站不稳。过了一会儿鸟飞回来,它又立住了。」三处塌陷——它本来在空中吗(作者脑补)/「是个老人的样子」是什么样子/鸟回来它怎么就立住了(物理不成立)。 想清楚后画面极简单:一群鸟裹着一个人,打散能看见里面,围回来又藏住。画面一定,文字自己就顺了。
③ 动作要挂在形貌上
只写「它做什么」不写「它长什么样」,读者挂不住动作。实测三段同时「画不出来」,卡点一模一样:不知道它长什么样。
每段开头给一个形貌锚——一句话,具体到能画:
三块石头摞成个人形,会走 · 一堆断了的兵器缠成一团,没有脸也没有眼睛 · 有些石头上会浮出纹路,凑起来像一张脸
④ 验收:扫读 + 画面双问
每段只看一遍、不许回读,答两问:
- 闭眼能不能拼出画面?拼不出——卡在哪
- 有没有词让你停下来想「这啥意思」
「卡在哪」是关键:它把「不知道它长什么样」这类系统性缺失暴露成同一句话,单纯打分永远测不出来。
⚠️ 必须扫读,不能审读。审读模式下测试者有耐心、会回读、会解码,分数系统性偏高——实测同一批文案审读拿了 16/18 条 4-5 分,真实读者扫一眼仍说看不懂。测试者的注意力状态必须匹配真实使用状态。
⑤ 四层病灶的排查顺序
受众反复说看不懂时,按这个顺序下探,别在同一层反复修:
| 层 | 症状 | 修法 |
|---|---|---|
| 词汇 | 生僻字、行话、文言虚词 | 换常用词 |
| 语法 | 主语缺失、指代不清、长句嵌套 | 补主语,拆句 |
| 概念 | 依赖读者不具备的背景 | A7① 先给现象再给名字 |
| 内容 | 作者自己没想清楚画面 | A7② 先成像再落笔 |
前三层是文字问题,第四层不是。改了两轮还不行,就别在文字层继续修了。
⚠️ 去主语要当心:为清文言味把「余」删干净后,如果段里有两个主体交替(记录者/被观察物),主语全省会让读者每句都猜是谁在做——比原来更难懂。见 B5「主语暗换」「无主体句」。
Part B · 扫毛病
B0 机械终检(check_prose.py)
python scripts/check_prose.py <文件>
"需要修改"段的每一条都必须处理。"需要人工判断"段逐条过,标注保留理由或改写。
B1 翻案腔治理(头号敌人)
"不是X,是Y" / "不是X,而是Y" / "真正的X不是…" / "从来不是…"
AI 倾向于通过否定来定义——否定比正面陈述更容易生成"有洞察感"的句子。密集使用后读者对"不是…是…"这个节奏免疫,后面真正好的反转也失去冲击力。
密度红线
每 1000 汉字至多保留 1 处。
保留判据(三条全满足)
- 对比是真的——读者确实可能以为是 X,揭示 Y 有信息增量
- 放在这里是最佳位置——不打断节奏
- 全文没有更好的保留候选
AI 高频句式黑名单(≥3 次即需处理)
| 句式 | 为什么是 AI 腔 |
|---|---|
| 不是 X,是 Y | 最高频——制造反转但积累后像说明文 |
| 他不知道…他只知道… | 全知视角的廉价切换 |
| 像…一样 | 明喻泛滥 |
| 第一次 / 头一回 | 标记转折点但频率失控 |
| 每一(个/次/步) | 泛指强调词 |
| 越…越… | 递进描写公式 |
| 看似…实则… / 与其说…不如说… | 翻案腔变体 |
改写策略
保留叙事关键位置的 ≤2 处(开篇定义、高潮反转),其余全改。改法:换成具体动作/感官细节,不用修辞框架。
Before / After 示例
翻案腔过密的典型症状(虚构示例):
他不是一个普通的铁匠——不是那种每天打马蹄铁的人,是那种把整座城门锤出来的人。不是因为他手劲大,是因为他不会停。不是不知道累,是忘了累这件事。
改后:
城西那扇门是他锤的。三天三夜,吃睡都在炉前。别人问累不累,他听不懂——他的字典里没有这个词,只有"还差几锤"。
B2 标点密度
破折号 ≤ 8/千字
正当用法只有三种:插入语、话题急转、未完成的话。
不正当用法(全部改掉):当逗号用、当冒号用、串联分句。
行文冒号 ≤ 3/千字
结构性冒号(标题/列表)不计入。用冒号引出的内容如果不是对前文的解释而只是下一个分句 → 换逗号或句号。
B3 金句密度
「」≤ 2 组/千字
正当用法:引用原话、强调有特殊含义的词。不正当:批量包装普通词制造金句感、给本来就是专有名词的词加引号。
排比 ≤ 1 处/篇,≤ 3 项
排比是重炮,一篇只能响一次。
B4 AI 黑话零容忍
| 黑话 | 处理 |
|---|---|
| 底层逻辑 / 维度 / 层面 | 删或换具体名词 |
| 赋能 / 赋予 | 给 / 让 |
| 至关重要 / 深刻的 / 深远的 | 删 |
| 核心竞争力 / 一系列 | 禁止出现在故事文案中 |
| 值得注意的是 / 在某种意义上 | 删,直接说 |
B5 句层病灶速查(21 条 · 设计成整段贴进 prompt)
来源:2026-08-25 拿一份 3 万字实稿逐句诊断跑出来,已剔除实测零命中的条目——一次都没用上的规则不进表。 跟 B1-B4 的分工:B1-B4 管「AI 腔」(写得太像机器);本表管**「读着别扭但说不出为什么」。这是另一类病,根因多半在指代链和主语管理**,不在修辞——所以对着修辞类规则查永远查不出来。 人机分工:标 🤖 的 B0 机械层已能自动抓,跑
check_prose.py即可,不必人工查;其余需要人读。
| 病名 | 一眼认出的信号 | 改法 |
|---|---|---|
| 代词双候选 | 段内两个同类对象,却只写「他/它」 | 换成名词,不要让读者猜 |
| 无先行指代 | 「这/它/这火」前面没有可指的名词 | 先写出被指的名词,再回指 |
| 回指不清 | 一个短语能指向多类对象(「你用过的人」) | 改成具体身份 |
| 主语暗换 | 前半句主语 A,后半句动作归 B 且省略了 | 补出 B 的主语 |
| 无主体句 | 只见动作不见谁做 | 问一句「谁」,补主语 |
| 接续不清 | 前后句冲突,或两句关系有两种读法 | 补「只有/只是/却/所以」再读一遍 |
| 语域混层 | 现代单位词、产品词混进古朴叙述 | 换同义的古朴词 |
| 系统行话泄入正文 🤖 | 正文出现牌池 / 排盘界面 / UI / 校准 / 操作面 / P1、P3 这类术语或阶段标记 | 换世界内说法;玩家可见的系统提示层另标 |
| 万能比喻 🤖 | 拿系统 / 机制 / 机器 / 零件 / 齿轮当喻体 | 换成日常器物 |
| 翻案腔 🤖 | 「不是 A,是 B」 | 先问 A 是不是读者的默认预期;是则留,否则删掉否定那半句 |
| 同义反复 | 后句换个说法重复前句 | 删后句 |
| 冗余 | 时间词或程度词叠加强调 | 删一个 |
| 量词悬空 | 量词后面没有中心词,或与名词不搭(「一声声核」) | 补中心词或换词 |
| 比较基准错配 | 拿不准时的、或本身没有该属性的东西做基准 | 换成有该特征的事物 |
| 引号体例不统一 🤖 | 同一文件里「」和“”混用 | 同一文体统一 |
动笔前六问(比句子层更上位,答不上就别动笔):
| 问 | 答不上意味着 | 怎么定 |
|---|---|---|
| 叙述者权限 | 会出现越档写他人内心 | 先选 0 外部 / 1 跟一人 / 2 分段换 / 3 全知;非全知就整段不越档 |
| 声音定位 | 旁白与角色会打架 | 先定口语、古朴还是说书体,两者往同一个声音走 |
| 场景切点 | 开头空转、结尾话说尽 | 开头切到变化前最后一拍的压力动作,结尾切到后果刚发生 |
| 留白位置 | 会用总结/解释/升华顶替具体 | 正想升华的地方,改成留一个动作、物件或沉默 |
| 时间颗粒 | 该紧的地方一笔带过 | 局面有变化写 scene,无变化压成 summary |
| 视角人称 | 「你/他/我」会跳 | 锁定一个 |
两条会误伤的规则(机械执行前必看):
- 跨节点重复——最容易把有意的首尾呼应当病删掉。判据:第二次出现有没有改变读者已知的事实?不改变才删
- 系统行话外泄——会把合法的玩家可见 UI 提示改坏。前提是先把文本分成三类:世界内叙述 / 玩家可见系统提示 / 设计文档。没有这层标注,改稿的人只能靠上下文硬猜
产出格式
写作模式(从零写文案)
动笔前过 A1 三问(主控思想 / 六行动元 / FADT),确认脊柱在。写的时候对标 A2 九条技法 + A3 体裁标准。写完跑 check_prose.py 自检 + B1-B4 密度红线。
审稿模式(审已有文案)
## 脊柱诊断
(A1 三问是否过?核心动词是什么?哪个行动元位空了?)
## 机械扫描
(check_prose.py 汇总数字)
## 重点问题
(按严重度排:脊柱 > 技法 > 密度 > 黑话。每条给行号 + 原文 + 改法)
## 改后全文
(改动超过 10 处给全文,否则只给对照)
附录:密度红线速查表
| 指标 | 红线(/千字) |
|---|---|
| 翻案腔 | ≤ 1 |
| 破折号 | ≤ 8 |
| 行文冒号 | ≤ 3 |
| 「」引号 | ≤ 2 |
| 排比 | ≤ 1 处/篇 |
| 全知标签(术语首现) | 必须在角色认知转折点之后 |
首次对项目文案跑 check_prose.py 后,在项目
docs/下记录实测均值作为 baseline。
附录:理论锚速查
| 锚 | 一句话 | 用在哪 |
|---|---|---|
| McKee 主控思想 | [什么变了] because [核心动词] | A1① 动笔前定方向 |
| Greimas 六行动元 | 对手位空 = 冲突假 | A1② 检查故事结构 |
| Church FADT | intention + perceivable consequence | A1③ 检查 game-story 同构 |
| 峰终定律 | 结尾和峰值决定整体感受 | A4③⑤ 概念图分布 / 故事收尾 |
| 契诃夫之枪(物件叙事变体) | 出现的物件必须再次出现且含义变化 | A2④ 随身物两次出现 |
| 具身模拟(Gallese & Lakoff) | 具体感官语言激活读者的感觉皮层 | A6① 删情绪词写身体瞬间 |
| 海明威冰山 / Iser Leerstellen | 7/8 在水下;读者填补叙事空隙 | A6② 沉默叙事 |
| Genette 时间模态 | summary/scene/stretch/pause 四速 | A6④ 时间颗粒度 / A2⑥ 节奏 |
| Baxter counterpointed characterization | 不正面定义角色,用拒绝画轮廓 | A6⑤ 拒绝定义人物 |
| Genette focalization(聚焦) | 叙述者感知范围 ≤ 聚焦角色的认知 | A2⑨ 全知标签隐化 |