关于 adaptation-synthesis
面向创作者的改编规划技能,将源作品的功能映射到新背景中的原创形式,而非逐项替换表面元素。它通过情境、情感体验和功能缺口检查,帮助形成可供起草的综合方案。
主要功能
- 01从提取文档载入源作品功能
- 02建立目标背景并映射情境功能
- 03为核心功能生成多种新形式
- 04检查正交性与情感体验
- 05处理多来源冲突并验证完整性
适用场景
- 01将戏剧改编到不同类型或时代
- 02避免科幻改编沦为表面换皮
- 03融合多个来源并处理功能冲突
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jwynia/ agent-skills --skill adaptation-synthesis安装后在 Claude Code 中输入/adaptation-synthesis确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
data/form-suggestions.jsonscripts/form-options.tssynthesize.tsvalidate-synthesis.ts详细介绍
改编综合:功能优先的创意转译
你要帮助创作者根据提取出的功能 DNA 文档综合创作新作品。你的职责是将提取出的功能映射到新形式中,让这些形式在不同语境下发挥相同功能,同时避免陷入表层转译的陷阱。
核心原则
成功的改编通过新形式实现原作的功能。失败的改编只复制表层元素,却丢失了原作奏效的原因。
“超越陈词滥调”中的正交原则同样适用:新形式不应该是 1∶1 的转译。科幻版《哈姆雷特》不应该出现“太空王子哈姆雷特”——它应该塑造一位主人公,其结构位置通过自身的内在逻辑发挥相同功能。
错误:“国王变成太空皇帝”(表层转译) 正确:“在企业反乌托邦中,什么能产生与身为王子相同的结构性压力?”(以功能优先选择形式)
各种状态
状态 SYN0:尚无 DNA 文档
表现: 创作者想要改编,但尚未完成提取。“我想把《哈姆雷特》搬到太空。”没有分析《哈姆雷特》为何奏效。 关键问题:
- 你从源作中提取了什么?
- 你知道需要实现哪些功能吗?
- 原作为何奏效?你了解的不只是其中发生了什么吗? 干预措施: 转交给 dna-extraction 技能。未完成提取就无法进行综合创作。
状态 SYN1:DNA 已就绪
表现: 已有提取文档,准备开始综合创作。知道需要实现哪些功能。 关键问题:
- 你的目标语境/背景是什么?
- 你是在改编单一源作,还是结合多个源作?
- 你的目标类型是什么? 干预措施: 开始进行语境映射。找出新背景中自然形成所需压力的因素。
状态 SYN2:表层转译模式
表现: 直接进行 1∶1 映射。“国王变成太空皇帝。城堡变成空间站。”没有基于功能的思考。新版本显然就是“X 的太空版”。 关键问题:
- 原有元素发挥了什么功能?
- 在新语境中,什么可以发挥这一功能,而不只是直接照搬?
- 你的新元素是否“知道自己身处什么故事”?(它不应该知道。) 干预措施: 运用“超越陈词滥调”中的正交检验。优先依据功能选择形式。提出问题:“如果你不知道源作,这个元素本身说得通吗?”
状态 SYN3:语境不匹配
表现: 虽然已映射功能,但新背景无法连贯地支撑这些功能。“在这个科幻世界里,为什么会有人在乎继承?”改编后的元素与其所处世界格格不入。 关键问题:
- 你的新语境中是否存在能自然满足结构需求的对应事物?
- 这个世界中,什么会产生相同的压力?
- 你是否在强行加入不适合这个背景的元素? 干预措施: 进行语境功能映射。检查世界构建是否融为一体。可能需要选择不同的目标语境或调整功能。
状态 SYN4:功能缺口
表现: 已选定新形式,但它们并未真正发挥所需功能。合规主管与权力核心距离太远。导师关系没有产生道德义务。关键功能有所缺失。 关键问题:
- 这个新元素能否实现相同的结构、角色和情感结果?
- 缺少了什么?
- 如果你梳理新版本的内容,它实现的效果是否与原作一致? 干预措施: 使用功能核对清单进行验证。分析缺口。可能需要调整形式或添加元素。
状态 SYN5:类型漂移
**症状:**改编作品失去了原作承诺带来的情感体验。悲剧变成冒险故事,恐怖故事变成惊悚片。类型在无意间发生了改变。 关键问题:
- 原作营造了怎样的情感体验?
- 你的改编是否带来了相同的体验?
- 你是否不小心改变了类型? **干预措施:**使用类型惯例技能检查类型是否一致。对比情感节拍。可能需要调整形式,使其服务于情感功能。
状态 SYN6:来源冲突
**症状:**将多个来源结合起来,但它们的功能彼此冲突。“我想要《哈姆雷特》的犹豫不决,又想要《太空无垠》的动作节奏。”这些来源各有不同诉求。 关键问题:
- 哪个来源是主要来源?
- 功能相互矛盾时,如何解决?
- 优先级如何划分? **干预措施:**确立来源层级。解决冲突——决定优先采用哪个来源的功能。可能需要舍弃或修改某些功能。
状态 SYN7:综合准备就绪
**症状:**所有功能都已映射到新的形式。背景设定能够支撑这些功能。情感体验保持一致。如果结合了多个来源,冲突也已解决。 关键问题:
- 现在可以开始起草了吗?
- 还存在哪些缺口?
- 是否通过了正交性测试——各个元素是否拥有自己的内在逻辑? **干预措施:**使用验证清单。移交给大纲协作或起草技能。
综合流程
- 加载 DNA 文档 - 我们要综合哪些内容?
- 确立目标背景 - 新的设定、时代背景和类型融合是什么?
- 映射背景功能 - 新背景中的哪些要素能自然地制造所需的压力?
- 为每项主要功能生成形式选项 - 提出多种可能性,而非一对一翻译
- 进行正交性检查 - 确保新形式不会“知道自己身处哪个故事”
- 验证情感体验 - 综合后的作品是否实现了相同的类型承诺?
- 解决冲突(如果有多个来源)- 确立层级,协调矛盾
- 生成综合文档 - 将功能映射到新形式
- 验证完整性 - 是否已准备好起草?
正交性原则
摘自“超越陈词滥调”:“它知道自己身处哪个故事吗?”
表层翻译会创造出一眼就能看出是改编的元素。受众立刻就会看出:“哦,这是太空版《哈姆雷特》。”这些元素之所以存在,仅仅是因为原作的存在。
优秀的综合会创造出具有自身内在逻辑的元素,同时它们碰巧也能发挥相应功能。合规专员不是作为“合规专员版哈姆雷特”来创作的,而是一位发现不当行为证据、面临艰难抉择的合规专员。他所处的情境通过自身逻辑发挥着相同的功能。
正交性测试
针对每个改编元素,问:
- **它是否有自身存在的理由?**而不是“因为原作有 X”
- **不了解原作的人能否理解它?**它在自身背景中应当显得自然
- **它是否有自己的目标、逻辑和历史?**而不是“显然是为了服务改编而存在”
- **不提及原作,你能否讲述这个故事?**DNA 应存在于内部,而非表面
示例:表层翻译与正交综合
表层翻译(未通过正交性测试):
- “银河帝国的太空王子哈姆雷特必须为被害的父亲——皇帝——复仇”
- 显然是哈姆雷特。这个角色的存在只是因为哈姆雷特的存在。
- 每个元素都“知道自己身处哪个故事”
正交综合(通过测试):
- “一家制药公司的合规专员发现,他们的导师策划了一场掩盖危险副作用的行动。他们掌握了证据,但这些证据是通过法律上有问题的手段获得的。挺身而出会摧毁一切。保持沉默则意味着会有更多人死亡。”
- 这显然不是哈姆雷特。这个角色有自己的世界和自身逻辑。
- 发挥相同功能:接近权力核心、掌握机密信息、陷入道德瘫痪、无辜者受害
基调与声音的综合
当提取内容包含基调/声音分析时,综合时必须说明基调如何转换:
基调映射问题
-
基调是核心要素还是特色?
- 《Cowboy Bebop》的忧郁冷峻是其特色——另一部赏金猎人剧集也可以妙语连珠
- 恐怖片的恐惧感是核心要素——去掉它,就不再是恐怖片
-
在新语境中,是什么营造了这种基调?
- 如果原作用反讽来掩饰痛苦,新语境中是什么营造了这种防御机制?
- 如果原作有快速交锋的俏皮对话,新背景中的哪些关系能促成这种对话?
-
哪些基调元素可以沿用,哪些需要替换?
- 幽默方式或许可以沿用(俏皮对话就是俏皮对话)
- 具体的文化引用需要换成新的对应元素
声音综合
角色声音应当经过综合,而不是照搬:
- 原作角色的说话方式反映了他们所处的世界
- 新角色应有符合其所处世界的说话方式
- 相同的功能(例如,“用幽默转移话题的角色”),不同的形式(具体笑话、引用)
综合多个来源
从多份提取内容或多个类别中综合时:
步骤 1:确定主要来源
哪份提取内容构成了主干?发生冲突时,应优先采用该来源的功能。
步骤 2:梳理功能兼容性
各来源的功能是互补还是冲突?
兼容示例:
- 《哈姆雷特》(复仇悲剧)+企业惊悚背景
- 功能互补:两者都涉及道德腐败、权力关系和隐秘信息
冲突示例:
- 《哈姆雷特》(节奏缓慢、深思熟虑)+《Killjoys》(以动作场面为主)
- 功能冲突:《哈姆雷特》的犹豫不决与《Killjoys》的果断行动相对立
步骤 3:解决冲突
处理相冲突功能的选项:
- **以主要来源为准:**保留主要来源的功能,舍弃次要来源的功能
- **融合:**寻找能在一定程度上同时满足两者的折中方案
- **交替:**作品的不同部分分别服务于不同来源
- **转化:**将冲突变成特色(角色想要像《Killjoys》一样行动,却像《哈姆雷特》一样陷入瘫痪)
步骤 4:综合类别模式
如果使用类型类别,请确定:
- 哪些类别模式是必不可少的
- 哪些只是可融合的风格元素
- 变化维度允许哪些变化(基调、连载方式等)
综合文档架构
将综合计划输出为结构化文档:
{
"_meta": {
"type": "synthesis",
"synthesis_name": "Corporate Hamlet",
"target_context": "Near-future corporate dystopia",
"primary_source": "hamlet.json",
"secondary_sources": [],
"target_genre": "drama",
"synthesis_date": "2025-01-15"
},
"context_mapping": {
"setting": "Major pharmaceutical company, headquarters building",
"power_structure": "Board of directors, CEO, executive layer, departments",
"proximity_mechanism": "Executive mentorship, access through position",
"information_control": "NDAs, legal liability, documented evidence",
"escape_prevention": "Career destruction, family employed there, industry blacklisting"
},
"function_to_form_mapping": {
"proximity_to_power_without_holding_it": {
"original_form": "Prince (heir but not king)",
"new_form": "Senior compliance officer reporting to CFO mentor",
"orthogonality_check": "pass - natural corporate position",
"functions_served": ["Access to information", "Close to power center", "Not the decision-maker"]
},
"privileged_unverifiable_information": {
"original_form": "Ghost reveals murder",
"new_form": "Discovers evidence through legally questionable access to sealed files",
"orthogonality_check": "pass - realistic corporate scenario",
"functions_served": ["Knows something others don't", "Cannot prove it legitimately", "Creates moral burden"]
}
},
"tone_synthesis": {
"original_tone": "Melancholic brooding, dark wit, soliloquy-heavy",
"adapted_tone": "Quiet desperation, corporate speak as mask, internal monologue",
"sincerity_level": "high - protagonist means what they think",
"conflict_style": "Passive aggression, email wars, meeting dynamics"
},
"character_synthesis": {
"protagonist": {
"new_name": "Jordan Chen",
"original_functions_from": "hamlet",
"new_form": "35, compliance officer, 10-year company veteran, mentored by CFO",
"arc": "Discovers mentor's guilt, paralyzed by loyalty and uncertainty, inaction causes harm"
}
},
"validation": {
"genre_check": "drama - internal conflict driving story: pass",
"function_coverage": "all primary functions mapped: pass",
"orthogonality_check": "no obviously-Hamlet elements: pass",
"context_coherence": "all elements fit corporate setting: pass"
},
"ready_for": "outline-collaborator"
}
关键问题
关于语境映射
- 在这个背景下,什么会形成权力结构?
- 在这个背景下,什么会造成无法摆脱的义务?
- 在这个背景下,什么会控制信息流?
- 在这个背景下,什么会阻止角色轻易离开?
关于形式选择
- 在这个语境中,自然存在什么形式?
- 其中哪些形式可以发挥这种功能?
- 这种形式是否“知道自己身处什么故事”?(不应该)
- 不熟悉来源的人会觉得这可信吗?
关于验证
- 这个版本是否带来了相同的情感体验?
- 所有主要功能是否都得到实现?
- 各个元素是否连贯地结合在一起?
- 这显然是改编作品,还是可以独立成立?
反模式
表面替换
**模式:**用“对应”的形式进行替换。国王 → CEO。城堡 → 总部。王子 → 法定继承人。 **问题:**创作出一眼就能看出是衍生作品的内容。所有元素都“知道自己身处什么故事”。 **修正:**先考虑功能。不要问“太空中的城堡对应什么?”,而要问“在太空中,什么会造成封闭感,并让人接近权力?” **识别方法:**如果你的改编简介听起来像“[原作],但发生在[新背景]”,那你就是在做表面替换。
大杂烩式组合
**模式:**把所有来源的内容都加进来。 **问题:**造成混乱的杂烩,功能和基调相互冲突。 **修正:**确定主要来源。只加入与之互补的次要元素。对冲突做出明确取舍。 **识别方法:**如果你无法明确说明哪个来源优先,那你就是在大杂烩式拼凑。
基调不匹配
模式: 综合功能正确,但基调不对。把企业版《哈姆雷特》演成喜剧。 问题: 可能在技术上实现了功能,却带来错误的情感体验。 修复: 明确综合基调。问:“怎样才能让观众产生相同的感受?” 检测: 如果喜欢原作的人会觉得改编的基调背叛了原作,那就不匹配。
生搬硬套
模式: 把原作元素硬塞进不适合的情境中。在“写实”的企业环境里安排鬼魂戏。 问题: 破坏情境的一致性。观众会质疑这个元素为何存在。 修复: 寻找符合情境的形式。“无法验证的特权信息”这一功能并不需要鬼魂。 检测: 如果你需要解释某个元素为何出现,那它可能就不合适。
可用工具
synthesize.ts
根据 DNA 文档开展交互式综合会话。
# Start synthesis from single DNA
deno run --allow-read scripts/synthesize.ts hamlet.json --context "corporate dystopia"
# Combine multiple sources
deno run --allow-read scripts/synthesize.ts hamlet.json killjoys.json --primary hamlet
# Generate form options for specific function
deno run --allow-read scripts/synthesize.ts --function "proximity to power" --context scifi --count 5
form-options.ts
为抽象功能生成适合情境的形式。
# Get form options
deno run --allow-read scripts/form-options.ts "proximity to power" --setting corporate
# With constraints
deno run --allow-read scripts/form-options.ts "privileged information" --setting scifi --constraint "no supernatural"
validate-synthesis.ts
检查综合文档是否完整,以及是否涵盖所有功能。
# Validate against source DNA
deno run --allow-read scripts/validate-synthesis.ts synthesis.json --against hamlet.json
# Check emotional alignment
deno run --allow-read scripts/validate-synthesis.ts synthesis.json --genre drama
# Full validation
deno run --allow-read scripts/validate-synthesis.ts synthesis.json --full
交互示例
用户:“我想把《哈姆雷特》改编成企业背景的故事。”
你的做法:
- 诊断状态:检查是否已有提取结果(SYN0 与 SYN1)
- 如果没有提取结果:“我们先提取《哈姆雷特》的 DNA。是什么让《哈姆雷特》行之有效?使用 dna-extraction 技能。”
- 如果已有提取结果:“很好。我们来确定目标情境。是什么类型的企业?属于哪个行业?这会影响可用的形式。”
- 引导情境映射:“在《哈姆雷特》中,王子凭借继承权接近权力中心。在企业里,什么能带来类似的接近权力的机会?导师关系?部门职位?家族所有权?”
- 质疑表面对应:“你说‘CEO 就像国王’。但国王承担什么功能?他是权力中心,也是哈姆雷特的叔父、篡位者、夺走他母亲的人。什么样的企业关系能形成这些动态?”
- 应用正交性检查:“从未读过《哈姆雷特》的人,能否认为这个企业故事按照自身逻辑是可信的?”
- 完成后进行验证:“我们来检查一下:它能带来戏剧效果吗?所有主要功能都得到满足了吗?它明显是《哈姆雷特》,还是能独立成立?”
你不会做的事
- 你不会把“X 只是换成 Y”当作综合
- 你不会在没有提取的情况下开始综合
- 你不会跳过正交性检查
- 你不会在未确立层级关系前合并来源
- 你不会在未核实功能覆盖情况前综合形式
- 你综合的是功能性 DNA;目标情境由用户决定
输出持久化
输出位置发现
综合之前:
- 检查项目中是否存在
dna-library/syntheses/ - 如果没有,询问:“应该把综合输出保存到哪里?”
- 妥善保存该偏好
主要输出
对于此技能,持久化保存:
- 综合文档——
dna-library/syntheses/中的 JSON 文件 - 功能到形式的映射——综合文档的一部分
- 验证结果——包含在综合文档中
对话与文件
| 保存到文件 | 保留在对话中 |
|---|---|
| 已完成的综合 JSON | 情境探索讨论 |
| 功能映射 | 形式构思 |
| 验证结果 | 状态诊断 |
| 角色综合 | “为什么这样有效?”对话 |
集成图
入站(来自其他技能)
| 来源技能 | 来源状态 | 导向状态 |
|---|---|---|
| dna-extraction | EX7:提取完成 | SYN1:DNA 就绪 |
| worldbuilding | 情境已确立 | SYN3:检查集成 |
外部流转(至其他技能)
| 此状态 | 流转至技能 | 目标状态 |
|---|---|---|
| SYN5:类型偏移 | genre-conventions | G2:类型错误 |
| SYN2:表层翻译 | cliche-transcendence | 应用正交性 |
| SYN7:综合就绪 | outline-collaborator | 准备好列大纲 |
| SYN7:综合就绪 | drafting | 准备好起草 |
互补技能
| 技能 | 关系 |
|---|---|
| dna-extraction | 提供输入 DNA 文档 |
| cliche-transcendence | 用于避免表层翻译的正交性原则 |
| genre-conventions | 验证情感体验是否一致 |
| worldbuilding | 确保上下文连贯 |
| outline-collaborator | 接收完成的综合内容以便列大纲 |