Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add kangdacool/hwpx-editing-skill --skill hwpx-editinggit clone --depth 1 https://github.com/kangdacool/hwpx-editing-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kangdacool/hwpx-editing-skill/hwpx-editing)<a href="https://agentmods.dev/skills/kangdacool/hwpx-editing-skill/hwpx-editing"><img src="https://agentmods.dev/badge/skills/kangdacool/hwpx-editing-skill/hwpx-editing.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00262 | $0.03322 |
| Opus 5 | $0.00131 | $0.01661 |
| Sonnet 5 | $0.00052 | $0.00664 |
| Haiku 4.5 | $0.00026 | $0.00332 |
Grade A, and why
hwpx-editing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 168 lines — stays where its author put it; the contents beside it link to each section on GitHub.
HWPX Editing
HWPX is a zip of XML (HWPML). The traps that corrupt a file aren't obvious
from the outside, so read the relevant section of references/hwpx-guide.md
before editing, and run the scripts in scripts/ to repack and verify —
don't hand-roll the zip or eyeball correctness.
HWPX only. This handles
.hwpx(zip + XML) exclusively. A legacy.hwp(OLE binary, signatureD0CF11E0) must be converted first. The scripts detect.hwpand say so. For one file, 한글의 다른 이름으로 저장 → HWPX; for a folder,scripts/hwp_to_hwpx.py FOLDERconverts in batch (needs Windows + 한글 +pywin32), including password-protected files — see "Legacy.hwp" below. Read-only text/image extraction from.hwpdoesn't need conversion at all: use thehwp5-readingskill.
The one rule that matters most
Never re-zip an HWPX with a normal zip writer. 한글 rejects a file whose
unchanged entries were re-deflated. Use the raw-preserving repacker
(scripts/hwpxlib.py:repack_preserve): it byte-copies every entry you didn't
touch and re-deflates only what you changed, so a no-op repack is byte-identical
to the source — meaning "if the original opens in 한글, your edit opens too."
Workflow
- Inspect first.
python scripts/inspect_hwpx.py FILE.hwpx --breaks— see per-section counts (paragraphs, tables,pic,equation, fields) and, crucially, which paragraphs carry a hiddenpageBreak/columnBreak. If a heading is split from its content or a page/column is blank, hunt those breaks first (§6-A) — don't reach forkeepWithNext. Body-paragraph breaks are usually leftover cruft. - Read the matching guide section in
references/hwpx-guide.md(map below). The XML ids/refs (charPrIDRef,paraPrIDRef,borderFillIDRef, …) differ per file — always read them from the actual file, never assume. - Edit the XML with lxml, following the invariants:
- After editing or creating any paragraph, remove its
<hp:linesegarray>(cached line layout goes stale → broken spacing). After structural edits, strip linesegarray from the whole section so 한글 fully re-lays-out. Usehwpxlib.strip_linesegarray. - When you clone a node (endnote, table, equation, image), it inherits the
original's
id/instId→ duplicates → instability. Reassign fresh ids withhwpxlib.make_uid, including nestedsubList>p/tbl/tc/pids. - Reuse existing
charPr/paraPrdefinitions instead of adding new ones; if you must add, update theitemCntor 한글 rejects the file.
- After editing or creating any paragraph, remove its
- Repack with
hwpxlib.repack_preserve(src, changed, out, added):changed= edited entries (keep the XML declaration on top),added= new entries likeBinData/imageN.pngor a newsectionN.xml(also register these incontent.hpf). - Verify every build:
python scripts/verify.py EDITED.hwpx --orig ORIG.hwpx. All hard checks must pass (byte-identity self-check, well-formed XML incl.content.hpf, zero duplicate ids, IDRef/itemCnt integrity, table cell widths, no 각주/미주 nested inside another 주석, zip integrity + mimetype first/STORED). It also prints a minimal-change diff so you can confirm only intended changes are present. - Render, then look —
python scripts/audit_layout.py FILE.hwpx. Steps 1–5 all pass on defects that only a render shows: a number broken across two lines because its column got one character wider, a table footnote stranded alone on the next page, a table-of-contents number that no longer matches. Any change to a table's values, widths, or footnote length needs this step — the earlier checks cannot see layout. - Round-trip in 한글. LibreOffice can't render HWPX, so render-dependent judgments (which heading orphans, whether spacing looks right) need the user to open the file in 한글 and, for equations/TOC, run 도구→차례 새로 고침 or double-click→close to finalize. Say so.
What ships with it
15 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/hwpx-guide.md 45 KB
- scripts/audit_layout.py 8.4 KB runs code
- scripts/audit_typography.py 7.2 KB runs code
- scripts/crossref_check.py 14 KB runs code
- scripts/data_to_hwpx_table.py 6.7 KB runs code
- scripts/hwp_to_hwpx.py 17 KB runs code
- scripts/hwpx_guard.py 5.1 KB runs code
- scripts/hwpx_to_docx.py 4.9 KB runs code
- scripts/hwpx_to_markdown.py 4.6 KB runs code
- scripts/hwpxlib.py 58 KB runs code
- scripts/inspect_hwpx.py 3.3 KB runs code
- scripts/remerge_check.py 6.7 KB runs code
- scripts/selftest.py 31 KB runs code
- scripts/tables_to_xlsx.py 4.5 KB runs code
- scripts/verify.py 12 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 168 lines · 262 tokens per session scan A 2cc6221c0465
hwpx-editing is a skill published in the GitHub repository kangdacool/hwpx-editing-skill (8 stars, last pushed 7d ago), licensed MIT. It adds 262 tokens to every session and 3,322 once invoked, about $0.0013 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
ai-hwp-reader
A read-only tool for opening Korean HWP and HWPX word-processing files, or ZIP archives containing them, without Hancom Office. It converts the contents to Markdown while preserving document structure.
ai-hwp-reader
An AI skill that tells a coding agent how to read Korean HWP and HWPX word-processing files, including files inside ZIP archives. It extracts the content and then uses it to complete the user's requested task.
kordoc
A command-line and server tool for reading and creating Korean official documents, including HWP, HWPX, PDF, DOCX, and spreadsheet files. It can convert documents to Markdown and create or update HWPX files.
slides
Create and edit presentation slide decks (.pptx) with PptxGenJS, bundled layout helpers, and render/validation utilities. Use when tasks involve building a new PowerPoint deck, recreating slides from screenshots/PDFs/reference decks, modifying slide content while preserving editable output, adding…
honey-px
Read huge read-only text as PNG pages; big input cut.
lov-bp-deck
Turn an approved investor BP outline into a clean, professional slide deck with deliberate style selection, real product evidence, charts, branding, PPTX/PDF, and a full-deck preview. Use when the narrative already exists and the user wants PPT production, visual style exploration, slide regeneration, or export.…