mcpField
P
pro-report-builder

pro-report-builder

github.com/thatrebeccaraeDocuments187112 installsUpdated 24w ago
Repository

About pro-report-builder

pro-report-builder is a Claude skill for producing multi-page consulting reports in HTML and exporting them to PDF with Chrome headless. It includes report structures, reusable components, and customizable brand styling.

Key features

  1. 01Create multi-page report HTML
  2. 02Lay out reports with reusable components
  3. 03Customize brand colors and typography
  4. 04Export PDFs with Chrome headless
  5. 05Plan page content and prevent overflow

Use cases

  1. 01Create audit or assessment reports
  2. 02Prepare technical briefs and case studies
  3. 03Export HTML reports as PDFs

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/thatrebeccarae/claude-marketing --skill pro-report-builder

After installing, type/pro-report-builderin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

EXAMPLES.md
LICENSE
REFERENCE.md

Details

From the project README

Pro Report Builder

Polished consulting reports as standalone HTML. Export to PDF via Chrome headless.

Install

git clone https://github.com/thatrebeccarae/claude-marketing.git && cp -r claude-marketing/skills/pro-report-builder ~/.claude/skills/

Quick Reference

TaskApproach
Create report from scratchRead REFERENCE.md for CSS + HTML patterns
Add a new component typeCompose from existing components in REFERENCE.md
Export to PDFChrome headless --print-to-pdf (see Export section)
Customize brand tokensEdit CSS custom properties in :root block
When to Use This Skill vs pro-deck-builder
pro-report-builderpro-deck-builder
Format8.5x11" portrait pages16:9 landscape slides
Content flowMulti-page, flowing textSingle-slide compositions
ExportChrome headless --print-to-pdfPuppeteer
Use forAudit reports, assessments, written deliverablesPresentation decks, pitch slides

Before You Start

Step 1: Understand the Brief

Ask the user:

  1. What type of document? Audit report, assessment, technical brief, case study?
  2. How many pages roughly? Helps plan section flow and page distribution.
  3. What data do they have? Raw numbers, API exports, spreadsheets? Pull exact values -- never estimate when actuals exist.
  4. Where should the file be saved? Default: ./output/
Step 2: Plan the Document Structure

Every report follows this structure:

Cover Page --> Executive Summary --> Analysis Sections (3-6) --> Prioritized Recommendations --> Quick Wins --> Appendix

Each analysis section should occupy 1-2 pages. Recommendation cards are the most space-intensive component -- budget carefully.


Design System

Customizable Brand Identity

The included design system provides a professional default. All color tokens, typography, and spacing are defined as CSS custom properties in :root. Override these to match your brand.

Color Tokens
:root {
  /* Accent -- change this to your brand color */
  --accent:        #3D7A5C;
  --accent-dim:    rgba(61, 122, 92, 0.08);
  --accent-dark:   #2E6B4A;
  --accent-light:  #6AB88A;

  /* Severity */
  --excellent:     #2e8b57;
  --warning:       #D97706;
  --critical:      #c0392b;

  /* Light-mode backgrounds (warm cream) */
  --bg-page:       #FAF7F2;
  --bg-surface:    #F2EDE6;
  --bg-elevated:   #EBE5DD;

  /* Light-mode text */
  --text-primary:  #0f0e0e;
  --text-body:     #57606a;
  --text-muted:    #8b949e;

  /* Borders */
  --border:        rgba(15, 14, 14, 0.1);
  --border-dim:    rgba(15, 14, 14, 0.06);

  /* Callout tints */
  --tint-blue:     #eaf2ed;
  --tint-green:    #eaf5ef;
  --tint-red:      #fef2f2;
  --tint-amber:    #fffbeb;

  /* Dark mode (cover page only) */
  --dark-bg:       #141414;
  --dark-surface:  #1E1E1E;
  --dark-text:     #f0f3f6;
  --dark-muted:    #6e7681;
  --dark-secondary:#9ca3af;
  --dark-border:   rgba(255, 255, 255, 0.08);
}

Color rules:

  • Warm cream (#FAF7F2) backgrounds on ALL content pages -- NOT white. This is a brand differentiator.
  • Dark mode (#141414) is reserved for the cover page only.
  • Accent color for accent rules, table headers, bullet markers, priority banner accents, rec-card left stripes. Used deliberately, never for decoration.
  • Severity colors (green/amber/red) ONLY for performance indicators. Never decorative.
  • Callout tints (blue/green/red/amber) for left-bordered callout boxes matching their severity.
Typography
RoleFontWeightSizeTrackingNotes
Cover titleSwitzerLight (300)36pt-0.03emDocument name on dark cover.
Cover subtitleSwitzerRegular (400)16ptnormalBelow cover title. Color: --dark-muted.
Cover tagCartograph CFRegular (400)8pt+0.15emALL CAPS. Color: --accent. Above title.
Section titleSwitzerRegular (400)18pt-0.02emContent page h2. Followed by accent rule.
Subsection titleSwitzerSemiBold (600)12.5ptnormalContent page h3.
Body textSwitzerRegular (400)9.5ptnormalParagraphs, descriptions. Line-height: 1.6.
Table headerCartograph CFSemiBold (600)7.5pt+0.05emALL CAPS. White text on accent bg.
Table bodySwitzerRegular (400)8.5ptnormalAlternating row backgrounds.
KPI valueCartograph CFSemiBold (600)16pt-0.02emKPI card numbers.
KPI labelCartograph CFRegular (400)6.5pt+0.06emALL CAPS. Below KPI values.
Rec-card labelCartograph CFSemiBold (600)7.5pt+0.04emALL CAPS. Field labels.
Priority bannerCartograph CFSemiBold (600)9pt+0.08emALL CAPS. Priority tier labels.
Page footerSwitzerRegular (400)7pt+0.03emCentered. Color: --text-muted.

Critical typography rules:

  1. Cover title uses Light (300), NOT Bold. Light at large sizes = confident, premium.
  2. Monospace font for ALL numeric/data content. KPI values, table headers, rec-card labels, priority banners.
  3. Body text at 9.5pt with 1.6 line-height. Reading-optimized document, not a slide.
  4. Table headers are ALL CAPS monospace on accent background. Distinctive table style.

Font defaults (swappable):

  • Switzer: loaded from Fontshare CDN (free). Fallback: system-ui, sans-serif
  • Cartograph CF: commercial, loaded via local(). Fallback: JetBrains Mono, monospace
Page Dimensions
Width:   8.5in
Height:  11in
Orientation: Portrait
Spacing
ZoneValue
Content padding0.6in 0.75in 0.7in
Cover page padding0 1in 1in (bottom-aligned)
Page footerAbsolute positioned, bottom: 0, padding: 10px 0.75in 14px
Section title margin-bottom4px (then accent rule adds 20px below)
Subsection title margin20px top, 8px bottom

Component Library

All components are documented with full HTML + CSS in REFERENCE.md. Here is what is available:

Page Structure
ComponentClassUse
Page Container.page8.5x11" page with shadow.
Cover Page.cover-pageDark cover with bottom-aligned content.
Content Area.contentPadded content region within a page.
Page Footer.page-footerCentered footer with doc name + page number.
Section Title.section-title + .accent-ruleSection heading with accent underline.
Section Continued.section-continued"(continued)" tag for multi-page sections.
Data Display
ComponentClassUse
KPI Row.kpi-row / .kpi-card4-column grid of big-number cards.
KPI Card (Risk).kpi-card--riskRed-tinted variant for risk/negative KPIs.
Data Tabletable with severity classesStriped rows, accent headers, severity colors.
Content Blocks
ComponentClassUse
Callout Box.callout + .callout-{color}Left-bordered insight box (blue/green/red/amber).
Body Text.body-textStandard paragraph text.
Bullet List.bullet-listAccent-colored dot bullets.
Numbered List.numbered-listMono-font accent markers.
Recommendations
ComponentClassUse
Priority Banner.priority-banner + level classTier label (CRITICAL/HIGH/MEDIUM/LOW).
Recommendation Card.rec-card + level classMulti-field card with left accent stripe.
Quick Wins TableTable with .qw-numNumbered action items table.

Document Compositions

Mandatory Pages

Every report must include:

  1. Cover Page (.cover-page) -- Dark background, document title, metadata (date, account, period)
  2. Executive Summary -- KPI row + key findings callout + brief narrative
  3. Recommendations -- Prioritized rec-cards grouped by priority tier
  4. Quick Wins -- Short action table for immediate wins
Content Page Types
TypeWhen to UseKey Components
Data Table + NarrativeInventory, benchmarkingTable + .body-text + .bullet-list
Callout StackDeep-dive on specific itemsMultiple .callout boxes (green/red/amber)
Table + CalloutPerformance data with insightTable + single callout summary
Rec-Card StackPrioritized recommendations.priority-banner + .rec-card stack
Mixed AnalysisMulti-part sectionTables + callouts + bullets + subsections

Narrative Rules

  1. One section per page when possible. If a section spans multiple pages, use "(continued)" on subsequent pages.
  2. Lead with the data. Tables and KPI cards BEFORE the narrative explanation.
  3. Callout after evidence. Every data table should be followed by a callout summarizing the key insight.
  4. Never estimate when actuals exist. If the data has exact values, compute precise totals.
  5. Benchmark everything. Always show industry benchmarks alongside metrics.
  6. Severity colors = signal. Green/amber/red ONLY for performance indicators.
  7. Callout colors match severity. .callout-green for strengths, .callout-red for problems, .callout-amber for warnings, .callout-blue for neutral insights.
  8. Accent rules under section titles. Every .section-title is followed by <hr class="accent-rule">.
  9. Consistent rec-card fields. Every recommendation card should have at minimum: title bar, ISSUE, ACTION fields.

Page Overflow Prevention

Pages are fixed at 11in tall. Content that exceeds the page container overflows visibly in the PDF. Every page must be budgeted before building.

Height Budget
ZoneHeight
Content padding (top + bottom)~1.3in
Page footer~0.4in
Usable content area~9.3in
Component Density Limits
ComponentMax items per pageDense mode override
Rec-cards (full fields)3 cardsFor 4+: drop optional fields
Rec-cards (minimal)4-5 cardsReduce margin to 8px 0 12px
Data tables10-12 rowsFor 13+: reduce font to 7.5pt, padding to 3px 8px
Callout boxes3-4 per pageReduce padding to 10px 14px
Bullet lists6-8 itemsShorten descriptions
Page Break Strategy
  1. Test every page in the browser before exporting to PDF
  2. Redistribute content across pages when overflow occurs
  3. Each <div class="page"> is one PDF page
  4. Use .keep-together on components that should not split across pages
  5. Update ALL downstream page numbers when redistributing

Anti-Patterns (Never Do)

  1. No white backgrounds. Always #FAF7F2 (warm cream) for content pages.
  2. No bold section titles. Use Regular (400) for .section-title.
  3. No decorative accent bars beyond the 40px accent rule under section titles.
  4. No emoji in reports. Unless the user explicitly requests them.
  5. No dark-mode content pages. Dark is only for the cover page.
  6. No walls of text. Break long prose into bullet lists. Max 3 sentences per callout.
  7. No unformatted numbers. Always use $X,XXX or $XXXK with tabular-nums.
  8. No inline styles when a class exists. Use the component library.
  9. No monospace fonts in page footers. Use body font for footers.
  10. No orphan rec-cards. Priority tier banner + first card must be on same page.
  11. No missing accent rules. Every .section-title must be followed by <hr class="accent-rule">.

PDF Export

Automated Export (Preferred)

Use Chrome headless for reliable 8.5x11" portrait PDF generation:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --headless \
  --disable-gpu \
  --print-to-pdf="/OUTPUT/PATH/report.pdf" \
  --no-pdf-header-footer \
  --print-to-pdf-no-header \
  "file:///PATH/TO/report.html"
Manual Export (Fallback)
  1. Open the HTML file in Chrome
  2. Cmd+P --> Save as PDF
  3. Set margins to "None"
  4. Enable "Background graphics"
  5. Paper size: Letter (8.5" x 11")
Required Print CSS

Every report MUST include this @page rule and @media print block:

@page { size: 8.5in 11in; margin: 0; }
@media print {
  * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  body { background: white; margin: 0; }
  .page {
    margin: 0;
    box-shadow: none;
    page-break-after: always;
    page-break-inside: avoid;
    width: 8.5in;
    min-height: 11in;
  }
  .page:last-child { page-break-after: avoid; }
}

QA Checklist

Before delivering, verify:

Data Accuracy
  • All numbers are accurate and internally consistent
  • Percentages add up where they should
  • Revenue figures match across exec summary KPIs, tables, and rec-card references
Page Overflow (check EVERY page)
  • No content overflows page boundaries
  • Rec-card pages have max 3 full-field cards
  • Data tables with 13+ rows use dense mode
Visual Consistency
  • Every content page has a .page-footer with correct page number
  • Cover page has NO .page-footer
  • Every .section-title is followed by <hr class="accent-rule">
  • Multi-page sections use "(continued)"
  • Callout colors match their severity
  • Priority banners use correct level class
PDF Export
  • @page rule present with size: 8.5in 11in
  • print-color-adjust: exact applied globally
  • All background colors render in PDF

Comments

Markdown supported