Communitygithub.com

robcsaszar/prose

起草和审阅散文——为 Claude Code 撰写符合频道风格的新内容,或扫描现有文本中的 AI 模式,重写为真实的人类语调。

prose 是什么?

此技能为 Claude Code 提供专业的散文起草与审阅能力。它包含两种核心模式:**起草模式**,基于用户提供的主题、概要或大纲,生成符合特定频道(如邮件、社交媒体、IM、文档、创意写作、博客)风格的新内容;**审阅/人性化模式**,用于分析现有文本,检测 AI 生成痕迹,并重写为自然的人类语言。技能支持声音校准,通过分析用户提供的写作样本,学习其句子节奏、词汇选择和结构习惯,并可保存为个人档案以供后续会话使用。此外,它还包含严格的审查流程:先通过确定性脚本扫描机械性痕迹(如公式化短语、排版错误),再进行人工判断,最后通过对抗性验证排除误报,确保输出既真实又专业。该技能适用于 Claude Code 平台,但其中的参考文件和脚本路径需要根据技能安装目录正确解析。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add robcsaszar/prose

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

散文

两种模式。在进行任何其他操作之前,请先检测正确模式。

模式检测

  • 起草模式 — 用户有一个主题、简报或大纲,希望撰写新内容。
  • 审阅模式 — 用户有现有文本,希望进行改进、人性化或评分。

如果模棱两可:询问 — “您希望我撰写新内容,还是审阅/重写您已有的内容?” 如果用户没有回复,默认使用起草模式。


声音校准

在起草或重写之前,如果用户尚未提供声音样本,请索取一份。 对于短格式目标(IM、200 字以下的电子邮件):跳过声音校准,除非用户已经提供了样本。

“分享 1-3 段您自己感觉最像您的写作。我会匹配您的 句子节奏、词汇选择和结构习惯。”

分析样本:

  • 句子长度倾向(简洁 / 分析性 / 混合)
  • 开头方式(主张先行、故事先行、数据先行、语境先行)
  • 标点习惯(括号、冒号、分号)
  • 反复出现的短语或口头禅
  • 结尾方式(原则、挑战、开放式问题、行动)
  • 从不使用的词语

持久化个人档案。 分析样本后,提供保存结果以便将来的会话跳过重新校准:填充 references/voice-profile-template.md 并将其写入技能文件夹内的 references/voice-profile.md(如果文件夹是只读的,则输出完整的个人档案供用户保存)。如果 references/voice-profile.md 已存在,则在起草或重写之前完整读取它 — 它会覆盖默认约定(破折号容忍度、引用风格、口头禅、语域)。如有“也从这段文本学习”的请求:将带日期的观察结果附加到现有个人档案;冲突以更新的样本为准。个人档案永远不能覆盖事实纪律、可访问性或绝对禁止规则。

如果没有样本也没有已保存的个人档案:使用默认声音继续 — 参见 references/drafting-core.md § “默认声音”。对于博客、论文、观点或个人写作,另请参见 references/personality-and-soul.md — 没有它,干净的默认声音仍然可能读起来毫无灵魂。如果文本将以用户的名义发布,提及未校准的输出带有通用的默认声音,并提供校准选项 — 每个对话一次,之后不再提及。


起草模式

阶段 0 — 理解,然后写作

在起草前询问:

  1. 读者在阅读后需要做什么或感受什么?(确定媒介和受众契合度)
  2. 什么会让这位读者真正感到惊讶 — 他们自认为已经知道但实际不完整的内容是什么?
  3. 这篇文本的唯一任务是什么 — 告知、说服、指导、娱乐还是转化?
  4. 哪种语域适合该语境 — 正式、随意、技术性、对话性 — 并且它会保持稳定吗?
  5. 主线 — 一个具体的例子、案例或能够承载真正分量的后果

如果是任务导向:答案或下一步行动放在前面。 如果是长文:在起草前选择主线和一个具体锚点。

在起草前,询问:什么是能够承载这篇作品的单一具体例子或后果?如果你无法说出它,你就还没有准备好起草。

起草任何长于 200 字的内容前必须阅读: → references/drafting-core.md — 核心规则和特定媒介的模式

对于文档或创意目标,在起草前还需阅读该频道的重写规则 — 两者都会暂停适用于其他地方的默认设置: → references/channel-rules.md § 文档 / § 创意

起草期间不要加载 references/ai-patterns-universal.md — 它仅供审阅使用。

阶段 1 — 起草

写作要符合实际语境,而不是抽象的“好文章”理想。

主动原则:

  • 每个有力的段落至少包含一个具体锚点(专有名词、具体数字、直接引用、命名决策、可核查的细节)。对于博客、文章和社交媒体。对于 IM 和短邮件:每条消息一个锚点就足够了。
  • 没有模糊的声明:“许多”、“各种”、“广泛影响”、“有意义的改变”均未通过锚点测试
  • 使用简单的词语;重复使用普通词语,当它是正确的词语时;优先使用动词而不是名词化
  • 保持语域稳定;匹配格式与媒介

阶段 2 — 修订

必须执行:起草后运行所需的检查。 → references/required-checks.md

如果 shell 可用,还需在草稿上运行确定性扫描器 — 反废话不仅适用于审阅,也适用于新写作:

python3 scripts/slop-scan.py --channel <medium> draft.md

此技能中的每个脚本和参考路径都是相对于技能目录的,而不是工作目录。作为插件安装时,两者很少相同:根据加载此 SKILL.md 的目录解析 scripts/slop-scan.py。将“文件未找到”视为需要一次性修复的路径问题,而不是“没有 shell” — 静默回退到手动层面会完全丢失整个确定性检查过程。

无条件修复残留物。在更改之前,根据误报规则验证每个短语标记(标记的词语可能仅仅是正确的词语)。结构注释与所需的检查 5 使用相同的判断依据。

如果经过所需检查后,作品仍然感觉不对劲(仅限较长的作品): → references/long-form-diagnostics.md

当修订示例有帮助时: → references/examples.md


审阅 / 人性化模式

审阅/人性化模式期间不要加载 references/drafting-core.md — 它仅供起草使用。

步骤 0 — 自动检测内容类型

在进行任何检查之前,先分类频道。在审阅报告顶部说明检测结果。

  • 电子邮件 — 具有:主题行 / 问候语公式(Hi Name, Dear Name)/ 明确的请求 + 结尾结构
  • 社交媒体 — 具有:通篇每行一句 / 主题标签 / 结尾处的互动 CTA / 没有标题且少于 3,000 个字符
  • 即时消息 — 具有:@提及 / 频道引用 / 随意语气 / 少于 500 个字符 / 没有问候或结尾
  • 文档 — 具有:编号步骤 / 祈使句步骤动词 / 代码块、CLI 命令或配置键 / API、参数或选项表 / 没有第一人称叙述
  • 创意 — 具有:带对话标点的对话 / 场景、诗节或剧本结构 / 带命名角色的叙述 / 用于节奏而非常规列表结构的换行符
  • 博客文章 — 具有:标题 / 3,000 个字符以上的结构化散文 / 多个展开的段落

在博客之前检查文档和创意。两者都有标题和展开的段落,因此运行手册或场景也会匹配博客信号,而博客对于两者都不是正确的默认选择。

如果一个频道明显匹配:说明检测结果并继续。 如果模棱两可(信号冲突或没有触发):询问 — “这是什么格式?博客文章、社交媒体、电子邮件、即时消息、文档还是创意?”在得到回答之前不要继续。

步骤 1 — AI 模式扫描

首先进行确定性检查。 如果 shell 可用,将文本保存到文件并运行:

python3 scripts/slop-scan.py --channel <detected> file.md

频道名称映射到标志值:博客文章 → blog,社交媒体 → social,电子邮件 → email,即时消息 → im,文档 → docs,创意 → creative。每个频道会抑制其媒介合法打破的规则,因此传递错误的频道会产生误报和遗漏。

扫描器报告机械性痕迹(残留物、公式化短语、排版)和结构度量(句子单调、统一段落、统一信心、格言预算、首语重复、有序编号的段落、编造概念标签、逐字重复),输出稳定且可重复。通过 --allow <rule-id> 接受任何声音个人档案或媒介合法允许的内容。没有 shell:手动应用 references/formula-watchlist.md 作为机械层。

其次进行判断检查。 必须阅读 — 首先是通用标记: → references/ai-patterns-universal.md

然后加载特定频道的标记: → references/ai-patterns-channels.md

对所有内容应用通用标记。仅对检测到的类型应用特定频道标记。 列出每个标记项 — 扫描器命中项和判断标记项 — 附上确切引用及其位置。

步骤 2 — 对抗性验证

步骤 1 中的每个标记在被纳入报告之前,都必须经过辩护。对于每个标记,提出最强有力的反驳,证明它是误报,使用 ai-patterns-universal.md 中的“不要标记什么”规则:

  • 该短语是否在引文、标题、专有名称或正在被讨论而非使用的例子中?
  • 它是否显然就是此处正确的词语,只出现一次,并且周围没有其他痕迹簇?
  • 它是否是媒介惯例(文档中的结构,电子邮件中的问候语)或声音个人档案明确允许的?
  • “结构”标记是否实际上是该体裁的正确形状(规范、运行手册、参考页面)?

每个标记的判决:已确认(辩护失败)或已驳回(一行原因)。只有已确认的标记继续。残留物命中(聊天伪影、占位符、跟踪片段)总是确认 — 没有合法用途。

此步骤的存在是为了保护真正的散文:过度编辑本来没问题的文本与遗漏痕迹同样是一种失败。

步骤 3 — 原创性检查

标记内容如果:

  • 任何人都可以用搜索引擎写出来(没有获得的权威,没有具体经验)
  • 没有任何地方有第一手经验、客户故事或具体证据
  • 两次提出相同的观点而没有增加深度
  • 循环利用行业框架(“X 的未来是 Y”)
  • 缺少“只有我能写出这个”的因素

社交媒体额外:标记伪装成经验教训的产品推销;附有幸运饼干式感悟的个人故事。

步骤 4 — 评分

必须阅读每个频道的评分维度: → references/channel-rules.md

为每个分数提供一句理由。 如果 AI 相似度低但实质性维度也低 — 领域可信度(博客/社交媒体)、清晰度(电子邮件/IM)、任务完成度(文档)或克制度(创意) — 明确标记。内容干净但空洞。

步骤 5 — 结构化审阅报告

必须阅读报告结构: → references/review-report-template.md

只报告已确认的标记;用一行说明已驳回的标记数量。

步骤 6 — 重写

首先选择编辑范围(如果用户没有说明,自行选择;如果重要,说明你选择了哪个):

  • 自由编辑(“人性化这个”的默认选择) — 空短语被删除,而不是改写;长度可能会明显缩短。
  • 谨慎编辑(文本必须填充一个槽位:客户文档,固定格式) — 结构保留;长度保持在原稿的 80–110% 之间。
  • 最小编辑(仅在明确请求时使用) — 只触及明确的 AI 结构。

通用重写规则:

  1. 永远不要添加原文中没有的想法;永远不要删除实质性内容
  2. 用自然语言替换每个被标记的 AI 短语
  3. 变化句子长度:混合简短的简洁句和较长的分析句
  4. 用特定的钩子(故事、数据点、逆向观点)替换通用的开头
  5. 用挑战、原则或开放式问题替换总结性结论
  6. 打破统一的段落节奏:有短有长
  7. 如果缺少具体例子:保留 [ADD SPECIFIC EXAMPLE FROM YOUR EXPERIENCE] — 永远不要捏造
  8. 编辑不是事实核查:文本不支持的主张不一定是错误的 — 作者可能拥有文本之外的数据。将措辞软化到文本所能承载的程度,或者标记公开版本需要证据。不要将未经核实的主张悄悄删除。

规则 3-6 的频道例外。 这四条是散文节奏规则,有两个频道不希望使用它们:

  • 文档 — 不要变化句子长度、打破段落节奏、用钩子替换开头,或将结束摘要变成开放式问题。统一的形状是使程序可遵循的原因,而以挑衅结尾的规范是失败的。规则 1、2、7 和 8 仍然适用。
  • 创意 — 规则 5 反转:陈述作品意义的结尾行是痕迹,因此直接删除它,而不是用原则或挑战替换。规则 3 和 6 由作者决定,而不是你。

对于博客、论文、观点或个人写作(非百科全书式、技术性、法律性或参考内容): 必须阅读 → references/personality-and-soul.md — 移除 AI 模式会产生干净的散文;本节是使其听起来像有血有肉的东西。

必须阅读特定频道的重写规则: → references/channel-rules.md

消除循环。 单次重写不是最终状态。迭代直到文本通过确定性检查和对抗性检查,最多 3 轮:

  1. 重写 — 应用已确认的标记和上述规则。
  2. 重新扫描 — 在重写版本上运行 scripts/slop-scan.py(相同的 --allow 设置)。任何残留物 = 立即修复。任何新的短语命中 = 修复或证明。
  3. 追究 — 转换立场:提出最强有力的论点,证明重写版本仍然是 AI 生成的。特别检查 references/ai-patterns-universal.md § 第 5 部分中的二阶痕迹 — 清理过程往往会产生它们:统一的信心、每个段落结尾的格言式闭合、“那不是 X。那是 Y。”、没有任何松弛、表演性的脆弱性(对作者来说没有成本的承认)、以及替代你刚刚删除的钩子的制造悬念。每个证据用一行引用。
  4. 如果追究有理有据,修复并从第 2 步重复。如果没有,或者在 3 轮之后,停止。

退出标准:扫描器报告 0 个残留物;剩余的扫描器标记每个都有一行理由(媒介惯例或声音个人档案);追究没有发现可证实的痕迹;文本比原始版本短(或通过自由编辑短于 80% 的原始长度)。

相关技能