视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
documents【文档与办公】Generate, inspect, validate, and fix PDF, Word (.docx), Excel (.xlsx), and PowerPoint (.pptx) documents: turn structured content into render-ready artifacts, verify structural and output quality before delivery, and repair broken files. Use when a task involves creating, editing, converting, or validating office documents and PDFs. Do not use for ebo…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
One skill for the four most common document formats. All four share a single
agent workflow — structured content in, render-ready, validated artifact out —
so they live in ONE family skill with per-format references, following the
epub precedent. Load the shared workflow below, then pull the per-format
reference for the format you are actually touching.
| Format | Extension | Reference (load on demand) |
|---|---|---|
.pdf | references/pdf.md | |
| Word | .docx | references/word.md |
| Excel | .xlsx | references/excel.md |
| PowerPoint | .pptx | references/powerpoint.md |
| All formats | — | references/output-quality.md |
Generation templates for each format live in templates/, and the validation script with per-format fixtures lives in scripts/.
Load this skill when the task involves any of the four formats:
epub skill; it owns the EPUB container,
reading order, and package validation.data-engineering; Excel here is a deliverable format, not a data store.anydoc skill; this skill owns generation, editing, and
validation, not document-to-markdown extraction.Every document task follows the same six steps, regardless of format. Deep format-specific detail is deferred to the per-format reference — read it at the step where it matters.
Pin down what the document is for before touching a file:
Represent the document's content as structured data before rendering:
Choose the generation template for the target format from templates/:
Fill the [fill: ...] markers in the template with content from the content
model. Templates are the contract between content and layout — changing the
template is how you change appearance without touching content.
Produce the artifact file:
zipfile + XML for small artifacts) or with the conventional library for the
format (python-docx, openpyxl, python-pptx). See the per-format reference for
the exact package layout to produce.Never deliver unvalidated output. Run the validation script:
python3 scripts/validate-documents.py --render-check --json report.pdf brief.docx data.xlsx deck.pptx
The script performs structural sanity (container signatures, required
parts, XML well-formedness) and, when a renderer is installed, a render
check (actually renders the file). When no renderer is present it reports
unavailable instead of failing — validation never hard-requires a renderer.
See references/output-quality.md for the full
output-quality checklist, and the fixture files in
fixtures/ (one per format) to smoke-test the script itself:
python3 scripts/validate-documents.py --json fixtures/sample.pdf fixtures/sample.docx fixtures/sample.xlsx fixtures/sample.pptx
Hand off the artifact with its provenance:
The task is complete when the artifact exists, passes structural validation (and the render check when a renderer is available), and the content matches the agreed scope. Stop after delivering the validated artifact with its provenance; do not keep iterating on layout without a new scope instruction.
All scripts live in scripts/ relative to this skill's directory and
follow cli-builder conventions: --json for machine output, non-interactive,
errors to stderr. Run with --help for full flag details.
python3 scripts/validate-documents.py report.pdf # human report
python3 scripts/validate-documents.py --json report.pdf # machine report
python3 scripts/validate-documents.py --render-check --json report.pdf data.xlsx deck.pptx
Behavior:
[Content_Types].xml, required parts, XML well-formedness.
Legacy .doc/.xls/.ppt files are recognized via OLE2 magic bytes.--render-check): renders PDF via pdftoppm/mutool/gs
and Office formats via LibreOffice. Reports unavailable — exit 0 — when no
renderer is installed (graceful degradation, never a crash).status (ok / fail / unavailable / error)
with per-file checks and render results.--json, non-interactive, exit codes).