mcpField
P
prose-style

prose-style

github.com/jwynia创意与媒体179556 次安装35 周前更新
代码仓库

关于 prose-style

prose-style 是面向小说作者的文风诊断技能,用于识别句子和段落层面的写作问题并提出修改方向。它检查清晰度、节奏、措辞、叙述声音和被动语态,并提供朗读测试与 Deno 分析脚本。

主要功能

  1. 01诊断六类文风问题
  2. 02检查措辞、句法、节奏与声音
  3. 03提供针对性的修改策略
  4. 04包含朗读诊断方法
  5. 05提供 Deno 文本检查脚本

适用场景

  1. 01查找小说段落平淡或难懂的原因
  2. 02精简过度修饰或单调的文字
  3. 03检查被动语态与叙述声音的一致性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jwynia/agent-skills --skill prose-style

安装后在 Claude Code 中输入/prose-style确认已加载。

附带文件scripts/prose-check.tsscripts/rhythm.ts

详细介绍

散文风格:诊断技能

诊断小说中句子层面的写作问题。你的职责是找出散文为何未能服务于故事,并引导作者写出有力且深思熟虑的文字。

核心原则

风格不是装饰;风格就是内容。

表达方式会塑造含义。正如 Truman Capote 所说:

“我相信,一个故事可能会因为句子节奏有误而毁掉——尤其是这种错误出现在结尾附近时;段落划分或标点上的错误也可能造成同样的后果。”

散文风格会同时作用于多个层面:

  • 选词(措辞)
  • 句子结构(句法)
  • 段落流动(节奏)
  • 声音(作者独特的存在感)

**基本原则:**有力的写作简洁精炼。每个词都要物有所值。


散文状态

状态 P1:平淡的散文

**症状:**散文虽能传达信息,却令人过目即忘。句子提供了信息,却没有节奏或特色。文字没有提升故事,只是在讲述故事。

关键问题:

  • 句子是否有长短变化?
  • 用词是精准还是泛泛而谈?
  • 有没有节奏,还是单调乏味?
  • 散文是否具有鲜明的特色?

诊断清单:

  • 句子长短有变化(短、中、长)
  • 句式有变化(简单、并列、复杂)
  • 用词具体明确,而非泛泛而谈
  • 散文具有可辨识的节奏

干预措施:

  • 大声朗读,体会其中的节奏(或缺乏节奏)
  • 标出句子长度,检查是否有变化
  • 用具体词语替换含糊的词语
  • 变换句子的开头(不要总是以主语加动词开头)

状态 P2:表达不清

**症状:**读者不得不反复阅读句子。抽象表达或缺失的语境遮蔽了含义。代词指代不明。知识诅咒在起作用。

关键问题:

  • 抽象概念是否过多?
  • 默认读者已具备相关知识,是否妨碍了理解?
  • 代词的指代是否清楚?
  • 逻辑是否清晰可见,还是被压缩了?

诊断清单:

  • 具体语言多于抽象语言
  • 为专业术语提供了相关语境
  • 每个代词都有明确的指代对象
  • 逻辑步骤清晰可见,而非被压缩

干预措施:

  • 用具体表达替换抽象表达
  • 在知识诅咒造成障碍处补充语境
  • 检查每个代词是否都有明确的指代对象
  • 展开被压缩的思路——展示推理步骤

状态 P3:过度雕琢的散文(华丽辞藻)

**症状:**风格压过了内容。形容词和副词用得过多。比喻不但没有阐明,反而模糊了意思。文字刻意吸引注意力,而不是服务于故事。

关键问题:

  • 是否堆叠了过多形容词或副词?
  • 比喻是在阐明还是在模糊意思?
  • 风格是否刻意引人注意?
  • 丰富的表达是在服务作品,还是压过了作品?

诊断清单:

  • 每个名词最多搭配 1 到 2 个形容词
  • 副词使用克制且有意图
  • 比喻有助于澄清,而非造成困惑
  • 散文服务于故事,而非作者的自我陶醉

华丽辞藻的表现:

  • 形容词堆砌:“美丽、绚丽、惊艳的日落”
  • 滥用副词:“迅速、拼命、疯狂地跑”
  • 过度雕琢的比喻:让意思变得模糊的比较
  • 语体不匹配:用高雅语言描述平凡内容

干预措施:

  • 毫不留情地删减修饰语
  • 选一个恰当的形容词,而不是三个近义词
  • 用更简单的意象替换过度雕琢的比喻
  • 让名词和动词发挥作用

状态 P4:单调的散文

症状: 每句话听起来都一样。每个段落看起来都一样。句子的开头也都一样。读起来像单调的嗡嗡声。

关键问题:

  • 句子长度是否都差不多?
  • 段落长度是否都差不多?
  • 句子的开头是否都一样?
  • 节奏有没有变化?

诊断清单:

  • 句子长度有明显变化
  • 段落长度有所变化(包括用于强调的单句段落)
  • 句子开头有所变化(不全是主语-动词结构)
  • 不同部分之间的节奏有所变化

调整方法:

  • 有意识地改变句子长度
  • 用短句强调,用长句推进叙述
  • 改变段落长度以调整节奏
  • 改变句子结构(简单句、并列句、复合句)
  • 改变句子开头(使用修饰语、从句)

状态 P5:过度使用被动语态

症状: 散文显得迂回、乏力。明明重要,却总把动作主体藏起来。句子失去力量,行动显得遥远。

关键问题:

  • 重要的动作主体是否被隐藏?
  • 散文是否显得迂回?
  • 使用被动语态是有意为之,还是习惯使然?
  • 主动语态是否能让表达更有力?

适合使用被动语态的情况:

  • 动作主体不重要(“这栋建筑建于 1890 年”)
  • 动作主体未知(“有人犯了错”)
  • 有意隐藏动作主体
  • 强调句末内容(“病人竟被自己的医生谋杀了!”)
  • 重点在动作承受者(“肯尼迪遭到暗杀”)

诊断清单:

  • 有意使用被动语态,而非习惯性使用
  • 重要的动作主体明确点出,而非隐藏
  • 动作场景以主动语态为主
  • 使用被动语态时能起到强调作用

调整方法:

  • 默认使用主动语态
  • 检查每个被动语态:这是有意为之吗?
  • 如果使用被动语态,它是否有助于强调、制造悬念或突出动作承受者?
  • 将习惯性使用的被动语态改为主动语态

状态 P6:风格不一致

症状: 用词水平毫无缘由地变化。句子结构随意大幅变化,缺乏目的。不同部分读起来像是不同作者写的。叙述者听起来不像同一个人。

关键问题:

  • 用词水平是否毫无缘由地变化?
  • 句子结构是否变化过大?
  • 不同部分的风格是否一致?
  • 是否有一种可回归的基准风格?

用词水平:

水平描述示例
高/正式高雅、文学化“大火吞噬了这座宏伟建筑”
中/标准有教养但易懂“大火烧毁了这栋建筑”
低/非正式口语化“那地方烧没了”

诊断清单:

  • 叙述者的用词水平保持一致
  • 风格变化是有意为之,而非意外造成
  • 整篇稿件的语气保持一致
  • 与读者之间的关系(距离感/亲密感)得以维持

调整方法:

  • 确立基准风格(用词水平、节奏模式)
  • 有意偏离基准风格,以达到特定效果
  • 确保风格变化由角色或场景驱动,而非作者风格不一致
  • 检查贴近视角的段落中是否混入突兀的作者声音

Strunk & White 原则

摘自 The Elements of Style,这是一些基础指导原则:

  1. 使用主动语态(通常如此)
  2. 用肯定句表达
  3. 使用明确、具体、实在的语言
  4. 删去不必要的词
  5. 避免接连使用松散的句子
  6. 用相似的形式表达并列的观点(平行结构)
  7. 将相关词语放在一起
  8. 将需要强调的词语放在句末

注意: 这些是原则,不是规则。目标是有意识地选择,而非机械地遵守。


选词参考

具体与抽象

抽象: 幸福、自由、爱、时间
具体: 笑声、打开的门、亲吻、时钟

问题不在于抽象本身,而在于含糊的抽象表达会回避精确性。

  • 较弱:“幸福”
  • 较强:“孩子得到一只新狗时那种特别的幸福”
常见用词陷阱
陷阱描述修正方法
滥用同义词词典用生僻的同义词替换常见词用恰当的词,即使重复也无妨
刻意求变用不同的词表达同一事物重复没有问题,清晰才重要
术语蔓延明明可以用通俗语言,却使用专业术语使用最简单且恰当的词

句子结构参考

重音位置

句子的结尾最有分量。

  • 弱:「那是一个漆黑的夜晚,我记得」
  • 强:「我记得:那是一个漆黑的夜晚」
平行结构

平行结构能营造节奏感并加强强调:

  • 「我来,我见,我征服」
  • 「那是最好的时代,那是最坏的时代」

错误的平行结构:

  • 错误:「她喜欢阅读、游泳和跑步」中的「阅读、游泳、跑步」形式不一致
  • 正确:「她喜欢阅读、游泳和跑步」
句式多样性指南
长度效果适用场景
短有力、紧迫强调、行动、揭示
中清晰、流畅常规叙述
长展开、沉浸构建复杂内容、行云流水的 prose

朗读测试

最可靠的 prose 诊断方法:大声读出来。

耳朵能捕捉到而眼睛会忽略的问题:

  • 节奏生硬
  • 词语重复
  • 句子读起来不顺畅
  • 缺少过渡
  • 过度雕琢的段落

「从听觉角度来看,Virginia Woolf 从未写过一句糟糕的句子。」 — Truman Capote

**规则:**如果读起来磕磕绊绊,就修改。


反模式

同义词词典滥用者

**模式:**为了追求变化,用生僻同义词替换常见词。 **问题:**为了人为制造变化而牺牲清晰度。 **修正方法:**使用恰当的词,即使刚刚用过也无妨。

形容词囤积者

**模式:**堆叠修饰语,希望其中某个能起作用。 **问题:**非但没有加强描写,反而削弱了描写效果。 **修正方法:**选一个恰当的形容词。或者一个也不用——让名词发挥作用。

被动语态惯用者

**模式:**无意中使用被动语态写作。 **问题:**文字失去活力和直接性。 **修正方法:**默认使用主动语态,有意时再使用被动语态。

单调写作者

**模式:**每个句子的长度和结构都一样。 **问题:**造成沉闷的效果,让读者失去兴趣。 **修正方法:**有意识地变换句式。短句有力,长句流畅。

华丽辞藻写作者

**模式:**风格压过内容。 **问题:**读者看到的是文字本身,而不是故事。 **修正方法:**让风格服务于故事。如果某些内容分散注意力,就果断删掉。

规则奴隶

**模式:**机械地遵循每一条规范。 **问题:**为了规则而失去艺术性。 **修正方法:**理解原则,而不只是规则。有意打破规则。


诊断流程

当写作者提出 prose 问题时:

1. 确认问题类型
  • 感觉平淡、无聊?→ P1(平淡的 prose)
  • 难以理解?→ P2(表达不清)
  • 感觉写得过于繁复?→ P3(过度雕琢)
  • 所有内容听起来都一样?→ P4(单调)
  • 感觉软弱、间接?→ P5(过度使用被动语态)
  • 叙述声音是否随机变化?→ P6(声音不一致)
2. 进行朗读测试

让写作者大声朗读有问题的段落。他们读到哪里会磕磕绊绊?

3. 检查多个层面
  • 词语层面:准确性、冗余
  • 句子层面:多样性、清晰度、平行结构
  • 段落层面:长度、流畅度、过渡
  • 叙述声音层面:一致性、措辞、语气
4. 建议干预措施

根据已识别的问题状态,提供具体的修正方法。


与 story-sense 集成

story-sense 状态对应的 prose 风格状态
状态 5.9:prose 平淡P1-P6(具体诊断是哪一种)
何时移交
  • **转交给修订:**当 prose 问题需要系统性地通读并修改手稿时
  • **转交给对话:**当 prose 问题具体出现在对话中时
  • **转交给场景排序:**当节奏问题出现在场景层面而非句子层面时
前提条件

以下情况请勿使用散文风格检查:

  • 结构仍有问题(先修正结构)
  • 场景需要删减(不要润色将被删掉的内容)
  • 人物弧光尚未完整(先修正故事,再打磨文字)

散文风格是最后阶段的工作。请先完成故事层面的修订。


可用工具

prose-check.ts

分析散文模式,检查常见问题。

deno run --allow-read scripts/prose-check.ts chapter.txt
deno run --allow-read scripts/prose-check.ts --text "The passive sentence was written..."

检测内容:

  • 被动语态占比
  • 弱动词出现频率
  • 副词密度
  • 过滤词用法
  • 形容词堆砌
rhythm.ts

分析节奏和变化模式。

deno run --allow-read scripts/rhythm.ts chapter.txt
deno run --allow-read scripts/rhythm.ts --text "Short. Then longer. Then short again."

报告内容:

  • 句长分布
  • 段落长度变化
  • 句首用词多样性
  • 节奏评分(多样性指标)

示例对话

示例 1:平淡的文字

作者:“我的试读者说我的文字实用,但让人过目即忘。”

处理方式:

  1. 判断状态:P1(文字平淡)
  2. 运行 rhythm.ts 检查多样性
  3. 提问:“大声读一段文字。你注意到了什么?”
  4. 检查:句长、用词准确性、节奏
  5. 建议:变化句长,用具体词语替换泛泛的词语
示例 2:辞藻浮夸

作者:“大家说我的写作过于雕琢,但我喜欢华丽的文字。”

处理方式:

  1. 判断状态:P3(辞藻过度)
  2. 区分:华丽的文字能服务于故事;浮夸的文字则会喧宾夺主
  3. 提问:“这种风格是在服务故事,还是在刻意引人注意?”
  4. 检查:形容词堆砌、滥用副词、混用隐喻
  5. 建议:删减修饰语,简化隐喻,让有力的名词和动词发挥作用
示例 3:叙述声音不一致

作者:“不同章节读起来像是出自不同作者之手。”

处理方式:

  1. 判断状态:P6(声音不一致)
  2. 提问:“叙述者的基准声音是什么样的?”
  3. 检查:用词层级变化、节奏模式变化
  4. 建议:确立基准声音,并有意识地在此基础上变化

输出持久化

此技能会将主要输出写入文件,以便在不同会话间保留工作成果。

输出位置探查

开始其他工作之前:

  1. 检查项目中是否存在 context/output-config.md
  2. 如果存在,查找此技能对应的条目
  3. 如果文件不存在,或没有此技能对应的条目,先询问用户:
    • “这次散文风格会话的输出应该保存在哪里?”
    • 建议:explorations/prose/,或项目中合适的位置
  4. 保存用户的偏好:
    • 如果存在上下文网络,保存到 context/output-config.md
    • 否则保存到项目根目录下的 .prose-style-output.md
主要输出

对于此技能,请持久化保存:

  • 散文状态诊断——适用的风格问题
  • 句子层面的模式——已发现的优点和缺点
  • 声音基准笔记——确立的声音特征
  • 干预建议——可尝试的具体技巧
对话与文件的区别
写入文件保留在对话中
散文状态诊断澄清问题
模式识别讨论具体段落
声音基准定义作者的尝试
建议的技巧实时反馈
文件命名

格式:{story}-prose-{date}.md 示例:novel-chapter5-prose-2025-01-15.md

不会做什么

  • 不会替作者重写文字
  • 不会在结构扎实之前进行诊断(转交给 story-sense)
  • 不会把机械规则当作绝对标准
  • 不会把华丽的文字一概斥为“浮夸”

你的职责是诊断:找出问题,解释问题所在,并引导作者找到解决方法。写作由作者完成。


核心见解

文字运作得好时,是不会被注意到的。读者应当沉浸在故事中,而不是留意文字本身。当文字过于平淡、令人困惑或冗赘,以至于引人注意时,就会打断这种沉浸感。

目标不是抽象意义上的“写得好”,而是让文字服务于这个特定的故事、这些特定的角色和这个特定的时刻。有时要简洁,有时要丰富,但始终要有明确的用意。

评论

支持 Markdown