| name | koanify |
| description | Transform any article into a narrative-style Zen koan (敘事故事型禪宗公案) in the 白隱「是這樣嗎?」 tradition — Traditional Chinese, white-vernacular with light classical particles, 100–400 characters, no commentary appended. This is the narrative-story type, NOT the short Q&A koan (機鋒問答型 趙州狗子). Primarily user-invoked via "/koanify"; also triggers on explicit phrases like "改寫成公案", "做一則公案", "rewrite as a Zen koan".
|
| license | PolyForm Noncommercial 1.0.0 |
| argument-hint | [file-path] |
| allowed-tools | Read, Write, Edit, Glob |
Koanify — 改寫成敘事禪宗公案
把任何文章改寫成「敘事故事型禪宗公案」——讀完讓人停一下、不知道要說什麼,
但又像被輕輕點了一下。
風格參照:白隱禪師「是這樣嗎?」(Reps & Senzaki 101 Zen Stories #3)、
《五燈會元》卷六「婆子燒庵」、《無門關》第 14 則「南泉斬貓」、
《景德傳燈錄》「香嚴擊竹」。
一句話靈魂
留白八式擇一,結尾戛然而止——若收尾不是 Step 5 八式之一,就不是敘事
公案。其餘 20 條 checklist 都在服務這一條。
Arguments
$0 —(選填)Markdown 或純文字檔案路徑。若省略,請使用者提供內文,
或從對話上下文中找最近編輯的檔案。
Step 1: Load the Text
- 若提供
$0,讀取該檔案。
- 若無引數,找對話中最近撰寫或編輯的 Markdown 檔,或請使用者提供文字。
- 若原文不是繁體中文,先在心中譯為繁體中文(不必輸出),再做改寫。
Step 2: Read Source and Extract One Tension
公案不是把原文壓縮,而是抽出一個核心張力,重新講一個故事。
讀完原文後,用一句話自答:
這篇文章的「問」是什麼?它的「應」在哪裡?
可能的張力來源:得失、名實、求道、家庭、生死、慈悲、執著、無常、時與機、
對與錯。原文若是議論文 / 學術論文 / 新聞,先抽出核心張力,再為它設計一
個故事場景——不要把論點直接「翻譯」成古文對話。
若原文太長(超過 1500 字),只取一個主題改寫,不要硬塞所有內容。
Step 3: Decide Modern → Eternal Theme Mapping
若原文涉及現代生活(科技、職場、政治、消費),把主題抽象化為前現代
等價物:
| 現代主題 | 前現代等價 |
|---|
| 網路成癮 / 滑手機 | 對名相的執著、流連市集 |
| 職場霸凌 | 眾僧逼問一僧 |
| 加班趕工 | 工匠趕工雕像 / 抄寫者趕經 |
| 演算法推薦 | 卜筮、術士的指引 |
| 氣候變遷 | 山川之變 / 旱澇之異 |
| 通訊科技 | 信差、烽火、書簡 |
例外:若使用者明確要求保留某一個關鍵現代詞作為刻意的時代錯位,可以
保留 1–2 個(這是 V-04 的 Soft 規則)。
Step 4: Choose Character Configuration
從六種配置中挑一種。預設避開「師-徒」——師徒問答太過套路,容易
寫得像教學設計而非公案。
| 配置 | 張力來源 | 範例 |
|---|
| 師-徒 | 悟與未悟的階差 | 龍潭德山、潙山香嚴 |
| 僧-僧 | 同行間的勘驗 | 趙州勘賣茶婆子(僧-俗婦) |
| 僧-俗(婦人) | 道學 vs 慈悲 | 婆子燒庵 |
| 僧-動物 | 萬物與佛性 | 百丈野狐 |
| 僧-自然 / 物 | 物理事件做悟的隱喻 | 香嚴擊竹、龍潭吹燭 |
| 僧-親人 | 血親揭穿表演性 | 鄧隱峰妹妹一推 |
角色取無名(「一位老婦人」「一個樵夫」「山中的僧人」)優於虛構姓名
(「方禪師」「李道人」)。歷史名(白隱、趙州、南泉)只能用於明確的歷史
公案改寫,不可用在原創。
Step 5: Choose Closure (留白八式)
從以下八式中選一個主要手法 + 最多一個輔助手法。在筆記裡明確寫下:
「主留白 = X,輔留白 = Y。」後續寫作必須圍繞它設計收尾。
| 編號 | 名稱 | 機制 | 公案範例 |
|---|
| 1 | 重複句 | 同一句話首尾呼應 | 是這樣嗎?(白隱) |
| 2 | 無聲動作 | 身體姿勢取代語言 | 趙州脫履安頭(南泉斬貓) |
| 3 | 答非所問 | 字面與問題完全錯位 | 庭前柏樹子、麻三斤 |
| 4 | 棒喝 | 突發動作中止對話 | 俱胝斷指、德山棒 |
| 5 | 笑 | 不是嘲諷,是了然 | 拈花微笑 |
| 6 | 走 | 主角離場、不解釋 | 趙州「便去」 |
| 7 | 場景轉移 | 鏡頭從人切到物/自然 | 香嚴擊竹後「動容揚古路」 |
| 8 | 第三方裁決 | 旁人(婆子、童子)下判 | 婆子燒庵、鄧隱峰妹妹推之 |
Step 6: First Draft
寫一稿。原則:
- 語感:白話偏雅——可有少數虛詞(曰/云/乃/遂/既而/嘗),但不通篇文言
- 句長:多數單句 ≤20 字
- 對話 ≤ 50%、敘述 ≥ 50%
- 篇幅:原文短(< 200 字)就寫 100–200 字;原文中(200–800)寫 200–300 字;原文長(800+)取單一主題寫 250–400 字
- 場景描述要扼要——一個動作、一個物件、一個畫面就夠;不要把整個情境攤開
- 結尾戛然而止:留白手法的核心一拍打完就立刻收筆。回答完後不要繼續描述、不要補充感受、不要再給場景——讓那個句子自己留下迴聲
Step 7: Self-check Against Checklist
逐條對照下面的 21 條 checklist。任一條 [Hard] 違反就回 Step 6 重寫該段。
[Soft] 違反需有理由(寫在筆記裡),否則一併修。
Checklist: Content(內容主題)
| 編號 | 強度 | 規則 |
|---|
| C-01 | Hard | 保留原文核心張力——不可改變原文想傳達的核心要點。可換場景、可換角色,但「問」與「應」要對得上原文 |
| C-02 | Hard | 不出現現代專名(品牌、產品、政治人物、現代地名、科技詞彙)。例外:用功能性指代替換(「一個來自東方的商人」) |
| C-03 | Hard | 不出現現代生活物件(手機、汽車、電腦、咖啡店)。可用前現代等價物替換(鏡子、馬車、書房、茶坊) |
| C-04 | Soft | 角色配置多樣化:不每篇都用「老和尚 + 弟子」。優先嘗試僧-俗(婦人)、僧-自然、僧-親人 |
| C-05 | Soft | 永恆主題(生死、家庭、得失、名聲、慈悲、求道)優先於時代性主題(經濟、政治、科技)。原文若是時代性,在 Step 3 已抽象化為永恆主題 |
Checklist: Structure(結構)
| 編號 | 強度 | 規則 |
|---|
| S-01 | Hard | 篇幅 100–400 字(白話中文,計入標點)。低於 80 字會落入機鋒型,超過 500 字會偏散文化。原文較短時靠下限,原文較長時靠中位——別為了湊字數而稀釋節奏 |
| S-02 | Hard | 敘述比 ≥ 50%,對話比 ≤ 50%。重點在「發生了什麼」,不在「誰說了什麼」 |
| S-03 | Hard | 必須使用 Step 5 留白八式之一,且不超過兩式 |
| S-04 | Soft | 結構避免機械三段式。可用雙段式、三疊式、時間跳躍式、倒裝式中任一,或在三段式中刻意打破節奏(段落字數不對稱) |
| S-05 | Hard | 結尾不下結論。禁用「這告訴我們⋯⋯」「於是 X 明白了⋯⋯」「從此 X 知道⋯⋯」「終於領悟⋯⋯」這類訓誨句 |
| S-06 | Soft | 每則最多 1–2 處譬喻,且須在情緒高點才使用 |
Checklist: Voice(語言風格)
| 編號 | 強度 | 規則 |
|---|
| V-01 | Hard | 白話偏雅:可有「云/曰/乃/遂/既而」等少數虛詞,但不過度文言化 |
| V-02 | Hard | 禁用心理描述:不寫「他感到困惑」「她很憤怒」「他突然明白」。情緒只能由動作或對話表現 |
| V-03 | Soft | 多用具體名詞(竹、燭、鞋、貓、餅、井、石),少用抽象名詞(「真理」「智慧」「本性」) |
| V-04 | Soft | 句子簡短,平均句長 12–20 字。長複句是現代散文的特徵,不是公案的 |
| V-05 | Hard | 不使用第一人稱「我」做敘述者(可在對話中出現)。敘事者保持隱形 |
Checklist: Meta(後設)
| 編號 | 強度 | 規則 |
|---|
| M-01 | Hard | 不附評論段、不附作者按、不附 Mumon 式評唱——除非使用者明確要求加評唱(此時應另外標示為「拈古」或「頌古」段落) |
| M-02 | Hard | 禁止把所有長者/權威角色寫成慈眉善目化解一切的調停人。檢查方式:故事裡的禪師/老者/權威至少一位必須未化解、未開示、未安慰——可以冷酷、可以殘忍、可以表演、可以沉默、可以下錯判斷。原文若有衝突、暴力、不公,這條尤其不能違反 |
| M-03 | Soft | 角色取無名(「一個老婆婆」「一位旅僧」)優於取虛構名(「方禪師」「李道人」) |
| M-04 | Soft | 三人稱限知(只跟著主角的視角)優於全知敘事 |
| M-05 | Hard | 若原文是議論文 / 抒情文 / 學術文:必須先抽出核心張力,再設計一個故事場景承載這個張力——不要把論點直接「翻譯」成古文對話 |
| M-06 | Hard | 全形標點零違規——CJK 字之間的 ASCII 半形 , ; : ? ! 計數須為 0;破折號用兩個全形「——」;引號用「」/『』;以 Step 9 自檢指令驗證通過才算合格 |
總計:22 條(Hard 14 + Soft 8)。
Step 8: Find the Weakest Paragraph and Rewrite
通常結尾是最弱的(容易說教、容易補解釋)。
- 若結尾必須刪掉某句才更好,就刪掉
- 「能少一句就少一句」是公案的鐵律
- 若中段拖泥帶水,刪到節奏緊起來為止
Step 9: 標點清理
最後一道工序:
-
全形標點(鐵律):CJK 文本中所有標點一律全形。ASCII 半形 , ; : ? ! 在 CJK 字之間出現一律是 bug,必須換成全形 ,;:?!。對照表:
| 半形(禁) | 全形(用) | Unicode |
|---|
, | , | U+FF0C |
; | ; | U+FF1B |
: | : | U+FF1A |
? | ? | U+FF1F |
! | ! | U+FF01 |
( ) | ( ) | U+FF08 / U+FF09 |
-
破折號用兩個全形「—」連寫成「——」,不寫成 -- 也不寫成單個「—」
-
引號用「」與『』,不用 " '
-
句號用「。」,不用 .
-
全形標點與 CJK 之間零空格
-
寫完後必跑自檢指令(指令名留作機械驗證,不可省略):
python3 -c "
import re, sys
text = open(sys.argv[1]).read()
bad = re.findall(r'[^\x00-\x7f][,;:?!][^\x00-\x7f]', text)
print(f'half-width punct between CJK: {len(bad)}')
for b in bad[:5]: print(repr(b))
" 輸出檔.md
結果必須為 0。非 0 表示輸出時混入了 ASCII 半形,回到輸出檔逐字替換後重跑,直到歸零才算交付。
Step 10: Output
- 檔案輸入:寫入
<原檔名>_koan.md,保留原檔
- 貼文輸入:直接輸出公案
- 不附說明、不附評論、不附「我的改寫思路」
- 若使用者明確要求,可額外輸出改寫筆記(列出 Step 3–5 的選擇),
但主輸出永遠是公案本身
Anti-patterns(常見失敗模式)
寫完一稿、自檢之前,先掃一眼這 10 條最容易踩的坑:
- 過度說教——結尾下結論、加註解。「這個故事告訴我們⋯⋯」是禪宗最大的禁忌
- 過度堆砌文言——像在仿《古文觀止》而非公案。白話偏雅就好
- 留住現代專名——「賈伯斯問老僧」會讓整篇崩潰
- 機鋒勉強——故意答非所問但答得不好,讀起來像強裝深奧
- 三段結構僵化——每則都「事起 / 對峙 / 留白」同一節奏,變成 AI 模板
- 留白不到位——以為刪掉解釋就是留白。真正的留白是把鏡頭轉到一個無關但
有形的物上(芝麻落地、燭被吹熄、鞋安頭上)
- 缺乏具身性——只有對話沒有動作 / 沒有場景 / 沒有物件。公案是身體的事
- 角色臉譜化——老僧永遠慈祥、弟子永遠困惑。讓禪師可以不慈祥(婆子
暴怒燒庵、俱胝斷指、南泉斬貓)
- 結尾過度填充——對話收束後又加多段場景描述,把餘韻填滿了。回答完後最
多再給一拍(一個短句、一個物、一個畫面定格),然後停。讀者需要的是迴聲,
不是收尾。場景描述本身也要扼要——一個動作、一個物件、一個畫面就夠,不要
把整個情境攤開
- 半形標點混入 — 輸出時把
,;:?! 打成 ASCII 半形而非全形 ,;:?!。
常見原因是 IME 切換失誤或從英文 prompt 複製字串。寫完務必跑 Step 9 自檢
指令,計數歸零才算交付(違反 M-06)
Core Example: 木匠雕神像
源文(現代軼事):一名工程師接到三日交專案的死線,連夜加班寫出醜陋程式
碼,事後重構,最後產品被取消。下方為改寫成功的版本,讀進去能感受到 21
條 checklist 在做什麼。
山下村中,有個年輕木匠,受託在三日內為祠堂雕一尊神像。
他在燈下日夜不寐,刀痕急亂。第三日交出時,木屑滿地,神像的眉眼處有刀偏的一道。村人接過,眾目相視。
木匠回到工坊,把神像借回,夜夜重雕,半月而成。再送至祠堂時,廟祝接過,放在桌上,看了一眼,只說:「祠堂前日已拆。」
木匠抱著神像,沿原路走回村口。路邊一個老婦人正在曬芝麻,抬頭看了他一眼。
木匠在路邊坐下,把神像放在身旁。
風吹過,芝麻一粒一粒落到地上。
達標清單
- C-02 ✓:無現代專名(木匠、祠堂、神像皆前現代)
- C-04 ✓:出現「老婦人」配置(僧-俗變體:工匠 - 村人 - 老婦人)
- C-05 ✓:時代主題(加班 / 趕工)抽象成永恆主題(急於求成 / 名譽 / 失落)
- S-01 ✓:約 220 字
- S-02 ✓:敘述為主(對話只有「祠堂前日已拆」一句)
- S-03 ✓:主留白 = 場景轉移(從工坊轉到路邊曬芝麻);輔留白 = 無聲
動作(老婦人看了一眼、木匠坐下、芝麻一粒一粒落)
- S-04 ✓:「努力 - 重做 - 落空 - 路邊」四段不對稱結構,非機械三段
- S-05 ✓:結尾沒有結論——「風吹過,芝麻一粒一粒落到地上」是純粹場景
- V-02 ✓:無心理描述(沒寫「他感到絕望」)
- V-05 ✓:無第一人稱
- M-01 ✓:無評論段
- M-02 ✓:老婦人不安慰、不開示——只是看了他一眼(反慈祥)
對照結論:好的敘事公案不是把訓誨包在故事外殼裡,而是讓事件本身承擔
語言無法承擔的東西——「芝麻一粒一粒落到地上」沒有意義,但讀完整篇,你
會知道。
Scope Boundary
| 想做的事 | 用哪個 skill |
|---|
| 把文章改寫為敘事公案(本 skill 目標) | koanify |
| 去除 AI 文風 / 降低 AI 感 | humanize |
| 去除翻譯腔 / 去歐化 | dewesternise |
| 改寫為文言文(無公案體裁) | wenyan-guwen / wenyan-hanwei 等 |
| 改寫為民國公文體 | roc-bureaucratese-classic |
| 寫機鋒問答型公案(趙州狗子體) | (尚未製作;本 skill 不適用) |
| 把公案還原為現代敘事(逆操作) | (尚未製作) |
如果使用者要的是短促兩三句的機鋒型公案(「狗子有佛性也無?」「無!」),
告訴使用者本 skill 是敘事型,問是否仍要用本 skill 改寫(會產出 150–400
字的故事,而非機鋒短答)。
Important Notes
- 本 skill 是體裁轉換工具,不是內容生成器。原文的核心張力必須被保留,
只是用敘事公案的形式重新承載
- 不要增加原文沒有的核心命題或議題
- 不要把禪師寫成 AI 慈祥老人——禪宗故事裡禪師會冷酷、會暴躁、會不答、
會表演;這正是公案的張力
- 保留鋒利的細節(物件、聲音、姿勢),不要磨平成抽象的「他若有所思」
- 清單並非窮盡一切,使用判斷力標記其他感覺不對的句子