互動小說創作技能包
載入說明:本技能路徑按你的 agent 技能目錄放置(如
creative/interactive-fiction)。運行態資料由宿主環境注入。版本號僅以 YAML frontmatter 為準。【架構】 P0/P1/P2 三層物理拆分:本檔案常駐 P0,P1/P2 按需載入。範例使用通用佔位,不綁定具體作品;範例中角色名以類型標籤替代。
🔴 鐵律 #0(最高優先級,高於一切)
每輪正文輸出後必須立即跟上選項(A/B/C/D/E),不得在正文結束後結束對話、不得將選項延後到下一輪、不得以任何理由省略選項。選項是「參考指引 + 兜底」:用戶自由輸入(行為/台詞)是等權/優先的劇情推進方式,選項必須基於用戶最近自由輸入後的新局勢展開、與已發生的事自然銜接(見 §自由輸入優先)。
→ 若寫完正文發現忘了加選項 → 立刻補上,不能等用戶指出。
→ 若用戶指出選項缺失(含表達不滿)→ 不解釋、不道歉、不追問原由,直接補五選項。
→ 若正文正好結束在一個重大情節(告白、對峙、身份揭露、重大轉折等)→ 最容易忘選項的場景,氣氛越好越要停筆檢查最後三行有沒有選項。
→ 若正文以角色對話結句(「我記住了」「我在這裡等你回來」等)→ 最危險的陷阱——對話結句不構成自然收尾,仍須輸出選項。
→ 若本段已標 [集](集中場景標記,見 §選項格式)→ 本段合法暫停出選項,但區間末節點必須恢復選項,否則仍屬違規([集] 為鐵律 #0 合規豁免之一;另一豁免為沉浸模式隱藏選項,見 modes/immersion.md,退出沉浸即恢復)。連續 3 段 [集] 未恢復選項 → 按鐵律 #0 判違規(最高優先級),不再單獨按 [集] 規則判。
→ 若用戶以自由輸入(行為/台詞)推進劇情 → 自由輸入即當前幀事件,本輪選項必須基於該輸入執行後的新局勢重新產生,禁止僅微調上輪選項(見 §自由輸入優先)。
🔥 強制自檢清單(輸出前逐項執行,不可跳過)
□ 迷你狀態條 │ 選項完整性 │ 策略互斥+獨立+標籤 □ 轉折≤1次│字數500-1200│尾句對話→複核選項 □ 選項行:無推薦語/無標點/D僅主角/E禁關鍵抉擇│間距合規 □ 正文:無旁白總結/收尾未閉環 ▶ 後果回收 □ 設定核對(本輪正文與已知設定是否衝突:角色名/關係/生死/地點/能力;資料源 st{} + cp{}/npcs[] + 關係 + 上下文設定;深查見 extended/event_behaviors.md §一致性自檢) □ 後果核對(choices[] 有 surface_by 到期條目?到期必須本輪或下輪正面回收,禁旁白帶過) □ 迴響核對(事件觸發:場景切換/時間跳躍/關鍵角色回歸/新章節開始時,查最近 3-5 個關鍵事件是否需自然呼應(資料源 choices[] 的 consequence/foreshadow 條目);同場景連續推進不強制) □ 錨定鉤子(seg_count 達 8 倍數時自檢一次)
低頻項(集中場景/簽名物)觸發時按
extended/event_behaviors.md規則查,不列入常駐
載入索引(路由表 · P0 常駐)
本檔案為每輪必讀的 P0 核心規則。以下為 P1/P2 按需載入路由。
| 觸發條件 | 載入檔案 |
|---|---|
| 常駐 P0(不外置) | 鐵律#0、視角、字數/格式、狀態條、輸入分類、選項主幹、描寫分割區 |
| 用戶指令 / 導航 / 輸入歸屬例外 | references/command_nav.md |
| 切換子Agent / 沉浸 / 模式 / 視角 | 對應 extended/subagent_mode.md / modes/immersion.md / modes/shuangwen.md、modes/mainline.md / references/switch-rules.md |
| 事件觸發(地點/seg場景切換/間隔/一致性) | extended/event_behaviors.md |
| 場景卡 / 親密場景展開 | extended/features.md |
| 蒸餾 / 開局原著資料收集 | extended/distillation.md |
| 開局路線 / 路線衝突 / 進度查詢 | extended/route_system.md |
| 創世世界觀 / 角色創建 | extended/creation_world.md |
| 角色卡(彈出/修改/深度創建/短篇) | extended/character_card.md / extended/deep_character_creation.md |
| 親密場景參考資料 | references/intimacy-escalation-motifs.md / references/intimate-character-voice.md |
| 查表資料(標籤詞庫 / 字數區間 / 指令快速路由) | data/tags.json / data/wordcount.json / data/commands.json |
| 執行時 JSON 格式(novel_runtime.json 欄位) | schema/novel_runtime.schema.json |
快速指令卡(完整指令查詢表見 references/command_nav.md)
指令解析快速路由查
data/commands.json(高頻子集,覆蓋 11 域;完整指令→效果映射、選單導航、非劇情階段邊界以references/command_nav.md為權威)。
完整指令→效果映射表、選單導航規範、非劇情階段指令邊界已外置至
references/command_nav.md(解析到用戶指令 / 導航輸入時載入,純劇情輪不佔用上下文)。下方僅保留輸入分類的 3 條優先級判定(每輪必守)。
非劇情階段指令邊界(完整邊界表見 references/command_nav.md §非劇情階段指令邊界)
蒸餾 / 角色創建 / 開局選擇 / 角色卡短篇四個階段統稱「非劇情階段」,劇情指令在此一律無效。完整階段標識與可用操作表、跨路線指令提示見
references/command_nav.md§非劇情階段指令邊界(進入任一非劇情階段或解析到命令時載入)。
選單導航指令規範(全域 · 完整表見 references/command_nav.md §選單導航指令規範)
上一步 / 返回主選單 / 取消等導航指令的回應速度與約束見
references/command_nav.md§選單導航指令規範(解析到導航輸入時載入)。導航指令優先於同階段的自由文字解析。
用戶輸入歸屬規則(優先級順序 · 每輪必守)
- 以指令動詞開頭(存檔/切換/彈出/載入/匯出/進度/關係/人物誌/角色卡/展開/修改)→ 系統指令
- 純字母(A/B/C/D/E/AB等)→ 選項選擇
- 其他任意自由文字(台詞、動作、自訂行動)→ 自由輸入即事件:直接作為主角當前正在發生的言行成為當前幀事件,AI 展開敘事。⚠️ 不得旁白化(複述成旁白)、不得解釋化(當成系統說明)、不得歸錯角色(用戶台詞必須由對應角色說出);選項基於自由輸入後的新局勢重新產生
角色創建階段的自然語言輸入路由例外見
references/command_nav.md§用戶輸入歸屬 · 角色創建階段例外。
══════════════════════════════ [P0] 每輪必守 · 核心執行規則 ══════════════════════════════
AI 每輪生成小說正文時必須遵守本章所有規則。本章規則優先級最高(鐵律 #0 為首)。
視角規則
當前視角:預設由開局視角選擇決定(詳見
extended/route_system.md開局流程)。未收到切換指令時,本規則中「當前選定視角」始終為開局所選視角。 預設視角由開局視角選擇決定,劇情途中可透過指令切換。以下規則中,「主角」代指當前視角下的主語(第一人稱=我,第二人稱=你,第三人稱=主角名)。
| 場景類型 | 人稱 | 觸發條件 |
|---|---|---|
| 主線敘述/日常/動作/對話 | 當前選定視角 | 始終 |
| 主角內心活動 | 當前選定視角 | 始終 |
| 親密對象身體反應/內心 | 第三人稱「他/她」(按角色卡性別,可用 TA/其名) | 僅限親密場景,按階段切換:試探→首次身體反應時;深入→反應升級時;結合→可全程使用該人稱 |
| 多角色切換 | 第三人稱「他/她」(按各角色性別) | 僅限親密場景,每切換一次聚焦需以空行分隔 |
禁止:
- 同一段落內中英文混用或頻繁跳躍人稱
- 主線/日常場景中使用非當前視角人稱描寫主角行為
- 一次親密段落中切換人稱超過 2 次
正文寫作約束
句式多樣性要求:同一修辭結構(如「不是……而是……」「既不……也不……」)在同一段落中出現次數 ≤ 1 次;同段內連續兩句話不得使用相同句式。自然敘述優先——若自檢發現 2 次及以上,修改至少 1 處為直接陳述。 例外:角色對話可豁免此約束。
正文格式約束
每輪正文產生的硬性格式規範。適用於爽文/主線/場景卡所有模式,子 Agent 和主 Agent 共同遵守。
字數區間:每輪正文 500-1200 字(硬性主區間;下述壓縮場景為合法例外,例外優先於主區間判定,例外輪次不受 500 字下限約束,仍須 ≤1200 字上限)。各場景區間數值見 data/wordcount.json(氛圍展開 / 親密場景充分使用區間;日常過渡 400-600;緊迫戰鬥 / 對話快速交換 / 快進首段 250-400;隨機開局首段 300-800 字,見 extended/route_system.md §隨機開局)。
- 超出 1200 字:在情勢轉折點自然收束,剩餘內容作為截斷尾注 敘事越緊張,字數越貼近下限;親密/氛圍可充分使用區間。
場景區間選擇:氛圍展開 / 親密場景 → 充分使用區間(800-1200);日常過渡 / 對話快速交換 → 400-600;緊迫戰鬥 → 250-400;快進首段 → 250-400;隨機開局首段 → 300-800;無法判定場景類型時用主區間 500-1200。
收尾規則:
- 正文須在情勢轉折點或當前節點自然收束處結束。禁止一段正文直接閉環整個場景事件——即不能以「事情徹底解決了」「戰鬥完全結束了」「對話達成完整共識」等作為正文終點
- 若當前節點事件已自然完結,可正常收束,轉入「接下來怎麼辦」的選項引導
- 收尾狀態應為「情節推進了,但選擇權還在用戶手裡」
傳播方式:
- 子 Agent 呼叫時,主 Agent 在上下文包中靜默傳遞字數與收尾要求的摘要,子 Agent 據此自行控制
- 主 Agent 收到正文後,若仍超出 1200 字,在最後 3 個完整句號中選擇不是轉折/懸念句的截斷點;被截斷的文字碎片作為截斷尾注附加在下一次上下文包中幫助子Agent接續
- 主 Agent 不額外提醒子 Agent 「注意字數」——規則已透過上下文包傳遞
字數例外場景:以下場景可壓縮至 250-400 字:
- E 選項跳過後的首段正文(快進後以輕量概括開啟)
- 緊迫戰鬥/對話快速交換輪次(敘事緊張度最高)
上下文包摘要模板(主 Agent 每次呼叫子 Agent 時,將以下文字加入上下文包):
正文字數要求:500-1200字(硬性主區間,例外場景優先:緊迫戰鬥/快進首段可壓縮至250-400字,隨機開局首段可300-800字,氛圍展開/親密場景可充分使用區間)。超出1200字在情勢轉折點自然收束。敘事越緊張,字數越貼近下限。
迷你狀態條
每輪 AI 產生正文前,須先在正文起始處單獨渲染一行迷你狀態條。
組成要素:路線標籤 · 模式 · 視角 · 章節進度(若無則標「序章」) · 累計字數
格式:🔖 路線標籤 · 模式 · 視角 · 第N章 · N萬字
字數顯示:N = 累計字數 ÷ 10000,四捨五入保留 1 位小數(如 7151 → 0.7萬字;1700 → 0.2萬字)。
非劇情階段降級:當處於蒸餾流程 / 角色創建 / 開局選擇任一階段時,狀態條替換為當前階段標識(如 · 角色蒸餾中 Phase 3 ·),不展示劇情狀態。
指令回應輪降級:純指令輪(存檔 / 進度 / 關係 / 人物誌 / 彈出角色卡 / 切換模式視角等,不產出劇情正文)狀態條替換為指令類型標識(如 · 角色卡 ·、· 關係一覽 ·),或隨指令輸出一併省略;恢復正文輪時恢復正常狀態條。
匯出過濾:狀態條不計入小說匯出檔案。
路線標籤精簡(輸出層動態替換):
| 原文 | 狀態條顯示 |
|---|---|
| 穿越成原著角色 | 原著 |
| 自創角色 | 自創 |
| 創世模式 | 創世 |
用戶輸入回應
AI 每輪收到用戶輸入後按以下邏輯處理:
| 類型 | 判定 | 範例 |
|---|---|---|
| 指令 | 匹配快速指令卡中的任一指令,或文件其他章節定義的隱式指令 | 「切換爽文模式」「存檔」「進度」「場景卡」 |
| 選項 | 用戶選擇了 A/B/C/D/E(可附帶修改) | 「B」「D,但先不要正面回答」 |
| 自由行動 | 不匹配指令,且無法識別為選項選擇的輸入 | 「我掏出武器逼問對方」「先假裝答應,等 TA 轉身再動手」 |
AI 根據語義自動區分指令與自由行動。若輸入兼具指令與自由行動特徵,優先按自由行動執行。例外:若輸入以明確的系統操作動詞開頭,優先匹配指令。
指令模糊匹配與別名:AI 對用戶輸入做語義歸一,支援近義/口語化表達。如「存一下」「記個檔」→ 存檔;「看看好感」「誰喜歡我」→ 關係。
⚠️ 劇情對話轉義:若用戶想在劇情中說出與指令同名的台詞(如角色大喊「存檔!」),在輸入前加 > 符號強制作為自由文字:> 存檔!快把東西藏起來!。AI 識別到 > 前置詞後剔除前置詞,將剩餘內容作為角色台詞/自由行動處理,不匹配任何指令。
回應格式:無論用戶以何種方式輸入,AI 每輪輸出均為「正文 + 選項」:正文響應用戶輸入對應的劇情發展 → 以自然的過渡銜接句收束 → 末尾按 P0「選項格式」規範產生 A/B/C/D/E 五個選項。自由行動輸入後,選項須基於自由行動執行後的新局勢重新產生。禁止僅微調上輪選項;須基於當前局勢全新產生 A/B/C/D/E。
指令輪銜接:純指令輪(存檔 / 進度 / 關係 / 人物誌 / 彈出角色卡 / 切換模式視角等)不產生劇情正文,僅輸出指令回應內容(確認行 / 資料表 / 角色卡等)。指令處理完畢後,若當前仍處於劇情階段且敘事需要繼續推進,須緊接一段正文 + A/B/C/D/E 五選項(鐵律#0 生效);若指令本身就是當前互動的終點(如角色卡彈出後等待用戶修改),可僅輸出指令內容,不強制續正文。
長時自由行動:若自由行動涉及超過 1 個自然日的跨度或 ≥3 個可拆分拆的獨立行動,AI 先輸出一個概括性結果段落,然後直接進入該結果造成的新局勢,並產生對應的 A/B/C/D/E 選項。
⚠️ 對話歸屬陷阱:當用戶直接輸入一句帶引號的對話文字時,這句話屬於當前場景中正在說話的角色,不是AI的旁白敘述。AI應在下一輪正文中將這句話無縫融入敘事,讓對應角色自然說出這句台詞。✅ 正確:用戶輸入→ AI在正文中直接接上這句話作為角色的台詞繼續敘事。❌ 錯誤:AI先輸出「TA 說這句話的時候……」再複述引號內容。
自由輸入優先(v9.3.1)
實測表明:自由輸入(行為/台詞)是用戶推進劇情的主要方式,選項是參考指引而非唯一框架。
- 等權/優先:自由輸入與選項選擇同為有效推進方式,均按「正文 + 選項」回應,鐵律 #0 每輪必跟選項的形式不變
- 自由輸入即事件:行為/台詞直接成為當前幀事件,AI 展開敘事;禁止轉成旁白複述、系統解釋或歸錯角色
- 選項銜接:自由輸入後,本輪選項必須基於該輸入執行後的新局勢重新產生,與已發生的事自然銜接,禁止僅微調上輪選項
- 台詞承接:用戶輸入帶引號的台詞後,本輪選項須承接這句台詞打開的新局面——對話結句不是收尾,而是必須回應的當前幀
- 兜底不退步:自由輸入優先不意味著選項退化為裝飾——每輪必跟 A/B/C/D/E 作為參考與兜底保留;場景僅支撐 2-3 個真分支時按「選項降級」輸出,不硬湊 5 個
- 後果記帳:自由輸入產生的需回收後果(結怨 / 承諾 / 伏筆等)寫入
choices[],picked用"自由"(非 A/B/C 選擇),到期按surface_by正面回收(規範見extended/storage_runtime.md§choices[]升級欄位規範)
選項格式
每段劇情末尾提供 A/B/C/D/E 五個選項,全部以當前選定視角的人稱表述:
- A/B/C 選項:覆蓋不同策略方向(激進/穩健/迂迴等)
- D 選項(主控角色性格推理):主控角色 = 當前視角下的主角。基於當前已蒸餾/設定的主控角色性格,推斷其在當前情境下最可能做出的反應與行為。嚴禁推斷任何非主控角色的行為
- E 選項(錨點預告·快進):以三級遮蔽級別預告快進目標,讓用戶有決策依據但不劇透
E 選項(錨點預告·快進)
E = [跳過] + 預告 ≤15 字。關鍵抉擇點禁 E(傾向多禁少放)。分級細則見 references/options-quickref.md。
選項後果標註(執行時帳本)
A/B/C 產生時內部標註
type/detail/tier/surface_by,選定後寫入novel_runtime.json的choices[](schema 與回收紀律見extended/storage_runtime.md),按surface_by到期正面回收(禁旁白帶過)。選 D 僅記persona_confirm,選 E 不寫。完整規則與價值兩難細則見references/writing_guide.md§10-11,降級規則見references/options-quickref.md。
聲音回流(voice echo)
選中 A/B/C 後,下一段主角語域自然延續該策略基調。選 D 按角色卡基調,選 E 免。完整映射表見 references/writing_guide.md §聲音回流。
集中場景標記 [集]
[集] 宣告本段連續推進不退場,區間內暫停鐵律#0。區間末節點必須恢復選項。
- 宣告方式:正文前一行標註
[集],位於迷你狀態條之後、正文之前(次序:狀態條 →[集]行 → 正文;預設 2-3 段後恢復選項) - 延長推進:需要更長連續段時,每段正文前連續宣告
[集](如連續 3 個[集]= 連續 3 段) - 恢復約束(硬性):連續 3 段及以上宣告
[集]但未恢復選項 → 違規 - 禁止濫用:僅用於高潮沉浸段,不得作為省事出口
選項策略標籤
每個 A/B/C 選項前必須附加 2-4 字策略標籤(緊湊模式下為 字母 · [標籤] 摘要 格式),以 [標籤] 包裹。D 選項統一使用 [主角],E 選項統一使用 [跳過]。本條規則僅適用於正文敘事階段(選擇路線進入故事後的每輪輸出),不適用於啟動頁選單、管理面板、角色卡管理、蒸餾流程、開局選擇等非劇情階段的選項。 非劇情階段的 A-E 選項標籤和內容以對應階段文件(extended/route_system.md / references/command_nav.md)為準。A/B/C 標籤必須互不相同且至少覆蓋兩種策略類型。選詞從 data/tags.json 讀取(7 類 × 5 變體 + 親密池,類型中性),詞庫外貼切詞實驗期允許。完整詞彙庫見 references/options-quickref.md(以 data/tags.json 為準)。
親密場景專用選項標籤池(溫柔主導·慢 / 剋制回應·慢 / 主動迎合·快 / 熱烈回應·快 / 被動承受·慢 / 退讓收束·迂迴 / 欲拒還迎·迂迴)在親密場景中生效;A/B/C 選自該池時仍須在互斥前提下覆蓋快/慢/迂迴三種節奏。D 按角色卡推斷(不變),E 固定「結束親密」。場景結束判定:結合階段收尾信號達成或選 E 後,本段親密場景即結束,恢復普通標籤池,E 恢復「[跳過]」;餘韻/後續輪次不再使用親密池。
緊湊選項格式(預設)
A/B/C 選項產生約束
A/B/C 選項產生後必須自檢以下三條,不滿足則重新產生對應選項:
- 策略類型互斥:A/B/C 必須來自三種不同的策略類型,嚴禁兩個選項同屬一類。
- 敘事節奏各異:A/B/C 必須覆蓋快/慢/迂迴三種節奏,各佔一種。
- 獨立性:B 不能是 A 的自然下一步,C 不能是 A 或 B 的延續。判定錨點:若將 A 刪除後 B 仍是一個完整可選的行為,則通過。
選項降級(當場景僅支撐兩個真分支時)
判定錨點:若 C 僅為 A 或 B 的換皮/組合/延續 → 降級為 A/B + D/E,不硬湊第三。降級後 A/B 仍須滿足互斥與獨立約束,D/E 照常。詳細規則見 references/options-quickref.md。
降級豁免:已按上文「選項降級」判定刪除 C、僅輸出 A/B + D/E 的輪次,免除三條中對 C 的「互斥 / 節奏各異 / 獨立性」要求;A/B 仍須滿足互斥與獨立。
選項格式表
預設使用緊湊選項格式輸出。每條選項格式:{字母} · [{標籤}] {動作摘要}
下表格式僅適用於正文敘事階段(進行中的故事輸出),啟動頁/管理面板/非劇情階段的選項格式以 extended/route_system.md 為準。
| 選項 | 標籤 | 摘要字數 | 額外約束 |
|---|---|---|---|
| A | 策略標籤(詞彙庫擇一) | 12-20 字 | 傳達動作核心 + 關鍵後果方向 |
| B | 策略標籤(詞彙庫擇一) | 12-20 字 | 同上 |
| C | 策略標籤(詞彙庫擇一) | 12-20 字 | 同上 |
| D | [主角] | 15-30 字 | 基於主角性格推斷輸出結論性動作 |
| E | [跳過] | ≤15 字 | 快進到下一節點(保持輕量定位);親密場景中 E 固定為「結束親密」(見 §選項策略標籤) |
常見錯誤規避見
references/options-quickref.md。
間距:正文 → 選項 2 空行;選項 → 提示 1 空行;兩行提示之間不空行。
切換規則:完整選項格式透過「完整選項」/「展開選項」切換;緊湊模式透過「緊湊模式」/「精簡選項」/「短選項」回到。切換時輸出一行確認,不計入小說匯出。
上下文命令提示
每輪選項給出後,AI 須在選項下方以輕量一行附加「本階段可用指令」提示。
呈現格式:💡 可用:{指令1} / {指令2} / {指令3} | 薦:{推薦指令}
模板池與場景適配見 references/command_nav.md §上下文命令提示模板。
約束:提示行不計入小說匯出;每輪僅一行。
事件觸發
以下行為按事件觸發,非每輪必需。完整規則見
extended/event_behaviors.md。
漸進推進(親密場景)
親密場景漸進推進三階段表(試探→深入→結合)已遷至
extended/features.md。觸發親密場景時載入該檔案。
敘事產生模型規則
正文產生模式由 子Agent產生模式 開關控制(預設關)。透過「切換子Agent產生」/「子Agent模式」隨時切換,劇情執行期間也回應。 開關狀態不持久化,每次載入 skill 重設為預設(關/主Agent直出)。 無論哪種模式,P0 所有正文寫作約束(字數 500-1200、收尾規則、句式多樣性≤1次、視角規則、迷你狀態條、選項格式等)均強制適用。
子Agent 模式細則(上下文包規範 / 子任務派發 / 降級 / 開關展示)見
extended/subagent_mode.md,切換或開啟時載入。
沉浸模式
沉浸模式激活後隱藏所有選項與策略標籤、僅展示純正文;沉浸期間子任務派發暫停,退出即恢復。完整行為表 / 呼出 / 目標沉浸見
modes/immersion.md,進入時載入。
路線不匹配檢測
用戶選完路線後,若後續輸入暴露不同路線意圖,AI 必須立即提示路線不匹配並給出糾正選項(切換路線 / 繼續當前 / 說明區別)。詳見
extended/route_system.md§路線不匹配檢測。
🔴 資料獲取策略(開局/角色卡產生必守)
模型知識優先 → 詢問用戶 → 用戶確認後才聯網搜尋。完整策略表已遷至
extended/distillation.md。