Scholarflow report pdf
Skill zhoy0409-debug/scholarflow-skills/skills/scholarflow-report-pdf
ScholarFlow Skills by Zhoy: reusable Agent Skills for literature review, academic writing, figures, bioinformatics, and research deliverables.
npx -y skills add zhoy0409-debug/scholarflow-skills --skill scholarflow-report-pdfAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when a researcher needs Markdown files with Mermaid diagrams converted to PDF using local tools (mmdc, md-to-pdf, Puppeteer) with CSS styling and page numbers. Use when the user asks to export markdown to PDF, render Mermaid charts to PDF, or convert a .md file with diagrams to a printable document, or convert multiple Markdown files (one PDF per file, processed sequentially).
SKILL.md
9.6 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it
Local MD & Mermaid to PDF
Overview
Converts one or more Markdown files with Mermaid diagrams into PDF(s) using local mmdc and md-to-pdf. Each source file gets its own PDF (<basename>-export.pdf beside the source). All intermediate artifacts live in scholarflow-report-pdf-sandbox; only the final PDF(s) are written outside the sandbox. The sandbox is removed after each successful run.
Multiple files: process sequentially (one complete run at a time). Produce one PDF per source file. Do not merge PDFs unless the user explicitly asks.
When to Use
Use when
- The user asks to export Markdown to PDF
- The source file contains Mermaid diagram blocks
- The user wants styled PDF output with page numbers from local tools
Do not use when
- The file has no Mermaid diagrams and a simple MD--DF path is enough (still works, but heavier than necessary)
- The user wants cloud/API-based conversion instead of local binaries
- The user asks to modify the source Markdown (this skill only exports)
Inputs
- Source Markdown file path (with optional Mermaid
```mermaidblocks) style.cssfrom this skill folder (unless the user requests custom styling)- Local binaries
mmdcandmd-to-pdf, ornpx --yesfallback - Google Chrome or Chromium for Puppeteer (
executablePathwhen available)
Outputs
- PDF at
<source-dir>/<original-basename>-export.pdf-?only deliverable outside the sandbox - Multiple sources: one PDF per file (same
-export.pdfrule beside each source). List every absolute PDF path in the final reply - Merge: only when the user explicitly requests a single combined PDF (e.g. "merge", "combine"). Otherwise never merge
- Sandbox
scholarflow-report-pdf-sandboxremoved after each successful run (all intermediate artifacts deleted with it)
Constraints
- All artifacts go in the sandbox -?every file created during the run (
input.md,input.tmp.md,input.for-pdf.md,puppeteer-config.json, Puppeteer cache, Mermaid render outputs) must live insidescholarflow-report-pdf-sandbox. Only the final PDF is written outside the sandbox (viadestbeside the source file) - Use
style.cssfrom this skill folder unless the user asks for custom styling (read-only reference; do not copy into the project unless the user requests custom styling) - Page numbers via
md-to-pdffront matter:Page <span class="pageNumber"></span> of <span class="totalPages"></span> - Use a sandbox-local Puppeteer cache (
PUPPETEER_CACHE_DIRinside the sandbox); never depend on~/.cache/puppeteer - Prefer local binaries; use
npx --yesonly when a binary is missing - If Chrome or Chromium exists, pass
executablePathto Puppeteer - On Puppeteer/cache failures, retry only with the documented Chromium fallback; do not invent launch flags
- Do not leave the sandbox directory after a successful run
- Multiple source files -?sequential only: run the full workflow (steps 1-?) for file A, wait until it finishes (PDF written, sandbox deleted), then start file B. Never launch parallel conversions, shared sandboxes, or concurrent
mmdc/md-to-pdf/ Puppeteer runs - Multiple source files -?no merge by default: each source becomes its own
<basename>-export.pdf. Do not concatenate Markdown sources, merge PDFs, or produce one combined output unless the user explicitly asks
Steps
1. Create sandbox
- Create
scholarflow-report-pdf-sandboxnext to the source file - All workflow artifacts stay inside this directory -?do not write intermediate files next to the source or elsewhere
- Copy the source Markdown to
scholarflow-report-pdf-sandbox/input.md - Set
PUPPETEER_CACHE_DIRto a path inside the sandbox (e.g.scholarflow-report-pdf-sandbox/.puppeteer-cache)
2. Render Mermaid
- Before running
mmdc, if Google Chrome or Chromium is available, writescholarflow-report-pdf-sandbox/puppeteer-config.jsonwith systemexecutablePathandargs: ["--no-sandbox"]. This is required whenPUPPETEER_CACHE_DIRpoints to the empty sandbox cache -?without it,mmdccannot find Chrome and diagrams will not render - Run
mmdc -p puppeteer-config.json -i input.md -o input.tmp.mdwhen the config exists; otherwisemmdc -i input.md -o input.tmp.md - If
mmdcemits images or other sidecar files, they must remain inside the sandbox - If
mmdcstill fails on Puppeteer/cache, retry only with a correctedexecutablePathinpuppeteer-config.json-?do not skip to PDF conversion - Verify
input.tmp.mdexists and no longer contains raw```mermaidblocks (expectimage references and sidecar SVG/PNG files)
3. Build PDF input
Write scholarflow-report-pdf-sandbox/input.for-pdf.md with YAML front matter:
dest:<source-dir>/<original-basename>-export.pdf-?the only output path outside the sandboxstylesheet: absolute path to this skill--style.csspdf_options.displayHeaderFooter:truepdf_options.headerTemplate:'<div></div>'pdf_options.footerTemplate: centered page numbers only- Body: contents of
input.tmp.md
4. Convert to PDF
- Build
--launch-optionsJSON (executablePathwhen Chrome/Chromium is available;args: ["--no-sandbox"]) - Run
md-to-pdf --basedir scholarflow-report-pdf-sandbox --launch-options '<json>' input.for-pdf.mdfrom inside the sandbox (ornpx --yes [email protected] ...)
5. Clean up and report
- Delete
scholarflow-report-pdf-sandbox - Reply with the final PDF path (or all PDF paths when multiple sources were converted)
Multiple files
When the user provides more than one Markdown file:
- Confirm the file list (paths and order if order matters to the user)
- Queue: convert file 1 through step 5 completely before starting file 2
- One PDF per file: each output is
<source-dir>/<basename>-export.pdfbeside its source - No merge unless the user explicitly requested a single combined PDF -?if they did, use a separate merge step after all individual PDFs exist (outside this skill's default path)
- Final reply lists every generated PDF path
Rationalization Traps
| Rationalization | Reality |
|---|---|
| Skip Mermaid render for MD without diagrams | mmdc is still required when diagrams exist; inspect the file first |
Run mmdc without puppeteer-config.json when sandbox cache is empty | mmdc will fail to find Chrome; write config with system executablePath before the first run |
Skip to PDF when mmdc fails | Never convert without input.tmp.md; raw ```mermaid blocks do not render in PDF |
Reuse ~/.cache/puppeteer | Breaks isolation and causes cross-project cache conflicts |
| Invent Puppeteer flags on failure | Only the documented Chromium executablePath retry is allowed |
| Keep sandbox for debugging | Remove the sandbox after success; keep it only while diagnosing a local render failure |
| Overwrite the source PDF name | Use the stable -export.pdf suffix to avoid clobbering prior runs |
| Write intermediates beside the source file | Only the final PDF leaves the sandbox; everything else stays in scholarflow-report-pdf-sandbox |
| Run multiple conversions in parallel to save time | Sequential queue only -?parallel runs conflict on Puppeteer, cache, and sandbox paths |
| Merge multiple files into one PDF by default | One PDF per source; merge only when the user explicitly asks |
| Reuse one sandbox for several source files at once | Fresh sandbox per file; complete and delete before the next file |
Red Flags
- Intermediate files (
input.md,input.tmp.md,input.for-pdf.md,puppeteer-config.json, cache) exist outsidescholarflow-report-pdf-sandbox - PDF missing or smaller than ~1 KB after conversion
input.tmp.mdwas not produced bymmdcinput.tmp.mdstill contains```mermaidblocks (diagrams were not rendered)- Sandbox directory still exists after a successful run
stylesheetpoints outside this skill folder without user requestnpxused when globalmmdc/md-to-pdfbinaries are already available- Multiple files converted in parallel or from a shared sandbox
- A single merged PDF produced without an explicit user request to merge/combine
Verification
- All intermediate artifacts are inside
scholarflow-report-pdf-sandbox(no stray files beside the source) -
scholarflow-report-pdf-sandbox/input.tmp.mdexists aftermmdcand has no raw```mermaidblocks -
scholarflow-report-pdf-sandbox/input.for-pdf.mdhasdest,stylesheet, and footer page-number template -
<original-basename>-export.pdfexists beside the source file - PDF size is greater than 1 KB
-
scholarflow-report-pdf-sandboxwas deleted - User received the absolute PDF path
- Multiple files: each source has its own
-export.pdf; conversions ran sequentially (not in parallel) - Multiple files: no merged/combined PDF unless the user explicitly requested it
What ships with it: 3 files
2.9 KB alongside SKILL.md
agents/
- openai.yaml273 B
- .gitignore14 B
- style.css2.6 KB