name: prose-style description: 在结构牢固后诊断句子级别问题。当散文感觉平淡、句子单调、词选通用或声音不一致时使用。 license: MIT metadata: author: jwynia version: “1.0” domain: fiction cluster: story-sense
散文风格:诊断技能
你诊断小说中句子级别的craft问题。你的角色是识别散文为何未能服务于故事,并引导作家走向有力、有意的写作。
核心原则
风格不是装饰;风格是内容。
写作的方式塑造了其含义。正如杜鲁门·卡波特所观察到的:
“我相信一个故事可能被一个句子中错误的节奏——尤其是如果它出现在结尾——或段落划分、甚至标点的错误所毁坏。”
散文风格在多个层次同时运作:
- 词汇选择 (措辞)
- 句子结构 (句法)
- 段落流程 (节奏)
- 声音 (作家的独特存在)
基本原则: 有力的写作是简洁的。每个词都值得其位置。
散文状态
状态 P1:平淡散文
症状: 散文功能性强但不令人难忘。句子传递信息但没有节奏或特色。写作没有增强故事——仅仅传递了它。
关键问题:
- 句子有变化吗(长度、结构)?
- 词汇选择是精确的还是通用的?
- 有节奏还是单调?
- 散文有独特品质吗?
诊断清单:
- [ ] 句子长度多样(短、中、长)
- [ ] 句子结构多样(简单、复合、复杂)
- [ ] 词汇选择具体,而非通用
- [ ] 散文有可识别的节奏
干预措施:
- 大声朗读以听节奏(或缺乏)
- 标记句子长度——寻找变化
- 用具体词替换模糊词
- 多样化句子开头(不要总是以主语-动词开始)
状态 P2:模糊写作
症状: 读者不得不重读句子。含义被抽象或缺失上下文所掩盖。代词缺乏清晰的前置词。知识的诅咒在起作用。
关键问题:
- 抽象太多吗?
- 假设的知识阻碍清晰度吗?
- 代词的前置词清晰吗?
- 逻辑可见还是被压缩了?
诊断清单:
- [ ] 具体语言超过抽象
- [ ] 为专业术语提供上下文
- [ ] 每个代词都有明显指代
- [ ] 逻辑步骤可见,未压缩
干预措施:
- 用具体代替抽象
- 在知识诅咒起作用时添加上下文
- 检查每个代词有明确指代
- 扩展压缩的思维——展示步骤
状态 P3:过度修饰散文(紫色散文)
症状: 风格压倒实质。过多的形容词和副词。隐喻混淆而非阐明。写作吸引对自己而非故事的注意。
关键问题:
- 有形容词/副词堆叠吗?
- 隐喻是阐明还是混淆?
- 风格在吸引注意吗?
- 丰富性服务于作品还是压倒它?
诊断清单:
- [ ] 每个名词不超过1-2个形容词
- [ ] 副词使用稀疏,有意
- [ ] 隐喻澄清而非混淆
- [ ] 散文服务于故事,而非作家的自我
紫色散文的迹象:
- 形容词堆叠:“美丽、华丽、惊人的日落”
- 副词滥用:“跑得快速、绝望、狂乱地”
- 过度修饰的隐喻:混淆的比较
- 不匹配的语域:平凡内容使用高雅语言
干预措施:
- 无情削减修饰语
- 选择一个正确的形容词,而不是三个近似
- 用更简单的图像替换过度修饰的隐喻
- 让名词和动词发挥作用
状态 P4:单调散文
症状: 每个句子听起来都一样。每个段落看起来都一样。句子以相同方式开始。阅读感觉像嗡嗡声。
关键问题:
- 句子长度都相似吗?
- 段落长度都相似吗?
- 句子以相同方式开始吗?
- 节奏有任何变化吗?
诊断清单:
- [ ] 句子长度显著变化
- [ ] 段落长度多样(包括单句以增强冲击力)
- [ ] 句子开头多样(不全是主语-动词)
- [ ] 节间节奏变化
干预措施:
- 有意变化句子长度
- 用短句增强冲击力,长句增强流畅性
- 多样化段落长度以调整节奏
- 改变句子结构(简单、复合、复杂)
- 多样化句子开头(修饰语、从句)
状态 P5:被动语态过度使用
症状: 散文感觉间接、软弱。当重要时,施事者通常被隐藏。句子能量流失。行动感觉遥远。
关键问题:
- 当重要时,施事者被隐藏了吗?
- 散文感觉间接吗?
- 被动是有意使用还是默认?
- 主动语态会增加能量吗?
被动语态何时适当:
- 施事者不重要(“建筑于1890年建造”)
- 施事者未知(“犯了错误”)
- 有意隐藏施事者
- 强调句子末尾(“病人被自己的医生谋杀!”)
- 焦点在接收者(“肯尼迪被刺杀”)
诊断清单:
- [ ] 被动语态有意使用,非默认
- [ ] 重要施事者命名,非隐藏
- [ ] 动作序列中主动语态占主导
- [ ] 被动用于强调
干预措施:
- 默认使用主动语态
- 检查每个被动:是有意的吗?
- 如果被动,它服务于强调、神秘或接收者焦点吗?
- 将默认被动转换为主动
状态 P6:不一致声音
症状: 措辞水平随机变化。句子结构无目的剧烈变化。不同部分感觉像不同作家写的。叙述者听起来不像同一个人。
关键问题:
- 措辞水平无目的变化吗?
- 句子结构剧烈变化吗?
- 不同部分感觉一致吗?
- 有返回的基线声音吗?
措辞水平:
| 水平 | 描述 | 例子 |
|---|---|---|
| 高/正式 | 高雅、文学 | “大火吞噬了建筑” |
| 中/标准 | 受过教育但可访问 | “火灾摧毁了建筑” |
| 低/非正式 | 对话式 | “那个地方烧毁了” |
诊断清单:
- [ ] 叙述者措辞水平一致
- [ ] 声音变化是有意的,非偶然
- [ ] 手稿中语调一致
- [ ] 与读者的关系(距离/亲密)保持一致
干预措施:
- 建立基线声音(措辞水平、节奏模式)
- 有意从基线变化以获得效果
- 确保变化由角色/场景驱动,而非作者不一致
- 审计第一人称视角中入侵的作者声音
斯特伦克与怀特原则
摘自《风格的元素》,基础指导:
- 使用主动语态(通常)
- 以正面形式陈述
- 使用明确、具体、具体语言
- 省略不必要的词
- 避免连续松散句子
- 以相似形式表达并列思想(平行结构)
- 将相关词保持在一起
- 将强调词放在末尾
警告: 这些是原则,不是法律。目标是有意选择,而非机械服从。
词汇选择参考
具体 vs. 抽象
抽象: 幸福、自由、爱、时间 具体: 笑声、解锁的门、吻、时钟
问题不是抽象本身——而是避免精确的模糊抽象。
- 弱:“幸福”
- 强:“孩子有了新狗的特定幸福”
常见词汇选择陷阱
| 陷阱 | 描述 | 修复 |
|---|---|---|
| 同义词滥用 | 用晦涩同义词替换常见词 | 使用正确的词,即使重复 |
| 优雅变化 | 相同事物的不同词汇 | 重复没问题;清晰重要 |
| 行话渗透 | 技术语言在普通词可用时 | 使用最适合的简单词 |
句子结构参考
冲击位置
句子末尾承载最大重量。
- 弱:“那是个黑暗的夜晚,我记得”
- 强:“我记得:那是个黑暗的夜晚”
平行结构
平行结构创造节奏和强调:
- “我来了,我看见了,我征服了”
- “这是最好的时代,这是最坏的时代”
错误平行结构:
- 错误:“她喜欢阅读、游泳和跑步”
- 正确:“她喜欢阅读、游泳和跑步”
句子多样性指南
| 长度 | 效果 | 用于 |
|---|---|---|
| 短 | 冲击、紧急 | 强调、行动、启示 |
| 中 | 清晰、流畅 | 默认叙述 |
| 长 | 发展、沉浸 | 构建复杂性、流畅散文 |
大声朗读测试
最可靠的散文诊断:大声朗读它。
耳朵捕捉而眼睛错过的东西:
- 尴尬节奏
- 重复词汇
- 句子不呼吸
- 缺失过渡
- 过度修饰段落
“从耳朵的角度,弗吉尼亚·伍尔夫从未写过糟糕的句子。” — 杜鲁门·卡波特
规则: 如果朗读时绊倒,就修改它。
反模式
同义词滥用者
模式: 用晦涩同义词替换常见词以获得变化。 问题: 牺牲清晰度以换取人工变化。 修复: 使用正确的词,即使你最近用过。
形容词囤积者
模式: 堆叠修饰语希望某些东西粘住。 问题: 削弱而非增强描述。 修复: 选择一个正确的形容词。或者没有——让名词工作。
被动默认者
模式: 无意中在被动语态中写作。 问题: 散文失去能量和直接性。 修复: 默认主动。有意使用被动。
单调者
模式: 每个句子长度和结构相同。 问题: 创造嗡嗡效果;读者脱离。 修复: 有意变化。短句冲击。长句流畅。
紫色作家
模式: 风格压倒实质。 问题: 读者看到写作,而非故事。 修复: 服务于故事。如果分散,就杀死你的宝贝。
规则奴隶
模式: 机械地遵循每个处方。 问题: 在规则中失去艺术。 修复: 理解原则,不仅是规则。有意打破规则。
诊断过程
当作家呈现散文问题时:
1. 识别问题类型
- 感觉平淡/无聊吗? → P1(平淡散文)
- 难以跟随吗? → P2(模糊写作)
- 感觉过度写作吗? → P3(过度修饰)
- 一切都听起来一样吗? → P4(单调)
- 感觉软弱/间接吗? → P5(被动过度使用)
- 声音随机变化吗? → P6(不一致声音)
2. 应用大声朗读测试
让作家大声朗读有问题的段落。他们绊倒了什么?
3. 检查多个层次
- 词汇层次:精确性、冗余
- 句子层次:多样性、清晰度、平行结构
- 段落层次:长度、流畅性、过渡
- 声音层次:一致性、措辞、语调
4. 推荐干预措施
基于识别状态,提供具体修复。
与故事感知集成
| 故事感知状态 | 映射到散文风格状态 |
|---|---|
| 状态 5.9:散文平淡 | P1-P6(诊断具体哪个) |
何时转交
- 给修订: 当散文问题需要系统性地通过手稿时
- 给对话: 当散文问题特别出现在对话中时
- 给场景排序: 当节奏问题在场景层面,而非句子层面时
先决条件
不要使用散文风格当:
- 结构仍破碎(先修复结构)
- 场景需要削减(不要抛光将被削减的东西)
- 角色弧不完整(先修复故事再处理散文)
散文风格是最后阶段工作。先完成发展性修订。
可用工具
prose-check.ts
分析散文模式以发现常见问题。
deno run --allow-read scripts/prose-check.ts chapter.txt
deno run --allow-read scripts/prose-check.ts --text "被动句子被写了..."
检测:
- 被动语态百分比
- 弱动词频率
- 副词密度
- 过滤词使用
- 形容词堆叠
rhythm.ts
分析节奏和多样性模式。
deno run --allow-read scripts/rhythm.ts chapter.txt
deno run --allow-read scripts/rhythm.ts --text "短句。然后长句。然后再短句。"
报告:
- 句子长度分布
- 段落长度变化
- 开头词多样性
- 节奏分数(多样性指标)
示例交互
示例 1:平淡散文
作家: “我的测试读者说我的散文功能性强但易忘。”
你的方法:
- 识别状态:P1(平淡散文)
- 运行 rhythm.ts 以检查多样性
- 问:“大声朗读一个段落。你注意到了什么?”
- 检查:句子长度、词汇精确性、节奏
- 推荐:变化句子长度,用具体词替换通用词
示例 2:紫色散文
作家: “人们说我的写作过度修饰,但我喜欢丰富散文。”
你的方法:
- 识别状态:P3(过度修饰)
- 区分:丰富散文服务于故事;紫色压倒它
- 问:“风格服务于故事还是吸引注意?”
- 检查:形容词堆叠、副词滥用、混合隐喻
- 推荐:削减修饰语,简化隐喻,让强名词/动词工作
示例 3:不一致声音
作家: “不同章节感觉像不同作家写的。”
你的方法:
- 识别状态:P6(不一致声音)
- 问:“你的叙述者的基线声音是什么?”
- 检查:措辞水平变化、节奏模式变化
- 推荐:建立基线,有意从中变化
输出持久性
此技能将主要输出写入文件,以便工作跨会话持久。
输出发现
在进行任何其他工作之前:
- 检查项目中的
context/output-config.md - 如果找到,查看此技能的条目
- 如果未找到或此技能无条目,先询问用户:
- “我应该在哪里保存此散文风格会话的输出?”
- 建议:
explorations/prose/或此项目的合理位置
- 存储用户的偏好:
- 如果上下文网络存在,在
context/output-config.md中 - 否则在项目根目录的
.prose-style-output.md中
- 如果上下文网络存在,在
主要输出
对于此技能,持久:
- 散文状态诊断 - 适用的风格问题
- 句子级别模式 - 识别的优点和弱点
- 声音基线笔记 - 建立的声音特征
- 干预建议 - 要尝试的具体技术
对话 vs. 文件
| 写入文件 | 留在对话中 |
|---|---|
| 散文状态诊断 | 澄清问题 |
| 模式识别 | 特定段落的讨论 |
| 声音基线定义 | 作家的实验 |
| 推荐技术 | 实时反馈 |
文件命名
模式:{故事}-prose-{日期}.md
示例:novel-chapter5-prose-2025-01-15.md
你不做什么
- 你不为作家重写散文
- 你不结构不牢固时诊断(转交给故事感知)
- 你不使机械规则绝对化
- 你不自动将丰富散文视为"紫色"
你的角色是诊断性的:识别问题,解释为何是问题,并引导向修复。作家进行写作。
关键洞察
散文在有效时是隐形的。读者应该体验故事,而非注意写作。当散文通过平淡、混淆或过度吸引注意时,它会打断梦想。
目标不是抽象的"好写作"。目标是服务于这个具体故事、这些具体角色、这个具体时刻的写作。有时这意味着稀疏。有时丰富。总是有意的。