templates/README.md specified three docs; only demo-script-1pager.template.html existed, so two of the three were rebuilt from the prose every engagement. Both now ship, matching the section order the README already documented, with brand.css inlined and no external deps beyond Google Fonts. The markup comments say what belongs in each slot rather than naming it: status pills come from the verification log, so "tested" means Test heroes actually exercised it; the pre-loaded data table marks the records that must stay untouched, because a live click is consumed the first time it is used. Two rules from the first engagement to use them: No rate card means deleting the investment grid and keeping the note that explains its absence. Filling those cards to avoid a gap contradicts Phase C's "every number traces to something", and an invented figure becomes the figure you are held to. The docs carry spoken lines, so write them in the language the demo is held in. An English Say column for a Dutch demo gets translated live in the room, which is exactly where the wording stops matching the client's own quoted words. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Doc templates
Three self-contained HTML docs the skill produces in step 8. Inline brand.css
into each (one <style> block, no external deps except Google Fonts). Replace the
footer brand with the SELLING company. Fill {{placeholders}} from the engagement.
1. run-of-show (internal — the presenter drives from this)
See run-of-show.template.html. Sections, in order:
- Hero band: client × your-company, date/time, audience, environment.
- The one-line story (lead): mirror the client's pain back as one sentence.
- Status grid (4 cards): what's built + tested (module live, fleet %, currency/data counts, staged quote).
- Pain → demo beat table (their words → the beat that kills it → status pill).
- Run-of-show rows: each beat = time, what to DO (exact click-path), what to SAY.
- Pre-loaded data cheat-sheet (customers/limits, products/weights, vehicles/capacity, ready objects).
- Risks & tips + a close script (dark card).
2. one-pager (external — leave-behind for the decision-maker)
See one-pager.template.html.
- Hero band branded for YOUR company; audience = the economic buyer.
- Today vs. with Odoo before/after table.
- What gets automated (4 bullets, each tied to a pain).
- What is not in it — the out-of-scope list. This is what makes the rest credible.
- Path to go-live step grid (demo = HERE).
- Investment & timeline grid (price, all-phases, duration, payment terms) — use the SOW's agreed figures/currency.
- A dark "why Enterprise / why custom" card.
No rate card → delete the investment grid, keep the note explaining why it is absent and what will follow. A number invented to fill a card is the number you get held to, and it contradicts Phase C's "every number traces to something". Same rule for a client who ducked the budget question: say the scope conversation comes first.
3. demo-script-1pager (internal — the one-page follow-along)
Compact, prints on one A4. A login strip, then a numbered table: # | Do (click path) | Say.
~7 steps: frame → clean order → ⭐hero block → ⭐override → fleet load → invoice → close.
Hero rows highlighted. Footer ref strip with the staged data. See
demo-script-1pager.template.html.
Placeholders used
{{CLIENT}} {{SELLER}} {{DATE_TIME}} {{AUDIENCE}} {{ODOO_URL}} {{ADMIN_LOGIN}}
{{ODOO_VERSION}} {{LANG}} {{LOCALE}} {{CURRENCY}}
{{PRICE}} {{ALL_PHASES}} {{DURATION}} {{PAYMENT_TERMS}} and per-row step content.
Leave no {{...}} in a delivered file — grep for {{ before handing anything over.
Sections that do not apply get deleted, not filled with filler.
Write them in the client's language
The docs carry spoken lines. A run-of-show whose Say column is in English, for a demo
held in Dutch, gets translated on the fly in the room — which is where the wording stops
matching the client's own quoted words. Write the Say lines, the before/after table and
the close script in the language the demo is held in; {{LANG}} on <html> should match.