逆向匯入既有小說。將已寫好的小說(半成品或完本)反向剖析為標準專案目錄結構,相容 story-long-write / story-short-write 後續寫作流程;內部複用 story-long-analyze / story-short-analyze 的拆解管道,依篇幅自動分流。觸發方式:/story-import、「匯入小說」、「反向剖析」、「匯入」、「把我的書導進來」。
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"、"已有小說怎麼續寫"、"匯入流程"這類流程問題時,先直接給出結論,再繼續收集原文:
- 推薦順序:先
/story-setup(部署 hooks/agents/AGENTS),新開/重新整理工作階段後執行/story-import,最後用/story-long-write 日更/寫第N章續寫。 - 也可以直接
/story-import:本 skill 會在進入深度分析前檢測.story-deployed與專業 agent;未部署時會給出"先去 setup"或"繼續匯入(串行降級)"兩種選擇。 - 已匯入過的專案:不要重複跑完整匯入;直接進入書名目錄,確認
.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)
│ └─ 按章節分隔符自動切分
├─ 目錄路徑
│ └─ 按檔名排序,合併處理
└─ 無路徑 → 使用者直接貼上文字?
├─ 是 → 儲存到暫存檔後處理
└─ 否 → 提示使用者提供來源檔案
基本資訊確認
- 自動檢測:從文字中識別書名(如果有)、總章數、總字數、章節格式
- 使用者確認:
- 書名:{自動檢測或使用者輸入}
- 題材類型:{使用者提供}
- 目標平台:{起點/番茄/晉江/其他}
- 是否完本:{是/否(半成品寫到第N章)}
- 篇幅類型:長篇 / 短篇 —— 按 references/length-routing.md 自動檢測(使用者顯式聲明 > 結構訊號 > 字數預設機制),並向使用者複述檢測結果請其確認。判定結果決定 Phase 3 走長篇還是短篇路徑。
- 最後一章是否完整:完整章 / 殘稿(寫了一半)。若是殘稿,提示使用者並把「殘稿到第 N 章」記入上下文,讓使用者決定是「基於殘章續寫」還是「先補完再匯入」。story-import 只記錄使用者決定,不替使用者選。
- 輸出確認:向使用者展示檢測到的章節範圍、字數、判定的篇幅類型、最後一章狀態,確認後開始分析
環境檢測前置
在進入 Phase 2 之前,先檢測專案是否已部署 story-setup 基礎設施:
- 檢測
.story-deployed是否存在; - 優先檢測
.claude/agents/下的chapter-extractor.md是否存在;不存在時再檢測.opencode/agents/,再不存在時檢測.codex/agents/(Phase 2 長篇深度分析的平行 agent)。
未部署時,提示使用者:
「檢測到當前專案尚未部署寫作基礎設施。建議先執行
/story-setup再回來匯入,否則深度分析階段無法使用平行 chapter-extractor agent。」
給使用者兩個選擇:
- 先去 setup:暫停匯入,執行
/story-setup,部署完成後重新觸發/story-import; - 繼續匯入:接受 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標準範本(當前身分 / 當前能力 / 關鍵關係 / 公眾形象 / 待回收伏筆 / 狀態變更記錄)。 -






