open-press Deploy
open-press deploy owns the public-release gate. Use it only when the user asks to configure, inspect, dry-run, or publish an open-press document.
Responsibilities
- Inspect deploy config in
openpress/settings.jsonunder the"deploy"field. - Check target adapter, staging source, project name, and confirmation settings.
- Run deploy preflight and dry runs.
- Keep secrets out of source files.
- Require explicit confirmation before publishing.
- Report the public URL and, when included, the PDF URL after successful deploy.
Boundaries
openpressowns generic CLI usage, non-deploy validation, local review, and the source/generated boundary.openpress-create-pagesowns page artifact content and visual readiness.openpress-create-slideowns slide deck content and visual readiness.- This skill owns public target confirmation and deploy execution.
Public Deploy Rule
Never publish without a clear confirmation that names the target project.
Good confirmation shape:
This will publish the current open-press build to Cloudflare Pages project `<projectName>` from `<deploy.source>`.
Do you want me to deploy now?
Preflight
Before real deploy, run the commands that prove the output is ready:
npm run build # validates + renders dist-react/
Also scan public-facing source for unfinished markers:
rg "\\[TODO:|\\[FIX:|\\[DRAFT:" "press/*/chapters" press/design.md
PDF Size Limit
Cloudflare Pages rejects any single file larger than 25 MB. A multi-press or image-heavy PDF commonly exceeds this limit.
Unless the user explicitly asks to publish the PDF, deploy without it:
npm run openpress:deploy -- --confirm --no-pdf
--no-pdf skips PDF generation and excludes it from the deploy source entirely.
If the user wants to check the PDF size first:
npm run openpress:pdf
du -sh .deploy/**/*.pdf 2>/dev/null
If the PDF is over 25 MB and the user still wants it publicly hosted, recommend
a separate host (Cloudflare R2, S3, etc.). OpenPress does not currently expose
an authored external-PDF URL field, so do not invent one in
openpress/settings.json; report the separate URL in the delivery handoff.
Deploy Commands
Dry run:
npm run openpress:deploy:dry-run -- --no-pdf
Publish after explicit confirmation:
npm run openpress:deploy -- --confirm --no-pdf
Remove --no-pdf only when the user explicitly includes the PDF in the
confirmed publication target.
When To Read References
- Read
references/cloudflare-pages.mdwhen creating or repairing Cloudflare Pages config, project setup, Wrangler auth expectations, or UI deploy-button behavior.