Skip to content
Back to skills

Visibly Seo Pdf Build

ASecurity

Build a clean, brand-compliant PDF from an analysis or offer. Use when the user asks to generate, render, or export a client-ready PDF presentation or document with their corporate identity — cover page, header/footer, section bars, tables, ROI boxes.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added August 30, 2026
ai-agentspythongo

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned August 30, 2026

npx -y skills add AntonioBlago/claude-code-seo-starter --skill visibly-seo-pdf-build --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Visibly Seo Pdf Build?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Visibly Seo Pdf Build
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/antonioblago-visibly-seo-pdf-build/badge)](https://www.skillsdirectory.com/skills/antonioblago-visibly-seo-pdf-build)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: visibly-seo-pdf-build
description: Build a clean, brand-compliant PDF from an analysis or offer. Use when the user asks to generate, render, or export a client-ready PDF presentation or document with their corporate identity — cover page, header/footer, section bars, tables, ROI boxes.
---

# CI-Compliant PDF Build

Render a **brand-compliant, client-ready PDF** with fpdf2 (or a PDF MCP if one is
connected — prefer it when available).

## Step 1 — Start from the Python template

Import the reusable `CIPDF` class from
[`claude_tools/ci_pdf.py`](../../../claude_tools/ci_pdf.py) — it already implements cover,
header/footer, section bars, body, bullets, wrapping tables and KPI/ROI boxes, and pulls
all brand colours/fonts from [`templates/ci/brand.py`](../../../templates/ci/brand.py)
(one source of truth). Don't reinvent the layout or re-declare the CI.

```python
from claude_tools.ci_pdf import CIPDF
pdf = CIPDF()
pdf.cover("SEO Strategy & Offer", "Example GmbH", "2026-06-13")
pdf.add_page(); pdf.section("1. Executive Summary"); pdf.body("…")
pdf.kpi_box("ROI (realistic)", "233 %", "good")
pdf.output("clients/<domain>/<date>_Offer/offer.pdf")
```

Run via the venv: `.\claude_tools_venv\Scripts\python.exe your_build_script.py`
(setup once with `.\claude_tools\setup.ps1`). `templates/pdf_example.py` remains a
standalone, zero-config reference if you want a copy to hack on without the package.

## Step 2 — Register fonts correctly

`CIPDF` registers the brand fonts for you (always with `uni=True`, so `ä ö ü ß é ñ`
render) **if** `templates/ci/brand.py` points `FONTS` at real `.ttf` files that exist —
otherwise it falls back to Helvetica so the build never crashes. So the one-time job is:
drop the brand TTFs in `fonts/` and set their paths in `brand.py`. Headings and body
should use distinct brand fonts.

If you build a PDF outside `CIPDF`, register fonts the same way — always `uni=True`:

```python
pdf.add_font("Heading", "",  f"{FONT_DIR}/Heading-Regular.ttf", uni=True)
pdf.add_font("Heading", "B", f"{FONT_DIR}/Heading-Bold.ttf",    uni=True)
pdf.add_font("Body",    "",  f"{FONT_DIR}/Body-Regular.ttf",    uni=True)
```

## Step 3 — Apply the CI

- Cover: dark background, accent bar, white title, brand + client + date + contact.
- Header/footer: dark bar + accent line; brand left, contact centred.
- Section titles: accent bar + bold heading font.
- Tables: accent header row (white text), alternating white / light-gray body rows.
- KPI / ROI boxes: colour-coded (good / warning / critical) — avoid pure red-green only;
  add a second cue so it survives grayscale and colour-blind readers.

## Step 4 — Standard structure

Cover → table of contents → content sections → investment / ROI / next steps → contact
footer.

## Step 5 — Typography & correctness rules

- **Real accented characters**, never ASCII (`für`, not `fuer`).
- **Real symbols**: `® ™ ©`, never `(R)` / `(TM)` / `(C)`.
- **Break wide tables**: when a cell exceeds ~50 characters, switch from a simple table
  row to manual `multi_cell` layout so the text wraps and stays readable.

## Step 6 — Verify before shipping

Open the rendered PDF and check cover, fonts, accents, table wrapping, and page breaks.
Never hand over a PDF you haven't looked at.

## Output

A4 PDF in the client's task folder. Slash command: `/visibly-seo-pdf-build <script.py>`.
Best practices: `docs/best-practices.md`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.