本文へ移動
cccskills
無料GitHub で公開

minimax-pdf

Create, fill, or reformat print-ready PDFs with strong visual page fidelity.

インストール方法を見る

含まれるファイル(12)

  • SKILL.md10.5 KB
  • design/design.md16.8 KB
  • README.md8.3 KB
  • scripts/cover.py46.9 KB
  • scripts/fill_inspect.py6.3 KB
  • scripts/fill_write.py8.3 KB
  • scripts/make.sh19.1 KB
  • scripts/merge.py3.7 KB
  • scripts/palette.py19.2 KB
  • scripts/reformat_parse.py13.0 KB
  • scripts/render_body.py39.7 KB
  • scripts/render_cover.js3.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

minimax-pdf

Three tasks. One skill.

Routing Boundary

Use this skill for PDF output, final non-editable deliverables, PDF form filling, print-ready documents, or tasks where visual page fidelity is the deliverable. Use minimax-docx when the user needs editable Word/DOCX output, minimax-xlsx for spreadsheets/formulas/workbooks, and pptx-generator for slides.

TriggerUse this skill?Why
"Make a polished client-ready PDF"YesFinal PDF/page design
"Fill this PDF form"YesPDF field workflow
"Create an editable Word contract"NoRoute to minimax-docx
"Format an Excel workbook"NoRoute to minimax-xlsx

Read design/design.md before any CREATE or REFORMAT work.


Route table

User intentRouteScripts used
Generate a new PDF from scratchCREATEpalette.py → cover.py → render_cover.js → render_body.py → merge.py
Fill / complete form fields in an existing PDFFILLfill_inspect.py → fill_write.py
Reformat / re-style an existing documentREFORMATreformat_parse.py → then full CREATE pipeline

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.

Route validation gates

  1. Classify the route: choose CREATE, FILL, or REFORMAT from the table above before running scripts.
  2. Validate inputs: confirm source files exist, output path is writable, and route-specific required values are present.
  3. Run the route pipeline: use only the scripts for the selected route; do not mix FILL with CREATE/REFORMAT unless the user explicitly asks for both.
  4. Verify route evidence: inspect script output and the resulting PDF before claiming success.

🔴 CHECKPOINT / 🛑 STOP: If the task may alter an existing PDF's visual layout, field positions, page count, signatures, or print-readiness, pause and confirm whether fidelity or content transformation is the priority.

Failure recovery

Trigger conditionFirst responseIf still failing
Route is ambiguousAsk whether there is an existing source document or fillable PDFStop; do not invent a route
make.sh check reports missing toolsRun the documented make.sh fix only with explicit user approval and only if allowed in the environmentReport missing dependency and exact failing tool
CREATE output has overflow, clipped text, or broken chartsAdjust content blocks, page breaks, or chart/table sizing and rebuildReport affected pages/blocks; do not claim print-ready
FILL field name/value is rejectedRe-run fill_inspect.py and use exact field names/choicesAsk for corrected values; do not guess field mappings
REFORMAT loses structure or imagesPrefer a simpler content.json mapping and preserve essential orderAsk whether to prioritize visual match or semantic cleanup

Do not do this

  • Do not recreate a fillable PDF from scratch when the user asked to fill fields; preserve the original layout.
  • Do not change page size, margins, fonts, form field positions, or signatures during FILL.
  • Do not claim visual fidelity from script success alone; inspect the rendered PDF.
  • Do not use vivid default colors or decorative effects that conflict with the document's audience.
  • Do not overwrite the user's source PDF; always write to a separate output path.

Route A: CREATE

Full pipeline — content → design tokens → cover → body → merged PDF.

bash scripts/make.sh run \
  --title "Q3 Strategy Review" --type proposal \
  --author "Strategy Team" --date "October 2025" \
  --accent "#2D5F8A" \
  --content content.json --out report.pdf

Doc types: report · proposal · resume · portfolio · academic · general · minimal · stripe · diagonal · frame · editorial · magazine · darkroom · terminal · poster

TypeCover patternVisual identity
reportfullbleedDark bg, dot grid, Playfair Display
proposalsplitLeft panel + right geometric, Syne
resumetypographicOversized first-word, DM Serif Display
portfolioatmosphericNear-black, radial glow, Fraunces
academictypographicLight bg, classical serif, EB Garamond
generalfullbleedDark slate, Outfit
minimalminimalWhite + single 8px accent bar, Cormorant Garamond
stripestripe3 bold horizontal color bands, Barlow Condensed
diagonaldiagonalSVG angled cut, dark/light halves, Montserrat
frameframeInset border, corner ornaments, Cormorant
editorialeditorialGhost letter, all-caps title, Bebas Neue
magazinemagazineWarm cream bg, centered stack, hero image, Playfair Display
darkroomdarkroomNavy bg, centered stack, grayscale image, Playfair Display
terminalterminalNear-black, grid lines, monospace, neon green
posterposterWhite bg, thick sidebar, oversized title, Barlow Condensed

Cover extras (inject into tokens via --abstract, --cover-image):

  • --abstract "text" — abstract text block on the cover (magazine/darkroom)
  • --cover-image "url" — hero image URL/path (magazine, darkroom, poster)

Color overrides — always choose these based on document content:

  • --accent "#HEX" — override the accent color; accent_lt is auto-derived by lightening toward white
  • --cover-bg "#HEX" — override the cover background color

Accent color selection guidance:

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.

ContextSuggested accent range
Legal / compliance / financeDeep navy #1C3A5E, charcoal #2E3440, slate #3D4C5E
Healthcare / medicalTeal-green #2A6B5A, cool green #3A7D6A
Technology / engineeringSteel blue #2D5F8A, indigo #3D4F8A
Environmental / sustainabilityForest #2E5E3A, olive #4A5E2A
Creative / arts / cultureBurgundy #6B2A35, plum #5A2A6B, terracotta #8A3A2A
Academic / researchDeep teal #2A5A6B, library blue #2A4A6B
Corporate / neutralSlate #3D4A5A, graphite #444C56
Luxury / premiumWarm black #1A1208, deep bronze #4A3820

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.

content.json block types:

BlockUsageKey fields
h1Section heading + accent ruletext
h2Subsection headingtext
h3Sub-subsection (bold)text
bodyJustified paragraph; supports <b> <i> markuptext
bulletUnordered list item (• prefix)text
numberedOrdered list item — counter auto-resets on non-numbered blockstext
calloutHighlighted insight box with accent left bartext
tableData table — accent header, alternating row tintsheaders, rows, col_widths?, caption?
imageEmbedded image scaled to column widthpath/src, caption?
figureImage with auto-numbered "Figure N:" captionpath/src, caption?
codeMonospace code block with accent left bordertext, language?
mathDisplay math — LaTeX syntax via matplotlib mathtexttext, label?, caption?
chartBar / line / pie chart rendered with matplotlibchart_type, labels, datasets, title?, x_label?, y_label?, caption?, figure?
flowchartProcess diagram with nodes + edges via matplotlibnodes, edges, caption?, figure?
bibliographyNumbered reference list with hanging indentitems [{id, text}], title?
dividerAccent-colored full-width rule—
captionSmall muted labeltext
pagebreakForce a new page—
spacerVertical whitespacept (default 12)

chart / flowchart schemas:

{"type":"chart","chart_type":"bar","labels":["Q1","Q2","Q3","Q4"],
 "datasets":[{"label":"Revenue","values":[120,145,132,178]}],"caption":"Q results"}

{"type":"flowchart",
 "nodes":[{"id":"s","label":"Start","shape":"oval"},
          {"id":"p","label":"Process","shape":"rect"},
          {"id":"d","label":"Valid?","shape":"diamond"},
          {"id":"e","label":"End","shape":"oval"}],
 "edges":[{"from":"s","to":"p"},{"from":"p","to":"d"},
          {"from":"d","to":"e","label":"Yes"},{"from":"d","to":"p","label":"No"}]}

{"type":"bibliography","items":[
  {"id":"1","text":"Author (Year). Title. Publisher."}]}

Route B: FILL

Fill form fields in an existing PDF without altering layout or design.

# Step 1: inspect
python3 scripts/fill_inspect.py --input form.pdf

# Step 2: fill
python3 scripts/fill_write.py --input form.pdf --out filled.pdf \
  --values '{"FirstName": "Jane", "Agree": "true", "Country": "US"}'
Field typeValue format
textAny string
checkbox"true" or "false"
dropdownMust match a choice value from inspect output
radioMust match a radio value (often starts with /)

Always run fill_inspect.py first to get exact field names.


Route C: REFORMAT

Parse an existing document → content.json → CREATE pipeline.

bash scripts/make.sh reformat \
  --input source.md --title "My Report" --type report --out output.pdf

Supported input formats: .md .txt .pdf .json


Environment

bash scripts/make.sh check   # verify all deps
bash scripts/make.sh fix     # auto-install missing deps
bash scripts/make.sh demo    # build a sample PDF
ToolUsed byInstall
Python 3.9+all .py scriptssystem
reportlabrender_body.pypip install reportlab
pypdffill, merge, reformatpip install pypdf
Node.js 18+render_cover.jssystem
playwright + Chromiumrender_cover.jsnpm install -g playwright && npx playwright install chromium

Before claiming the PDF complete, fixed, passing, or verified, follow the canonical lifecycle/ordinary-task verification owner and cite the fresh build/form/visual evidence selected for that claim.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Review a single academic paper, preprint, DOI, arXiv link, or user-provided PDF/text with source-grounded critique. Use for paper summaries, methodology review, novelty checks, reproducibility concerns, or "review this paper" requests; do not use for multi-paper surveys, systematic literature reviews, citation management, or implementation from a paper.

日本語の概要は準備中です。原文の説明を表示しています。

Rosetears520/aili-workflows22026年9月27日 更新

AI regression scouting routing. Use when agents, prompts, skills, model/tool routing, harness fixtures, or generated-output expectations change and need regression scenarios; do not use for ordinary product-code regressions.

日本語の概要は準備中です。原文の説明を表示しています。

Rosetears520/aili-workflows22026年9月27日 更新

Run the AILI delivery lifecycle from natural-language IDEATE, DEFINE, BUILD, and SHIP intent or the equivalent slash shortcuts; use for idea shaping, spec/test definition, bounded BUILD package queues, review-repair closeout, or adapter routing without exposing internal stage commands.

日本語の概要は準備中です。原文の説明を表示しています。

Rosetears520/aili-workflows22026年9月27日 更新

Android native Kotlin/Compose app development, Material 3 UI, accessibility, and Gradle builds.

日本語の概要は準備中です。原文の説明を表示しています。

Rosetears520/aili-workflows22026年9月27日 更新

Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.

日本語の概要は準備中です。原文の説明を表示しています。

Rosetears520/aili-workflows22026年9月27日 更新

Route an explicitly requested independent/delegated browser QA assignment or durable E2E evidence need; do not trigger for direct Playwright/DOM/console/network inspection, ordinary UI implementation, backend-only work, or production-mutating flows.

日本語の概要は準備中です。原文の説明を表示しています。

Rosetears520/aili-workflows22026年9月27日 更新

Rosetears520 のスキルをすべて見る

このスキルの問題を報告する