$npx -y skills add nguyenphp/antigravity-marketing --skill minimax-pdfUse this skill when visual quality and design identity matter for a PDF. CREATE (generate from scratch): "make a PDF", "generate a report", "write a proposal", "create a resume", "beautiful PDF", "professional document", "cover page", "polished PDF", "client-ready document". FILL
| 1 | # minimax-pdf |
| 2 | |
| 3 | Three tasks. One skill. |
| 4 | |
| 5 | ## Read `design/design.md` before any CREATE or REFORMAT work. |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## Route table |
| 10 | |
| 11 | | User intent | Route | Scripts used | |
| 12 | |---|---|---| |
| 13 | | Generate a new PDF from scratch | **CREATE** | `palette.py` → `cover.py` → `render_cover.js` → `render_body.py` → `merge.py` | |
| 14 | | Fill / complete form fields in an existing PDF | **FILL** | `fill_inspect.py` → `fill_write.py` | |
| 15 | | Reformat / re-style an existing document | **REFORMAT** | `reformat_parse.py` → then full CREATE pipeline | |
| 16 | |
| 17 | **Rule:** when in doubt between CREATE and REFORMAT, ask whether the user has an existing document to start from. If yes → REFORMAT. If no → CREATE. |
| 18 | |
| 19 | --- |
| 20 | |
| 21 | ## Route A: CREATE |
| 22 | |
| 23 | Full pipeline — content → design tokens → cover → body → merged PDF. |
| 24 | |
| 25 | ```bash |
| 26 | bash scripts/make.sh run \ |
| 27 | --title "Q3 Strategy Review" --type proposal \ |
| 28 | --author "Strategy Team" --date "October 2025" \ |
| 29 | --accent "#2D5F8A" \ |
| 30 | --content content.json --out report.pdf |
| 31 | ``` |
| 32 | |
| 33 | **Doc types:** `report` · `proposal` · `resume` · `portfolio` · `academic` · `general` · `minimal` · `stripe` · `diagonal` · `frame` · `editorial` · `magazine` · `darkroom` · `terminal` · `poster` |
| 34 | |
| 35 | | Type | Cover pattern | Visual identity | |
| 36 | |---|---|---| |
| 37 | | `report` | `fullbleed` | Dark bg, dot grid, Playfair Display | |
| 38 | | `proposal` | `split` | Left panel + right geometric, Syne | |
| 39 | | `resume` | `typographic` | Oversized first-word, DM Serif Display | |
| 40 | | `portfolio` | `atmospheric` | Near-black, radial glow, Fraunces | |
| 41 | | `academic` | `typographic` | Light bg, classical serif, EB Garamond | |
| 42 | | `general` | `fullbleed` | Dark slate, Outfit | |
| 43 | | `minimal` | `minimal` | White + single 8px accent bar, Cormorant Garamond | |
| 44 | | `stripe` | `stripe` | 3 bold horizontal color bands, Barlow Condensed | |
| 45 | | `diagonal` | `diagonal` | SVG angled cut, dark/light halves, Montserrat | |
| 46 | | `frame` | `frame` | Inset border, corner ornaments, Cormorant | |
| 47 | | `editorial` | `editorial` | Ghost letter, all-caps title, Bebas Neue | |
| 48 | | `magazine` | `magazine` | Warm cream bg, centered stack, hero image, Playfair Display | |
| 49 | | `darkroom` | `darkroom` | Navy bg, centered stack, grayscale image, Playfair Display | |
| 50 | | `terminal` | `terminal` | Near-black, grid lines, monospace, neon green | |
| 51 | | `poster` | `poster` | White bg, thick sidebar, oversized title, Barlow Condensed | |
| 52 | |
| 53 | Cover extras (inject into tokens via `--abstract`, `--cover-image`): |
| 54 | - `--abstract "text"` — abstract text block on the cover (magazine/darkroom) |
| 55 | - `--cover-image "url"` — hero image URL/path (magazine, darkroom, poster) |
| 56 | |
| 57 | **Color overrides — always choose these based on document content:** |
| 58 | - `--accent "#HEX"` — override the accent color; `accent_lt` is auto-derived by lightening toward white |
| 59 | - `--cover-bg "#HEX"` — override the cover background color |
| 60 | |
| 61 | **Accent color selection guidance:** |
| 62 | |
| 63 | You have creative authority over the accent color. Pick it from the document's semantic context — title, industry, purpose, audience — not from generic "safe" choices. The accent appears on section rules, callout bars, table headers, and the cover: it carries the document's visual identity. |
| 64 | |
| 65 | | Context | Suggested accent range | |
| 66 | |---|---| |
| 67 | | Legal / compliance / finance | Deep navy `#1C3A5E`, charcoal `#2E3440`, slate `#3D4C5E` | |
| 68 | | Healthcare / medical | Teal-green `#2A6B5A`, cool green `#3A7D6A` | |
| 69 | | Technology / engineering | Steel blue `#2D5F8A`, indigo `#3D4F8A` | |
| 70 | | Environmental / sustainability | Forest `#2E5E3A`, olive `#4A5E2A` | |
| 71 | | Creative / arts / culture | Burgundy `#6B2A35`, plum `#5A2A6B`, terracotta `#8A3A2A` | |
| 72 | | Academic / research | Deep teal `#2A5A6B`, library blue `#2A4A6B` | |
| 73 | | Corporate / neutral | Slate `#3D4A5A`, graphite `#444C56` | |
| 74 | | Luxury / premium | Warm black `#1A1208`, deep bronze `#4A3820` | |
| 75 | |
| 76 | **Rule:** choose a color that a thoughtful designer would select for this specific document — not the type's default. Muted, desaturated tones work best; avoid vivid primaries. When in doubt, go darker and more neutral. |
| 77 | |
| 78 | **content.json block types:** |
| 79 | |
| 80 | | Block | Us |