oma-hwp について
oma-hwpは、韓国語のHWP、HWPX、HWPML文書をMarkdownまたは構造化JSONに変換するスキルです。kordocで見出しや表などの構造を取り出し、RAG向けのチャンクも生成できます。
主な機能
- 01HWP、HWPX、HWPMLの変換
- 02Markdownまたは構造化JSONの出力
- 03見出し、表、リストの抽出
- 04RAG向け構造チャンクの生成
- 05Markdown表と特殊文字の整形
活用シーン
- 01韓国語文書のMarkdown変換
- 02政府文書のLLM・RAG向け準備
- 03後続処理に向けた表や見出しの抽出
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ first-fluke/ oh-my-agent --skill oma-hwpインストール後、Claude Code で/oma-hwpを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
config/hwp-config.yamlresources/balanced-tables.tsexecution-protocol.mdflatten-tables.tspackage.jsontroubleshooting.mdtsconfig.jsonturndown-plugin-gfm.d.ts詳細
HWP スキル - HWP / HWPX / HWPML から Markdown への変換
スケジューリング
目標
韓国語の HWP 系ドキュメントを、LLM のコンテキスト、RAG、政府文書のレビュー、または企業でのドキュメント処理に向けて、文書構造を保持しながら読みやすい Markdown または構造化 JSON に変換します。
インテントのシグネチャ
- ユーザーが
.hwp、.hwpx、.hwpmlの変換、解析、読み取り、抽出、または変形を依頼している。 - ユーザーが韓国語ワープロファイル、ハングル文書、政府書式、または「한글 파일」に言及している。
- ユーザーが HWP 系ファイルから見出し、表、入れ子の表、リスト、画像、脚注、またはハイパーリンクを抽出する必要がある。
使用する場合
- 韓国語の HWP ドキュメント(
.hwp、.hwpx、.hwpml)を Markdown に変換する場合 - 韓国語の政府・企業ドキュメントを LLM のコンテキストまたは RAG 用に準備する場合
- HWP から構造化コンテンツ(表、見出し、リスト、画像)を抽出する場合
- ユーザーが「この HWP を変換して」「hwpx を解析して」「HWP を markdown に」「한글 파일」と依頼した場合
使用しない場合
- PDF ファイル ->
oma-pdf(OCR + Tagged PDF に特化)を使用します - XLSX / DOCX ファイル -> 対象外です。必要に応じて
bunx kordocを直接実行してください(注:oma-docsはドキュメントのドリフトを扱うスキルであり、コンバーターではありません) - HWP ドキュメントの生成または編集 -> 対象外です(kordoc 自体は
generate/fill/seal/patch/redact/lint/validate/renderサブコマンドをサポートしています。必要に応じてbunx kordoc@latest <subcommand>を直接実行してください) - すでにテキスト形式のファイル -> Read ツールを直接使用します
想定される入力
input_path:.hwp、.hwpx、または.hwpmlファイルのパスoutput_pathまたはoutput_dir:任意の明示的な出力先format:任意の出力形式 —markdown(デフォルト)、json(構造化 AST)、またはchunks(見出しのパンくずリストと独立した表チャンクを含む、RAG 向け構造化チャンク JSON)page_range:任意のページまたはセクション範囲kordoc_version:任意の固定 kordoc バージョン
想定される出力
- 入力ファイルと同じ場所、または指定されたディレクトリに出力される Markdown
- 要求された場合の任意の JSON または RAG チャンク出力
- デフォルトで GFM の表を平坦化し、私用領域のグリフを除去した後処理済み Markdown
- 出力パス、検出されたソース形式、変換時の問題を記載した短いレポート
依存関係
bunおよびbunxbunx kordoc@latestまたは設定済みの固定 kordoc バージョン- Markdown のクリーンアップ用
resources/flatten-tables.ts - 入力パスと出力パスへのローカルファイルシステムアクセス
制御フローの機能
- ファイル拡張子、出力先、形式、ページ範囲、暗号化/DRM の状態、後処理の要件に応じて分岐します
bunxおよびbun runを通じて外部 CLI ツールを呼び出します- ローカルの HWP 系ファイルを読み取り、ローカルに Markdown または JSON を書き出します
- このスキルの対象範囲を無理に広げず、HWP 以外の入力を他のスキルに振り分けます
構造フロー
開始
- 入力パスが存在することを確認します。
- 拡張子が
.hwp、.hwpx、または.hwpmlであることを確認します。 - 出力パスまたはディレクトリ、およびデフォルトのファイル名を解決します。
bunが利用可能であることを確認します。
シーン
- PREPARE:パス、拡張子、サイズ、出力先、要求された形式を検証します。
- ACQUIRE:ソース形式とランタイムの利用可否を検出します。
- ACT:明示的な出力先と要求されたオプションを指定して
kordocを実行します。 - VERIFY:Markdown を後処理し、見出し、表、リスト、画像、脚注の構造を確認します。
- FINALIZE:出力パス、ソース形式、変換上の制限を報告します。
遷移
- 入力が
.pdfの場合は停止し、oma-pdfに振り分けます。 - 入力が
.xlsxまたは.docxの場合、このスキルはそれらの形式を対象としていないことを説明します。 bunを利用できない場合は停止し、Bun のインストールをユーザーに依頼します。- Markdown が生成された場合、呼び出し元が HTML テーブルまたは PUA グリフの保持を明示的に必要としていない限り、
resources/flatten-tables.tsを実行します。 - 出力が空、または文字化けしている場合は、
resources/troubleshooting.mdを参照します。
失敗と復旧
| 失敗 | 復旧方法 |
|---|---|
bun または bunx を利用できない | ユーザーに Bun のインストールを依頼します |
| サポート対象外、または形式が一致しない | 拡張子とマジックバイトを確認してから、適切な処理に振り分けるか停止します |
| 暗号化されている、または DRM でロックされているドキュメント | 制限を報告し、必要に応じてアクセス可能なコピーを依頼します |
| Markdown の出力が空 | スキャン画像の内容である可能性があるものとして扱い、このスキルの範囲外で OCR を行うよう推奨します |
| 複雑な結合テーブル | 最善の対応として、フラット化された Markdown または HTML の代替出力を受け入れます |
| 古い kordoc キャッシュ | bunx kordoc@latest または設定済みの固定バージョンを使用します |
flatten-tables.ts で Cannot find module "turndown" が発生 | このスキルの resources/ ディレクトリで bun install を実行します(node_modules は gitignore 対象で、新規クローン時には存在しません) |
終了
- 成功:出力ファイルが存在し、後処理後も構造を読み取れます。
- 部分的な成功:出力が存在し、テーブル、字形、暗号化、または忠実度の制限が明示的に報告されています。
- 失敗:信頼できる出力が生成されず、処理を妨げた原因が報告されています。
論理的な操作
アクション
| アクション | SSL プリミティブ | 根拠 |
|---|---|---|
| ファイルパスと拡張子を検証する | VALIDATE | 実行プロトコルの入力事前チェック |
| ランタイムの利用可否を確認する | VALIDATE | bun --version |
| 出力先と形式を選択する | SELECT | 出力動作と設定 |
| コンバーターを実行する | CALL_TOOL | bunx kordoc@latest |
| 出力ファイルを作成する | WRITE | Markdown または JSON の出力 |
| テーブルをフラット化し、PUA の字形を除去する | CALL_TOOL | resources/flatten-tables.ts |
| 抽出品質を確認する | VALIDATE | 検証ステップ |
| 結果を報告する | NOTIFY | ユーザー向けの最終概要 |
ツールと手段
kordoc:HWP 系形式を変換する主要な CLIflatten-tables.ts:GFM テーブルへの後処理と Hancom PUA のクリーンアップbun/bunx:ランタイムおよび CLI 実行ツール
標準のコマンドパス
bunx kordoc@latest "{input_path}" -o "{output_path}"
# fresh clone: run `bun install` in {skill_dir}/resources/ first (node_modules is gitignored)
bun "{skill_dir}/resources/flatten-tables.ts" "{output_path}"
# {skill_dir} = this skill's directory: .agents/skills/oma-hwp (project mode) or ~/.agents/skills/oma-hwp (global mode)
一括変換では、明示的な出力ディレクトリを指定します:
bunx kordoc@latest "{input_pattern}" -d "{output_dir}"
リソースの範囲
| 範囲 | リソース対象 |
|---|---|
LOCAL_FS | 入力 HWP 系ファイルと生成された出力 |
PROCESS | bunx kordoc と bun run のサブプロセス |
MEMORY | 形式の判断、検証メモ、最終レポート |
前提条件
- 入力ファイルが存在し、読み取り可能であること。
- 出力先に書き込み可能であるか、作成できること。
bunがインストールされていること。kordocがドキュメントを解析できるか、報告可能なエラーで失敗すること。
効果と副作用
- Markdown または JSON の出力ファイルを作成します。
- Markdown との互換性を優先し、結合セルのテーブルをフラット化する場合があります。その際、セルの忠実度は低下します。
- Hancom フォントがないと空白として表示されるため、既定で私用領域の文字を除去します。
- 元の HWP 系ドキュメントを意図的に変更することはありません。
ガードレール
- 古い
bunxキャッシュを避けるため、必ず@latestまたは明示的な固定バージョンを指定します。 - ユーザーがファイルを期待している場合は、必ず明示的な出力先を指定します。
- kordoc の ZIP、XML、SSRF、XSS 対策に対する独自のセキュリティ防御を追加しないでください。
- テーブルの欠落、文字化け、空の出力、暗号化されたセグメント、およびベストエフォートでの DRM 抽出について報告します。
- CLI の詳細は
resources/execution-protocol.mdに、トラブルシューティングの分岐はresources/troubleshooting.mdに記載します。
サポート対象形式
| 形式 | 拡張子 | 備考 |
|---|---|---|
| HWP 5.x バイナリ | .hwp | 完全対応(kordoc の rhwp-algorithm 移植版による DRM ロックへの対応を含む) |
| HWPX | .hwpx | ネストされたテーブル、結合セルを含め完全対応 |
| HWPML | .hwp(XML 形式) | シグネチャに基づいて自動検出 |
kordoc は PDF / XLSX / DOCX も解析でき、ドキュメント作成サブコマンド(
generate、fill、seal、patch、redact、lint、validate、render)も提供します。これらはすべて意図的にこのスキルの対象外です。「使用しない場合」を参照してください。変換品質フラグ(--dedupe-headers、--keep-empty-cols、--inline-images)とchunks形式については、resources/execution-protocol.mdに記載されています。
参考資料
- 実行プロトコル:
resources/execution-protocol.md - トラブルシューティング:
resources/troubleshooting.md - 設定:まず
.agents/oma-config.yamlのhwp:セクションを読み、設定されていないキーについてはconfig/hwp-config.yamlを参照してください(supported_formatsはスキル設定にのみあります)。ユーザーによる上書き設定は.agents/oma-config.yamlに記述してください。oma updateによってスキル設定が上書きされるためです。 - 上流: https://github.com/chrisryugj/kordoc
- 関連:
.pdfの入力には../oma-pdf/SKILL.mdを使用してください
コメント
Markdown 対応