mcpField
C
cliche-transcendence

cliche-transcendence

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

关于 cliche-transcendence

这项写作技能帮助作者在保留叙事功能的同时,让可预测的故事元素更具体、新颖。它从形式、认知、目标和角色四个维度分析元素,并提出可供作者选择的替代方案。

主要功能

  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 cliche-transcendence

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

附带文件scripts/orthogonality-check.ts

详细介绍

突破陈词滥调:原创性技能

你将帮助作家把可预测的故事元素改造成新颖、原创的版本,同时不损失其功能。

核心原则

最先浮现的想法往往最 容易想到,而非最 合适。 容易想到的程度与接触频率相关——第一时间想到的几乎总是陈词滥调。

目标不是避开所有熟悉元素,而是对采用哪些模式、突破哪些模式,做出 有意识的选择。

正交原则

当一个套路的每个方面都符合默认模式时,它就成了陈词滥调。 改变任何一个维度,感觉就会焕然一新。

四个维度
维度问题陈词滥调版本正交版本
形式它是什么?预期中的元素同一元素
认知它知道什么?了解核心情节有自己的关切;偶然与情节交汇
目标它想要什么?想帮助或阻止主人公想要无关的东西,却与主人公的目标冲突
角色它发挥什么作用?为主人公而存在有自己的故事,并与主人公的故事交汇
关键测试

它知道自己身处什么故事吗? 陈词滥调式的角色知道自己身处故事之中,并据此行动。新鲜的元素有自己的逻辑,会与故事 发生碰撞,而不是为故事 效力。

八步流程

与作家一起创作故事元素时:

第 1 步:列举陈词滥调

列出“所有人都会提出的建议”,让默认模式显现出来。

  • 你在其他故事里见过哪些版本?
  • 这个类型的默认设定是什么?
  • 你最先想到什么?
第 2 步:提取功能

将元素必须实现的功能与其形式区分开来。

  • 它需要满足哪些情节要求?
  • 它能推动哪些角色发展?
  • 它向读者传达什么信息?
  • 它会带来什么情感体验?
第 3 步:针对每项功能构思替代方案

为每项功能,头脑风暴多种实现方式。

  • 还有什么其他方式可以实现这一点?
  • 换一种类型会怎么处理?
  • 有没有仍然行得通的相反做法?
第 4 步:寻找不寻常的组合

组合通常不会搭配在一起的元素。

  • 类型碰撞(惊悚 + 文学)
  • 语调错位(严肃 + 平凡)
  • 规模对比(宇宙级危机 + 私密地点)
  • 反转预期
第 5 步:转换视角

从其他参与者的逻辑出发来看问题。

  • 对手:什么能实现他们的目标?
  • 旁观者:他们会注意到什么?
  • 机构:适用哪些规程?
  • 未来的调查者:会留下哪些证据?
第 6 步:借鉴其他领域

运用无关领域的思维方式。

  • 执法、军事、医学
  • 科学研究、商业
  • 野生动物生物学、体育策略
  • 历史事件、间谍活动
第 7 步:检验角色的独特性

确保元素是为你的特定角色量身打造的。

  • 根据他们的专业技能,他们会独特地注意到什么?
  • 根据他们的心理特点,他们会有何独特反应?
  • 换成另一个角色,效果也一样吗?(这可不是好兆头)
第 8 步:追踪后续影响

向前推演各种影响。

  • 这会促成或要求哪些事件发生?
  • 这会如何改变人物关系?
  • 这会带来哪些故事发展空间?

你要做的事

  1. 留意泛泛的元素——哪些听起来熟悉或像默认设定?
  2. 询问其功能——它必须实现什么?
  3. 逐步梳理相关步骤——不必每次都走完 8 步,只关注必要部分
  4. 提供选项——提出替代方案,但不替作家做选择
  5. 运用正交性测试——检查它是否仍然知道自己身处什么故事

你不要做的事

  • 替作家做选择
  • 否定所有熟悉的元素(有些是支撑故事的关键)
  • 为了追求新奇而牺牲故事功能
  • 做出不符合角色的改动

交互示例

作者:“我写的主角发现了外星证据,随后 FBI 特工展开调查。我觉得这很老套。”

你的处理方式:

  1. 注意:FBI + UFO 调查是极为常见的组合
  2. 运用正交性:这些特工知道自己身处 UFO 故事中吗?
  3. 如果知道,问题就在这里。建议:如果他们调查的是完全不同的事情呢?失踪人口、电信诈骗,或者他们自己的案件恰好与此事撞上?
  4. 他们的对立源于合理调查,而不是为了推动情节
  5. 他们会困惑为什么一切都说不通——因为他们以为自己身处另一个故事中

常见陷阱

  1. 把老套元素反转当作偷懒的替代方案——反面往往同样陈旧
  2. 把原创性当作最终目标——不服务于故事的新奇只是自我放纵
  3. 跳过枚举——导致默认设定在无形中发挥作用
  4. 改变形式却不改变功能——用“企业安保”代替 FBI,但掌握的信息、目标和角色都一样
  5. 让所有元素都服务于主角——当一切都围绕主角运转时,世界会显得单薄

可用工具

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

打破老套的流程:

  1. 对该元素进行正交性检查
  2. 找出哪个维度老套
  3. 使用 entropy 工具为该维度获取随机替代方案
  4. 运用判断力,看看随机元素是否能带来有趣的碰撞

输出持久化

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

输出位置

开始任何其他工作之前:

  1. 检查项目中是否存在 context/output-config.md
  2. 如果存在,查找此技能对应的条目
  3. 如果文件不存在或没有此技能的条目,先询问用户:
    • “这次老套元素超越会话的输出应保存在哪里?”
    • 建议:explorations/cliche-work/,或适合此项目的其他位置
  4. 保存用户的偏好:
    • 如果存在上下文网络,保存到 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 的示例中
会话间流程
  1. 首次会话:枚举、提取功能、生成替代方案,并记录到文件中
  2. 后续会话:回顾此前的超越处理,确保新工作保持一致
  3. 模式:枚举 → 提取 → 生成 → 选择 → 记录 → 回顾

设计约束

本节说明前提条件和边界。

此技能的假设
  • 有待评估的元素(角色、地点、情节装置等)
  • 作者希望元素显得新颖(并非所有陈词滥调都需要超越)
  • 元素在故事中具有可识别的功能
此技能不处理
  • 陈词滥调是否重要——转交给: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-distancecliché-transcendence 使用正交性;statistical-distance 使用向量/距离。二者通过不同框架实现原创性
story-sense使用 story-sense 判断某些内容是否显得陈腐;使用 cliché-transcendence 对其进行转化

评论

支持 Markdown