| name | code-haiku |
| description | 把一个函数/代码片段/diff 写成一首俳句或打油诗,抓住代码的「神韵」。当用户说「给这段代码写首诗」、「code-haiku」、「把这个函数写成俳句」、「这个 diff 怎么用诗表达」时触发。 |
code-haiku — 代码俳句生成器
读懂一段代码的「意图」,把它的神韵凝成一首俳句或打油诗——有意境、有幽默、可分享。
不是注释,不是文档,是诗。
何时触发
用户说:
/code-haiku
- "给这段代码写首诗"
- "把这个函数写成俳句"
- "这个 diff 怎么用诗表达"
- "帮我写个 code haiku"
- "这段代码有点意境,帮我写首诗"
- "这个 PR 能用俳句总结吗"
工作流
第一步:读懂代码的「意图」
不逐行翻译,而是问自己:
- 这段代码在宏观上做什么?(排序?重试?缓存?认证?)
- 它的处境是什么?(防御性代码?临时方案?核心逻辑?被人遗忘的 TODO?)
- 它有没有让人会心一笑的特质?(递归的无限感、try/catch 的渡劫感、事件循环的虚无感)
如果代码太长,只抓最有「诗感」的那一层意图。
第二步:产出诗作
标准输出格式:
【俳句】
<第一行,意象>
<第二行,转折或深化>
<第三行,落脚或余韵>
【英文 haiku】(可选,若能贴切翻译则附上)
<line 1>
<line 2>
<line 3>
【诗解】
<一句话:这首诗对应代码的什么——哪个意象映射哪段逻辑>
音节指引(中文俳句):
- 三行,尽量贴近 5-7-5 音节,但意境优先于死抠音节。
- 用汉字时以「音节/字」计,不强制字数完全相同。
英文 haiku(可选):
- 只在翻译能增色时附上;若翻译失味,直接省略。
- 同样是三行,5-7-5 音节尽量贴近。
第三步:变体(应要求)
若用户说「再来一个」或「换个风格」,可提供:
- 写实风:还原代码的实际处境(比如"凌晨上线、祈祷别崩")
- 禅意风:用自然意象映射逻辑结构(递归→镜中镜、回调→深渊)
- 自嘲风:吐槽代码的技术债或命名混乱
- 史诗风:把一行工具函数写出宇宙征程的气势
示例库
示例 A:递归函数
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
【俳句】
自己召唤己
层层深入无尽处
零时方归来
【英文 haiku】
calls itself again
falling through the looking glass
zero ends the dream
【诗解】
"自己召唤己"映射递归调用自身;"零时方归来"是 n == 0 的基础条件终止递归。
示例 B:try/catch 吞掉所有异常
try {
await doSomethingRisky()
} catch (e) {
}
【俳句】
渡劫入火坑
TODO 轻描淡写
下次再说吧
【英文 haiku】
fire swallowed whole
"TODO: handle properly"
next sprint, probably
【诗解】
"渡劫"是 try/catch 的意象;"TODO 轻描淡写"直指那行注释;"下次再说吧"是每个工程师都懂的技术债自嘲。
示例 C:TODO 堆积的文件
def process_data(data):
return data
【俳句】
满纸皆 TODO
占位符孤守深夜
测试从未来
【英文 haiku】
todos fill the page
placeholder guards the void
tests remain unborn
【诗解】
"满纸皆 TODO"直点注释现状;"占位符孤守深夜"对应那行 return data # placeholder;"测试从未来"是 # TODO: write tests 的永恒未竟。
风格气质指引
| 代码气质 | 推荐意象/风格 |
|---|
| 递归 | 无限镜像、自我召唤、层层嵌套的深渊 |
| 回调地狱 | 俄罗斯套娃、深渊、无法回头的坠落 |
| try/catch | 渡劫、护身符、轻描淡写的危机 |
| TODO 堆积 | 时间胶囊、未竟之志、乐观的谎言 |
| 事件循环 | 永动机、虚无轮转、等待中的存在 |
| 单行工具函数 | 一言定乾坤、禅宗公案、简洁即道 |
| 复杂 SQL | 宫廷密谋、多方连横、条件重重 |
| diff 删除大量代码 | 大雪无痕、断舍离、轻装上阵 |
| 加锁/并发 | 守门人、各让一步、等待的艺术 |
硬规则
- 抓意图,不堆术语:不要把变量名、函数名直接塞进诗里当凑数;诗写的是代码「做什么」,不是代码「长什么样」。
- 别把诗写成注释:诗不是文档,不用解释参数类型或返回值;只写神韵和情感。
- 不臆造代码没有的逻辑:看到什么写什么,没有的意图不要编造。
- 一次一首:默认只输出一首,附诗解;用户要求变体时才多写。
- 可调侃,不刻薄:吐槽技术债是幽默,但不要让诗变成人身攻击或嘲笑代码作者。
- 代码片段保持英文:诗本身用中文,示例代码片段原样保留。
边界
- 纯 Claude 驱动,无需 bin/ 脚本。
- 适用所有语言的代码片段、函数、类、diff、commit message。
- 代码过长时(> 100 行),只读最核心的意图层,不逐行分析。
- 不生成图片,只产出文字诗作。
- 不评价代码质量好坏;诗是艺术,不是 code review。