Converts Korean HWP/HWPX documents to Markdown or JSON using kordoc, which is useful when you need to feed government forms or corporate documents into an AI workflow. It handles batch conversion, page ranges, form field extraction, and can even reverse convert Markdown back to HWPX. This is the read-only skill in a three-part set. If you need to edit HWP files directly (insert text, modify tables), route to rhwp-edit instead. If you need layout debugging or thumbnails, use rhwp-advanced. One catch: you need both kordoc and pdfjs-dist installed even if you're not touching PDFs, since the CLI loads pdfjs at startup in the current release.
npx -y skills add nomadamas/k-skill --skill hwp --agent claude-codeInstalls into .claude/skills of the current project.
kordoc으로 .hwp / .hwpx / .hwpml 문서를 AI가 읽기 좋은 Markdown 또는 JSON으로 바꾸고,
필요하면 문서 비교, 양식 필드 추출, Markdown→HWPX 역변환까지 수행한다.
이 스킬의 기본 엔진은 항상 kordoc 이다. 문서 변환, 비교, 필드 추출, 역변환까지 같은 도구로 일관되게 처리한다.
스킬 라우팅 — 이
hwp스킬은 조회/변환(read-only) 전용이다. HWP 바이너리 편집(본문 텍스트 삽입/삭제, 표 생성, 셀 수정, replace-all)은rhwp-edit스킬이, 레이아웃 디버깅·IR 덤프·썸네일·배포용 문서 잠금 해제 같은 고급 검사는rhwp-advanced스킬이 맡는다.
.docx, .xlsx, .pdf 만 다루더라도 문서 파싱 자체가 아니라 편집기 GUI 자동화가 필요한 경우rhwp-edit 스킬의 k-skill-rhwp CLI 를 사용한다.rhwp-advanced 스킬의 업스트림 rhwp CLI 를 사용한다.kordoc과 pdfjs-dist를 같은 전역/로컬 환경에 설치했거나, 둘 다 포함된 npx --yes --package kordoc --package pdfjs-dist kordoc ... 실행 환경kordoc CLI는 시작 시 pdfjs-dist를 바로 로드하므로 PDF를 안 써도 함께 설치해야 한다.hwp, .hwpx, .hwpml 파일 경로 또는 폴더/글롭 경로markdown, json, hwpxkordoc다음 작업은 모두 기본적으로 kordoc으로 처리한다.
blocks, metadata)watch)CLI만으로 부족하면 Node API를 사용한다.
parse() — Markdown + 구조화 블록compare() — 신구 문서 비교extractFormFields() — 파싱된 블록에서 양식 필드 추출markdownToHwpx() — Markdown→HWPX 역변환일회성 변환이면 둘 다 포함한 npx 형태를 바로 쓴다.
npx --yes --package kordoc --package pdfjs-dist kordoc --help
반복 실행용 전역 설치가 필요하면:
npm install -g kordoc pdfjs-dist
현재 배포된 kordoc CLI는 pdfjs-dist가 없으면 kordoc --help 단계부터 실패하므로
깨끗한 환경에서는 두 패키지를 같이 설치한 뒤 실행한다.
parse(), compare(), extractFormFields(), markdownToHwpx() 같은 ESM 예시는
전역 NODE_PATH가 아니라 로컬 프로젝트 설치 기준으로 실행한다.
mkdir -p ./kordoc-local && cd ./kordoc-local
npm init -y
npm install kordoc pdfjs-dist
이미 package.json이 있는 작업 디렉터리라면 npm install kordoc pdfjs-dist만 추가로 실행하면 된다.
npx --yes --package kordoc --package pdfjs-dist kordoc 보고서.hwp -o 보고서.md
여러 문서를 한 번에 처리하려면:
npx --yes --package kordoc --package pdfjs-dist kordoc ./문서함/* -d ./변환결과
특정 페이지 범위만 읽고 싶으면:
npx --yes --package kordoc --package pdfjs-dist kordoc 보고서.hwp --pages 1-3
npx --yes --package kordoc --package pdfjs-dist kordoc 검토서.hwpx --format json > 검토서.json
JSON 결과에서는 success, markdown, blocks, metadata를 우선 확인한다.
표나 이미지가 중요하면 blocks 안의 table, image 타입을 확인한다.
node --input-type=module - <<'EOF'
import { parse, extractFormFields } from "kordoc";
const result = await parse("신청서.hwpx");
if (!result.success) {
console.error(result.error);
process.exit(1);
}
const fields = extractFormFields(result.blocks);
console.log(JSON.stringify(fields, null, 2));
EOF
자동 변환이 계속 들어오는 폴더면 CLI의 watch 명령을 쓴다.
npx --yes --package kordoc --package pdfjs-dist kordoc watch ./문서함
node --input-type=module - <<'EOF'
import { markdownToHwpx } from "kordoc";
import { writeFileSync } from "node:fs";
const hwpx = await markdownToHwpx("# 제목\n\n본문\n\n| 항목 | 값 |\n| --- | --- |\n| 성명 | 홍길동 |");
writeFileSync("출력.hwpx", Buffer.from(hwpx));
EOF
node --input-type=module - <<'EOF'
import { compare } from "kordoc";
import { readFileSync } from "node:fs";
const before = readFileSync("이전버전.hwp");
const after = readFileSync("최신버전.hwpx");
const diff = await compare(before, after);
console.log(diff.stats);
EOF
success: true 와 blocks / metadata 존재 여부 확인extractFormFields(result.blocks) 결과가 비어 있지 않은지 확인.hwpx 파일이 열리고 기본 서식/테이블 구조가 유지되는지 확인diff.stats 에 added / removed / modified 값이 합리적인지 확인kordoc은 HWP/HWPX뿐 아니라 HWPML, PDF, XLSX, DOCX도 함께 다룬다.watch 이며, 양식 처리는 extractFormFields() 같은 Node API로 연결한다.juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills