kimi-pdf
Professional PDF solution. Create PDFs using HTML+Paged.js (academic papers, reports, documents). Process existing PDFs using…
Generate and edit Word documents (.docx). Supports professional documents including covers, charts, track-changes editing, and more. Suitable for any .docx creation or modification task.
$ npx -y skills add thvroyal/kimi-skills --skill kimi-docx --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/kimi-docxContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate and edit Word documents (.docx). Supports professional documents including covers, charts, track-changes editing, and more. Suitable for any .docx creation or modification task.
name: kimi-docx description: Generate and edit Word documents (.docx). Supports professional documents including covers, charts, track-changes editing, and more. Suitable for any .docx creation or modification task.
**To preserve ANY formatting from the source document, MUST unzip and parse XML.**
Read tool returns plain text only — fonts, colors, alignment, borders, styles are lost.
| Need | Method | |------|--------| | Text content only (summarize, analyze, translate) | Read tool is fine | | Formatting info (copy styles, preserve layout, template filling) | Unzip and parse XML | | Structure + comments/track changes | `pandoc input.docx -t markdown` |
1. **Preserve formatting** — When editing existing documents, retain original formatting. Clone and modify, never recreate.
2. **Correct feature implementation** — Comments need multi-file sync. Track Changes need revision marks. Use the right structure.
**Never use python-docx/docx-js as fallback.** These libraries produce lower quality output than direct XML manipulation.
**Template provided = Act as form-filler, not designer.**
**No template = Act as designer.** Design freely based on scenario.
For .doc (legacy format), first convert with `libreoffice --headless --convert-to docx`.
---
docx/ ├── SKILL.md ← This file (entry point + reference) ├── references/ │ └── EditingGuide.md → Complete Python editing tutorial (comments, track changes, 5-file sync) ├── scripts/ │ ├── docx → Unified entry (the only script to call) │ ├── fix_element_order.py → Auto-fix XML element ordering │ ├── validate_docx.py → Business rule validation │ ├── generate_backgrounds.py → Morandi style backgrounds │ ├── generate_inkwash_backgrounds.py → Ink-wash style backgrounds │ └── generate_chart.py → matplotlib (only for heatmaps/3D/radar; simple charts must use native) ├── assets/ │ └── templates/ │ ├── KimiDocx.csproj → Project file template (for creating new docs) │ ├── Program.cs → Program entry template │ ├── Example.cs → Complete example (cover+TOC+charts+back cover) │ ├── CJKExample.cs → CJK content patterns (quote escaping, fonts) │ └── xml/ → XML templates for comments infrastructure └── validator/ → OpenXML validator (pre-compiled binary, AI does not modify)
**Creating new documents**: Use C# SDK with `./scripts/docx build` → See `Example.cs` for patterns, `CJKExample.cs` for CJK content **Editing existing documents**: Use Python + lxml → See `references/EditingGuide.md` for complete tutorial
⚠️ **Do NOT mix these approaches.** C# SDK for creation, Python for editing. Never use python-docx/docx-js.
First time, execute in the SKILL directory:
cd /app/.kimi/skills/kimi-docx/ ./scripts/docx init
**Fixed Path Conventions** (cannot be changed):
| Path | Purpose | |------|---------| | `/app/.kimi/skills/kimi-docx/` | SKILL directory, where commands are executed | | `/tmp/docx-work/` | Working directory, edit `Program.cs` here | | `/mnt/okcomputer/output/` | Output directory, final deliverables | | `/mnt/okcomputer/upload/` | User upload location (input files) |
**Script Commands** (`./scripts/docx <cmd>`):
| Command | Purpose | |---------|---------| | `env` | Show environment status (no changes) | | `init` | Setup dependencies + workspace | | `build [out]` | Compile, run, validate (default: output/output.docx) | | `validate FILE` | Validate existing docx |
The script automatically handles:
**Must use `./scripts/docx build`**, do not execute `dotnet build && dotnet run` separately (skips validation).
**Program.cs must get output path from command line arguments**, otherwise build script cannot find the generated file:
// Correct - get output path from command line arguments string outputFile = args.Length > 0 ? args[0] : "/mnt/okcomputer/output/output.docx"; // Wrong - hardcoded path causes build failure string outputFile = "my_document.docx"; // Script can't find file!
| Step | Action | Notes | |------|--------|-------| | 1. Compile | `dotnet build` | Provides fix suggestions on failure | | 2. Generate | `dotnet run -- <output path>` | Path passed via command line args | | 3. Auto-fix | `fix_element_order.py` | Fixes XML element ordering issues | | 4. OpenXML validation | `validator/` | Mandatory | | 5. Business rules | `validate_docx.py` | Mandatory | | 6. Statistics | Character + word count | Optional (requires pandoc) |
**Validation is mandatory**: On failure, file is kept but warnings are shown. Check error messages to fix issues.
cd /app/.kimi/skills/kimi-docx/ ./scripts/docx validate /mnt/okcomputer/output/report.docx
**pandoc is the SOURCE OF TRUTH.** OpenXML validator checks structure; pandoc shows actual content.
Before delivery, verify with pandoc:
**⚠️ Critical**: `comments.xml` exists ≠ comments visible. Count mismatch = `doc_tree` not saved. See `references/EditingGuide.md` §5.3.
---
**Generic styling and mediocre aesthetics = mediocre delivery.**
Deliver studio-quality Word documents with d
A collection of AI agent skills extracted from Kimi that enable advanced document generation capabilities. Attribution: These skills were originally developed by Moonshot AI for their Kimi AI assistant.
Professional PDF solution. Create PDFs using HTML+Paged.js (academic papers, reports, documents). Process existing PDFs using…