投稿要標示 AI 用在哪裡,那行字是 AI 寫的,還把我的份寫多了

9 月 8 日凌晨,《咒泉鄉的白帝城》發上 Larch 市集,投第二屆創作者挑戰。這篇寫從第一筆 commit 到發佈那 47 小時的產線,還有發佈對話框裡三件只有我按得到的事。

《咒泉鄉的白帝城》的謝幕合影與四件道具。上半是戲台上並排的六個人,左三是男版、右二是女版,正中央是提著青銅油燈、黑髮夾白絲的老年劉備,頭頂一排暖黃紙燈籠,兩側垂著深紅幕簾;下半是四件道具的去背圖,由左到右是青銅豆形油燈、褪成粉色的紅髮帶、褪成灰綠的男子腰帶、金髮釵

Larch 第二屆創作者挑戰的規則裡有一條:用 AI 不影響資格,但發佈的時候要勾選挑戰賽,並且標示 AI 使用範圍。

那行標示寫錯了。錯的方向是把我做的份寫多。

先說分工。我不會親手寫程式了,程式一定是 AI 寫的,我只會叫它寫,然後看它寫出來的東西自己驗。這部番外的產線工具、驗收器、圖的提示詞、大部分的劇本資料,都是 AI 依規格產出的。我做的是訂故事設定、出範圍、東西回來自己看、不對就退回去。

另外有幾件是我自己動手的:開場那句、張飛那句、史書那句都照我改寫過,碑文的對照字是我直接在編輯器裡改的,版子是我手排的,八個群組也是我建的。

作品叫《咒泉鄉的白帝城》,副標「番外・白帝城燈影」,是《咒泉鄉的桃園三結義》的番外,跑在 Larch 這個視覺小說平台上。挑戰賽的主題是「解謎・背包・場景切換」,投稿截止是台北時間 9 月 20 日 23 點 59 分。因為是投稿作,設計文件第一節就寫著:沒玩過第一章的人,在開場兩分鐘內會拿到全部謎面。

9 月 8 日凌晨 3 點 19 分,0.1.0 發上市集。

那行字原本怎麼寫

第一版是這樣:

劇本、謎題設計、配樂挑選為人工;配音為 Larch 內建 TTS。

9 月 6 日晚上最後一輪查核把它標成 Critical,寫的是「更新說明 AI 標示不實」。當天晚上改成現在這行,改的人在 commit 訊息裡把不實的地方講明了:把卡片文案也算成人工。

故事設定、謎題結構與正典規則由作者訂定;卡片文案、程式與素材提示詞由 AI agent 依規格產出後作者審稿;配音為 Larch 內建 TTS。

新版也把配樂挑選整條拿掉了。第一章那批曲子是怎麼選的,bgm/tracks.json 的 pickedBy 欄位自己寫著:依劇情需求對照客觀特徵選出,未經試聽。

寫、抓、改這三步都是 AI 做的。我在這一輪裡的位置,是被寫多的那個人。至於改好的字有沒有真的貼進網頁那個欄位,記錄裡沒有回報,只有交辦。

標示也不只貼在發佈對話框裡。片尾字卷有一節「幕後」,捲過去的時候寫的是:

gpt-image-2|背景、立繪、CG。生成後人工去背與挑選
Lyria 3|配樂四首,剪成循環
Claude Code|卡片與流程依規格產出,逐張人工審稿

發佈對話框裡只有我按得到的東西

實作計劃最後一個任務裡,有一張寫給我的操作單:到 larch.ink 專案白板左上按「發佈作品」,然後

  1. 勾「第二屆創作者挑戰」
  2. 標示 AI 使用範圍,把 更新說明.txt 的第二、三行貼進去
  3. 第 ⑤ 區填版號 0.1.0 與更新說明,並刪掉 agent API 自己多出來的那一列

做完回報市集網址。

這三件事都不能用金鑰打完:

後面兩件都有端點,只是那兩支只認 Google 登入 cookie,帶金鑰一律 401。這兩件在第一章那條產線上撞過,寫在 版本.md 開頭當常駐警告。那條產線的其他事另外寫過:誰後送誰贏:一個開著的編輯器分頁,把 95 張卡推回 80 張。

工作紀錄裡因此記了一條:市集發佈留給作者拍板後再跑,因為發佈是對外動作,而且勾選框只有作者能點。

47 小時

從第一筆動到番外目錄 baidi/ 的 commit,到發佈,中間 47 小時 23 分,那個目錄被動了 102 筆 commit。設計文件的已知風險那一節原本排 14 天,寫的是第 8 天發第一版到市集。

發出去的那一版:

項目 數量
卡片 85 張(正篇 77、謝幕章 8)
台詞 150 句(旁白 91)
變數 16 個
會分岔的判斷點 12 個
語音輸入卡 5 張

它跑在一個全新的專案上。計劃的全域限制第一條就是這個:第一章那個 project-6e031e3a-… 一個位元都不能改。每支工具都要先過守衛,任何步驟看到 API 路徑裡出現 6e031e3a 就停。第一章那時候已經在市集上玩得到了。

同一份紀錄裡還有一條,講為什麼連 worktree 都不開,列了四個理由:工具寫死了 repo 路徑、canon/publish.py 往上一層寫公開站、Larch 的伺服器狀態沒辦法開分支、這個 repo 歷來都在 master。

老年劉備畫了三輪

劇情從 184 年跳到 223 年,中間三十九年。劉備的立繪要兩態:站著,以及右手提一盞油燈。

第一輪的提示詞只寫「髮間有白絲、眼角有淺紋」,模型整段忽略,交回來的是原本那個年輕的樣子。(多年輕,兩份記錄對不起來:art.py 的註解寫「二十幾歲」,同期的工作紀錄寫「三十出頭」。)

第二輪逐項點名,拿到了灰髮與淺紋,但讀起來只有四十五到五十五歲。兩態也彼此對不上,持燈那張比病榻那張年輕,還漏掉深色外袍。

第三輪的改法寫在 baidi/art.py 裡,兩件事:

反向的界線,第二輪的提示詞裡就有了:「仍然不是老太婆:臉不凹陷、牙齒完整、背不駝、皺紋不堆疊、不用拐杖」,還有「絕對不可以看起來像二十幾歲、三十幾歲」。設計文件開工當天的已知風險也規定要寫。第三輪只是把不可以的年齡清單往上補到四十幾歲與五十出頭。

番外的圖走 .11 那台的生圖服務,baidi/ 底下留了七份產圖記錄。

全綠也可能是佔位圖

驗收器 baidi/verify.py 不開瀏覽器,讀 API 回來的 JSON 跑帶變數狀態的路線模擬。它有一條檢查是「場景卡有背景」,跑起來全綠。

全綠是因為草稿期借了第一章的圖當佔位,而 build.py 會沿用版子上既有的背景,佔位圖就這樣黏在卡上。(沿用背景是第一章時代就有的規則,keep_bg() 的說明寫著,用意是保住作者在編輯器裡手動換過的圖。)那條檢查只看欄位有沒有值,有值就過。

檔案裡的註解記著 2026-09-06 踩過。改法是逐張比對網址:背景要跟劇本說的是同一個網址,有值不算數。

它還有一節叫「劇本鐵律」,把正典規則寫成斷言:

最後那條後來多了一個伴生規則:謝幕章不准搶終幕的關鍵句。

謝幕那一卷換了三種形狀

9 月 7 日晚上開了第二個版子,死門的終幕接一張跳章卡過去。接著一次建了十三張謝幕卡,script.py 的註解把它們收成五段流程:全暗、謝幕表、NG 花絮、燈亮六人合影、齊說謝謝。後來又加了一張「取材」卡。合影是生成的,六張參考圖一起送:中平元年的男版三人,加上老年劉備持燈與關張的戰甲立繪。

從 22 點 46 分到 23 點 47 分,這一卷換了三種形狀:先把謝幕表拆成手機看得到的小卡,再把整卷改成內嵌的滾動字卷,最後包成 Larch 插件 credits-roll 1.0.0。最後那一跳的理由另外寫過:哪一段抽成插件,哪一段留在作品裡寫死。

那一晚還有兩個坑:

NG 花絮原本三段,9 月 8 日凌晨砍成兩段。被砍的是一段關於雞的對話,script.py 的註解寫著理由:雞的梗依賴前作。章末張飛那句「下次還有雞!」同時改成「下次見!」。這跟開頭提過的設計文件第一節那句是同一個方向。

配樂也是那一晚重做的。本來沿用第一章的曲子,被我退回,理由是第一章那些太歡樂,bgm/tracks.json 番外那一節把這句記著。baidi/music.py 的檔頭把重寫的方向寫成一句:安靜、克制、不解謎不緊張、絕對不可以輕快。送進模型的提示詞也把不可以的方向寫在字面上,never cheerful, never playful 與 not tense, not adventurous 都在裡面。

正典站要先把答案藏起來

正典站是公開的,三類設定分開記:取自原文一字不改、有原文但我們改了、我們自己編的。番外寫完,第六節就是番外的設定。番外是一部解謎作品,那一節等於答案。

最後一輪查核把這件事也列進來:正典站提前公開謎底。做法是在標題掛「(未公開)」這五個字,canon/build_site.py 看到這個記號整節不出,側欄那條連結一起收掉。

只改網頁不夠。canon/publish.py 還會把 canon.md 原文照抄一份到公開 repo 給機器讀,推之前那份裡確實有那一節。網頁藏了、原文照抄上去,等於白藏。所以 publish.py 附的那一份改走同一個過濾器。

驗收用 grep。推完到公開 repo 裡查「幸好沒有人回頭」「白帝城燈影」「番外」「第三個字」「八陣圖」「廖化」,六個詞零命中。

開放 remix

發佈那一刻的 commit 動的是 meta.py,加了五行:一個 --remix 旗標,發佈的 body 帶 remixable: true。remixable 跟 title、description 同在發佈那一層,不必去動專案本體。

授權寫在 README:程式碼 MIT,劇本、角色設定與圖像 CC BY-NC 4.0。

現在玩得到的

番外在這裡:https://larch.ink/play/market/b3892584-79fc-4c2a-97a2-7394b3df149e。更新說明第一行寫的是:一扇門,三件遺物,兩個結局。主辦方建議的長度是 5 到 10 分鐘,實際玩一遍多久沒有人量過。

第一章在這裡:https://larch.ink/play/market/2375b478-10c0-4b52-8ff6-239e57162c64。正典站在 https://yazelin.github.io/larch-taoyuan-canon/。

後記(2026-09-12)

baidi/版本.md 到今天還是只有 0.1.0 一列,沒有第二次發佈的紀錄。挑戰賽 9 月 20 日 23 點 59 分截止,9 月 21 到 27 日評審與玩家互評,9 月 28 日公布。

專案本體 9 月 9 日還動過兩次。

凌晨那筆把表情差分接上去,番外多了劉備病榻的沉與驚兩張,用在三張卡。

下午那筆補了一支工具,把背包彈窗的深色金邊補回專案設定。那六個設定鍵是 agent API 塞進去的,網頁編輯器的表單沒有它們,所以在編輯器存一次檔就被抹掉。市集上那份是快照,不是即時鏡像。

正典站第六節 9 月 9 日下午開了。commit 訊息寫的理由是番外在市集上已經是 public,作者確認桃園篇與白帝城篇都告一段落、素材可公佈。原訂是等到 9 月 28 日公布成績之後,實際上提早了十九天。