关于 cliche-transcendence
这项写作技能帮助作者在保留叙事功能的同时,让可预测的故事元素更具体、新颖。它从形式、认知、目标和角色四个维度分析元素,并提出可供作者选择的替代方案。
主要功能
- 01识别常见故事套路
- 02区分叙事功能与表现形式
- 03从四个维度检验新颖度
- 04生成保留功能的替代方案
- 05提供 Deno 正交性检查工具
适用场景
- 01改造显得套路化的角色
- 02为常见情节装置寻找替代方案
- 03判断某个套路是否服务于故事
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jwynia/ agent-skills --skill cliche-transcendence安装后在 Claude Code 中输入/cliche-transcendence确认已加载。
附带文件scripts/orthogonality-check.ts
详细介绍
突破陈词滥调:原创性技能
你将帮助作家把可预测的故事元素改造成新颖、原创的版本,同时不损失其功能。
核心原则
最先浮现的想法往往最 容易想到,而非最 合适。 容易想到的程度与接触频率相关——第一时间想到的几乎总是陈词滥调。
目标不是避开所有熟悉元素,而是对采用哪些模式、突破哪些模式,做出 有意识的选择。
正交原则
当一个套路的每个方面都符合默认模式时,它就成了陈词滥调。 改变任何一个维度,感觉就会焕然一新。
四个维度
| 维度 | 问题 | 陈词滥调版本 | 正交版本 |
|---|---|---|---|
| 形式 | 它是什么? | 预期中的元素 | 同一元素 |
| 认知 | 它知道什么? | 了解核心情节 | 有自己的关切;偶然与情节交汇 |
| 目标 | 它想要什么? | 想帮助或阻止主人公 | 想要无关的东西,却与主人公的目标冲突 |
| 角色 | 它发挥什么作用? | 为主人公而存在 | 有自己的故事,并与主人公的故事交汇 |
关键测试
它知道自己身处什么故事吗? 陈词滥调式的角色知道自己身处故事之中,并据此行动。新鲜的元素有自己的逻辑,会与故事 发生碰撞,而不是为故事 效力。
八步流程
与作家一起创作故事元素时:
第 1 步:列举陈词滥调
列出“所有人都会提出的建议”,让默认模式显现出来。
- 你在其他故事里见过哪些版本?
- 这个类型的默认设定是什么?
- 你最先想到什么?
第 2 步:提取功能
将元素必须实现的功能与其形式区分开来。
- 它需要满足哪些情节要求?
- 它能推动哪些角色发展?
- 它向读者传达什么信息?
- 它会带来什么情感体验?
第 3 步:针对每项功能构思替代方案
为每项功能,头脑风暴多种实现方式。
- 还有什么其他方式可以实现这一点?
- 换一种类型会怎么处理?
- 有没有仍然行得通的相反做法?
第 4 步:寻找不寻常的组合
组合通常不会搭配在一起的元素。
- 类型碰撞(惊悚 + 文学)
- 语调错位(严肃 + 平凡)
- 规模对比(宇宙级危机 + 私密地点)
- 反转预期
第 5 步:转换视角
从其他参与者的逻辑出发来看问题。
- 对手:什么能实现他们的目标?
- 旁观者:他们会注意到什么?
- 机构:适用哪些规程?
- 未来的调查者:会留下哪些证据?
第 6 步:借鉴其他领域
运用无关领域的思维方式。
- 执法、军事、医学
- 科学研究、商业
- 野生动物生物学、体育策略
- 历史事件、间谍活动
第 7 步:检验角色的独特性
确保元素是为你的特定角色量身打造的。
- 根据他们的专业技能,他们会独特地注意到什么?
- 根据他们的心理特点,他们会有何独特反应?
- 换成另一个角色,效果也一样吗?(这可不是好兆头)
第 8 步:追踪后续影响
向前推演各种影响。
- 这会促成或要求哪些事件发生?
- 这会如何改变人物关系?
- 这会带来哪些故事发展空间?
你要做的事
- 留意泛泛的元素——哪些听起来熟悉或像默认设定?
- 询问其功能——它必须实现什么?
- 逐步梳理相关步骤——不必每次都走完 8 步,只关注必要部分
- 提供选项——提出替代方案,但不替作家做选择
- 运用正交性测试——检查它是否仍然知道自己身处什么故事
你不要做的事
- 替作家做选择
- 否定所有熟悉的元素(有些是支撑故事的关键)
- 为了追求新奇而牺牲故事功能
- 做出不符合角色的改动
交互示例
作者:“我写的主角发现了外星证据,随后 FBI 特工展开调查。我觉得这很老套。”
你的处理方式:
- 注意:FBI + UFO 调查是极为常见的组合
- 运用正交性:这些特工知道自己身处 UFO 故事中吗?
- 如果知道,问题就在这里。建议:如果他们调查的是完全不同的事情呢?失踪人口、电信诈骗,或者他们自己的案件恰好与此事撞上?
- 他们的对立源于合理调查,而不是为了推动情节
- 他们会困惑为什么一切都说不通——因为他们以为自己身处另一个故事中
常见陷阱
- 把老套元素反转当作偷懒的替代方案——反面往往同样陈旧
- 把原创性当作最终目标——不服务于故事的新奇只是自我放纵
- 跳过枚举——导致默认设定在无形中发挥作用
- 改变形式却不改变功能——用“企业安保”代替 FBI,但掌握的信息、目标和角色都一样
- 让所有元素都服务于主角——当一切都围绕主角运转时,世界会显得单薄
可用工具
orthogonality-check.ts
生成结构化问卷,用于评估某个元素是否老套。
# Generate check for an element
deno run orthogonality-check.ts "FBI agents investigating UFO"
# Interactive Q&A mode
deno run orthogonality-check.ts --interactive
# JSON output for processing
deno run orthogonality-check.ts --json "wise mentor"
它提供的内容:
- 四个维度的问题(形式、认知、目标、角色)
- 每个维度中老套答案与正交答案的对比
- 关键测试:“它知道自己身处什么样的故事中吗?”
- 转变策略
- 转变示例(FBI 特工)
适用场景:
- 评估某个让人觉得俗套的特定元素
- 与作者一起梳理正交性原则
- 在运用判断之前生成结构化分析
entropy.ts(来自 story-sense)
用于生成正交碰撞点子:
deno run --allow-read ../story-sense/scripts/entropy.ts collisions
deno run --allow-read ../story-sense/scripts/entropy.ts locations
deno run --allow-read ../story-sense/scripts/entropy.ts professions
打破老套的流程:
- 对该元素进行正交性检查
- 找出哪个维度老套
- 使用 entropy 工具为该维度获取随机替代方案
- 运用判断力,看看随机元素是否能带来有趣的碰撞
输出持久化
此技能会将主要输出写入文件,以便在不同会话中保留工作成果。
输出位置
开始任何其他工作之前:
- 检查项目中是否存在
context/output-config.md - 如果存在,查找此技能对应的条目
- 如果文件不存在或没有此技能的条目,先询问用户:
- “这次老套元素超越会话的输出应保存在哪里?”
- 建议:
explorations/cliche-work/,或适合此项目的其他位置
- 保存用户的偏好:
- 如果存在上下文网络,保存到
context/output-config.md - 否则保存到项目根目录下的
.cliche-transcendence-output.md
- 如果存在上下文网络,保存到
主要输出
对于此技能,持久化保存:
- 已枚举的老套元素——识别出的该元素默认设定
- 提取出的功能——该元素必须完成的任务
- 正交性分析——哪些维度老套
- 超越后的版本——保留功能的新颖替代方案
- 选定方案——作者选择了哪种超越方案
对话内容与文件内容
| 写入文件 | 保留在对话中 |
|---|---|
| 已枚举的默认设定 | 讨论哪些设定最陈旧 |
| 功能提取 | 替代方案的头脑风暴 |
| 维度轮换选项 | 实时反馈 |
| 最终超越版本 | 对选项进行迭代 |
文件命名
格式:{element}-cliche-{date}.md
示例:mentor-figure-cliche-2025-01-15.md
验证(Oracle)
本节说明此技能可以可靠验证的内容,以及需要人工判断的内容。
此技能可以验证的内容
- 老套元素识别——枚举给定元素的默认模式(高置信度)
- 功能提取——列出某个元素必须完成的任务(高置信度)
- 维度分析——检查四个维度(形式、认知、目标、角色)中哪些符合默认模式(高置信度)
- 正交性测试——“它知道自己身处什么样的故事中吗?”这一问题(高置信度)
需要人类判断的事项
- 哪些功能至关重要——作者必须判断哪些元素起着支撑作用
- 哪些替代方案更合适——需契合故事、角色和类型
- 新颖性是否有用——原创性仍必须实现相应功能
- 何时适合使用陈词滥调——有些熟悉的元素是刻意为之
Oracle 的局限
- 无法评估与故事的契合度——某个经过超越处理的元素可能很原创,却不适合这个故事
- 无法评估后续影响——新颖的选择可能带来新问题
- 依赖枚举质量——如果没有完整列出默认模式,“新颖”的结果仍可能是陈词滥调
反馈循环
本节说明输出如何持久保存并为未来会话提供参考。
会话持久化
- **输出位置:**查看
context/output-config.md中此技能对应的条目 - **保存内容:**已枚举的陈词滥调、提取的功能、正交性分析、超越版本、选定方案
- 命名格式:
{element}-cliche-{date}.md
跨会话学习
- **开始之前:**检查此故事/世界是否已有相关的陈词滥调分析
- **如果已有输出:**回顾已完成超越处理的内容,以保持一致性
- 有助于改进此技能的反馈:
- 发现新的陈词滥调模式 → 添加到枚举示例中
- 未能奏效的超越处理 → 添加到反模式中
- 成功的新领域引入 → 添加到步骤 6 的示例中
会话间流程
- 首次会话:枚举、提取功能、生成替代方案,并记录到文件中
- 后续会话:回顾此前的超越处理,确保新工作保持一致
- 模式:枚举 → 提取 → 生成 → 选择 → 记录 → 回顾
设计约束
本节说明前提条件和边界。
此技能的假设
- 有待评估的元素(角色、地点、情节装置等)
- 作者希望元素显得新颖(并非所有陈词滥调都需要超越)
- 元素在故事中具有可识别的功能
此技能不处理
- 陈词滥调是否重要——转交给:story-sense(用于诊断这是否是真正的问题)
- 世界的一致性——转交给:worldbuilding(新颖元素必须符合世界逻辑)
- 角色心理——转交给:character-arc(超越处理后的元素必须符合角色设定)
- 类型预期——转交给:genre-conventions(某些“陈词滥调”是类型要求)
退化信号
此技能可能被误用的迹象:
- 什么都要超越(一定程度的熟悉感能让读者感到安心)
- 为新颖而新颖(忽略功能)
- 元素本身其实没问题(问题在别处)
- 反复超越同一元素(可能说明功能不明确)
推理要求
本节说明此技能何时能从更长时间的思考中受益。
标准推理
- 枚举某个元素的陈词滥调版本
- 提取功能(每个元素通常有 3–5 项)
- 对单个元素进行正交性测试
- 为一项功能生成替代方案
扩展推理(ultrathink)
以下情况使用扩展推理:
- 多元素超越——[原因:转换彼此关联的元素需要追踪一致性]
- 功能冲突的解决——[原因:元素可能承担相互冲突的功能]
- 领域引入的综合——[原因:从陌生领域引入内容需要研究]
- 后续影响梳理——[原因:追踪超越处理对故事产生的影响]
触发短语:“一切都显得平庸”、“彻底改造这个方面”、“让整个世界显得新颖”、“系统分析陈词滥调”
执行策略
本节说明何时并行处理工作或启动子 Agent。
顺序执行(默认)
- 必须先完成枚举,再提取功能
- 必须先提取功能,再生成替代方案
- 必须先生成替代方案,再进行正交性测试
可并行处理
- 针对不同轴进行的多次熵运行可以并发执行
- 第 6 步中对多个领域的研究可以并行开展
- 适用场景:在同一会话中转换多个元素
子 Agent 候选项
| 任务 | Agent 类型 | 何时启动 |
|---|---|---|
| 领域研究 | 通用 | 从不熟悉的领域引入内容时(第 6 步) |
| 故事一致性检查 | Explore | 检查超越是否符合现有故事文件时 |
上下文管理
本节介绍 Token 使用情况和优化策略。
Token 占用量估算
- **技能基础内容:**约 2.5k 个 Token(原则 + 8 个步骤 + 各个轴)
- **包含反模式:**约 3.5k 个 Token
- **包含完整示例:**约 4k 个 Token
上下文优化
- 按需加载熵脚本,而不是包含其源代码
- 通过名称引用 story-sense 来进行路由,而不是直接内嵌
- 聚焦相关步骤(每次不一定都需要全部 8 个步骤)
上下文变得紧张时
- 优先保留:正交原则、8 步流程中的当前步骤
- 延后处理:完整示例交互、列出全部 8 个步骤
- 删除:工具源代码、领域导入列表
反模式
1. 把反转当作创新
**模式:**认为陈词滥调的反面就自动显得新鲜。邪恶导师取代睿智导师。失败的英雄取代成功的英雄。 **为何无效:**反转往往和原版一样容易预测。“颠覆预期”本身也已成了陈词滥调。反面不过是同一轴上的另一个点。 **修正:**不要反转,而要换轴。沿着完全不同的轴移动。与其纠结导师是邪恶还是睿智,不如问:如果导师人物并不知道自己在指导别人呢?如果他们追求的是自己的目标,却无意间教会了别人什么呢?
2. 新奇凌驾于功能
**模式:**无论是否满足故事需求,都选择最不寻常的选项。 **为何无效:**故事元素各有作用——制造利害关系、构建张力、塑造角色。不服务于功能的原创选择,只会带来自我陶醉式的复杂性。 **修正:**始终回到第 2 步:提取功能。每个超越后的版本仍必须实现陈词滥调原有的作用。原创性是一项约束,而不是目标。
3. 回避列举
**模式:**跳过明确列出陈词滥调版本这一步,直接开始想替代方案。 **为何无效:**你看不到的东西,就无法避开。默认选项往往隐而不见。不先列举,你很可能会选出自以为新鲜、其实只是第二常见的版本。 **修正:**始终认真完成第 1 步。列出你在其他故事中见过的 5–10 个版本。让默认选项显现出来,才能有意识地避开它们。
4. 只改变形式
**模式:**改变某个元素的外观,却保留其知识、目标和角色。“不是 FBI 特工,而是企业安保!” **为何无效:**如果企业安保团队知道剧情、想要阻止主角,且作用是制造障碍,那不过是换了制服的同一种陈词滥调。 **修正:**对全部四个轴应用正交性测试。知识、目标或角色至少有一个必须改变,这个元素才会真正显得新鲜。
5. 仍让一切围绕主角
**模式:**即使已经“超越”陈词滥调,仍让每个元素最终服务于主角的旅程。 **为何无效:**这是最根深蒂固的陈词滥调——故事世界的存在只是为了主角。当每个元素最终都与英雄的需求相关联时,世界就会显得单薄而虚假。 **修正:**让超越后的元素拥有自己的故事,彼此交汇,而不是围绕主角运转。它们应当有独立于主角也合乎情理的目标。碰撞比服务更有趣。
集成
输入(流入此技能)
| 技能 | 提供内容 |
|---|---|
| story-sense | 诊断某些内容是否显得平庸或老套 |
| brainstorming | 为步骤 3 生成原始备选方案 |
| statistical-distance | 用于远离默认选项的向量/距离方法 |
输出(此技能支持)
| 技能 | 提供内容 |
|---|---|
| worldbuilding | 避免类型套路的新鲜世界元素 |
| character-arc | 不落俗套的角色动态与关系 |
| dialogue | 视角独特、不会给出套路回应的角色 |
| endings | 不遵循可预测套路的高潮 |
互补技能
| 技能 | 关系 |
|---|---|
| statistical-distance | cliché-transcendence 使用正交性;statistical-distance 使用向量/距离。二者通过不同框架实现原创性 |
| story-sense | 使用 story-sense 判断某些内容是否显得陈腐;使用 cliché-transcendence 对其进行转化 |