Build premier landscape PDF proposals for Metis Strategy business development. Use whenever the user asks to create, build, draft, rebuild, refine, or iterate on a proposal, BD follow-up document, pitch document, or client-facing document to be sent to an external prospect after a discovery call. Output is a 16:9 landscape PDF (13.33" x 7.5") combining full-bleed photography, branded graphic devices, and coordinate-based ReportLab layout. Do NOT use for PowerPoint decks (use metis-pptx), whitepapers (use metis-whitepaper), one-pagers or internal reports (use metis-pdf-creator), or SOWs/MSAs (use metis-legal-drafting).
94
94%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Produce premier client-ready proposals, capabilities decks, and case studies for Metis Strategy BD work. This skill encodes lessons from eight iterations of the Citi CRS Proposal (where HTML + Playwright and slide-screenshot pasting both failed) and the AI PM Capabilities deck (which exposed the need for narrative-first planning and flexible layout variety). ReportLab with coordinate-based placement and a measure-first layout pattern is what actually works for fixed-page designed documents.
sections: list) + Python dispatchThree modes, three starter scripts. Mode shapes the entire document: close discipline, language, what to include, what to omit.
| Mode | Starter | Length | When to use |
|---|---|---|---|
| buyer | starter_buyer.py | 18–25 pp | Named prospect, post-discovery-call follow-up. Close with concrete CTA (scoping session, kickoff week, procurement step). |
| capabilities | starter_capabilities.py | 18–22 pp | Reusable marketing asset. No named prospect. Close with contact, no procurement language. |
| casestudy | starter_casestudy.py | 10–14 pp | Single engagement deep dive. Proof-forward. Close with "what good looks like" and team credit (anonymized). |
Mode differences matter:
Before any planning, collect:
Do not start writing YAML until you have a thesis and a sketch. Jumping to YAML first is the single biggest quality trap.
Fill in scripts/_brief_template.md in the project's working folder, renamed to brief.md. The brief captures: audience, thesis, three-sentence summary, signature visual, three golden proof points, natural cleavage, narrative sketch, pacing map, kill list.
Every checkbox in the brief must be ticked before YAML drafting begins. See references/narrative-planning.md for the full planning loop (audience → thesis → signature visual → source triage → natural cleavage → sketch → reverse-outline → pacing → kill list).
Source triage and kill-your-darlings disposition: Read all source material first. Extract the 3–5 details that carry the thesis. Cut everything else, even the good stuff. A tight deck that lands beats a complete deck that doesn't. The skill's scaffolding implicitly encourages filling slots; subtract on purpose.
Every piece of editable text goes in a flat sections: list. Each section declares:
- type: pillars # dispatch key → renderer
intent: "Show we own PM, not advise on it" # one-line "so what?"
eyebrow: "Module B"
title: "Four Pillars of Embedded Product Management"
# ...content_type-specific fieldstype is required. Missing or unknown types raise an error with the valid list.intent is required on all content pages (covers, dividers, and closings are exempt). It does not render. Its purpose: force the author to name the job of the page before drafting copy. At polish-pass time, re-read each page and ask: "does the copy actually do what intent says?"Valid content types: cover, problem_framing, section_divider, modules_overview, activities_deliverables, pillars, timeline, signature_image, quote, comparative, metric_dense, minicase_pair, proof_overview, next_steps, closing. See references/page-patterns.md for each.
Module count follows the story, not the template. The modules_overview helper auto-picks the grid:
ValueErrorEach module typically gets 2–3 pages. Do not pad a 1-page idea to 3 pages because other modules have 3. See references/content-rules.md structural consistency section.
If embedding visuals from an existing PPTX:
scripts/crop_slide.py or PowerPoint's native export-cropped suffix in the project's _working folderUse the signature_image content type to render cropped visuals as a hero page with caption and callout.
The core technical rule: measure content before placing containers. See references/architecture.md. Helpers in scripts/helpers.py implement this pattern for bullet lists, callouts, cards, metric strips, and all the new pattern renderers.
Run the appropriate starter:
PYTHON="C:/Users/.../python.exe"
"$PYTHON" starter_buyer.py my-proposal-copy.yaml
# or starter_capabilities.py / starter_casestudy.pyThe starter dispatches each section to its renderer and warns on missing intent: or three-in-a-row layout repetition.
Two verification passes:
# Overlaps + content rules + metadata
"$PYTHON" scripts/verify.py --pdf output.pdf --mode all
# Layout repetition (no pattern 3+ in a row)
"$PYTHON" scripts/verify.py --pdf output.pdf --mode repetition
# Reverse-outline: titles only, in sequence
"$PYTHON" scripts/verify.py --pdf output.pdf --mode titles
# Visual — render every page and eyeball it
"$PYTHON" scripts/verify.py --pdf output.pdf --mode render --out verify/Never declare the PDF done without visual verification. Bbox analysis alone missed several critical issues in the Citi engagement.
After mechanical QA passes, run the polish pass. See references/polish-pass.md.
intent and ask: "does the copy do that?"--mode titles. Read titles in sequence. Do they tell the story without the body copy? If yes, ship. If not, fix structure, not copy.Before declaring content done (full list in references/content-rules.md):
—, \u2014)intent: fieldbrief.md) in G:\My Drive\Vault\_working\<project>\G:\Shared drives\BizDev Collaboration\<Client>\<Year>\ (buyer mode) or the appropriate marketing folder (capabilities/casestudy)references/narrative-planning.md — Consultant planning loop (audience → thesis → sketch → kill list)references/polish-pass.md — Three-pass critical re-read after mechanical QAreferences/architecture.md — Why ReportLab + measure-first pattern + YAML separationreferences/page-patterns.md — All 15 layout templates with code snippetsreferences/brand-standards.md — Metis brand colors, fonts, logos, graphic devicesreferences/content-rules.md — Editorial standards (no em dashes, no absolutes, intent per page, layout repetition, balance)references/qa-process.md — Verification workflowreferences/failure-modes.md — Things that broke during builds and how they were fixedscripts/helpers.py — Reusable layout helpers (measure_body_text, metric_card, activities_deliverables_page, section_divider with 3 styles, modules_overview_page auto-grid, and six pattern helpers: minicase_pair_page, signature_visual_page, process_timeline_page, quote_led_page, comparative_page, metric_dense_page)scripts/verify.py — Overlap, content, repetition, titles, render, metadata, and all-in-one checksscripts/crop_slide.py — Crop slide screenshots to remove titles/footersscripts/starter_buyer.py — Buyer-mode dispatch starter (+ starter_buyer_copy.yaml template)scripts/starter_capabilities.py — Capabilities-mode dispatch starter (+ starter_capabilities_copy.yaml template)scripts/starter_casestudy.py — Case-study-mode dispatch starter (+ starter_casestudy_copy.yaml template)scripts/_brief_template.md — Pre-build brief template (fill in before YAML)scripts/starter_build.py — DEPRECATED. Kept as a shim for legacy nested-key YAMLs.G:\My Drive\Vault\_working\citi-crs-proposal\citi-proposal-copy.yaml (legacy nested format)G:\Shared drives\BizDev Collaboration\Citi\2026\Citi CRS Proposal - Metis Strategy 2026-04-15.pdfG:\My Drive\Vault\_working\ai-pm-capabilities-proposal\ai-pm-capabilities-v2.yaml (new flat sections format — canonical example of the post-refactor shape)AI-PM-Capabilities-v2_Metis-Strategy.pdf (22-page deck)When this skill is triggered, the first response to the user should confirm:
<<<<<<< HEAD Never start coding the PDF before this plan is confirmed. The Citi engagement lost multiple days to rebuilds because the approach was not settled upfront.
=======
Then draft brief.md in the working folder. Never start coding the PDF before the brief is approved. The Citi engagement lost multiple days to rebuilds because the approach was not settled upfront. The AI PM deck exposed the same failure mode: an unintended four-module shape propagated from the template because the narrative was not planned first.
fdd4c4e (Refactor metis-premier-proposal: narrative-first planning, flexible layouts, three modes)