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
Editorial conventions for proposal content. These were established through multiple rounds of feedback on the Citi CRS Proposal. Most of them exist because a specific violation was caught and corrected.
Each module should get 2–3 pages. Don't force identical counts. If one module genuinely needs less depth, let it. If one needs more, let it, up to ~5 pages. Bias toward balance, but do not fabricate filler to hit a symmetric count.
Earlier versions of this rule demanded strict ±1 balance across modules. In practice, that rule forced padding — a third module page that said nothing new, or a fifth deliverable that was really the fourth restated. Balance is a heuristic, not a constraint. Honest unevenness beats padded symmetry.
Typical module structures that work:
What never works: padding a 1-page idea to 3 pages because the other modules have 3. The reader notices.
Module count itself follows the story, not the template. See narrative-planning.md step 6. Three-module narratives are common. Five-module narratives are common. Do not pad a story that wants three into four.
No layout pattern should appear more than 2 times consecutively. Within a run of module pages, vary the layout. Do not use activities/deliverables on every module's overview page. Do not stack three pillar grids in a row.
At QA, scan the final page sequence. If 3+ adjacent pages share a pattern, break one of them — substitute a signature visual, quote-led page, process timeline, or different module layout.
The reader's eye calibrates to the first two examples of a layout. The third feels repetitive. The fourth feels lazy. This is the single most common failure mode when building from a strong template — the template's patterns propagate without intent.
Use python scripts/verify.py --check-repetition <pdf> to flag runs of identical layouts. Human QA should catch the rest.
Every module page in the YAML must carry an intent: field — a one-line answer to "what is this page doing?"
pages:
- content_type: pillars
intent: "Show that we own PM, not advise on it"
eyebrow: "Module B"
title: "Four Pillars of Embedded Product Management"
# ...The intent field does not render. Its purpose is to force the consultant to name the job of the page before drafting its copy. At polish-pass time, re-read each page and ask: "does the copy actually do what intent says?" If not, rewrite one or the other.
Pages without an intent trigger a warning at build time. Pages whose copy does not match the declared intent are the polish pass's job to catch.
Classic AI writing pattern. Remove all em dashes (—, —, \u2014).
Replace with:
Wrong:
The operating model is the unlock — technology teams are good at getting excited about technology, but the constraining factor is almost always the organizational structure.
Right:
The operating model is the unlock. Technology teams are good at getting excited about technology. The constraining factor is almost always how the organization is structured to make decisions and deliver.
Proposal documents are formal. Do not use contractions as a countermeasure to em dashes.
Exception: internal emails (see vault drafts folder for examples) can use contractions freely.
Avoid words like "Zero", "Always", "Never", "Every" unless you can defend the claim with evidence.
Wrong (what was caught in Citi):
Zero digital sales metrics exist today
Right:
Baseline CRS digital sales share to be established
The buyer said during the call that the business didn't have sales metrics "to even guide them." That is not the same as a permanent zero. The metric card should reflect what we will do, not a definitive negative claim about the client.
General rule: rewrite any metric card or body claim that uses an absolute word. Replace with a descriptive word like "Baseline", "Dozens", "Complex", "Hyper", or "Ongoing".
When describing a past client engagement, do not name specific products, brand lines, or internal division names. Even in a proposal to a non-competitor, this feels careless.
Wrong:
Reinvested savings into Abiliti and DLO product teams
Right:
Reinvested savings into priority product teams to fund new capabilities and high-impact strategic initiatives
The client who sees "Abiliti" knows that's a Fiserv product. They reasonably wonder what we will say about them in future proposals. Keep client details disguised to the level of "a $16B+ financial technology company" or "a Top-25 US bank". Specific financials ($30M savings, 1,750 FTEs) are fine because they're aggregate numbers, not identifying product names.
The strongest copy element in the Citi proposal was echoing Amresh's actual words from the transcript:
Process: Before writing any content, re-read the transcript and extract 5–10 exact phrases the buyer used to describe their situation, challenges, and aspirations. Work those phrases into your titles, subtitles, and callouts.
The opposite approach (what loses deals): generic consulting language like "unlock value" or "transform the organization" that could apply to any client. If the proposal could be sent to a different client by changing only the client name, you have not tailored it.
A financial services prospect should see financial services proof points. A healthcare prospect should see healthcare proof points.
For the Citi CRS Proposal:
Earlier draft had: a $40B energy company and other cross-industry examples. Andrew specifically requested financial services. The lesson: proof point selection is content, not just decoration.
If you don't have in-industry proof points, either:
Never stretch a case study to claim industry relevance it doesn't have.
Metric cards are visual anchors, not legal attestations. Use round numbers and representative ranges.
Good:
Avoid:
When in doubt, round up to the nearest significant figure and use "+" to indicate "at least".
Every callout box should have a label that:
Good labels:
KEY INSIGHTTHE SPEED IMPERATIVECRS APPLICATIONWHY FOLLOW-THE-SUNOUR COMMITMENTSEQUENCINGTHE GOALMETHODOLOGYRELEVANCE TO CRSAvoid labels that summarize the body (e.g., "MODULES ARE FLEXIBLE") — those are redundant. The label sets expectation; the body delivers the content.
The Next Steps page should have exactly three steps:
Each step gets a numbered card, a title, and a 2–3 sentence body explaining what happens and what the buyer needs to do.
Include a commitment callout at the bottom that addresses fee discussion openly ("Fee estimates will follow in a separate communication") and emphasizes flexibility.
These are AI tells or consultant clichés that make writing feel generic:
If you notice one of these while editing, rewrite the sentence.
Specific to the Citi engagement: the buyer's colleague is Neil Seideman, not Neil Ciderman. During discovery call transcription, the name was misheard. When a proposal references a stakeholder by name, verify the spelling from the buyer's LinkedIn, email signature, or an authoritative source. Misspelling a stakeholder is a preventable credibility hit.
General rule: extract named stakeholders from the transcript, verify all of them, and maintain a "named people check" in your QA pass.
The Samsung reference (Amresh's line about 14-day requirement-to-delivery at Samsung vs. banking) was used in 3+ places across early iterations. Andrew caught it as overindexing.
Rule: a vivid quote or anecdote from the buyer should appear at most twice in the proposal:
Beyond two uses, the reference becomes a crutch and signals you only have one angle.
Before declaring content done:
— and —)intent: field