Skill0 starsChanged 7 months agoMITView on GitHub
Use this skill when visual quality and design identity matter for a PDF. CREATE: make a PDF, generate a report, write a proposal, create a resume. FILL: fill in the form, fill out this PDF. REFORMAT: reformat this document, apply our style, convert Markdown/text to PDF. Triggers: PDF, pdf, 生成PDF, PDF报告, 简历, 提案, 排版.
- Installs packages
195 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- CloudChef/atlasclaw-providerstheir own version, first seen Nov 8, 2026
- holon-run/holontheir own version, first seen Nov 8, 2026
- rvdbreemen/OTGW-firmwaretheir own version, first seen Nov 8, 2026
- EvanLee2004/finance-skillstheir own version, first seen Nov 8, 2026
- codewhale-hq/codewhale-plugin-marketplacetheir own version, first seen Nov 8, 2026
- insight68/Skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use gift-evaluator, Podcast Generate and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
dav-niu474Skillgift-evaluator
The PRIMARY tool for Spring Festival gift analysis and social interaction generation. Use this skill when users upload photos of gifts (alcohol, tea, supplements, etc.) to inquire about their value, authenticity, or how to respond socially. Integrates visual perception, market valuation, and HTML card generation.
Also in 5 projects that use this
dav-niu474SkillPodcast Generate
Generate podcast episodes from user-provided content or by searching the web for specified topics. If user uploads a text file/article, creates a dual-host dialogue podcast (or single-host upon request). If no content is provided, searches the web for information about the user-specified topic and generates a podcast. Duration scales with content size (3-20 minutes, ~240 chars/min). Uses z-ai-web-dev-sdk for LLM script generation and TTS audio synthesis. Outputs both a podcast script (Markdown) and a complete audio file (WAV).
Also in 5 projects that use this
huang-x-hSkillVideo Generation
Implement AI-powered video generation capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to generate videos from text prompts or images, create video content programmatically, or build applications that produce video outputs. Supports asynchronous task management with status polling and result retrieval.
Also in 6 projects that use this
huang-x-hSkillVLM
Implement vision-based AI chat capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to analyze images, describe visual content, or create applications that combine image understanding with conversational AI. Supports image URLs and base64 encoded images for multimodal interactions.
Also in 6 projects that use this
Liang-MHSkillstock_analysis
获取 A 股、基金和港股的实时行情和技术分析数据
Also in 5 projects that use this
OpenAISkillmigrate-to-codex
Migrate supported instruction files, skills, agents, and MCP config into Codex project and global files.
Also in 5 projects that use this
- +1 more from huang-x-h
- +3 more from dav-niu474
Other versions195 projects use a version of this.
Word for word · 1
- jinsi-ai/agent-skills★ 0100% same
Edited · 1
- rongxinzy/RongxinAI★ 16273% same
Wrote their own version · 193
- NousResearch/hermes-agent★ 262ksame name
- anthropics/skills★ 189ksame name
- shareAI-lab/analysis_claude_code★ 80ksame name
- shareAI-lab/learn-claude-code★ 80ksame name
- openai/skills★ 27ksame name
- spinabot/brigade★ 11ksame name
- netease-youdao/LobsterAI★ 6.2ksame name
- OpenBMB/PilotDeck★ 5ksame name
- nextlevelbuilder/goclaw★ 3.7ksame name
- awslabs/agentcore-samples★ 3.5ksame name
183 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository33 other files it gives its agents.
- algorithmic-artSkill
- amap-mapsSkill
- bilibili-mcpSkill
- brand-guidelinesSkill
- canvas-designSkill
- agent-browserSkill
- docxSkill
- pptxSkill
- xlsxSkill
- doc-coauthoringSkill
- docxSkill
- excalidraw-diagram-generatorSkill
- feishuSkill
- frontend-designSkill
- image-generationSkill
- internal-commsSkill
- mcp-builderSkill
- multimodal-understandingSkill
- multi-search-cnSkill
- pdfSkill
- planning-with-filesSkill
- pptxSkill
- read-wechat-articleSkill
- research-proposalSkill
- skill-creatorSkill
- slack-gif-creatorSkill
- smart-web-scraperSkill
- theme-factorySkill
- video-generationSkill
- webapp-testingSkill
- web-artifacts-builderSkill
- wechat-mp-writerSkill
- xlsxSkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.
0
Common
Most of the 180 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 101
Rule: when in doubt between CREATE and REFORMAT, ask whether the user has an existing document to start from.
- Very specific: line 233
Always run fill_inspect.py first to get exact field names.
“Common” is measured: kept by at least 6 in 10 of the 180 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
输出规则(必读)
- 只保存到本地:所有生成或编辑的文件保存到用户指定路径或当前工作目录,操作完成后告知用户完整的文件路径。
- 禁止向对话发送文件内容:不要将文件内容(文本、二进制、base64 等任何形式)粘贴或发送到用户的聊天/会话中。大文件会导致整个 session 卡死。
- 如需预览:只在对话中展示简短的摘要信息(如文档标题、页数等元信息),不要展示完整内容。
工具调用纪律
- 禁止读取源代码文件(
.py/.js/.sh)。所有操作通过 Quick Start 命令完成。 - 禁止手动编辑中间文件(
tokens.json、XML 等)。如需自定义参数,使用 CLI 的--flag。 - 命令失败时:只看错误信息的最后几行,不要去读源码调试。常见错误见下方 Troubleshooting。
- reference 文件:
design/design.md仅在需要自定义设计风格(字体、颜色、布局)时阅读,常规使用无需阅读。 - 依赖安装:只运行一次环境准备脚本,不要手动重复
pip install或npx playwright install。 - Windows 注意:使用
python(不是python3),使用python scripts/run_pipeline.py代替bash scripts/make.sh run。
环境准备(首次使用 必须自动执行,无需询问用户)
读完本 SKILL.md 后,立即静默运行依赖安装脚本。不要问用户是否需要安装。
# macOS / Linux / WSL
bash scripts/make.sh fix
# Windows(PowerShell)
powershell -ExecutionPolicy Bypass -File scripts/setup_deps.ps1无需单独运行 check,也无需手动 pip install 或 npm install。脚本已包含全部依赖的检测与安装。
平台检测: 如果 bash 命令不可用(Windows CMD),改用 python scripts/run_pipeline.py(见 Quick Start)。Windows 上 Python 命令是 python(不是 python3)。
minimax-pdf
Three tasks. One skill.
Quick Start
创建 PDF:
# macOS / Linux / WSL
bash scripts/make.sh run \
--title "Report Title" --type report \
--author "Author" --accent "#2D5F8A" \
--content content.json --out report.pdf
# Windows(CMD 或 PowerShell)
python scripts/run_pipeline.py --title "Report Title" --type report --author "Author" --accent "#2D5F8A" --content content.json --out report.pdf填写 PDF 表单:
# macOS / Linux
python3 scripts/fill_inspect.py --input form.pdf
python3 scripts/fill_write.py --input form.pdf --out filled.pdf \
--values '{"Name": "张三", "Date": "2025-04"}'
# Windows
python scripts/fill_inspect.py --input form.pdf
python scripts/fill_write.py --input form.pdf --out filled.pdf --values "{\"Name\": \"张三\", \"Date\": \"2025-04\"}"重排现有文档:
# macOS / Linux
bash scripts/make.sh reformat \
--input source.md --title "标题" --type report --out output.pdf
# Windows — 先用 reformat_parse.py 提取内容,再走 run_pipeline.py
python scripts/reformat_parse.py --input source.md --out content.json
python scripts/run_pipeline.py --title "标题" --type report --content content.json --out output.pdf文档类型速查: report · proposal · resume · portfolio · academic · general · minimal · stripe · diagonal · frame · editorial · magazine · darkroom · terminal · poster
CJK 中文支持: 自动检测。当 content.json 包含中文/日文/韩文时,自动注册系统 CJK 字体并切换为左对齐排版。无需手动配置字体路径。
Route table
| User intent | Route | Scripts used |
| Generate a new PDF from scratch | CREATE | palette.py → cover.py → render_cover.js → render_body.py → merge.py |
| Fill / complete form fields in an existing PDF | FILL | fill_inspect.py → fill_write.py |
| Reformat / re-style an existing document | REFORMAT | reformat_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 A: CREATE
Full pipeline — content → design tokens → cover → body → merged PDF.
# macOS / Linux / WSL
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
# Windows
python scripts/run_pipeline.py --title "Q3 Strategy Review" --type proposal --author "Strategy Team" --date "October 2025" --accent "#2D5F8A" --content content.json --out report.pdfDoc types: report · proposal · resume · portfolio · academic · general · minimal · stripe · diagonal · frame · editorial · magazine · darkroom · terminal · poster
| Type | Cover pattern | Visual identity |
report | fullbleed | Dark bg, dot grid, Playfair Display |
proposal | split | Left panel + right geometric, Syne |
resume | typographic | Oversized first-word, DM Serif Display |
portfolio | atmospheric | Near-black, radial glow, Fraunces |
academic | typographic | Light bg, classical serif, EB Garamond |
general | fullbleed | Dark slate, Outfit |
minimal | minimal | White + single 8px accent bar, Cormorant Garamond |
stripe | stripe | 3 bold horizontal color bands, Barlow Condensed |
diagonal | diagonal | SVG angled cut, dark/light halves, Montserrat |
frame | frame | Inset border, corner ornaments, Cormorant |
editorial | editorial | Ghost letter, all-caps title, Bebas Neue |
magazine | magazine | Warm cream bg, centered stack, hero image, Playfair Display |
darkroom | darkroom | Navy bg, centered stack, grayscale image, Playfair Display |
terminal | terminal | Near-black, grid lines, monospace, neon green |
poster | poster | White 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_ltis 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.
| Context | Suggested accent range |
| Legal / compliance / finance | Deep navy #1C3A5E, charcoal #2E3440, slate #3D4C5E |
| Healthcare / medical | Teal-green #2A6B5A, cool green #3A7D6A |
| Technology / engineering | Steel blue #2D5F8A, indigo #3D4F8A |
| Environmental / sustainability | Forest #2E5E3A, olive #4A5E2A |
| Creative / arts / culture | Burgundy #6B2A35, plum #5A2A6B, terracotta #8A3A2A |
| Academic / research | Deep teal #2A5A6B, library blue #2A4A6B |
| Corporate / neutral | Slate #3D4A5A, graphite #444C56 |
| Luxury / premium | Warm 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 格式: 必须是 JSON 数组([...]),每个元素是一个 block 对象。不要写成单个对象 {}。示例:[{"type":"h1","text":"标题"}, {"type":"body","text":"正文段落"}]
content.json block types:
| Block | Usage | Key fields |
h1 | Section heading + accent rule | text |
h2 | Subsection heading | text |
h3 | Sub-subsection (bold) | text |
body | Justified paragraph; supports <b> <i> markup | text |
bullet | Unordered list item (• prefix) | text |
numbered | Ordered list item — counter auto-resets on non-numbered blocks | text |
callout | Highlighted insight box with accent left bar | text |
table | Data table — accent header, alternating row tints | headers, rows, col_widths?, caption? |
image | Embedded image scaled to column width | path/src, caption? |
figure | Image with auto-numbered "Figure N:" caption | path/src, caption? |
code | Monospace code block with accent left border | text, language? |
math | Display math — LaTeX syntax via matplotlib mathtext | text, label?, caption? |
chart | Bar / line / pie chart rendered with matplotlib | chart_type, labels, datasets, title?, x_label?, y_label?, caption?, figure? |
flowchart | Process diagram with nodes + edges via matplotlib | nodes, edges, caption?, figure? |
bibliography | Numbered reference list with hanging indent | items [{id, text}], title? |
divider | Accent-colored full-width rule | — |
caption | Small muted label | text |
pagebreak | Force a new page | — |
spacer | Vertical whitespace | pt (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 (macOS: python3, Windows: python)
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"}'Windows 用户: 将上方 python3 替换为 python。
| Field type | Value format |
text | Any string |
checkbox | "true" or "false" |
dropdown | Must match a choice value from inspect output |
radio | Must 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.
# macOS / Linux / WSL
bash scripts/make.sh reformat \
--input source.md --title "My Report" --type report --out output.pdf
# Windows — 分两步
python scripts/reformat_parse.py --input source.md --out content.json
python scripts/run_pipeline.py --title "My Report" --type report --content content.json --out output.pdfSupported input formats: .md .txt .pdf .json
Environment
# macOS / Linux
bash scripts/make.sh check # verify all deps
bash scripts/make.sh fix # auto-install missing deps
# Windows
powershell -ExecutionPolicy Bypass -File scripts/setup_deps.ps1| Tool | Used by | Install |
| Python 3.9+ | all .py scripts | system(Windows 上命令为 python) |
reportlab | render_body.py | pip install reportlab |
pypdf | fill, merge, reformat | pip install pypdf |
| Node.js 18+ | render_cover.js | system |
playwright + Chromium | render_cover.js | npm install -g playwright && npx playwright install chromium |
Troubleshooting
| 问题 | 原因 | 修复 |
| 中文/日文/韩文显示为方块或乱码 | CJK 字体自动检测已内置,如仍出现说明系统无可用 CJK 字体 | macOS 通常自带 STHeiti,无需操作;Linux 运行 apt install fonts-noto-cjk |
TypeError: unsupported operand type(s) for | | Python 版本低于 3.9 | 升级 Python 至 3.9+;脚本已含 from __future__ import annotations 兼容 |
| Playwright / Chromium 报错 | Chromium 浏览器未安装 | 运行 npx playwright install chromium(环境准备脚本已包含) |
| content.json 格式错误 | content.json 不是 JSON 数组 | 确保文件是 [{...}, {...}] 数组格式,不是 {...} 对象 |
| 封面页空白 | Node.js 或 Playwright 未就绪 | 重新运行环境准备脚本 |
Windows 上 bash 不可用 | Windows 没有 bash | 使用 python scripts/run_pipeline.py 代替 bash scripts/make.sh run |
Windows 上 python3 不可用 | Windows Python 命令是 python | 将所有 python3 替换为 python |
/tmp/ 路径不存在 (Windows) | Windows 无 Unix 临时目录 | run_pipeline.py 自动使用系统临时目录,无需手动指定 |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

