Skip to content
Back to skills

Koanify

ASecurity

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".

  • 45 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 6, 2026
toolspythonbash

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned June 6, 2026

npx -y skills add tzengyuxio/skills --skill koanify --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Koanify?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Koanify
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tzengyuxio-koanify/badge)](https://www.skillsdirectory.com/skills/tzengyuxio-koanify)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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 之間零空格**

- **寫完後必跑自檢指令**(指令名留作機械驗證,不可省略):

  ```bash
  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

1. **檔案輸入**:寫入 `<原檔名>_koan.md`,保留原檔
2. **貼文輸入**:直接輸出公案
3. **不附說明、不附評論、不附「我的改寫思路」**
4. 若使用者明確要求,可額外輸出**改寫筆記**(列出 Step 3–5 的選擇),
   但**主輸出永遠是公案本身**

---

## Anti-patterns(常見失敗模式)

寫完一稿、自檢之前,先掃一眼這 10 條最容易踩的坑:

1. **過度說教**——結尾下結論、加註解。「這個故事告訴我們⋯⋯」是禪宗最大的禁忌
2. **過度堆砌文言**——像在仿《古文觀止》而非公案。白話偏雅就好
3. **留住現代專名**——「賈伯斯問老僧」會讓整篇崩潰
4. **機鋒勉強**——故意答非所問但答得不好,讀起來像強裝深奧
5. **三段結構僵化**——每則都「事起 / 對峙 / 留白」同一節奏,變成 AI 模板
6. **留白不到位**——以為刪掉解釋就是留白。真正的留白是把鏡頭轉到一個無關但
   有形的物上(芝麻落地、燭被吹熄、鞋安頭上)
7. **缺乏具身性**——只有對話沒有動作 / 沒有場景 / 沒有物件。公案是身體的事
8. **角色臉譜化**——老僧永遠慈祥、弟子永遠困惑。讓**禪師可以不慈祥**(婆子
   暴怒燒庵、俱胝斷指、南泉斬貓)
9. **結尾過度填充**——對話收束後又加多段場景描述,把餘韻填滿了。**回答完後最
   多再給一拍**(一個短句、一個物、一個畫面定格),然後停。讀者需要的是迴聲,
   不是收尾。場景描述本身也要扼要——一個動作、一個物件、一個畫面就夠,不要
   把整個情境攤開
10. **半形標點混入** — 輸出時把 `,;:?!` 打成 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 慈祥老人**——禪宗故事裡禪師會冷酷、會暴躁、會不答、
  會表演;這正是公案的張力
- **保留鋒利的細節**(物件、聲音、姿勢),不要磨平成抽象的「他若有所思」
- 清單並非窮盡一切,使用判斷力標記其他感覺不對的句子

Files in this skill

  • README.md7.6 KB
  • SKILL.md15.9 KB
  • examples/demo.md11.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.