SKILL.md
唯讀
名稱
korean-character-count
描述
針對自我介紹、履歷與各式表單的字數限制,以明確的字形(Grapheme Cluster)、行數及位元組(Byte)規則,確定性地精確計算韓文內文字數。
韓文內文字數統計 (한국어 글자 수 세기)
功能說明
針對自我介紹、履歷、應徵申請表或自由敘述型表單等對字數限制極為嚴格的韓文內文,不依賴 LLM 的模糊估算,而是以確定性(Deterministic)的方式精確統計。
- 基本字數:基於
Intl.Segmenter的 Unicode 擴展字形群集(Extended Grapheme Cluster) - 行數:將
CRLF、LF、CR、U+2028及U+2029均計為 1 次換行 - 基本位元組數(Byte):UTF-8 的實際編碼長度
- 相容設定檔(Profile):
neis位元組計算規則
使用時機
- 「幫我精確算一下這篇自我介紹有沒有超過 1000 字」
- 「請以 UTF-8 位元組(Byte)為標準計算這段文字」
- 「請順便提供行數與位元組數」
- 「這段混合韓文、英文和 Emoji 的句子不要用猜的,請用程式碼精確計算」
為什麼需要這項 Skill
- 字數限制往往差一個字都不行,非常敏感。
- LLM 如果只是用目測估算字數,無法保證結果可重現(Deterministic)。
- 本 Skill 不會對輸入內容進行任意的裁切(Trim)或正規化(Normalize),完全嚴格遵循文件規範的規則進行計算。
計算規則 (Contracts)
default profile
- characters(字數):
Intl.Segmenter("ko", { granularity: "grapheme" }) - bytes(位元組數):
Buffer.byteLength(text, "utf8") - lines(行數):
- 空字串 =>
0 - 非空字串 => 換行序列數量 +
1 CRLF會算作 1 次換行,而非 2 次換行
- 空字串 =>
neis profile
- characters(字數): 與
default相同 - lines(行數): 與
default相同 - bytes(位元組數):
- 韓文字形(Korean grapheme)=>
3B - ASCII 字形(ASCII grapheme)=>
1B - Enter / 換行序列 =>
2B - 其餘字元退回(Fallback)使用 UTF-8 位元組長度計算
- 韓文字形(Korean grapheme)=>
前置需求
- Node.js 18+ (
node18+) - 已安裝 Skill payload 內含
scripts/korean_character_count.js輔助指令碼 - 無需額外 API Key
工作流程
- 直接接收文字,或透過檔案 / STDIN 讀取內容。
- 執行
node scripts/korean_character_count.js進行確定性計數。 - 選擇所需的設定檔(
default/neis)與輸出格式(json/text)。 - 原樣回傳結果,並一併說明所採用的計算規則。
CLI 使用範例
node scripts/korean_character_count.js --text "가나다"
node scripts/korean_character_count.js --text $'첫 줄\r\n둘째 줄🙂'
node scripts/korean_character_count.js --text $'첫 줄\n둘째 줄🙂' --profile neis --format text
node scripts/korean_character_count.js --file ./essay.txt --profile default
cat essay.txt | node scripts/korean_character_count.js --stdin --profile neis
回覆原則
- 請勿自行估算字數,務必直接使用 Helper 的計算結果。
- 回覆時須註明使用了哪中 Profile 進行計算。
- 若未指定,預設使用
defaultProfile。 - 僅在提交對象為 NEIS(韓國教育行政資訊系統)或學校生活記錄簿等有特殊規範時,才使用
neisProfile。
完成標準
- 已同時回傳字數、行數與位元組數。
- 文件中已明確說明
default與neis計算規範的差異。 - 能成功執行
node scripts/korean_character_count.js --help。 - 已針對包含韓文、英文、空格、換行符號及 Emoji 的混合輸入完成測試。
參考資料
- Unicode grapheme clusters: https://www.unicode.org/reports/tr29/
- WHATWG Encoding Standard: https://encoding.spec.whatwg.org/
- Node
Buffer.byteLength: https://nodejs.org/api/buffer.html






