odt について
ODT Document Skillは、ODT文書の読み取り、作成、編集、検証を行う人向けのワークフローガイドです。作業に応じてライブラリまたは生XMLの方法を案内し、パッケージ構造、変更履歴、言語設定も扱います。
主な機能
- 01変換ツールでテキストを抽出
- 02odfdoで文書を作成・編集
- 03変更履歴と注釈を扱う
- 04XMLパッケージの直接編集に対応
- 05検証と形式変換の手順を提示
活用シーン
- 01ODTファイルの文章や表を要約
- 02変更履歴を保ったまま文章を編集
- 03文書スタイルの言語とフォントを設定
- 04パッケージ内容とスキーマの有効性を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sungkhum/ agent-skills --skill odtインストール後、Claude Code で/odtを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlassets/Test-Format-ODT-Khmer.odtTest-Format-ODT.odtodf/schemas/odf-1.3/OpenDocument-v1.3-dsig-schema.rngOpenDocument-v1.3-manifest-schema.rngOpenDocument-v1.3-metadata.owlOpenDocument-v1.3-package-metadata.owlodf/scripts/annotation_smoke_test.pyexample_tracked_changes.pyfetch_schemas.pypack.pyset_language.pyunpack.pyvalidate_changes.pyvalidate_rng_all.pyvalidate_rng.pyvalidate.pyreferences/odf-schemas.mdodf-xml.mdodfdo.mdodt-change-tracking.mdodt-document.mdodt-language.mdodt-structure.mdtools.mdscripts/__init__.pyannotation_smoke_test.pyexample_tracked_changes.pyfetch_odf_schemas.pyodt_document.py詳細
ODT ドキュメントスキル
.odt ファイルは、XML ファイルとアセットを含む ZIP パッケージです。可能な場合は高水準のライブラリを使用し、複雑な書式、変更履歴、または正確な制御が必要な場合は、生の XML を使用してください。
参照ファイル
| トピック | ファイル |
|---|---|
| パッケージ構造 | references/odt-structure.md |
| 変更履歴 | references/odt-change-tracking.md |
| 言語/ロケール | references/odt-language.md |
| XML パターン | references/odf-xml.md |
| odfdo ライブラリ | references/odfdo.md |
| ODTDocument API | references/odt-document.md |
| スキーマ検証 | references/odf-schemas.md |
| ツールの概要 | references/tools.md |
プロンプトの例
- 「この ODT からすべてのテキストを抽出し、見出しと表を要約してください。」
- 「変更履歴を適用して、取り消し線を維持したまま、これらの語句を置き換えてください。」
- 「すべての段落スタイルに、クメール語の言語/ロケールとフォントを設定してください。」
- 「この ODT パッケージを検証し、不足しているファイルを報告してください。」
- 「展開して content.xml を編集し、スタイルを壊さずに再パッケージしてください。」
ワークフローの判断表
| タスク | 方法 |
|---|---|
| テキストの読み取り/抽出 | pandoc または odfdo-markdown を使用 |
| 新しいドキュメントの作成 | references/odfdo.md を読み、odfdo ライブラリを使用 |
| 簡単な編集 | references/odfdo.md を読み、odfdo ライブラリを使用 |
| 変更履歴/注釈 | references/odt-document.md を読み、ODTDocument API を使用 |
| 複雑な XML 編集 | references/odf-xml.md を読み、XML を直接編集 |
主な操作
テキストの抽出
pandoc document.odt -o document.md # Convert to Markdown
odfdo-markdown document.odt > out.md # Alternative
展開/再パッケージのワークフロー
python scripts/unpack_odt.py <file.odt> <dir> # Unpack
# ... edit XML files ...
python scripts/pack_odt.py <dir> <file.odt> # Repack
ODTDocument ライブラリの使用
ODTDocument を使用するスクリプトでは、PYTHONPATH にスキルのルートを設定する必要があります。リポジトリのルートから実行する場合は、スキルのフォルダーを明示的に指定してください。
PYTHONPATH=/path/to/repo/skills/odt python your_script.py
# example from repo root
PYTHONPATH=skills/odt python your_script.py
odfdo でのドキュメント作成
最初に references/odfdo.md を読んでください。基本的な例:
from odfdo import Document, Paragraph
doc = Document('text')
doc.body.append(Paragraph('Hello'))
doc.save('output.odt')
生の XML の編集
最初に references/odf-xml.md を読んでください。主なファイル:
content.xml— ドキュメントの本文styles.xml— ドキュメントのスタイルMETA-INF/manifest.xml— パッケージマニフェスト(ファイル追加時に更新)
変更履歴のワークフロー
構造の詳細については、references/odt-change-tracking.md を読んでください。主な原則:
- 変更をまとめる:デバッグしやすいよう、関連する変更を1回につき3~10件まとめます
- 最小限のマーキング:実際に変更されるテキストのみをマークします
ワークフロー:
- Markdown に変換します:
pandoc doc.odt -o doc.md - 変更を特定し、バッチにまとめます
ODTDocument.suggest_replacement()/suggest_insertion()/suggest_deletion()を使用します- 検証します:
python scripts/validate_changes.py content.xml - 再パッケージし、LibreOffice で確認します
言語サポート(クメール語、タイ語、アラビア語など)
references/odt-language.md を参照してください。ヘルパースクリプト:
python scripts/set_language.py styles.xml --lang km --country KH --font "Khmer OS System"
ODT から PDF/画像への変換
soffice --headless --convert-to pdf document.odt # ODT → PDF
pdftoppm -jpeg -r 150 document.pdf page # PDF → images
依存関係
必須
- odfdo:
pip install odfdo(ODT の作成/編集) - defusedxml:
pip install defusedxml(安全な XML 解析)
任意
- pandoc:
brew install pandoc(Markdown への変換) - LibreOffice:
brew install --cask libreoffice(ODT → PDF) - jing:
validate_rng.py用 Relax NG バリデーター - Poppler:
brew install poppler(PDF → 画像変換用の pdftoppm)
検証スクリプト
python scripts/validate_odt.py <dir> --original <file.odt> # Package validation
python scripts/validate_changes.py <dir>/content.xml # Change tracking
python scripts/validate_rng.py <dir>/content.xml # RNG schema (needs jing)
python scripts/smoke_test.py <file.odt> <work_dir> # Full roundtrip
コメント
Markdown 対応