关于 pangu
pangu 是处理中日韩文字与 ASCII 混排间距的文本编辑技能。它按规则调整自然语言,同时保留代码、URL、路径、引文等字面内容。
主要功能
- 01中日韩文字与 ASCII 间距
- 02标点和运算符间距
- 03保留字面内容
- 04遵循 Markdown 编辑规则
适用场景
- 01整理中英文混排文字
- 02编辑 Markdown 且不改代码
- 03调整标题和链接标签
- 04编辑说明时保留日志
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ shihyuho/ pangu.skill --skill pangu安装后在 Claude Code 中输入/pangu确认已加载。
附带文件agents/openai.yaml
详细介绍
pangu
偏执式文本间距(盤古之白)
首先明确范围
- 遵循用户要求的格式和编辑范围。为任务中创建或修改的正文添加空格;仅当任务要求处理整篇文档时,才格式化整篇文档。其他无关文本保持原样。
- 逐字节保留字面内容:代码、行内代码、围栏或缩进代码块、精确引文、命令输出和日志,即使它们位于代码片段之外也一样。只有用户的任务明确要求时,才修改字面内容。
- 为自然语言文本添加空格,包括标题、链接标签和代码注释。保留 Markdown 标记、链接目标及其他结构语法,以及 URL、路径、电子邮件地址、版本号和复合标识符内部的内容。标记中的汉字仍属于该标记。
- 交付请求的内容时,确保已添加空格。
例如,为 Markdown 链接的可见标签添加空格,同时保持其 URL 完全不变。为便于搜索而引用日志时,保留日志原文,只为你自己的说明添加空格。这些边界优先于下文的文本规则。
文本规则
当中日韩字符与 ASCII 字母或数字,或下列扩展范围中的字符直接相邻时,插入一个半角空格。标点和运算符按下方的符号规则处理。中日韩字符包括汉字、日文假名和注音符号,也包括用于韩语的汉字。韩文不属于此定义:한국어test 保持不变。
全角标点(,。!?「」)周围无需添加空格。
对于空格处理,不含中日韩字符且空格已正确的文本保持不变。
當你凝視著bug,bug也凝視著你 → 當你凝視著 bug,bug 也凝視著你
與PM戰鬥的人 → 與 PM 戰鬥的人
這是2025年的事 → 這是 2025 年的事
扩展字符
对以下精确的 Unicode 码位范围应用中日韩边界空格规则,但下方列出的附加后缀除外:
- NBSP 之后的 Latin-1 Supplement:U+00A1–U+00FF。
- Greek and Coptic:U+0370–U+03FF。
- Letterlike Symbols:U+2100–U+214F。
- Number Forms:U+2150–U+218F。
- Dingbats:U+2700–U+27BF。
仅在中日韩字符直接相邻时添加空格,保持相邻的非中日韩字符连在一起(例如 ±5)。后缀 ® ⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁱ ⁿ ⁺ ⁻ ⁼ ⁾ ℠ ™ 保持与前面的文本相连;如果后面紧跟中日韩字符,则插入空格。上标左括号 ⁽ 不属于此集合。对包含中日韩字符的文本,还要在 © 与其后紧跟的数字之间插入空格。
其他非 ASCII 字符保持原有间距,除非适用其他文本规则:★ 不在这些范围内。·(U+00B7)属于 Latin-1 范围,但下方的间隔号规则会优先将单独且紧贴的 · 转换为 ・。保留组合标记和变体选择符的原样;若标记位于符合条件的字符与中日韩字符之间,则会中断这一直接边界。
狀態✓完成 → 狀態 ✓ 完成
版本β測試 → 版本 β 測試
溫度±5度 → 溫度 ±5 度
章節Ⅻ內容 → 章節 Ⅻ 內容
符號★測試 → 符號★測試
結果é完成 → 結果 é 完成
溫度℃變化 → 溫度 ℃ 變化
編號№123項 → 編號 №123 項
符號⅏測試 → 符號 ⅏ 測試
面積m²大小 → 面積 m² 大小
中文⁺註記 → 中文⁺ 註記
商標™產品 → 商標™ 產品
品牌®商品 → 品牌® 商品
©2026版權 → © 2026 版權
运算符和分隔符
- * = ^ < > \:在中文与半角字符之间加空格,半角词保持完整。 紧邻中文之前时,也在- * = &与前面的) ] }之间加空格; 紧邻中文之后时,在它们与后面的( [ {之间加空格;但*[例外,它会打开*[0-9].log这样的 glob。在连字符紧邻中文的行中,位于) ] }和( [ {之间的连字符也作为分隔符。位于中文和数字之间的连字符作为分隔符;已经与负数间隔的 符号仍与负数保持相连。_:在任何上下文中都保持相连。|:如果有一个竖线紧邻中文,则为该行的每个竖线加空格;否则 保留半角形式的A|B。/:保持中文/English和A/B这样的连接文本完整,并保留 现有空格。识别出的文件路径仍需在其外侧中文边界处加空格,详见“完整词元”。&:保持半角连接符(R&D)完整;在中文边界处加空格。+:保持符号和后缀在+886、100+和A+中相连,并先为其外侧的中文边界 加空格。如果加号仍紧邻中文,则该行其余紧凑的单个加号都作为分隔符,包括 半角词之间的加号。双加号(C++)和名称后缀(如Disney+、Apple TV+、mo 店+、公視+、AA+和AB+)保持相连,但仍会启用该行的其他分隔符规则。 如果没有加号紧邻中文,则保留A+B。已有空格相邻的加号保留其间距,但直接位于中文边界处时除外。 常见全角标点在加号的一侧保持紧凑;在) ] }之后以及(「『【《之前, 仅在加号前插入空格。
前面+後面 → 前面 + 後面
Switch+健身環 → Switch + 健身環
前+A+B → 前 + A + B
前 A+B 後 → 前 A+B 後
前+A+「方案」 → 前 + A+「方案」
(中文)+「方案」 → (中文) +「方案」
有100+的選擇 → 有 100+ 的選擇
Disney+的節目 → Disney+ 的節目
Disney+的節目 A+B → Disney+ 的節目 A + B
mo店+免運無限次 → mo 店+ 免運無限次
mo 店+ 免運無限次 → mo 店+ 免運無限次
C++的程式 A+B → C++ 的程式 A + B
A+的等級 A+B → A+ 的等級 A+B
得到一個A-B的結果 → 得到一個 A-B 的結果
得到一個A*B的結果 → 得到一個 A*B 的結果
比較A<B和A>B的結果 → 比較 A<B 和 A>B 的結果
比較A=B與A^B的結果 → 比較 A=B 與 A^B 的結果
前面\後面 → 前面 \ 後面
前面~=後面 → 前面 ~= 後面
(中文)-下一步 → (中文) - 下一步
[中文]*下一步 → [中文] * 下一步
{中文}=下一步 → {中文} = 下一步
(中文)&下一步 → (中文) & 下一步
中文=(東西) → 中文 = (東西)
中文-[東西] → 中文 - [東西]
刪除*[0-9].log檔 → 刪除 *[0-9].log 檔
中文-中文[A]-(中文) → 中文 - 中文 [A] - (中文)
中文[A]-(中文) → 中文 [A]-(中文)
中文-123度 → 中文 - 123 度
氣溫 -5°C → 氣溫 -5°C
前_後 → 前_後
Mollie_陳上進 → Mollie_陳上進
前|A|B → 前 | A | B
前 A|B 後 → 前 A|B 後
得到一個A/B的結果 → 得到一個 A/B 的結果
前面/後面 → 前面/後面
前面 / 後面 → 前面 / 後面
陳上進/貓咪/Mollie → 陳上進/貓咪/Mollie
得到一個R&D的部門 → 得到一個 R&D 的部門
陳上進&Mollie → 陳上進 & Mollie
标点、引号和相连词元
- 在含中文的行中,
.、,、:、;、!、?、~后面若跟着 中文、字母或数字,则在其后加空格。保留其半角形式、文件扩展名和版本号。記住:(東西)中 紧邻括号的冒号例外:将其转换为全角。 "、'、反引号以及( ) [ ] { } < >:在外侧与中文之间加空格, 内侧边缘保持紧凑。所有格's保持相连。- 保持
@user、#tag、C#、$100和95%完整。 - 如果单个间隔号
· • ‧的两侧都没有空格、不换行空格或其他间隔号,则将其转换为・。 按原样保留带空格的间隔号和连续间隔号;由于·属于 Latin-1 字符, 它紧邻中文时仍需加空格。
前面,後面 → 前面, 後面
電話:123456789 → 電話: 123456789
前面?後面 → 前面? 後面
前面…後面 → 前面… 後面
記住:(東西) → 記住:(東西)
前面(中文123漢字)後面 → 前面 (中文 123 漢字) 後面
前面"中文123漢字"後面 → 前面 "中文 123 漢字" 後面
我看过的电影(1404) → 我看过的电影 (1404)
function(123) → function(123)
陳上進 likes 林依諾's status. → 陳上進 likes 林依諾's status.
請@vinta吃大便 → 請 @vinta 吃大便
前面#H2G2後面 → 前面 #H2G2 後面
前面C#後面 → 前面 C# 後面
前面$100後面 → 前面 $100 後面
新八的構造成分有95%是眼鏡 → 新八的構造成分有 95% 是眼鏡
喬治·R·R·馬丁 → 喬治・R・R・馬丁
喬治 · 馬丁 → 喬治 · 馬丁
喬治 ·馬丁 → 喬治 · 馬丁
卡號••••1234 → 卡號••••1234
卡號····1234 → 卡號 ····1234
完整词元
在词元与周围正文之间加空格,同时保留词元内部内容。连续不间断的
http:// 或 https:// URL 包含其右侧的中文;保持整个 URL 完整,并在其协议前的中文
之后加空格。显式空格或全角标点会将后续正文与 URL 分隔开。
OpenAI的gpt-4o模型 → OpenAI 的 gpt-4o 模型
Anthropic的claude-4-opus模型 → Anthropic 的 claude-4-opus 模型
OpenAI的GPT-5模型 → OpenAI 的 GPT-5 模型
state-of-the-art → state-of-the-art
pangu.js v1.2.3橫空出世 → pangu.js v1.2.3 橫空出世
這是C++跟C#的差別 → 這是 C++ 跟 C# 的差別
得到一個A+的結果 → 得到一個 A+ 的結果
檢查src/main.py文件 → 檢查 src/main.py 文件
在/home目錄 → 在 /home 目錄
檔案在C:\Users\name\ → 檔案在 C:\Users\name\
請看https://example.com/path頁面 → 請看 https://example.com/path頁面
請看https://example.com/path 頁面 → 請看 https://example.com/path 頁面
參考https://example.com/中文API?q=中文#用法,謝謝 → 參考 https://example.com/中文API?q=中文#用法,謝謝
文本规则示例已通过 pangu 10.4.1 验证;正文适用范围需依据上述说明进行判断。