DOCX スキル
使用するタイミング
- レイアウトが重要な(表、図、ページ区切りなど)DOCXコンテンツの読み取りやレビュー。
- プロフェッショナルな書式でDOCXファイルを作成または編集する。
- 納品前に視覚的なレイアウトを検証する。
ワークフロー
- 視覚的なレビュー(レイアウト、表、図)を優先する。
sofficeとpdftoppmが利用可能であれば、DOCX → PDF → PNGに変換する。- または
scripts/render_docx.pyを使用する(pdf2imageとPopplerが必要)。 - これらのツールがない場合は、インストールするか、ユーザーにローカルでレンダリングページを確認するよう依頼する。
python-docxを使用して、編集や構造化された作成(見出し、スタイル、表、リスト)を行う。- 意味のある変更のたびに、再レンダリングしてページを検査する。
- 視覚的なレビューが不可能な場合は、フォールバックとして
python-docxでテキストを抽出し、レイアウトのリスクを指摘する。 - 中間出力を整理して保持し、最終承認後はクリーンアップする。
テンポラリと出力の規則
- 中間ファイルには
tmp/docs/を使用し、作業終了時に削除する。 - このリポジトリで作業する場合、最終成果物は
output/doc/に書き込む。 - ファイル名は安定していて説明的なものを維持する。
依存関係(不足している場合はインストール)
依存関係管理には uv を推奨する。
Pythonパッケージ:
uv pip install python-docx pdf2image
uv が利用できない場合:
python3 -m pip install python-docx pdf2image
システムツール(レンダリング用):
# macOS (Homebrew)
brew install libreoffice poppler
# Ubuntu/Debian
sudo apt-get install -y libreoffice poppler-utils
この環境でインストールできない場合は、不足している依存関係とそのローカルインストール方法をユーザーに伝える。
環境
必須の環境変数はありません。
レンダリングコマンド
DOCX → PDF:
soffice -env:UserInstallation=file:///tmp/lo_profile_$$ --headless --convert-to pdf --outdir $OUTDIR $INPUT_DOCX
PDF → PNG:
pdftoppm -png $OUTDIR/$BASENAME.pdf $OUTDIR/$BASENAME
バンドルされたヘルパー:
python3 scripts/render_docx.py /path/to/file.docx --output_dir /tmp/docx_pages
品質期待値
- クライアントに使えるドキュメントを納品する:一貫したタイポグラフィ、スペーシング、マージン、明確な階層構造。
- 書式の欠陥を避ける:クリップや重なりのテキスト、壊れた表、判読できない文字、デフォルトテンプレートのスタイル。
- グラフ、表、ビジュアルはレンダリングページで読みやすく、正しく配置されていること。
- ASCIIハイフンのみを使用する。U+2011(ノーブレークハイフン)やその他のUnicodeダッシュは避ける。
- 引用と参考文献は人間が読める形式で記述し、ツールトークンやプレースホルダー文字列を残さない。
最終チェック
- 最終納品前に、すべてのページを100%ズームで再レンダリングして検査する。
- スペーシング、配置、ページ区切りの問題を修正し、レンダリングループを繰り返す。
- ユーザーが保持を依頼しない限り、残存ファイル(テンポラリファイル、重複レンダリング)がないことを確認する。