Work & projects · v0.1.0
Slide deck
A 4:3 presentation deck as one self-contained HTML file: cover, agenda, executive summary with stat callouts, repeatable two-column content slides, a financial table, a CSS column chart, a risk table and a closing ask. Arrow-key navigation on screen, one slide per page in print.
Paste the prompt into Claude (or any agent that can fetch URLs) with your content — you get back a finished, self-contained HTML file. Manifest ↗
Live preview — the example content ships with the template and is replaced by your content.
What an agent may change — and what content you should have ready. Everything outside these slots is fixed by design.
Slots
| Slot | Type | Req. | Example |
|---|---|---|---|
doc-title |
text | yes | Strategy review 2026 · Aurora Software B.V. |
cover-company |
text | yes | Aurora Software B.V. |
cover-title |
text | yes | Platform expansion is the only route left to the 2028 plan |
cover-doctype |
text | yes | Strategy review · board session |
cover-authors |
text | yes | Prepared by S. Jansen (CFO) and M. de Vries (COO) |
cover-date |
text | yes | 18 August 2026 |
agenda-tab |
text | yes | Contents |
agenda-title |
text | yes | Five questions, thirty minutes, two decisions at the end |
summary-tab |
text | yes | Executive summary |
summary-title |
text | yes | Seat expansion carried FY26; the 2028 plan needs a second growth engine |
summary-body |
html | yes | <ul class="b"><li>Revenue grew 14,7% to € 4,9 million, but 94% came from existing customers.</li><li>Seat capacity runs out in FY28 on current penetration.<ul><li>Top 20 accounts sit at 71% penetration.</li></ul></li></ul> |
summary-takeaway |
text | yes | Without a second engine the FY28 revenue line is € 1,8 million short; the platform module closes it if we start hiring in Q1 FY27. |
table-tab |
text | yes | Business case |
table-title |
text | yes | Every euro of FY27 growth above inflation comes from the new platform line |
table-head-label |
text | yes | € thousand |
table-head-a |
text | yes | FY24 |
table-head-b |
text | yes | FY25 |
table-head-c |
text | yes | FY26 F |
table-head-d |
text | yes | FY27 P |
table-total-label |
text | yes | Net revenue |
table-total-a |
text | yes | 3.770 |
table-total-b |
text | yes | 4.261 |
table-total-c |
text | yes | 4.887 |
table-total-d |
text | yes | 5.694 |
table-takeaway |
text | yes | Revenue grows 16,5% in FY27; strip out the € 430k platform line nobody has bought yet and growth is 7,7%. |
table-source |
text | no | Source: FY24 and FY25 audited; FY26 forecast per the July re-forecast; FY27 per the operating plan v2.1. |
chart-tab |
text | yes | Where growth came from |
chart-title |
text | yes | New-logo revenue has been flat for three years while expansion tripled |
series-a-name |
text | yes | Existing customers |
series-b-name |
text | yes | New logos |
chart-scale-note |
text | yes | € million, net revenue after churn; FY26 forecast. |
chart-takeaway |
text | yes | Expansion revenue doubled in three years; new-logo revenue has not moved since FY24. |
chart-source |
text | no | Source: finance mart cohort analysis, 4 August 2026. |
risk-tab |
text | yes | Risks |
risk-title |
text | yes | Delivery capacity is the only risk that can break the case on its own |
risk-head-item |
text | yes | Risk |
risk-head-rating |
text | yes | Rating |
risk-head-comment |
text | yes | Why it matters |
risk-head-mitigation |
text | yes | What we do about it |
next-tab |
text | yes | Next steps |
next-title |
text | yes | Four steps in the next 60 days, two of which need a decision today |
next-head-step |
text | yes | Step |
next-head-owner |
text | yes | Owner |
next-head-when |
text | yes | By |
next-ask |
text | yes | We ask the board to approve € 2,4 million of platform investment across FY27 and FY28, and the two senior engineering hires in step 1. |
Repeat: agenda-item (3–8×)
One numbered line on the agenda slide. Keep the wording identical to the section tab of the slides it covers.
| Slot | Type | Req. | Example |
|---|---|---|---|
agenda-item-text |
text | yes | Where we stand: FY26 year to date |
Repeat: stat (2–4×)
One headline number on the executive summary slide.
| Slot | Type | Req. | Example |
|---|---|---|---|
stat-value |
text | yes | € 412k |
stat-label |
text | yes | Monthly recurring revenue, July 2026 |
Repeat: content-slide (1–14×)
The workhorse slide: section tab, so-what title, two ruled columns, a takeaway strip and a source line. Duplicate it once per argument in the deck; the order of the copies is the order of the deck.
| Slot | Type | Req. | Example |
|---|---|---|---|
slide-tab |
text | yes | Where we stand |
slide-title |
text | yes | Growth was real but narrow: one motion worked, the other stalled |
col-a-head |
text | yes | What worked |
col-a-body |
html | yes | <ul class="b"><li>Seat expansion added € 0,59 million, 94% of total growth.</li><li>Net revenue retention held above 105% every quarter.</li></ul> |
col-b-head |
text | yes | What did not |
col-b-body |
html | yes | <ul class="b"><li>New logos came in at 23 against a plan of 26.</li><li>Pipeline coverage sits at 2,1x against the 3,0x we need.</li></ul> |
slide-takeaway |
text | yes | The engine that grew FY26 is the engine that runs out in FY28: expansion cannot be the plan twice. |
slide-source |
text | no | Source: finance mart, dbt snapshot of 4 August 2026; CRM pipeline export, week 31. |
Repeat: table-row (2–10×)
One line of the financial table, above the ruled totals row.
| Slot | Type | Req. | Example |
|---|---|---|---|
row-label |
text | yes | Subscription |
row-a |
text | yes | 2.980 |
row-b |
text | yes | 3.410 |
row-c |
text | yes | 3.985 |
row-d |
text | yes | 4.320 |
Repeat: bar-group (2–8×)
One period on the column chart: an accent bar and a grey bar side by side.
| Slot | Type | Req. | Example |
|---|---|---|---|
bar-label |
text | yes | FY23 |
bar-a-value |
text | yes | 1,9 |
bar-a-style |
text | yes | height:44% |
bar-b-value |
text | yes | 0,8 |
bar-b-style |
text | yes | height:18% |
Repeat: risk-row (2–8×)
One row of the risk table.
| Slot | Type | Req. | Example |
|---|---|---|---|
risk-item |
text | yes | Platform delivery slips |
risk-rating |
text | yes | High |
risk-rating-class |
text | yes | chip chip-bad |
risk-comment |
text | yes | Two engineers carry both the core roadmap and the module; a single departure moves the launch by a quarter. |
risk-mitigation |
text | yes | Ring-fence the module team from support rotation and start both hires before the board decision lands. |
Repeat: next-step (2–8×)
One row of the next-steps table.
| Slot | Type | Req. | Example |
|---|---|---|---|
step-text |
text | yes | Open both Berlin engineering requisitions and brief the search partner. |
step-owner |
text | yes | M. de Vries |
step-when |
text | yes | 1 Sep 2026 |
Optional blocks
table-slide— Financial or business-case table slide with a ruled totals row. Remove it when the deck carries no figures.chart-slide— Two-series column chart slide. Remove it when there is no trend worth plotting; one honest chart beats three decorative ones.risk-slide— Risk / issue table with rating chips. Remove it for a purely informational deck.
The authoritative fill instructions from manifest.json — the only place a template may instruct an agent (why).
SHAPE THE DECK FIRST, THEN FILL IT. 1) Duplicate the content-slide block once per argument you need: the copies stay in place and their order is the deck order. Group them into chapters by repeating the same slide-tab on consecutive slides. 2) Remove the optional slides you do not need (table-slide, chart-slide, risk-slide) and delete every data-example element: the shipped extra agenda lines, stat tiles, table rows, bar groups, risk rows, step rows and the second example content slide. 3) Make the agenda lines match the section tabs of the slides they cover, in the same order. TITLES CARRY THE ARGUMENT: every title is a full conclusion ('New-logo revenue has been flat for three years'), never a label ('Revenue overview'); if a title does not survive being read on its own, rewrite it. Fill the takeaway strip on every slide that has one, with the consequence rather than a restatement. DO NOT NUMBER SLIDES OR REPEAT THE COMPANY NAME PER SLIDE: the deck-runtime module fills every page number, the slide total and the footer brand from cover-company at load time, so inserting or reordering slides can never leave a stale number. COMPUTE EVERY NUMBER YOURSELF AND RE-CHECK IT: the totals row must equal the sum of its rows; bar heights are 'height:NN%' with NN = value divided by the largest value across BOTH series, times 100, rounded, capped at 92, and both series must use that same divisor; risk-rating-class is EXACTLY 'chip chip-bad' | 'chip chip-warn' | 'chip chip-good' and must agree with the chip text. DENSITY: two to four bullets per column of at most ~22 words, both columns filled; a half-empty slide reads as unfinished. Mirror the placeholder number format (decimal comma, thousands point, '€ 412k'), and for a Dutch or German deck translate the tabs, headers, chart labels and the agenda too. Leave [PLACEHOLDER] where a figure is genuinely unknown and tell the user to fill it with the built-in Edit button. THE DECK IS 4:3 AND PRINTS ONE SLIDE PER PAGE at 254 x 190,5 mm: do not change the slide size, the em-based sizing or the @page rule, and keep -webkit-print-color-adjust / print-color-adjust in place or the accent bars and table headers drop out of the PDF.
Published versions are immutable: /t/slide-deck@{version}/ never changes once live. /t/slide-deck/ always points at the latest.