docx-cli: AIエージェントによる高精度なWordドキュメント編集の実現
docx-cli: AIエージェントによる高精度なWordドキュメント編集の実現
docx-cli は AIエージェントとWordドキュメントの相互作用を最適化します
docx-cli は、書式を完全に維持しながら .docx ファイルを読み取り、編集し、コメントを追加するために設計された、AIエージェント(Claude や Codex など)向けの特化型 CLI です。エージェントが基盤となる OOXML (Office Open XML) を直接変更しようとして、ファイルが破損したりトークン消費量が増大したりする従来の方法とは異なり、docx-cli はエージェントにプレーンなコマンドと注釈付き Markdown ビューを提供します。このアプローチにより、カスタムスタイル、テーマカラー、埋め込みオブジェクトが編集プロセスを経由しても維持されます。
パフォーマンス・ベンチマーク: docx-cli vs. デフォルトのエージェント機能
NDA の記入、契約書の修正(redlining)、ジャーナルの執筆など、6 つの実世界のドキュメント・タスクを含む制御された A/B テストにおいて、docx-cli は 2 つのモデル層にわたってデフォルトのエージェント機能を有意に上回りました。
- 成功率: 「弱い」Haiku 層では、デフォルト機能が 0.7/6 タスクを解決したのに対し、
docx-cliは 4.3/6 タスクを解決しました。 「強い」Sonnet 層では、6/6 の完璧なスコアを達成し、デフォルト機能の 4/6 を上回りました。 - トークン効率:
docx-cliは入力トークンを約 2.2-2.6 倍削減し、コストを抑え、速度を向上させました。 - レイテンシ: 両方の層において、実行時間は 1.7-2.0 倍短縮されました。
- 信頼性:
docx-cliの出力は 100% 初回で Microsoft Word で開くことができましたが、デフォルト機能は Word で開けないファイルを複数生成しました。
コア技術アーキテクチャ
インプレース XML 変異
損失のあるモデルからドキュメントを再出力するのではなく、docx-cli は AST (Abstract Syntax Tree) を解析済み XML ツリーのビューとして扱います。エージェントが edit または comments add コマンドを実行すると、CLI は基盤となる XML ノードを直接変異させ、変更をファイルにシリアル化して書き戻します。これにより、AST に明示的にモデル化されていない要素(独自のスキーマ拡張や複雑なテーマカラーなど)が、そのままの状態で維持されます。
安定したロケーターとアドレッシング
生のテキスト・オフセットの脆弱性を避けるため、docx-cli はドキュメント要素を正確に指定するためのロケーター・システムを使用します。
- ブロック ID:
pN(paragraph),tN(table), およびsN(section break) はドキュメントの順序から導出されます。 - エンティティ ID:
cN(comment),imgN(image),linkN(hyperlink),fnN(footnote), およびenN(endnote) はlist動詞を通じて公開されます。 - スパン: 文字オフセットは 0 ベースで、開始位置を含み、終了位置を含みません(例:
p3:5-20は paragraph 3 の 5 文字目から 19 文字目を対象とします)。
リッチ・コンテンツの処理
docx-cli は、複雑な Word 要素を扱うためにいくつかの高度な機能を実装しています。
- 数式: カスタムの MathML–OMML アダプターを使用して、OOXML
<m:oMath>を LaTeX に変換します。 - 変更履歴 (Tracked Changes): 修正(redlining)のために、ネイティブな
<w:ins>および<w:del>タグが使用されます。CLI は 3 つの表示モードを提供します:--accepted(クリーンなテキスト),--current(脚注付きの CriticMarkup),--baseline(変更前のテキスト)。 - 画像: パス、
data:URI、または HTTP(S) URL からの挿入をサポートし、自動的な HEIC–JPEG トランスコーディングを行います。 - スタイル:
styles.xml内のスタイル定義の編集を許可し、ドキュメント本体のすべてのインスタンスを修正することなく、グローバルな変更(例: 「すべての Heading 1 を緑色にする」)を可能にします。
コマンドとワークフローの参照
読み取りとクエリ
エージェントは docx read を使用してドキュメントの Markdown 表記を取得し、スタイル、配置、間隔に関する構造的なヒントを提供する HTML コメント注釈(例: <!-- docx:p pN style="Caption" -->)が補完されます。
変異 (Mutation)
変異器はファイルをインプレースで変更します。主なコマンドは以下の通りです:
docx replace: 実行(run)の書式を維持しながらパターンを置換します。docx edit: 特定のロケーターでコンテンツを修正します。プレーンテキスト、Markdown、または生の run をサポートします。docx insert: ロケーターの前または後にコンテンツを追加します。docx comments add: 特定のスパンまたはフレーズにコメントを付加します。
視覚的検証
docx render を使用すると、エージェントは Microsoft Word (via osascript または PowerShell COM) または LibreOffice を操作して PDF を生成し、それを同梱の PDFium WASM パッケージを使用して PNG または JPG 画像にラスタライズすることで、作業内容を検証できます。
インストールとエージェントの統合
docx-cli は Agent Skill として配布されており、Claude Code、Codex、および Pi に対応しています。npx skills add kklimuk/docx-cli を介してインストールするか、Linux、macOS、および Windows 用のスタンドアロンバイナリとして利用可能です。Claude Code を使用する場合、ユーザーは /plugin marketplace add kklimuk/docx-cli コマンドを使用できます。