Hwpx logo

Hwpx

Community
jkf87
hwpx

한글 HWP/HWPX 파일의 변환·읽기·편집과 편집 가능한 .hwpx 문서 생성. 한글 파일, HWP 변환, HWPX 공문·보고서·계획서·활동지, 기존 한글 양식 채우기 요청에 사용한다.

Overview

Publisherjkf87
Repositoryhwpx-skill
Skill namehwpx
Stars
288
Forks
64
Bundled files
150
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 150 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by jkf87 on GitHub. Read the source before you install it.

Installation

Install the Hwpx AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/jkf87/hwpx-skill/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/jkf87/hwpx-skill.git \
  .claude/skills/hwpx
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Hwpx in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Hwpx on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Hwpx is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

편집 가능한 고품질 한글 문서

모델은 요구 이해와 원고 구성에 집중하고, 코드는 입력 계약·자원·내용 보존·파일 저장을 검증한다. 같은 명세의 재현성과 서로 다른 모델의 결과 일관성은 별개다. 실제 모델 비교 없이 후자를 보장하지 않는다.

아스트라(Astra, gpt-6-astra)를 사용하는 Codex 환경을 지원한다. 집필·도식 설계·검토에 사용자 지정 모델과 추론 설정을 유지하며, 사용자 요청 없이 Astra로 전환하거나 추가 모델을 호출하지 않는다. Astra와 Luna 모두 같은 입력 계약·검사 경로를 사용한다.

새 문서

  1. 사용자 요청의 사실·필수 조건·미확정 사항을 정리한다. 기관명·연도·장소·문서번호 등을 추측하지 않는다.
    • 문서에 필요하지만 미정인 사실과, 요청상 생략하는 항목은 다르다. 일반 지식 보고서에 기관·작성일을 쓰지 않는다는 이유만으로 unknowns나 초안 표시를 만들지 않는다.
  2. 아래 문서 유형을 고르고 실행 가능한 예시와 스키마를 확인한다.
  3. 기본 문서는 v1 Markdown/공문 JSON을 사용한다. 사실 계약·표 도식·기관별 표현이 필요하면 v2의 의미 블록을 사용한다. 모델이 XML이나 셀 좌표를 작성할 필요는 없다.
    • 공문 키는 예시의 기관명, 수신, 제목, 발신명의, body를 그대로 사용한다. 영문 별칭을 추측하지 않는다.
    • 절차도·흐름도·추진체계도 요청은 diagram 블록과 visual-elements.md로 연결한다. 단계가 나열된 일반 데이터 표만으로 도식 요청을 충족했다고 판단하지 않는다.
  4. 명세를 파일로 저장해 한 번 빌드한다. ok, published, draft, 미수행 검사 상태를 확인한다.
  5. 완성본은 가능한 경우 실제 한컴 페이지를 렌더하고 육안 검토한다. 정적 통과, 한컴 열림, 렌더 성공, 시각 검토를 같은 것으로 취급하지 않는다.

아래 명령은 이 SKILL.md가 있는 디렉터리를 기준으로 한다. 다른 작업 디렉터리에서는 스크립트 경로를 해당 스킬의 절대 경로로 바꾼다. 특정 환경변수가 자동 설정된다고 가정하지 않는다.

text
python scripts/one_shot.py --example official-letter
python scripts/one_shot.py --example diagram
python scripts/one_shot.py --schema
python scripts/one_shot.py /absolute/path/spec.json --report /absolute/path/quality.json

명세의 상대 경로는 명세 파일 위치 기준이며, source 원고 속 그림 경로는 원고 위치 기준이다. 출력은 .hwpx여야 한다. 명세·원고·그림·출력·리포트가 충돌하면 사전에 거부한다.

유형입력과 용도
official-letterdocument 객체. 시행 공문·기안문, 붙임 안내·결재 필드
brief-reportMarkdown 또는 v2 블록. 결재선·제목 띠가 있는 요약보고
plan-reportMarkdown 또는 v2 블록. 장 배너·선택적 표지가 있는 계획·검토보고
research-plan연구학교 연구계획서 완본(28쪽, 표지·실태분석·SWOT·추진체계도 도식·실행계획 표). scripts/research_plan.py로 복제·생성
markdown범용 보고서·회의록·제안서. template 스타일 선택 가능

입력·결과 계약은 one-shot.md, v2 표 도식과 이미지 경로는 visual-elements.md를 읽는다. 예시는 가상 검증 자료이며 실제 기관 정보가 아니다.

짧은 과정 요약 + 표 흐름도를 새로 만들고 별도 양식·분기 그래프 요구가 없다면 summary-workflow.md의 선택형 콘텐츠 레시피를 우선 검토한다. 내용만 작성하면 코드가 검증된 요약 배치와 연결을 구성한다. 복잡한 관계·긴 보고서·지정 서식은 기존 v2를 사용한다. 모든 문서에 같은 단계 수나 지면을 강제하지 않는다.

원문을 축약하지 않는 상세 보고서, 코드·로그가 긴 기술 문서, 승인된 보고서를 기준으로 집필을 지도하는 요청은 source-report.md를 읽는다. 원문 보존 조립기와 선택형 technical-report 조판을 제공하며, 특정 모델·장 수·도식 수·쪽 수를 강제하지 않는다.

품질 계약과 한계

  • JSON Schema가 중첩 필드와 타입까지 검사한다. 미지원 기능이나 자원 누락은 조용히 버리지 않는다.
  • 제목뿐 아니라 순서 있는 본문·표 셀·붙임 문구와 실제 삽입 이미지의 해시를 대조한다.
  • v2 facts에는 요청에서 확인한 필수 사실을 기록한다. 원고와 산출물 양쪽에서 검사한다. 모델이 명세에서부터 누락한 사실은 이 검사만으로 알아낼 수 없다.
  • ZIP·XML·스타일/글꼴/이미지 참조와 실제 표 셀을 검사한다. 폭·글자 크기 기반 높이 추정은 시각 검토의 대체가 아니다.
  • quality.repair_layout: true는 병합되지 않은 표 행의 높이만 최대 2회 보정한다. 문구·글자 크기·관계를 바꾸지 않고, 보정 후 내용과 구조를 다시 검사한다. 기본값은 false다.
  • 파일은 검사를 통과한 후보만 최종 위치로 원자적으로 교체한다. HWPX와 리포트 두 파일이 동시에 원자적으로 저장되는 것은 아니다.
  • draft: true 결과에는 제목의 [초안] 표시와 리포트의 DRAFT 상태가 붙는다. 완성본으로 안내하지 않는다.
  • metadata_date는 패키지 날짜이며 본문의 행사일·보고일과 별개다. 생략 시 고정 메타데이터 날짜를 사용하고 그 사실을 기록한다.
  • 문체는 기관별 선택이다. v1은 기존 엄격 정책을 유지한다. v2 보고서는 기본 advisory이며 quality.writing으로 required/advisory/off를 명시할 수 있다. 파일·사실 검사는 이 선택으로 해제되지 않는다.
  • 내장 양식은 현재 경로만 사용한다. 폐기된 브라더 보고서 및 교육청 체육과 양식을 백업·과거 배포본에서 자동 복원하지 않는다. 사용자가 특정 원본을 명시적으로 제공한 편집 작업은 별개다.

실제 페이지 확인 및 Visual QA

text
python scripts/render_hwpx.py /absolute/path/output.hwpx --output-dir /absolute/path/new-empty-review-folder --expected-pages 1

독립 한컴 인스턴스에서 열고 PDF 및 PNG로 내보낸다(Poppler가 없어도 한컴 네이티브 기능으로 자동 내보냄). 모든 페이지의 제목 계층, 잘림·겹침, 연결 라벨, 표 분할, 불필요한 빈 페이지를 view_file로 직접 시각 검토(Visual QA)한다. 긴 라벨은 내용을 삭제하기보다 배치·방향·칸 크기를 조정하고 다시 검증한다.

  • 페이지 밀림/폭발 방지: 양식 원본의 빈 셀에 설정된 큰 cellSz/@height(예: 20000~30000 HWPUNIT)는 글자가 들어가면 페이지가 밀리는 주원인이다. 본문이 채워지는 셀의 높이는 1000 이하로 리셋하여 내용량에 맞게 자동 확장(auto-grow)되도록 조정한다.
  • 불필요한 빈 문단 삭제: 표 내부나 섹션의 잔여 빈 문단(<hp:p>)을 정리하고 줄간격(lineSpacing)을 130% 수준으로 조판한다.
  • 사용자가 쪽 수를 지정한 경우: --expected-pages N을 반드시 주어 실제 쪽 수가 불일치하면 즉시 실패 처리되도록 한다.

기존 파일 및 양식 처리

원본을 받으면 원본 보존 편집을 우선한다. 비대상 ZIP 엔트리·본문·그림을 보존한다.

text
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/convert_hwp_hancom.ps1 -InputPath input.hwp -OutputDirectory converted
python scripts/convert_hwp.py input.hwp -o converted.hwpx
python scripts/fill_hwpx.py analyze form.hwpx
python scripts/fill_hwpx.py fill form.hwpx filled.hwpx --values values.json
python scripts/fill_hwpx.py check filled.hwpx --strict
python scripts/research_plan.py --school "○○초등학교" --title "○○ 연구과제" -o 연구계획서.hwpx
  • HWP 변환 원칙 (중요): Windows 한컴 환경에서는 반드시 한컴 COM(convert_hwp_hancom.ps1 또는 Python win32com.client 기반 SaveAs(..., "HWPX"))을 최우선으로 사용한다. 파이썬 내장 변환기(convert_hwp.py)는 복잡한 표/글상자가 포함된 HWP 문서 변환 시 한컴오피스에서 열리지 않는 비표준 HWPX를 생성할 수 있다.
  • 텍스트 겹침 방지 (linesegarray 필수 제거): 한컴이 생성한 HWPX에는 이전 줄바꿈 좌표 캐시인 <hp:linesegarray>가 포함되어 있다. 텍스트를 교체/추가할 때 이를 제거하지 않으면 글자가 한 줄에 겹쳐서 출력되는 심각한 버그가 발생한다. 편집 후 반드시 전수 제거한다.
  • 문단 전체 치환: 문단 텍스트 교체 시 일부 run/t만 바꾸면 잔여 텍스트와 합쳐져 중복 표기되므로, 기존 run과 linesegarray를 비우고 단일 run/t를 새로 생성한다.

원샷 밖에서 생성·수정했다면 전달 전 다음 검사와 페이지 검토를 수행한다.

text
python scripts/fix_namespaces.py output.hwpx
python scripts/finalize_hwpx.py output.hwpx --strip-linesegarray --layout
python scripts/validate.py output.hwpx --layout
python scripts/fill_hwpx.py check output.hwpx --strict
python scripts/finalize_hwpx.py output.hwpx --hancom

작업별 참고

요청경로
공문 표기gonmunseo-2025-writing-rules.md
요약보고yoyak-bogo-style.md
계획·검토보고geomto-bogo-style.md
범용 보고서report-style.md
HTML 활동지html2hwpx.py, html-to-hwpx.md
복잡한 양식·표·각주·수식·직인·원본 편집advanced-workflows.md의 해당 워크플로우
레퍼런스 재현doc_spec.py, 고급 참고서 워크플로우 R
읽기·텍스트 추출text_extract.py, 고급 참고서 워크플로우 E

doc_spec.py render는 HWPX 조립이며 페이지 렌더러가 아니다. 필요한 참고서를 더 읽는 횟수를 제한하지 않는다. 일반 새 문서에는 이 메인 경로가 과거 고급 예제보다 우선한다.

결과 전달

절대 경로의 HWPX 링크, 적용한 형식, 실제 수행한 검사와 미수행 항목을 간결하게 알린다. published: false인 후보를 완성본으로 전달하지 않는다. PARTIAL은 문서 저장은 됐으나 리포트 저장 등에 실패한 상태다. 실패·초안·시각 검토 미완료를 숨기지 않는다.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

and 90 more files.

Frequently asked questions

What does the Hwpx AI skill do?

한글 HWP/HWPX 파일의 변환·읽기·편집과 편집 가능한 .hwpx 문서 생성. 한글 파일, HWP 변환, HWPX 공문·보고서·계획서·활동지, 기존 한글 양식 채우기 요청에 사용한다.

Why use Hwpx on TypingMind?

Because you install it once and use it with any model. Hwpx is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Hwpx in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/jkf87/hwpx-skill/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Hwpx?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Hwpx?

As many as you like. As long as a model supports skills, you can use Hwpx with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Hwpx AI skill free?

It is published on GitHub by jkf87. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇