본문으로 건너뛰기
cccskills
무료GitHub에 공개

office-utils

Unpack Word and PowerPoint files to inspect and edit their internal XML, the markup that stores document content. Repack targeted changes with XML syntax checks while preserving the original archive entry order.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Low-level support skill for hand-editing the raw XML inside a .docx or .pptx file (both formats are just ZIP archives of XML parts). Use this directly only when you need to unpack, inspect, or repack Open XML yourself — for example fixing a validation error in generated markup, or making one small targeted edit without regenerating a whole document from scratch. The docx and pptx skills already use this internally for their 'edit an existing file' workflow, so you rarely need to load this on its own.

연동 도구WordPowerPoint
설치 방법 보기

이럴 때 유용합니다

  • Make a small edit inside a Word or PowerPoint file
  • Investigate errors in generated document XML
  • Inspect internal document parts and image references
  • Repack edited files with XML syntax validation

포함된 파일(3)

  • SKILL.md4.5 KB
  • scripts/pack.py2.4 KB
  • scripts/unpack.py2.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Office Open XML utilities

Overview

A .docx or .pptx file is a ZIP archive containing a tree of XML parts (word/document.xml, ppt/slides/slide1.xml, relationship files, content-type manifests, ...). Editing it directly means: unpack the ZIP, edit the XML text, repack the ZIP. No LibreOffice or other converter is required for this — it is pure zipfile + text editing.

Note on language: the docx/pptx/xlsx/pdf skills default to Node (docx/pptxgenjs/exceljs/pdfkit) for creating a file from scratch, per this environment's Node-first policy for office-document generation. This skill stays Python: it's invoked by writing a subprocess call from your sandbox program (whichever coding tool runs it), and the Python invocation (python skills/office-utils/scripts/unpack.py ...) is guaranteed to resolve the same way across every sandbox backend, whereas the TypeScript runtime's binary (tsx) is installed per-sandbox and its exact invocation differs across backends — not worth the portability risk for a script that's about editing XML, not about which language "creates" the file.

Quick Reference

TaskCommand
Unpack a file to a directory treepython skills/office-utils/scripts/unpack.py <file.docx|pptx> <out_dir/>
Repack a directory tree back to a filepython skills/office-utils/scripts/pack.py <out_dir/> <file.docx|pptx>

Workflow

  1. Unpack: python skills/office-utils/scripts/unpack.py presentation.pptx unpacked/. This extracts every part into unpacked/, pretty-printing every .xml file (one element per line) so edits are readable and diffable. A _unpack_manifest.json file records the original entry order and compression — pack.py reads it back so re-zipping doesn't accidentally change part ordering, which some Office readers are picky about.
  2. Edit: make targeted edits to the relevant XML file(s) under unpacked/ (e.g. unpacked/word/document.xml, unpacked/ppt/slides/slide1.xml). Prefer the smallest possible edit — a single attribute or run of text — over rewriting a whole XML subtree, so you're less likely to break sibling elements you didn't intend to touch.
  3. Repack: python skills/office-utils/scripts/pack.py unpacked/ output.pptx. This re-zips using the manifest's original entry order, and validates that every .xml part is still well-formed (parses cleanly) before writing the final file — if any part is malformed, it fails loudly with the offending file name and line instead of silently producing a corrupt document.

Common pitfalls

  • Don't reorder ZIP entries. Some parsers (notably older Office/PowerPoint) are sensitive to [Content_Types].xml and _rels/.rels being near the start of the archive. pack.py's manifest-driven ordering exists specifically to avoid this — don't hand-roll your own zipping.
  • Keep relationship IDs (r:id) consistent. If you add a new part (e.g. an image), you must add both a <Relationship> entry in the owning part's _rels/*.rels file AND a reference to that same ID from the XML that uses it. Adding one without the other produces a file that "opens" but shows a broken-image icon or corruption warning.
  • Escape XML special characters (&, <, >) in any text you insert into a <w:t>/<a:t> run — a raw ampersand will make the part invalid XML and fail the pack-time validation.
  • This skill has no way to render a preview. Visual verification (rendering the file to an image) requires LibreOffice, which is not available in this environment yet — verify structurally (does it still parse? do the relationship IDs still resolve?) rather than visually.

Dependencies

Pure Python standard library (zipfile, xml.dom.minidom, json) — no packages to install.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Build or extend a PipesHub connector, an integration that syncs content from an external service or database. The skill guides API research, design decisions, permission mapping, implementation, testing, and documentation of what was actually verified.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Build a connector for an external service
  • Add a new content type to an existing connector
  • Review how source permissions map to PipesHub
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

Load, clean, summarize, and join tabular data from CSV, Excel, JSON, or database exports using pandas. Check missing values, data types, and row counts, then independently verify key figures before reporting numbers printed by the code.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Summarizing revenue by region
  • Cleaning missing values and duplicate rows
  • Joining files by customer ID
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

Turn data into charts suited to comparisons, trends, distributions, relationships, or shares. Add clear titles, units, and accessible colors, then export a static PNG or interactive HTML with hover details and zoom controls.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Charting monthly revenue trends
  • Comparing totals across regions or categories
  • Examining order-size distributions
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

docx

무료

Create Word reports, memos, letters, and proposals with headings, tables, lists, and a table of contents. Also supports targeted edits to existing .docx files and reading or summarizing their text and tables.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Create a Word report or proposal
  • Edit selected passages in an existing document
  • Read and summarize document text and tables
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

Choose suitable libraries for converting spreadsheet data and image files, or extracting text and tables from documents. Covers supported format pairs and identifies conversions unavailable in the described environment before work begins.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Convert tabular data between CSV, Excel, and JSON
  • Change image formats or resize images
  • Extract text from Word documents
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

pdf

무료

Create PDF reports, invoices, and letters, extract text or tables from existing PDFs, and fill interactive form fields. The skill also guides table layout, text wrapping, and page breaks so generated documents fit their pages.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Create a PDF report or invoice
  • Extract text and tables from an existing PDF
  • Fill fields in a PDF form
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

pipeshub-ai의 스킬 모두 보기

이 스킬의 문제 신고