Lossless Changelog
component

Introducing the One-Pager Generator

New pipeline agent and standalone CLI tool that distills the full investment memo into a single-page visual summary. Serves as both a standalone deal teaser and a cover sheet for the full memo export.

Changelog - 2026-03-23_05

Introducing the One-Pager Generator

New pipeline agent and standalone CLI tool that distills the full investment memo into a single-page visual summary. Serves as both a standalone deal teaser and a cover sheet for the full memo export.


Why

Investment professionals need a single-page summary for deal screening, LP distribution, and partner meetings. The full 15-30 page memo is comprehensive but impractical for initial evaluation. Previously, one-pagers required manual creation outside the pipeline — defeating the purpose of automated memo generation.

The 10SQ teaser (io/hypernova/deals/10SQ/10SQ-Teaser-11.30.25.pdf) served as the visual reference for layout design: a dense, information-rich single page with a left sidebar for structured data and a main area for narrative and visual proof points.


What Changed

New Agent: one_pager_generator.py

Uses Claude to extract content from the final memo into fixed slots, then renders a branded HTML template with CSS grid layout. Converts to PDF via WeasyPrint.

Content extraction (LLM's job — narrow extraction, not creative writing):

The agent sends the full memo to Claude with a JSON schema defining content slots. Claude extracts and compresses into:

  • Headline thesis (2 sentences max)

  • 3 key bullets with bold key terms

  • Deal terms (stage, round, valuation, lead investors)

  • Syndicate participants

  • Cap table highlights

  • Key metrics (label/value pairs)

  • Market stats with bold figures

  • Technology/product summary

  • Competitive positioning

  • Traction milestones

  • Recommendation with verdict (PASS/CONSIDER/COMMIT)

  • Top sources

Different schemas for direct investment vs. fund commitment.

Rendering (template's job — fixed layout, no LLM decisions):

┌──────────────────┬──────────────────────────────────────┐
│  SIDEBAR (30%)   │  HEADER: Headline + 3 Key Bullets    │
│                  ├──────────────────────────────────────│
│  Company Logo    │  ┌──────────┐  ┌──────────────────┐ │
│  Deal Overview   │  │ MARKET   │  │ TECHNOLOGY &     │ │
│  Key Metrics     │  │ card     │  │ PRODUCT card     │ │
│  Cap Table       │  └──────────┘  └──────────────────┘ │
│                  │  ┌──────────┐  ┌──────────────────┐ │
│                  │  │ COMPETE  │  │ TRACTION card    │ │
│                  │  │ card     │  │                  │ │
│                  │  └──────────┘  └──────────────────┘ │
│                  │  SYNDICATE pills | RECOMMENDATION   │
├──────────────────┴──────────────────────────────────────│
│  VC FIRM LOGO  |  Contact  |  Confidential              │
└─────────────────────────────────────────────────────────┘

Output artifacts:

  • 8-one-pager.html — Standalone one-pager HTML

  • 8-one-pager.pdf — Single-page PDF (US Letter)

  • 8-one-pager-content.json — Extracted content slots (for debugging/iteration)

Pipeline position:

... → integrate_scorecard → one_pager → finalize | human_review → END

New CLI: cli/generate_one_pager.py

Standalone CLI for generating or regenerating one-pagers without re-running the full pipeline:

BASH
# By company name
python -m cli.generate_one_pager "Metabologic" --firm humain

# Direct path
python -m cli.generate_one_pager io/humain/deals/Metabologic/outputs/Metabologic-v0.2.4

# Dark mode
python -m cli.generate_one_pager "Metabologic" --firm humain --mode dark

# Dry run (show extracted slots without rendering)
python -m cli.generate_one_pager "Metabologic" --dry-run

New Template: templates/one-pager-template.html

Self-contained HTML (~300 lines) with inline CSS. Key design features:

  • CSS grid layout: grid-template-columns: 2.3in 1fr (sidebar + main)

  • Card grid: Main area uses grid-template-columns: 1fr 1fr for 2-column cards

  • Brand-aware: Uses --brand-* CSS variables from brand config

  • Single-page enforcement: @page { size: letter; margin: 0; } + overflow: hidden on all containers

  • Light/dark mode: body.dark-mode class with adjusted card backgrounds and text colors

  • Syndicate pills: Investor names as pill badges (lead investor highlighted with accent color)

  • Type scale: Headline 15pt/700, cards 8.5pt/400, sidebar labels 6.5pt/700 uppercase

New Spec: context-v/specs/Introducing-a-One-Pager-Cover-Sheet-and-Export.md

Full specification document with:

  • Two layout variants (flat and card-based)

  • Four syndicate/cap table card variants with when-to-use guidance

  • Type scale table with sizes/weights/max lines for all elements

  • Content slot schemas for direct investment and fund commitment

  • 5-phase implementation plan

  • Open questions for iteration


Design Decisions

Fixed template, not LLM-generated layout: LLMs are unreliable at visual layout. The template provides pixel-perfect consistency across deals. Claude only extracts content into fixed slots.

Temperature 0.1 for extraction: This is deterministic extraction — same memo should produce same slots every time. Lower than other agents (0.3) because no creative judgment is needed.

Separate from full memo export: The one-pager has fundamentally different CSS (single-page grid vs. flowing document). Keeping them separate avoids CSS conflicts. Future --prepend flag will combine at the PDF level.

8-one-pager artifact numbering: Follows the pipeline sequence — 7-* is the final draft, 8-* is derived from it.


Verification

One-pager generated successfully for Metabologic v0.2.4 via CLI. HTML + PDF + content JSON produced. Layout renders with correct Humain Ventures branding (Bunker/Lochinvar color palette).


Files Changed

FileChange
src/agents/one_pager_generator.pyCreated — Content extraction + HTML rendering agent
cli/generate_one_pager.pyCreated — Standalone CLI tool
templates/one-pager-template.htmlCreated — Single-page HTML template with CSS grid
src/workflow.pyAdded one_pager node after integrate_scorecard
context-v/specs/Introducing-a-One-Pager-Cover-Sheet-and-Export.mdCreated — Full spec

Next Steps

The one-pager template is iteration zero. Expect visual tuning after reviewing real output:

  • Font sizing adjustments for single-page fit

  • Card height tuning based on content density

  • Possible template variants for direct investment vs. fund commitment

  • --prepend flag for combining one-pager + full memo PDFs