模組二|敘事規格化(Day 5–9)
《矽墟》是我正在寫的一部科幻小說,拆成 200 回短篇連載,整部作品用管軟體專案的方式在管:敘事結構寫成規格檔,成品用腳本驗收。本篇談的是其中最吃重的一份規格——一回要怎麼寫,讀者才會回來看下一回。
我把它拆成五段。其中四段可以用腳本檢查,第四段不行;而不能檢查的那一段,正好是我自己執行得最差的一段。後面用實測數字說明。
拆章表(NOVEL-200-SHORTFORM-PLAN.md,Day 2 講過的那份排 200 回的拆章表)裡的完整規格:
目標是讓讀者在一回裡反覆得到「我猜對了/我剛喜歡上他們/事情竟然更大」的回報,不是把懸念切得更碎。先給糖,再翻桌;每次翻桌都要留下更值得追的糖。
| 段 | 句 | 要做什麼 | 交界處 |
|---|---|---|---|
| 鉤住 | 0–4 | 角色要一件立刻看得懂的事,或讀者拿到一個可猜的問題 | 第 5 句必改變原本目標 |
| 先給回報 | 5–9 | 角色嘗試,讀者先得到具體答案/戰術優勢/視覺爽點 | 第 10 句揭露它的代價 |
| 加碼 | 10–14 | 危險升級,但角色做出主動的選擇 | 第 15 句給一個人物回報 |
| 假勝與更大門 | 15–19 | 解決本回問題的至少一部分 | 第 20 句打開更大的問題 |
還有幾條約束:
最後一句:只能留一個可回答的問題,下一回前 3 句就要接住。不能用昏迷、大叫、突然黑幕或「未完待續」假裝有鉤子。
每回至少兩次獎勵:從「資訊兌現、戰術/能力爽點、關係靠近、封面畫面、幽默/反差」中選兩種;不能二十句全是危險或全是謎語。

一般講懸念的方法論會說:把資訊藏起來,讀者為了知道答案就會追。
這套引擎的立場相反:第二段就要先給答案。
理由寫在規格裡:「讓讀者不覺得被吊著白等」。
只靠懸念的連載有個很現實的問題:讀者對「還沒給的東西」的耐心是有限的,而且每回都在消耗。 你吊三回,第四回就有人走了。而每回先兌現一點,讀者的帳戶是持續入帳的,他才有本錢陪你追下一個謎。
所以規格禁止「二十句全是謎語」,也禁止「二十句全是危險」。
現在講今天的重點。
第 15 句要給的是「人物回報」,不是資訊、不是戰術優勢,是這群人之間發生的事。規格列的例子:默契、嘴硬的關心、能力亮相、選擇站在一起。
還有一條獨立規則:
每回必有一個人物動作:替人留位置、報數、遞糖、觸肩、收線、拒答;不能只靠設定翻轉。人物動作就是讀者下一回想回來看這群人的原因。

因為前三段和第五段都有明確的推力。
這四段不寫,你自己就會覺得少了東西。
人物獎勵不會。一回裡把危機處理完、把鉤子留好,讀起來完全順暢。你不會感覺到缺了什麼,因為缺的東西不佔位置。
它的缺席要累積很多回才會顯現:讀者說得出劇情,但講不出他喜歡誰。到那時候已經來不及了。
我對 200 回跑了關鍵字比對,去找規格列的那六種人物動作:
總回數: 200
至少含一種人物動作: 125 (62.5%)
收線/繫繩 70 回 (35%)
拒答/不答 30 回 (15%)
遞糖/給食 24 回 (12%)
觸肩/身體接觸 17 回 ( 8%)
留位置 14 回 ( 7%)
報數/報位 13 回 ( 6%)
規格寫的是「每回必有」,關鍵字抓到的是 62.5%。
我必須把方法論的限制講清楚,否則這個數字會被誤讀。
62.5% 是下限,不是真實合規率。 原因:
所以真實數字介於某個我測不出來的區間。
而這正是今天真正的結論:昨天的句數規格 100% 可以自動檢查,今天的人物動作 0% 可以。
差別在於,句數是形式,人物動作是意義。形式可以數,意義只能讀。
我能做的只有把「數不出來」這件事講清楚,而不是拿 62.5% 假裝我量到了什麼。
分布裡最突出的是「收線/繫繩」——70 回,35%。
這不是我排的。我沒有在任何地方寫過「繩索要成為貫穿全書的意象」。
回頭看才理解為什麼:繩是六種人物動作裡唯一可以雙向的。 遞糖是單向給予,觸肩是單向接觸,報數是單向告知。只有繩——一頭在我手上,一頭在你手上,兩個人同時握著同一個東西。
而這整套故事在講的就是「他們會不會接住彼此」。所以每次我需要一個人物動作,繩子都是最順手的那個,然後它就自己長到 35%。
規格產生了一個我沒有設計的母題。 這件事我到今天跑統計才發現。
我原本以為第一篇建立的「左砍、右報」默契會貫穿全書。寫大綱的時候我還寫了「這組默契會在後面幾十回被回收」。
實測:
出現「報右/報左」這組默契的回數: 5
5 回。不是幾十回。
我記憶中它很重要,因為它是第一組默契,寫的當下印象深刻。但實際上它在第 1 篇之後幾乎沒再出現,被繩子取代了。
這是我今天最有收穫的一個發現,而且它的意義超出這個專案:創作者對自己作品的記憶是按「寫的時候有多用力」排序的,不是按「實際佔多少篇幅」排序的。
我如果沒跑這個統計,會繼續帶著錯誤的印象規劃後面的內容。
代價一:人物獎勵段擋不住敷衍。
跟昨天的問題一樣。我可以在第 15 句放一個很表面的互動,形式上有了,但沒有份量。
規格保證位置,不保證重量。
代價二:五段式在短篇尺度下很擠。
20 句要塞五段,平均一段 4 句。有些轉折需要鋪陳,4 句不夠。
我的處理是把鋪陳挪到前一回,但這會讓前一回變得偏鋪墊。問題被推走了,沒有被解決。
代價三:禁止清單擋掉的東西沒有全部給替代。
規格禁止用昏迷、大叫、突然黑幕、「未完待續」當鉤子。但它只說了「要留一個可回答的問題」,沒有說問題不夠力的時候該怎麼辦。
Day 3 講規則要成對寫、禁止要有去處。這條規則右邊那欄是缺的,而我在寫的時候確實會卡在這裡。
一、分辨規格裡哪些是形式、哪些是意義,然後只自動化形式那些。
危險的是把意義項寫成看起來像形式項。 「每回必有一個人物動作」讀起來像可以檢查,實際上不行,我今天跑出來的 62.5% 就是這個誤會的產物。
寫規格的時候,最好把兩類分開標記,讓自己知道哪些真的有守門員、哪些只是願望。
二、定期對自己的成品跑統計,你的記憶一定是錯的。
我以為重要的默契只出現 5 回;我沒設計的繩索佔了 35%。兩個都跟印象不符,而且是同一個機制造成的:記憶按投入排序,不按篇幅排序。
這件事對任何長期專案都成立。你以為的核心模組,可能三個月沒人動;你隨手寫的工具,可能全公司都在用。跑一次統計,比回想一小時準。
三、最容易被跳過的規格項,通常是缺席時不佔位置的那一項。
檢查方式:如果拿掉這一項,成品讀起來會不會不完整?
錯誤處理、日誌、無障礙標籤、README 的更新,全都是「拿掉之後看起來還是好的」那一類。它們需要 checklist,不是因為它們不重要,是因為它們缺席時沒有症狀。
明天 Day 8,講這整套規格的驗收機制:完稿淘汰線。一條可以當場判定、而且只用一句話寫成的標準,以及為什麼「用更多設定去補救」是所有創作者最常見的錯誤修法。