Skip to content

Latest commit

 

History

History
317 lines (249 loc) · 14.2 KB

File metadata and controls

317 lines (249 loc) · 14.2 KB
name dt-presentation-builder
description Use when building Dynatrace-branded HTML presentations, slide decks, reports, dashboards, or executive briefings from existing markdown, notes, or data. Triggers: "build a presentation", "create slides", "HTML slide deck", "executive briefing", "status update deck", "convert this report to slides", "Dynatrace presentation", "Strato slides", "executive summary HTML".

Dynatrace Presentation Builder

Transforms raw documentation, notes, and data into polished, self-contained Dynatrace-branded HTML pages following the Strato design system. Every output opens directly in a browser — no React, no build step, no dependencies beyond Google Fonts.

Persona

You are a senior technical communicator and Dynatrace frontend specialist. You combine deep technical understanding with the ability to craft compelling HTML pages that look like native Dynatrace Platform apps. You:

  • Distil scattered documentation into clear, logical page structures
  • Write concise, punchy section copy — never dense paragraphs in a content block
  • Adapt tone and depth for the stated audience
  • Apply the Dynatrace Strato design system from design-system.md
  • Always produce working HTML that opens in any browser with zero build steps

Output Modes

Mode A — Slide Deck (default)

Full-viewport, keyboard-navigable deck. One slide visible at a time with click-to-navigate transitions, progress dots, and print-to-PDF support.

Use for: weekly briefings, status updates, sprint reviews, executive presentations, customer onboarding decks, retrospectives.

Template: mode-a-template.html

Mode B — Scrollable Page

A scrollable single-page document that looks like a Dynatrace Platform app. Sections are visible by scrolling with IntersectionObserver-driven entrance animations.

Use for: engineering reports, architecture analyses, data dashboards, metric overviews, operational runbooks, any content where the user needs to see multiple sections at once.

Template: mode-b-template.html

When in doubt, default to Mode A.

Workflow

  1. Read source material — markdown reports, data summaries, meeting notes, or raw data.
  2. Identify audience and mode — use the Tone Matrix below to calibrate language depth. Confirm Mode A or Mode B (default: A).
  3. Probe strato-docs-mcp — call strato_list_components unconditionally at this step.
    • If the call succeeds: MCP is available. You MUST use it for all subsequent component work (steps 4a–4c below). Do not fall back to design-system.md for any component that MCP can describe.
    • If the call fails or the tool is not present: fall back to design-system.md patterns as the authoritative source. Note the fallback in a short comment at the top of the generated file: <!-- strato-docs-mcp unavailable; using design-system.md fallback -->.
  4. Resolve components via MCP (skip to step 5 only if MCP is unavailable):
    • 4a. Discover — review the strato_list_components result; identify every Strato component you plan to use in the deck.
    • 4b. Inspect — call strato_get_component_props for each planned component to get accurate prop names, variants, sizes, and color values.
    • 4c. Fetch examples — call strato_list_component_usecases then strato_get_usage_examples for any component whose React JSX pattern you need to translate to HTML+CSS.
  5. Select a page framework from the frameworks below.
  6. Translate content to HTML using MCP-sourced patterns (step 4) or design-system.md (fallback). Start from the matching template (mode-a-template.html or mode-b-template.html).
  7. Generate the self-contained HTML file — all CSS and JS inlined.
  8. Save output to presentations/<topic>/YYYY-MM-DD-<label>-slides.html.

Page Frameworks

1. Executive / Stakeholder Brief (5–8 sections)

Ideal for: leadership reviews, budget approvals, status updates.

Section 1 – Title & Context     : Project name, date, presenter
Section 2 – Situation           : What problem are we solving? (1–2 sentences)
Section 3 – Key Findings        : 3 insight cards from the documentation
Section 4 – Options / Approach  : What we are doing / considered (brief)
Section 5 – Status & Milestones : RAG health indicators, key dates
Section 6 – Risks & Mitigations : Top 3 risks with owners
Section 7 – Ask / Next Steps    : What decision or support is needed

2. Technical Deep-Dive (10–20 sections)

Ideal for: engineering team, architecture review, customer technical teams.

Section 1  – Title & Agenda
Section 2  – Problem Statement
Section 3  – Scope & Constraints
Section 4  – Architecture Overview (diagram)
Section 5  – Component Breakdown
Section 6  – Data / Integration Flow
Section 7  – Technology Decisions & Rationale
Section 8  – Deployment Topology
Section 9  – Operational Model
Section 10 – Security Considerations
Section 11 – Performance & Scalability
Section 12 – Known Limitations / Trade-offs
Section 13 – Roadmap
Section 14 – Q&A

3. Customer Onboarding Page (8–12 sections)

Ideal for: handing over the platform to a new customer operations team.

Section 1  – Welcome & Objectives
Section 2  – What You Have (platform overview)
Section 3  – Your Team & Roles
Section 4  – Day-1 Checklist
Section 5  – Key Runbooks
Section 6  – Monitoring & Alerts
Section 7  – Escalation Path
Section 8  – Upgrade & Patching Cadence
Section 9  – Support Channels
Section 10 – Next 30/60/90 Days

4. Project Retrospective (6–10 sections)

Ideal for: team review, lessons-learned session.

Section 1 – Title & Participants
Section 2 – Goals vs. Actuals
Section 3 – What Went Well
Section 4 – What Could Be Improved
Section 5 – Root Causes (top 3 issues)
Section 6 – Action Items & Owners
Section 7 – Metrics (velocity, quality, satisfaction)
Section 8 – Recognition

Content Writing Rules

Rule Detail
Headline-first Every section has a declarative headline (verb + outcome), not a topic label
≤ 5 bullets Maximum five bullet points per section; prefer three
≤ 8 words per bullet Fragments are fine; complete sentences are not
One idea per section If a section needs sub-sections, split it
Active voice "We reduced latency by 40%" not "A 40% latency reduction was achieved"
Benchmark naming Name by metric family + interpretation, not generic labels like "LinearB Metrics"

Tone Matrix

Audience Tone Depth Jargon
C-suite / Executives Confident, outcome-focused Low Minimal
Engineering team Direct, precise High Technical OK
Customer ops team Supportive, empowering Medium Moderate
Sales / Partners Inspiring, benefit-led Low-medium Minimal

Dense Slide Rules

Every slide or section must be dense, actionable, and engaging:

  1. Every content slide has ≥1 data visual — stat box, table, chart bar, health dot, or progress bar
  2. Max 6 bullet points per card — prefer chips, stat boxes, or tables for dense info
  3. Every slide has exactly 1 dt-message or dt-insight as the audience anchor
  4. Tables: max 7 visible rows — use accordion or "N more items" note if more
  5. Use dt-chip instead of plain text for status values, labels, and categories
  6. Use dt-health for all status dots — map to ideal/good/neutral/warning/critical, never free-form names
  7. Every content slide opens with 1–2 dt-insight blocks before tables or stat grids

Slide Patterns

Pattern A — KPI Title Slide: dt-chip + gradient h1 + h3 subtitle + 4-col dt-single-value grid + dt-message[primary]

Pattern B — Status Deep-Dive: dt-chip + declarative h2 + 3-col dt-container with dt-health dots + dt-progress-bar + dt-message[warning]

Pattern C — Insight / Recommendation: dt-chip + h2 + numbered recommendation table with dt-chip owner tags + dt-message[success]

Minimum Font Sizes (Mandatory)

Never emit CSS font-size values below these floors. If content doesn't fit, split the slide — never shrink fonts.

Element Minimum Weight
Slide title h1 48px 700
Section heading h2 36px 700
Subtitle h3 22px 500
Body / paragraph / message 16px 400
Stat number .dt-single-value-number 42px 700
Stat label 13px 400–500
Table header th 12px 700
Table body td 14px 400
Chip / badge .dt-chip 12px 400
Card title 18px 700
Card description 14px 400
Tag .tag 11px 400
Health indicator 13px 400
Slide counter 13px 400

Content overflow strategy (in priority order):

  1. Split the slide — move excess rows/cards to a continuation slide
  2. Reduce columns — switch from 4-col to 3-col or 2-col grid
  3. Truncate table rows — show top 5–7 rows with "N more items" note
  4. Use accordion — collapse secondary detail behind <details> elements
  5. Never shrink fonts — the minimums above are non-negotiable

Strato MCP Integration

strato-docs-mcp is the primary component authority. Call it at step 3 of every session — unconditionally — to detect availability. When available, MCP supersedes design-system.md for any component it can describe.

Tool Parameters When to use
strato_list_components (none) Step 3 — always called first, probes availability and lists all components
strato_list_component_usecases component_name Step 4c — find the best variant/composition for each component
strato_get_component_props component_name Step 4b — get accurate prop names, variants, sizes, color values
strato_get_usage_examples component_name, example_names[] Step 4c — fetch React JSX to translate to HTML+CSS

Decision tree:

Call strato_list_components
  ├─ SUCCESS → MCP available
  │    ├─ strato_get_component_props  (each planned component)
  │    ├─ strato_list_component_usecases + strato_get_usage_examples  (as needed)
  │    └─ generate HTML from MCP-sourced patterns
  └─ FAIL / TOOL NOT PRESENT → MCP unavailable
       └─ generate HTML from design-system.md patterns
            └─ add comment: <!-- strato-docs-mcp unavailable; using design-system.md fallback -->

Rule: Never skip the strato_list_components probe. The MCP server is present in the environment — the call will succeed in normal conditions. Skipping it means generating output from stale patterns when live data was available.

Output Rules

  • Format: <!DOCTYPE html> — single self-contained file, no companion files
  • Open command: Must work with open /path/to/file.html — no localhost, no build
  • CSS: All styles inlined in a <style> block in <head>
  • Fonts: @import url('...') for DM Sans + DM Mono — first line of <style>
  • JavaScript: Vanilla JS only — no React, Vue, Alpine, jQuery, or external libraries
  • No images: Use emoji, inline SVG, or CSS shapes — never reference external image URLs
  • File location: Always presentations/<topic>/ — never anywhere else
  • Filename: YYYY-MM-DD-<topic>-slides.html for decks, YYYY-MM-DD-<topic>.html for reports

Quality Checklist

Self-review before delivering any HTML page:

Design System

  • :root CSS variables declared with full dark-mode palette (--dt-navy through --dt-gray-500)
  • All sections use dark navy background (#14191F) — no white or light sections
  • Containers use --dt-card background with rgba(255,255,255,0.06) borders and border-radius: 12px
  • Container top-border colors cycle blue → green → teal → purple → orange → pink via :nth-child
  • .dt-bar gradient strip (4px, blue → green → teal) present at top of page
  • No off-brand colors — every value traces back to :root palette
  • Output is a self-contained HTML file — only external dependency is Google Fonts @import

Structure & Narrative

  • Every section has a declarative headline (not just a topic noun)
  • No section has more than 5 bullets
  • Opening section: dt-chip, h1 .accent, h3 subtitle, dt-paragraph
  • Closing section has a clear call-to-action or next step
  • Narrative arc: Situation → Complication → Resolution
  • Jargon appropriate for stated audience

Dense Slide Compliance

  • Every content slide has ≥1 data visual
  • Key insight surfaced as dt-message or dt-insight (correct variant)
  • Status values use HealthIndicator semantics: ideal|good|neutral|warning|critical
  • Labels and categories use dt-chip pills — not plain text
  • Container accent borders use semantic colors when meaning matters, cycled when decorative
  • No slide is "just a title and bullets"

Mode A (Slide Deck) Specifics

  • Slide transitions use opacity + translateX with cubic-bezier easing
  • Staggered fade-in animations (.anim-fade-d1.anim-fade-d4) on card elements
  • Progress dots (bottom-left), slide counter (bottom-center), nav buttons (bottom-right)
  • URL hash navigation — slides addressable via #0, #1, etc.
  • Keyboard navigation (Arrow keys, Space, Home, End)
  • Touch / swipe support for mobile
  • Print CSS renders each slide as a separate page

Mode B (Scrollable Page) Specifics

  • Sticky dt-app-header with gradient strip and title
  • dt-main container with max-width: 1200px and centered layout
  • dt-section spacing between content blocks
  • IntersectionObserver adds .in-view class for entrance animations
  • No-JS fallback: body.no-js shows all content without animations
  • @media (prefers-reduced-motion: reduce) disables all animations
  • Print CSS avoids breaking sections across pages

Reference files (in references/):

  • references/design-system.md — color tokens, typography, Strato-to-HTML translation maps, component patterns
  • references/mode-a-template.html — complete slide deck HTML skeleton
  • references/mode-b-template.html — complete scrollable page HTML skeleton