document-SKILLs github.com/appautomaton/document-SKILLs

Your agent can’t can edit Office documents.

Four self-contained skills that teach Claude Code and Codex to fill PDF forms, redline Word documents, build PowerPoint decks, and recalculate Excel formulas.

> /plugin marketplace add appautomaton/document-SKILLs
> /plugin install document-skills@appautomaton-skills

Claude Code plugin installation. System tools and per-skill dependencies are still required. For a local checkout, follow the setup below.

The skills

  • .pdf

    Read, build, and fill. Extract text and tables, merge and split, create from scratch, OCR scanned pages, and fill forms two ways: native form fields, or drawn annotations validated against a rendered image.

  • .docx

    Write and redline. Create documents from JavaScript, edit the raw OOXML, add comments, and produce genuine tracked changes for legal and academic review.

  • .pptx

    Design and rearrange. Build decks from HTML with pixel-accurate positioning, reorder and edit existing slides, and render thumbnails so the agent can check its own work.

  • .xlsx

    Model and recalculate. Create and edit spreadsheets while preserving formulas, then recalculate through headless LibreOffice and get back every #REF! and #DIV/0! by cell address.

Set up a local checkout

This walkthrough uses macOS with Git and Homebrew installed. For Linux system packages, see the repository dependencies.

  1. Clone the repository and enter it. The remaining commands run from this directory, which contains the Brewfile and all four skills.

    git clone https://github.com/appautomaton/document-SKILLs.git
    cd document-SKILLs
  2. Install the system tools. The Brewfile provides Poppler, Pandoc, and LibreOffice. It skips uv and Node when they are already on your PATH.

    brew bundle --no-upgrade

    For scanned-PDF OCR, also install tesseract with Homebrew. HTML-to-slide rendering on macOS uses Google Chrome.

  3. Install the Node packages used by Word and PowerPoint workflows. PDF and spreadsheet workflows do not need these packages.

    npm --prefix docx install
    npm --prefix pptx install

    Python dependencies resolve when each script runs through uv run.

  4. Link the skills into your agent’s skills directory. This example uses Codex. For Claude Code, set skills_dir to "$HOME/.claude/skills" instead. Existing entries are reported and kept.

    skills_dir="$HOME/.codex/skills"
    mkdir -p "$skills_dir"
    for skill in docx pdf pptx xlsx; do
      skill_target="$skills_dir/$skill"
      if [ -e "$skill_target" ] || [ -L "$skill_target" ]; then
        printf 'Already exists: %s\n' "$skill_target"
      else
        ln -s "$PWD/$skill" "$skill_target"
      fi
    done
  5. Check the dependencies from the repository root, then ask your agent to use a skill with one of your documents.

    brew bundle check
    npm --prefix docx ls --depth=0
    npm --prefix pptx ls --depth=0

    For example: “Use the docx skill to replace this paragraph with the revised text and return a Word file with tracked changes.”

If you use the plugin installation above, follow the prerequisites in its installed docx and pptx skills. Their Node packages must be installed in the plugin’s skill directories.

How it’s built

Every script declares its dependencies in a PEP 723 header and runs under uv run. There is nothing to install into, nothing to activate, and nothing to break six months later.

Each skill folder is the unit of distribution. Its prerequisites are written in the SKILL.md the agent actually reads, so a copied folder works the same on the next machine.

Office file edits are validated against the ECMA-376 and ISO/IEC 29500 schemas that define the formats, before anything is handed back to you.