PluginBench
Skill
Pass
Audit score 90

korean-character-count

nomadamas/k-skill

Deterministic Korean text character, line, and byte counting for form limits and self-introductions.

What is korean-character-count?

Counts Korean text precisely using Unicode grapheme clusters, line breaks, and UTF-8 bytes without LLM estimation. Use this when exact character counts matter for applications, essays, or forms with strict limits.

  • Count characters using Unicode extended grapheme clusters via Intl.Segmenter
  • Count lines across CRLF, LF, CR, and Unicode line separators
  • Calculate UTF-8 byte length with standard or NEIS school-system profiles
  • Support mixed Korean, English, spaces, line breaks, and emoji without estimation

How to install korean-character-count

npx skills add https://github.com/nomadamas/k-skill --skill korean-character-count
Prerequisites
  • Node.js 18 or higher
  • Installed skill payload containing scripts/korean_character_count.js helper
Claude Code
Cursor
Windsurf
Cline

How to use korean-character-count

  1. 1.Provide text directly, from a file, or via STDIN to the script
  2. 2.Run node scripts/korean_character_count.js with --text, --file, or --stdin flag
  3. 3.Optionally specify --profile (default or neis) and --format (json or text)
  4. 4.Review the returned character, line, and byte counts with the profile used

Use cases

Good for
  • Verify self-introduction essays stay within 1000-character limits
  • Check application form text against byte-count restrictions for Korean school systems
  • Count lines and characters in multi-line form fields with mixed scripts
  • Validate UTF-8 byte compliance for NEIS (Korean school records) submissions
Who it's for
  • Korean language learners and applicants submitting forms
  • Content creators working with character-limited Korean platforms
  • Developers building Korean text validation tools
  • School administrators processing application documents

korean-character-count FAQ

What's the difference between default and neis profiles?

Both use the same character and line counting. The neis profile uses a special byte calculation: Korean graphemes = 3B, ASCII = 1B, line breaks = 2B, others fall back to UTF-8. Use neis only for Korean school system submissions.

Does this skill estimate character counts?

No. It runs deterministic code (Intl.Segmenter and Buffer.byteLength) and returns exact counts without any LLM prediction.

How are line breaks counted?

CRLF, LF, CR, U+2028, and U+2029 each count as one line break. CRLF is not counted as two breaks. Empty strings have 0 lines; non-empty strings have (line break count + 1).

Can it handle mixed Korean, English, emoji, and special characters?

Yes. It processes any Unicode text deterministically, including mixed scripts, emoji, and whitespace.

What if I need to count bytes for a specific system?

Use --profile default for standard UTF-8 byte length, or --profile neis if submitting to Korean schools or NEIS-compatible systems.

Full instructions (SKILL.md)

Source of truth, from nomadamas/k-skill.


name: korean-character-count description: Count Korean text deterministically with exact grapheme, line, and byte contracts for self-intros and form limits. license: MIT metadata: category: writing locale: ko-KR phase: v1

한국어 글자 수 세기

What this skill does

자기소개서, 지원서, 자유서술형 폼처럼 글자 수 제한이 중요한 한국어 텍스트를 대상으로 LLM 추정 없이 결정론적으로 카운트한다.

  • 기본 글자 수: Intl.Segmenter 기반 Unicode extended grapheme cluster
  • 줄 수: CRLF, LF, CR, U+2028, U+2029 를 줄바꿈 1회로 계산
  • 기본 byte 수: UTF-8 실제 인코딩 길이
  • 호환 프로필: neis byte 규칙

When to use

  • "이 자기소개서 1000자 넘는지 정확히 세줘"
  • "이 텍스트를 UTF-8 byte 기준으로 계산해줘"
  • "줄 수랑 byte 수도 같이 알려줘"
  • "한글/영문/이모지 섞인 문장을 추정 말고 코드로 세줘"

Why this skill exists

  • 글자 수 제한은 1자 차이도 민감하다.
  • LLM이 글자 수를 눈대중으로 예측하면 재현성이 없다.
  • 이 스킬은 입력을 임의로 trim/정규화하지 않고, 문서화된 계약으로만 센다.

Contracts

default profile

  • characters: Intl.Segmenter("ko", { granularity: "grapheme" })
  • bytes: Buffer.byteLength(text, "utf8")
  • lines:
    • empty string => 0
    • non-empty => 줄바꿈 시퀀스 수 + 1
    • CRLF2줄바꿈이 아니라 1줄바꿈으로 센다.

neis profile

  • characters: default 와 동일
  • lines: default 와 동일
  • bytes:
    • 한글 grapheme => 3B
    • ASCII grapheme => 1B
    • Enter/줄바꿈 시퀀스 => 2B
    • 그 외 문자는 UTF-8 byte 길이로 fallback

Prerequisites

  • node 18+
  • 설치된 skill payload 안에 scripts/korean_character_count.js helper 포함
  • 별도 API 키 없음

Workflow

  1. 텍스트를 직접 받거나 파일/STDIN으로 읽는다.
  2. node scripts/korean_character_count.js 로 결정론적 카운트를 실행한다.
  3. 필요한 프로필(default/neis)과 출력 형식(json/text)을 고른다.
  4. 결과를 그대로 반환하고, 어떤 계약으로 셌는지 함께 알려준다.

CLI examples

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

Response policy

  • 추정하지 말고 helper 결과를 그대로 쓴다.
  • 어떤 profile로 셌는지 함께 보여준다.
  • 기본값이 필요하면 default profile을 사용한다.
  • 제출처가 NEIS/학교생활기록부 같은 별도 계약을 요구할 때만 neis 를 쓴다.

Done when

  • 글자 수, 줄 수, byte 수가 함께 반환된다.
  • defaultneis 계약 차이가 문서에 명시된다.
  • node scripts/korean_character_count.js --help 가 동작한다.
  • 혼합 한국어/영문/공백/개행/emoji 입력에 대한 테스트가 있다.

Notes