dieter-medium/bidi2pdf/pdf-recipe
Claude Code and agent skill by dieter-medium/bidi2pdf
- community
Checking that the SKILL.md file is still in the repository.
This skill should be used when a PDF needs more than one render call - waiting for an element, clicking something open, running a script, switching to screen view or a viewport first - or when a PDF must be checked (page count, text in it, no failed requests). Writes and validates a bidi2pdf recipe YAML without a browser, then runs it.
Install
npx vskill@latest install dieter-medium/bidi2pdf/pdf-recipeSKILL.md
Write and run a bidi2pdf recipe
A recipe is a rendering contract: the steps a page needs before it is printed, and what the PDF must be like afterwards. It is not a general automation script. The source of truth for its shape is bidi2pdf schema recipe; read it once before writing one.
Does not: log in through forms, follow links across pages, or extract data. One page, prepared and printed. For a plain page without steps, render is enough (the render-pdf skill).
Ground rules
- bidi2pdf is the renderer. If it fails, report its
error.code,error.hintand exit code;
never make the PDF or screenshot another way (Chrome's own print-to-PDF, another PDF engine).
- Install nothing unasked. Name what is missing and suggest a way (the
render-pdfskill's
preflight); run nothing that changes the system without the user's yes.
- bidi2pdf's results first. Read its
--jsonresult instead of inspecting the PDF with other
tools.
1. Write it
- source: exactly one of
url,file,stdin. - actions run in order, after the page has loaded:
wait_fortakes exactly one ofselector,paged_js: true(a Paged.js page exists) orscript
(a JS expression that becomes truthy), plus an optional timeout (default 10 s).
click,evaluate(a script, optionallyassign:its result),inject_script/inject_style
(content: or url:).
set_viewport(width,height, optionaldevice_pixel_ratio).wait_network_idle(timeout).emulate_media(media: screen|print,color_scheme: light|dark,reduced_motion) - from the
0.1.23 or later.
- assert runs after printing. Page checks:
selector_exists,text_present,
no_console_errors, no_network_failures, fonts_loaded. PDF checks: page_count, pdf_text_present, pdf_not_blank - these need the pdf-reader gem.
- output needs at least one of
pdf,manifest,screenshot.
Two rules people trip over:
no_console_errors,no_network_failures,fonts_loadedandpdf_not_blankare presence-only:
write them as true. false is rejected - leave the assertion out instead.
no_network_failuresfails on any failed request, a missing favicon or a 404 image included.
Check bidi2pdf diagnose --json first and fix the page, or leave that assertion out.
2. Validate without a browser
This checks the shape, every action and assertion name and every value, and that pdf-reader is there when a PDF assertion needs it - no browser starts. Iterate until ok is true; on failure error.details.path names the step (assert[0].no_console_errors).
3. Run it
The result lists every action and assertion with its own ok. A failed step stops the run with error.code PAGE_NOT_AS_EXPECTED (or SELECTOR_NOT_FOUND for a wait_for that never matched), exit code 4, and error.details says which check failed and why (for no_network_failures the failed requests). Exit 2 is a recipe the validator refused; exit 3 is the browser or the page not loading. --json-stream reports progress on stderr while it runs.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingclaude-plugin/skills/pdf-recipe/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/dieter-medium/bidi2pdf/pdf-recipe)