skills/odt/SKILL.md
OpenDocument Text (.odt) creation, editing, and analysis. Supports tracked changes, styles, annotations, and language/locale handling. Use for: creating new ODT documents, editing existing ODT content, working with tracked changes (redlining), adding comments/annotations, or extracting/analyzing ODT content.
npx skillsauth add sungkhum/agent-skills odtInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
An .odt file is a ZIP package containing XML files and assets. Use high-level libraries when possible; fall back to raw XML for complex formatting, tracked changes, or precise control.
| Topic | File |
|-------|------|
| Package structure | references/odt-structure.md |
| Tracked changes | references/odt-change-tracking.md |
| Language/locale | references/odt-language.md |
| XML patterns | references/odf-xml.md |
| odfdo library | references/odfdo.md |
| ODTDocument API | references/odt-document.md |
| Schema validation | references/odf-schemas.md |
| Tools overview | references/tools.md |
| Task | Approach |
|------|----------|
| Read/extract text | Use pandoc or odfdo-markdown |
| Create new document | Read references/odfdo.md, use odfdo library |
| Simple edits | Read references/odfdo.md, use odfdo library |
| Tracked changes/annotations | Read references/odt-document.md, use ODTDocument API |
| Complex XML edits | Read references/odf-xml.md, edit XML directly |
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
Scripts using ODTDocument require PYTHONPATH set to the skill root. If you're running from a repo root, point it explicitly to the skill folder:
PYTHONPATH=/path/to/repo/skills/odt python your_script.py
# example from repo root
PYTHONPATH=skills/odt python your_script.py
Read references/odfdo.md first. Basic example:
from odfdo import Document, Paragraph
doc = Document('text')
doc.body.append(Paragraph('Hello'))
doc.save('output.odt')
Read references/odf-xml.md first. Key files:
content.xml — main document contentstyles.xml — document stylesMETA-INF/manifest.xml — package manifest (update when adding files)Read references/odt-change-tracking.md for structure details. Key principles:
Workflow:
pandoc doc.odt -o doc.mdODTDocument.suggest_replacement() / suggest_insertion() / suggest_deletion()python scripts/validate_changes.py content.xmlSee references/odt-language.md. Helper script:
python scripts/set_language.py styles.xml --lang km --country KH --font "Khmer OS System"
soffice --headless --convert-to pdf document.odt # ODT → PDF
pdftoppm -jpeg -r 150 document.pdf page # PDF → images
Required
pip install odfdo (ODT creation/editing)pip install defusedxml (safe XML parsing)Optional
brew install pandoc (Markdown conversion)brew install --cask libreoffice (ODT → PDF)validate_rng.pybrew install poppler (pdftoppm for PDF → images)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
testing
Comprehensive Adobe InDesign IDML creation, editing, and analysis. Use when working with .idml files to unpack, inspect, modify stories or spreads, preserve layout structure, validate packages, or generate IDML from InDesign exports.
documentation
Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
documentation
Maintain the OpenClaw memory wiki vault with deterministic pages, managed blocks, and source-backed updates.
documentation
Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.