SuperAPI AI 工具集

genre-conventions

写作与研究

查看项目

更新于 10-16 09:15

技能介绍

用途

Genre Conventions 是一个面向写作者的诊断与生成技能,用于处理故事在类型(genre)层面的问题。它的核心立场是:类型是一种承诺,故事必须兑现这一承诺,否则读者会感到被背叛。该技能强调元素类型关乎情感体验,而非书架分类——故事背景设定在太空飞船里,可以是任何类型;设定不是类型,情感体验才是类型。

主要能力

该技能定义了十一种元素类型及其核心承诺与读者期待的情感:

  • 惊奇(Wonder):敬畏与着迷,读者想感受“我没想到这竟然可能”。
  • 理念(Idea):智识刺激,读者想感受“我从没这样想过”。
  • 冒险(Adventure):通过挑战获得兴奋,读者追问“接下来会发生什么”(外部)。
  • 恐怖(Horror):恐惧与直面威胁,读者感受“我不敢看却停不下来”。
  • 悬疑(Mystery):对未知事实的好奇,读者想“我要把它弄清楚”。
  • 惊悚(Thriller):危险带来的紧张,读者追问“他们能及时赶到吗”。
  • 幽默(Humor):娱乐与逗趣,读者感受“这出乎意料又令人愉快”。
  • 关系(Relationship):对情感连接的投入,读者想“我希望他们能解决”。
  • 戏剧(Drama):内在冲突与转变,读者追问“接下来会发生什么”(内部)。
  • 议题(Issue):对复杂问题的探索,读者感受“我现在看这件事不一样了”。
  • 群像(Ensemble):群体动态与合力,读者追问“他们如何走到一起”。

技能归纳出八种类型问题状态,每种都配有症状、关键问题与干预建议:

  • G1 缺少类型承诺:故事与读者之间缺少清晰的情感契约,开篇没有信号表明这是什么类型的故事。
  • G2 类型与故事不匹配:故事元素与试图营造的情感体验不符,素材与所选类型相互对抗。
  • G3 类型元素错位:元素正确但时机错误,如悬疑线索一次性倾倒、惊悚紧张感在赌注建立之前出现。
  • G4 次要类型削弱主要类型:支线类型压过主线,如爱情压过惊悚、幽默破坏恐怖氛围。
  • G5 缺少必需元素:如没有公平线索的悬疑、没有倒计时的惊悚、没有脆弱性的恐怖。
  • G6 类型套路未经审视:类型元素陈旧,读者能预测一切,产生“我读过这个”的反应。
  • G7 把设定误当类型:用“这是科幻”回答类型问题,只有世界观而没有情感内核。
  • G8 群像缺少类型归属:多个视角角色没有连贯的类型体验,视角之间基调割裂。

技能还提供类型需求速查表,从设定需求、角色需求、情节需求三个维度列出每种类型的必备条件。例如悬疑需要受控环境与分层信息、具备技能的调查者与证人嫌疑人、信息收集与渐进揭示;惊悚需要时间敏感的高风险环境、关键责任与匹配的对手、截止日期压力与升级威胁。

使用方式

技能提供三个命令行工具(基于 Deno):

  • genre-elements.ts:按类型随机生成元素。
    • deno run --allow-read scripts/genre-elements.ts mystery
    • deno run --allow-read scripts/genre-elements.ts thriller --category ticking_clocks
    • deno run --allow-read scripts/genre-elements.ts horror --count 3
    • deno run --allow-read scripts/genre-elements.ts --list
    • deno run --allow-read scripts/genre-elements.ts --combo mystery,thriller
  • genre-check.ts:对文本样本做模式匹配诊断。
    • deno run --allow-read scripts/genre-check.ts --genre mystery scene.txt
    • deno run --allow-read scripts/genre-check.ts --analyze "Synopsis text here..."
    • deno run --allow-read scripts/genre-check.ts --text "The detective arrived at dawn..." --genre mystery
  • genre-blend.ts:次要类型整合辅助。
    • deno run --allow-read scripts/genre-blend.ts mystery relationship
    • deno run --allow-read scripts/genre-blend.ts thriller --secondary humor,wonder
    • deno run --allow-read scripts/genre-blend.ts --analyze "A detective who falls in love while investigating..."

诊断流程为:先确认意图类型(问“你想让读者获得什么情感体验”),再检查类型承诺是否在开篇有信号,然后对照需求表审计必需元素,检查次要类型是服务还是竞争,最后做设定与类型的区分检查并给出干预建议。

该技能可与 story-sense 衔接:story-sense 的 State 0 可能对应 G1,State 1 可能对应 G2 或 G7,State 4.5 可能对应 G3 或 G5,State 5 可能对应 G4 或 G2,State 7 可能对应 G6。当类型问题源于角色不适配类型需求时移交给 character-arc;当类型节奏问题实为场景级结构问题时移交给 scene-sequencing;当类型元素陈旧(G6)时移交给 cliche-transcendence;当设定不服务类型需求时移交给 worldbuilding。

输出会持久化到文件。技能会先检查项目中的 context/output-config.md,若没有该技能的条目则询问用户保存位置,建议 explorations/genre/ 等位置。文件命名格式为 {story}-genre-{date}.md,例如 novel-genre-2025-01-15.md。写入文件的内容包括类型诊断、惯例清单、承诺分析与混合结构说明;澄清性提问、具体场景讨论、作者的类型决策与实时反馈留在对话中。

适用场景

适用于写作者在以下情形求助:读者问“这是什么类型的书”而作者答不上来;故事被描述为“设定在魔法衰亡世界的奇幻小说”却说不清情感体验;爱情支线不断压过惊悚主线;类型元素齐全但感觉陈旧;多个视角角色基调割裂。

限制

该技能不替作者写场景或散文,不替作者选择类型,不坚持类型纯粹(混合类型在建立层级后可行),不把设定与类型混为一谈,不诊断散文层面问题(属于 prose-style 技能),不直接处理角色弧问题(移交给 character-arc)。技能明确反对若干反模式:没有层级的类型大杂烩、把设定当类型、类型承诺的诱饵调包、只堆清单而不整合、以及颠覆一切期待导致读者失去稳定预期。