From sop-writer
Concatenate a configured list of SOPs and flowcharts into a single printable PDF binder, with optional cover page, table of contents, and consistent page numbering across the bundle. The set of documents and binder metadata (title, cover image, footer text) is defined in `binders.yaml` in the project root. Use when the user wants to produce a printed binder — e.g. "household emergency binder", "kitchen procedures", "first-aid kit reference".
npx claudepluginhub danielrosehill/claude-code-plugins --plugin sop-writerThis skill uses the workspace's default tool permissions.
Assemble a multi-document PDF binder from a project's SOPs and flowcharts.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Assemble a multi-document PDF binder from a project's SOPs and flowcharts.
binders.yamlThe project must have a binders.yaml at its root. Example shape:
binders:
household-emergency:
title: "Household Emergency Binder"
subtitle: "Jerusalem Apartment — Revision 2"
cover: covers/emergency-cover.png # optional
footer: "Household Emergency Binder · Revision 2 · 2026"
toc: true # generate table of contents
page_numbers: true
output: output/household-emergency-binder.pdf
documents:
- sops/rocket-missile-alert-response.typ
- sops/preparing-home-for-emergencies.typ
- sops/choosing-protected-space.typ
- flowcharts/which-shelter.typ
- checklists/emergency-equipment.typ
first-aid-kit:
title: "First Aid Quick Reference"
output: output/first-aid-kit.pdf
page_numbers: true
documents:
- sops/first-aid-choking-adult.typ
- sops/first-aid-burns.typ
- sops/first-aid-cpr-adjunct.typ
If no binders.yaml exists, offer to create one for the user with a starter binder based on the SOPs already in the project.
binders.yaml to build. If only one binder is defined, use it without asking.binders.yaml and select the named binder.documents::
.typ file, ensure its PDF is up to date (compile if the PDF is missing or older than the source)..typ embeds a .mmd/.d2, render the SVG first (delegate to compile's logic).toc: true, generate a TOC page. Approach: build a small Typst doc that lists each document title with its starting page number, compile it to PDF, and prepend.cover: is set, build a cover page (Typst with title, subtitle, cover image) and prepend it.qpdf --empty --pages cover.pdf toc.pdf doc1.pdf doc2.pdf ... -- <output>
(or pdfunite as fallback)page_numbers: true, stamp consistent page numbers across the bundle. Approach: use qpdf overlay with a Typst-generated page-number layer, or re-render each component with a footer that knows its starting offset.output: path. Report file size and page count (pdfinfo <output> | grep Pages).command -v qpdf (or pdfunite from poppler-utils)command -v typstcommand -v pdfinfo (poppler-utils — for the final report){page} / {total} from a Typst-generated overlay. Document this approach in code comments where it's implemented.