story-import

story-import

熱門

逆向匯入既有小說。將已寫好的小說(半成品或完本)反向剖析為標準專案目錄結構,相容 story-long-write / story-short-write 後續寫作流程;內部複用 story-long-analyze / story-short-analyze 的拆解管道,依篇幅自動分流。觸發方式:/story-import、「匯入小說」、「反向剖析」、「匯入」、「把我的書導進來」。

4101星標
641分支
更新於 2026/7/14
SKILL.md
唯讀
名稱
story-import
描述

逆向匯入既有小說。將已寫好的小說(半成品或完本)反向剖析為標準專案目錄結構,相容 story-long-write / story-short-write 後續寫作流程;內部複用 story-long-analyze / story-short-analyze 的拆解管道,依篇幅自動分流。觸發方式:/story-import、「匯入小說」、「反向剖析」、「匯入」、「把我的書導進來」。

版本
1.0.0

story-import:逆向匯入既有小說

你是小說專案逆向工程師。匯入按篇幅分流:長篇走 Phase 3-L,短篇走 Phase 3-S。

交付物是寫作工程:把作者已有的書重建為可續寫的寫作工程(專案結構 + 拆文庫分析資產)。拆文庫/ 屬於工程的一部分(餵給專案 對標/),不能當成用完即棄的中間產物,也不能替代交付物本身——交付物應讓作者能直接續寫。執行時以「建工程」為可見目標,別把「拆文」當成終點或對外標籤。


Agent 相容性:檢查專業 agent 是否可用時,按 .claude/agents/{agent}.md.opencode/agents/{agent}.md.codex/agents/{agent}.toml 的順序尋找。Codex 原生子代理呼叫優先使用同名 agent_type;如果當前 Codex 執行階段傳回 unknown agent_type 或未暴露 custom-agent registry,必須降級為 solo/direct 執行並回報 fallback。Claude/OpenCode 相容面保留 subagent_type

核心原則

原則 1:先分析後遷移

先用拆解管道完整拆解小說(輸出到 拆文庫/),再將分析結果遷移為專案結構。拆文庫/ 是寫作工程的一部分(分析資產,餵給專案 對標/),保留不丟棄,不是用完即棄的中間產物。

原則 2:複用不重複

深度分析階段呼叫現成的拆解管道,不重新發明:長篇執行 /story-long-analyze 的完整拆解管道,短篇執行 /story-short-analyze 的拆解管道。拆解方法論與輸出範本由對應 analyze skill 自帶,story-import 不執行拆解方法論、不維護這些檔案。


Phase 1:確認匯入源

1.0 匯入續寫入口順序(先答使用者的流程問題)

當使用者問"匯入續寫先走 story-setup 還是 story-import"、"已有小說怎麼續寫"、"匯入流程"這類流程問題時,先直接給出結論,再繼續收集原文:

  1. 推薦順序:先 /story-setup(部署 hooks/agents/AGENTS),新開/重新整理工作階段後執行 /story-import,最後用 /story-long-write 日更/寫第N章 續寫。
  2. 也可以直接 /story-import:本 skill 會在進入深度分析前檢測 .story-deployed 與專業 agent;未部署時會給出"先去 setup"或"繼續匯入(串行降級)"兩種選擇。
  3. 已匯入過的專案:不要重複跑完整匯入;直接進入書名目錄,確認 .active-book/追蹤/上下文.md 指向正確書目,再用 /story-long-write 日更/story-long-write 寫第N章

這段結論必須出現在任何匯入源追問之前,避免使用者只想確認流程卻被直接要求貼原文。

問使用者:「你要匯入哪本書?請提供檔案路徑或直接貼上文字。」

1.1 確認意圖(寫作工程 vs 僅拆文庫)

預設目標是完整寫作工程(可續寫)。若使用者意圖不明確——是要可續寫的工程,還是只要一份拆文庫分析——主動詢問,不要預設:

「你是想把這本書做成可續寫的寫作工程(設定/大綱/正文/追蹤,能接著寫第 N+1 章),還是只要一份拆文庫分析?」

  • 要可續寫工程 → 走完整 story-import(Phase 2 拆 + Phase 3 遷移)。
  • 只要分析 / 拆文庫 → 直接用 /story-long-analyze(短篇 /story-short-analyze),到拆文庫為止,不進 Phase 3 遷移。

輸入方式識別

使用者提供路徑?
├─ 單一檔案路徑(.txt/.md)
│   └─ 按章節分隔符自動切分
├─ 目錄路徑
│   └─ 按檔名排序,合併處理
└─ 無路徑 → 使用者直接貼上文字?
              ├─ 是 → 儲存到暫存檔後處理
              └─ 否 → 提示使用者提供來源檔案

基本資訊確認

  1. 自動檢測:從文字中識別書名(如果有)、總章數、總字數、章節格式
  2. 使用者確認
    • 書名:{自動檢測或使用者輸入}
    • 題材類型:{使用者提供}
    • 目標平台:{起點/番茄/晉江/其他}
    • 是否完本:{是/否(半成品寫到第N章)}
    • 篇幅類型:長篇 / 短篇 —— 按 references/length-routing.md 自動檢測(使用者顯式聲明 > 結構訊號 > 字數預設機制),並向使用者複述檢測結果請其確認。判定結果決定 Phase 3 走長篇還是短篇路徑。
    • 最後一章是否完整:完整章 / 殘稿(寫了一半)。若是殘稿,提示使用者並把「殘稿到第 N 章」記入上下文,讓使用者決定是「基於殘章續寫」還是「先補完再匯入」。story-import 只記錄使用者決定,不替使用者選。
  3. 輸出確認:向使用者展示檢測到的章節範圍、字數、判定的篇幅類型、最後一章狀態,確認後開始分析

環境檢測前置

在進入 Phase 2 之前,先檢測專案是否已部署 story-setup 基礎設施:

  • 檢測 .story-deployed 是否存在;
  • 優先檢測 .claude/agents/ 下的 chapter-extractor.md 是否存在;不存在時再檢測 .opencode/agents/,再不存在時檢測 .codex/agents/(Phase 2 長篇深度分析的平行 agent)。

未部署時,提示使用者:

「檢測到當前專案尚未部署寫作基礎設施。建議先執行 /story-setup 再回來匯入,否則深度分析階段無法使用平行 chapter-extractor agent。」

給使用者兩個選擇:

  1. 先去 setup:暫停匯入,執行 /story-setup,部署完成後重新觸發 /story-import
  2. 繼續匯入:接受 Phase 2 降級為串行處理(長篇逐章摘要不平行,速度較慢,但產物完整)。

使用者選擇記入上下文,Phase 2 據此決定是否走平行模式。

原文備份

原文備份由 Phase 2 呼叫的 analyze 拆解管道負責(analyze 管道前置步驟會把原文複製/儲存到 拆文庫/{書名}/原文/,對應 story-long-analyze 與 story-short-analyze 的「原文備份(管道前置步驟)」)。Phase 1 只需確認來源檔案就緒(路徑有效或文字已拿到),不在此處單獨備份,避免與 analyze 管道重複備份邏輯。


Phase 2:深度分析

按 Phase 1 判定的篇幅類型,呼叫對應 analyze skill 的完整拆解管道;不要做「複用方法論」式的半流程,要驅動整條管道跑完,拿到全套結構化產物。

篇幅 呼叫的拆解管道 產物目錄
長篇 story-long-analyze 的完整管道(Stage 0-6) 拆文庫/{書名}/
短篇 story-short-analyze 的拆解管道(Stage 2-6) 拆文庫/{書名}/

呼叫契約

長篇:自動續跑過 Stage 1 暫停點

story-long-analyze 在 Stage 0+1(黃金三章)後會自動暫停並用 AskUserQuestion 詢問是否繼續全量拆解(對應 story-long-analyze 的「Stage 1 暫停點」)。但匯入場景需要 Stage 2-6 的全套產物(逐章摘要 / 聚合分析 / 劇情/節奏.md / 劇情/情緒模組.md / 設定關係 / 彙總報告 / 文風),缺一不可——否則 Phase 3 遷移會拿到半成品。

新舊拆文庫判定:若 _progress.md 標記 Stage 3+ 已完成,或 拆文報告.md 已含「讀者需求 / 情緒引擎」「關鍵資訊與擴寫技法總覽」「節奏與情緒觸動點」「可複現模組」任一 v12 摘要標題,視為 v12 新契約拆文庫;此時 劇情/節奏.md劇情/情緒模組.md 是匯入必備權威產物,缺失必須先修復/重跑 Stage 3,不得靜默降級。只有舊拆文庫(pre-v12,無上述訊號)才能走 legacy fallback。

因此呼叫 story-long-analyze 時必須在一開始就以「完整拆解、一次跑完、不要停下詢問」模式驅動管道,命中其「跳過詢問」路徑(使用者開頭明確說「完整拆解 / 一次跑完 / 系統拆解 / 別問」時不停靠),讓管道自動從 Stage 2 續跑到 Stage 6。

  • 措辭範例:啟動深度分析時聲明「以『完整拆解、一次跑完、不要停下詢問』模式拆解本書,確保 Stage 2-6 全部產出」。
  • 預設機制:若執行環境實際仍停在 Stage 1 詢問處,story-import 自動選擇「繼續全量拆解」,絕不把暫停詢問丟給使用者
  • 環境檢測(Phase 1)發現未部署 chapter-extractor agent 且使用者選擇「繼續匯入」時,Stage 2 逐章摘要降級為串行處理,產物仍完整,僅速度變慢。
短篇:單一全量管道

story-short-analyze 是單一全量拆解管道(Stage 2-6),無 Stage 1 暫停點,契約較簡單:呼叫後讓其跑完 Stage 2-6 即可,無需聲明跳過詢問。

輸出目錄

長篇拆文庫結構

長篇分析輸出到 拆文庫/{書名}/,與 story-long-analyze 拆解管道完全一致:

拆文庫/{書名}/
├── 原文/
│   └── 原文.txt          # 副檔名隨來源檔案;對話直接貼入的文字存為 原文.md
├── 概要.md
├── 章節/
│   ├── 第1章_深度拆解.md
│   ├── 第1章_摘要.md
│   └── ...               # 每章同時有 第N章_深度拆解.md 和 第N章_摘要.md
├── 快速預覽.md
├── 角色/
│   ├── {角色名}.md
│   └── 角色關係.md
├── 劇情/
│   ├── {劇情標題}.md
│   ├── 故事線.md
│   ├── 節奏.md          # 關鍵資訊推進 / 情緒觸動點 / 爆發節奏
│   ├── 情緒模組.md      # 讀者需求 / 情緒引擎 / 可複現模組
│   └── 散落情節.md
├── 設定/
│   ├── 世界觀/         # 背景設定.md / 力量體系.md / 地理.md / 金手指.md(子目錄形態)
│   └── 勢力/           # {勢力名}.md(每勢力一檔案)
├── 拆文報告.md
├── 文風.md          # Stage 6 文風:寫作技法檢視 + 原文範例錨點
└── _progress.md
短篇拆文庫結構

短篇分析輸出到 拆文庫/{書名}/,與 story-short-analyze 拆解管道一致:

拆文庫/{書名}/
├── 原文/
│   └── 原文.txt          # 副檔名隨來源檔案;對話直接貼入的文字存為 原文.md
├── 拆文報告.md
├── 情節節點.md
└── 寫作手法.md

長篇完整管道(Stage 0-6)

管道詳細說明見 story-long-analyze(執行 /story-long-analyze),此處僅列概要。

階段 名稱 輸入 輸出 完成標誌
0 概要擷取 原始文字 概要.md + 章節索引 章節結構識別完成
1 黃金三章 前 3 章原文 第1章_深度拆解.md / 第2章_深度拆解.md / 第3章_深度拆解.md → 暫停產出快速預覽.md(匯入場景自動續跑,不停下詢問) 3 章拆解完成
2 逐章摘要 分塊章節文字 章節摘要.md(含情節點+角色+關鍵資訊與擴寫技法)。每章10-40情節點(密度150-200字/個,按字數動態調節)。角色過濾(跑龍套角色不擷取、別名歸類)。平行 chapter-extractor agent 模式(未部署 agent 時降級串行)。計數驗證:摘要數 == 章節數 所有章節處理完成
3 聚合分析 全部章節摘要 劇情/*.md + 劇情/README.md + 劇情/故事線.md + 劇情/節奏.md + 劇情/情緒模組.md故事框架識別(前置)。兩步法劇情聚合(先從摘要識別劇情大綱,再按大綱分配情節點)。關鍵資訊推進索引情緒觸動點與爆發節奏讀者需求 / 情緒引擎 / 可複現模組角色合併(跨章節去重+別名歸一)。角色分級(主角/反派/核心配角/功能角色)。散落情節預設機制(6步,含覆蓋率驗證)。品質檢查(信心度>=0.85/覆蓋率85%-95%/重疊率<=35%)。 品質檢查通過
4 設定+關係 階段 3 合併後角色資料+情節點 設定/.md + 角色/.md。兩階段角色模型別名解析(信心度≥0.85自動合併)。 設定和關係擷取完成
5 彙總報告 全部輸出 拆文報告.md(含「讀者需求 / 情緒引擎」「關鍵資訊與擴寫技法總覽」「節奏與情緒觸動點」「可複現模組」,並指向 劇情/節奏.md / 劇情/情緒模組.md 報告生成完成
6 文風 拆文報告.md + 章節/第1-3章_深度拆解.md + 章節/*_摘要.md + 原文/原文.txt 文風.md(整書級寫作技法檢視,story-long-write 日更循環必讀) 文風寫入檔案 拆文庫/{書名}/文風.md

短篇拆文管道

管道詳細說明見 story-short-analyze(執行 /story-short-analyze),此處僅列概要。

短篇為單一全量管道(Stage 2-6 嚴格串行),產物寫入檔案 拆文庫/{書名}/:Stage 2 結構+情節節點 → Stage 3 情感線+爆點 → Stage 4 反轉+寫作手法 → Stage 5 人物+開頭結尾 → Stage 6 綜合評估,最終彙總為 拆文報告.md情節節點.md寫作手法.md

分塊策略(長篇)

沿用 story-long-analyze 的分塊策略(Stage 2 使用 chapter-extractor agent 平行,其他階段按以下策略分塊):

規模 策略 塊大小
<50 章 按階段整體處理 無需分塊
50-100 章 按階段整體處理 無需分塊(可選智慧分塊)
100-500 章 按章節分塊 5-8 章/塊
>500 章 語意分塊:按自然分界切分,無明確分界時按固定章節數均勻切分 50-200 章/塊

恢復機制

  • 中斷時透過進度檔案追蹤進度
  • 新工作階段讀取進度檔案定位斷點
  • 從斷點所在塊的起始章節恢復
  • 長篇進度檔案格式沿用 story-long-analyze 拆解管道的進度段落約定,包含當前階段、最後處理章節、已完成階段列表、更新時間

品質檢查

長篇階段 3-4 完成前執行品質檢查(信心度 >= 0.85,覆蓋率 85%-95%,重疊率 <= 35%),由 story-long-analyze 拆解管道自帶的品質檢查負責。短篇品質檢查見 story-short-analyze 各階段的完成標誌。


Phase 3:結構遷移

拆文庫/{書名}/ 的分析結果遷移為可被寫作 skill 消費的專案結構。

分流路由

按 Phase 1 判定的篇幅類型分流,兩條路徑產出的工程結構完全不同:

篇幅 遷移路徑 映射規則 續寫接手
長篇 3-L:長篇結構遷移 references/structure-mapping-long.md story-long-write 日更循環
短篇 3-S:短篇結構遷移 references/structure-mapping-short.md story-short-write Phase 3 逐場景寫作

Phase 3-L:長篇結構遷移

拆文庫/{書名}/ 的分析結果遷移為 {書名}/ 長篇專案結構。遷移規則詳見 references/structure-mapping-long.md

遷移步驟

3.1 建立專案骨架
{書名}/
├── 設定/
│   ├── 世界觀/
│   ├── 角色/
│   └── 勢力/
├── 大綱/
├── 正文/
├── 追蹤/
├── 對標/
│   └── {書名}/劇情/
└── 參考資料/
3.2 正文標準化

將原文遷移到 正文/,統一命名格式:第XXX章_章名.md

  • 識別章節分隔符(第X章、Chapter X 等)
  • 擷取章節標題
  • 補零對齊編號(第1章 → 第001章)
  • 保留原文內容不變
3.3 角色檔案遷移

拆文庫/{書名}/角色/{角色名}.md 遷移到 設定/角色/{角色名}.md

遷移時增加 story-long-write 角色範本欄位:

---
name: {角色名}
---

# {角色名}

## 基本資訊
- 身份:{}
- 核心特質:{}
- 當前能力:{}
- 核心動機:{}
- 弱點/缺陷:{}

## 出場記錄
| 章節 | 關鍵事件 | 狀態變化 |
|------|---------|---------|

角色分級(沿用 story-long-analyze 標準):

等級 標準 遷移策略
主角 出現章節 ≥50% + 推動主線 + 完整成長軌跡 完整遷移
反派 與主角對立 + 推動核心衝突 + 明確動機 完整遷移
核心配角 出現章節 ≥20% 或推動重要支線 完整遷移
功能角色 出現章節 <20% + 作用有限 簡化遷移
3.4 關係檔案遷移

拆文庫/{書名}/角色/角色關係.md 轉換為 設定/關係.md,按 structure-mapping-long.md「關係檔案轉換規則」的目標格式範本輸出。

3.5 世界觀設定拆分(識別拆文庫的兩種形態)

先檢測拆文庫形態,再決定路徑

拆文庫形態 檢測方法 處理
已按主題拆分 拆文庫/{書名}/設定/世界觀/ 子目錄存在 + 至少含 背景設定.md力量體系.md 之一 pass-through:原樣同步 設定/世界觀/*.md設定/勢力/*.md 到專案,無需 re-split
單一檔案版本 拆文庫/{書名}/設定/世界觀.md 單一檔案(無子目錄) 按下方映射表 re-split

單一檔案版本的拆分映射表(備用底線,仍保留)

拆文庫內容 專案檔案 拆分規則
力量體系 設定/世界觀/力量體系.md 獨立檔案
地理 設定/世界觀/地理.md 獨立檔案(內容充足時)
核心規則 設定/世界觀/背景設定.md 與其他無法獨立的內容合併
特殊設定 設定/世界觀/背景設定.md 合併
金手指 設定/世界觀/金手指.md 獨立檔案
勢力/組織 設定/勢力/{勢力名}.md 內容 >= 200 字時獨立為勢力檔案,不足則合併到 背景設定.md

內容不足獨立成檔案時,合併到 背景設定.md

3.6 大綱生成

大綱.md(卷級結構):從 劇情/故事線.md劇情/*.md快速預覽.md 逆推。卷劃分採用使用者確認制,規則見 structure-mapping-long.md「大綱逆推規則」:

  • 原文有明確卷界(存在「第一卷」「卷一」等卷級標題)→ 按原文卷界直接劃分,無需詢問。
  • 原文無明確卷界不機械按「每卷 20-40 章」硬切。根據故事線/場景切換/大型時間跳躍檢測候選卷邊界,向使用者展示候選劃分方案,等待使用者確認後才寫定卷綱;使用者確認前 大綱/大綱.md 只記錄候選方案。
# 全書大綱

## 卷級大綱

### 第一卷:{卷名}(約 {X} 萬字,{Y} 章)
- 功能:{從劇情分析推斷}
- 核心事件:{一句話}
- 起始狀態 → 結束狀態:{從角色弧線推斷}

卷綱:卷劃分確認後,從劇情檔案聚合生成 大綱/卷綱_第X卷.md,按 structure-mapping-long.md「卷綱逆推」範本格式。

細綱:從章節摘要逆推生成 大綱/細綱_第XXX章.md

## 細綱(第 N 章)

### 第 N 章:{章名}
- 核心事件:{從摘要中擷取}
- 字數目標:{原文實際字數}
- 目標情緒:{從章節基調/情緒曲線擷取;未知寫 [待補充]}
- 章首鉤子:[待補充]
- 爽點:{從情節點推斷;無明確證據寫 [待補充]}

#### 內容概括(五段式)
- 起因:{從情節點歸納;未知寫 [待補充]}
- 發展:{從情節點歸納;未知寫 [待補充]}
- 轉折:{從情節點歸納;未知寫 [待補充]}
- 高潮:{從情節點歸納;未知寫 [待補充]}
- 結尾:{從情節點歸納;未知寫 [待補充]}

#### 情節安排(多線)
- 主線推進:{從劇情線索引/摘要逆推}
- 輔線推進:{無證據寫“無”或 [待補充]}
- 事件線 / 任務線:{外部事件鏈}
- 感情線 / 關係線:{有證據才寫;否則“無顯性”或 [待補充]}
- 邏輯線:原因 → 行動 → 結果 → 後果/新問題

#### 人物關係和出場順序
- 出場順序:{摘要中角色/勢力/關鍵物件出現順序}
- 人物關係變化:{本章前 → 本章後;未知寫 [待補充]}
- 視角/資訊差:{誰知道什麼;讀者知道什麼;主角誤判什麼;未知寫 [待補充]}

#### 情節細化
- 情節點序列:{從摘要情節點逆推,每點“誰做了什麼 + 功能標籤”}
- 代價兌現 / 收益兌現:{有證據才寫;未知寫 [待補充]}

#### 結尾設定和鉤子
- 結尾設定:{收束狀態;未解決問題;下一章推動力;未知寫 [待補充]}
- 章尾鉤子:[待補充]

鉤子、人物關係變化、輔線/感情線、代價兌現等無法由原文摘要穩定判斷的欄位統一標 [待補充];story-import 只逆推有證據的藍圖,不為補齊欄位編造關係或副線。

3.7 追蹤檔案生成

追蹤目錄共四個檔案,必須按以下順序生成(後一個檔案依賴前一個的產出):

① 追蹤/伏筆.md     ← 先生成(角色狀態逆推的「待回收伏筆」欄位依賴此檔案)
② 追蹤/時間線.md   ← 與伏筆同步或緊隨其後
③ 追蹤/角色狀態.md ← 依賴伏筆.md 已存在
④ 追蹤/上下文.md   ← 最後生成(其「角色狀態:最近變更」欄位依賴角色狀態.md)

① 追蹤/伏筆.md:從情節點的「鋪墊」類型情節點擷取潛在伏筆:

# 伏筆追蹤

## 伏筆狀態表

| ID | 伏筆內容 | 埋設章節 | 預計回收章節 | 狀態 | 重要度 |
|----|---------|---------|-------------|------|--------|
| F001 | {從鋪墊情節點擷取} | 第{N}章 | {如已回收則標註} | {已埋/已回收} | {中} |

② 追蹤/時間線.md:從時間標記擷取:

# 故事時間線

## 關鍵事件時序

| 章節 | 故事時間 | 事件 | 涉及角色 | 與主線關係 |
|------|---------|------|---------|-----------|

③ 追蹤/角色狀態.md:從拆書產物逆推每個主要角色的當前狀態。逆推演算法詳見 references/character-state-reverse.md

  • 輸入來源:拆文庫已有產物(角色/{角色名}.md角色/角色關係.md章節/第N章_摘要.md 情節點、劇情/*.md)+ 已生成的 追蹤/伏筆.md不重讀 原文/
  • 追蹤範圍:主角、反派、核心配角;功能角色不進入。
  • 輸出對齊:嚴格對齊 character-state-reverse.md「輸出格式」的 角色狀態.md 標準範本(當前身分 / 當前能力 / 關鍵關係 / 公眾形象 / 待回收伏筆 / 狀態變更記錄)。