provisioning-outreach/presentations/pres-prvng/.project-tools/presentation.toml

264 lines
6.6 KiB
TOML

# pres-prvng - presentation.toml
# Generated by presgen init
# Theme: rust-vibe
# Created: 2025-11-14
[metadata]
title = "Infrastructure Provisioning Platform"
author = "Provisioning Team"
subtitle = "Why Terraform, Ansible, and Perl don't solve your infrastructure challenges"
date = "2025-11-14"
version = "1.0.0"
keywords = ["infrastructure", "provisioning", "IaC", "Rust", "Nushell", "KCL", "automation", "DevOps", "Kubernetes"]
description = "Professional presentation showcasing Provisioning Platform: a hybrid Rust/Nushell infrastructure automation system with enterprise security, multi-provider support, and intelligent configuration management"
contact = "https://github.com/anthropics/provisioning"
repository = "https://github.com/anthropics/provisioning"
license = "MIT"
# ============================================================
# CONTENT CONFIGURATION
# ============================================================
[content]
images_src = "./public/images"
code_src = "./demos"
assets_src = "./public"
# Content structure - slides should follow this arc
structure = ["intro", "problem", "solution", "demo", "conclusion", "qna"]
# Validation thresholds (from PRESENTATION_GUIDELINES.md)
max_bullets_per_slide = 7 # P-CONTENT-ONE-MESSAGE (7±2 rule)
max_concepts_per_slide = 3 # P-CONTENT-ONE-MESSAGE
max_text_lines = 15 # P-DESIGN-WHITESPACE
# Code highlighting settings
[content.code]
syntax_theme = "dracula"
max_lines_per_slide = 15 # P-CODE-SIZE-LIMIT
highlight_required = true # P-CODE-HIGHLIGHT
inline_syntax = true
# Image configuration
[content.images]
min_width = 1920
min_height = 1080
formats = ["png", "jpg", "svg", "webp"]
optimize = true
# ============================================================
# THEME CONFIGURATION
# ============================================================
[theme]
name = "rust-vibe"
base = "default"
# Color palette (P-DESIGN-CONTRAST)
[theme.colors]
background = "#1a1a1a"
text = "#e0e0e0"
primary = "#f74c00"
secondary = "#61dafb"
accent = "#ff6b6b"
success = "#4caf50"
warning = "#ff9800"
error = "#f44336"
info = "#2196f3"
# Contrast validation (P-DESIGN-CONTRAST)
contrast_ratio_min = 7.0 # Target AAA standard
contrast_ratio_warn = 4.5 # Minimum AA standard
# Typography configuration (P-DESIGN-FONTS)
[theme.typography]
heading_family = "Inter"
body_family = "Inter"
code_family = "Fira Code"
heading_weight = 700 # Bold
body_weight = 400 # Regular
code_weight = 400 # Regular
# Font sizes in pixels (P-A11Y-READABILITY)
h1_size = 48
h2_size = 36
h3_size = 28
body_size = 24
code_size = 20
# Minimum sizes for accessibility
body_min = 18
code_min = 16
heading_min = 28
line_height = 1.6
# Layout configuration (P-DESIGN-WHITESPACE)
[theme.layout]
min_whitespace_percent = 30 # 30% minimum whitespace
padding_horizontal = "2rem"
padding_vertical = "1.5rem"
max_width = "100%"
aspect_ratio = "16:9"
# Animations
[theme.animations]
enabled = true
transition_duration = "0.3s"
slide_transition = "fade"
# ============================================================
# PUBLICATION & ACCESSIBILITY
# ============================================================
[publication]
site = ""
export_formats = ["pdf", "html"]
remote_assets = false
[accessibility]
color_blind_safe = true # P-A11Y-COLOR-BLIND
use_patterns = true
use_text_labels = true
min_body_font = 24 # P-A11Y-READABILITY
min_code_font = 18
min_heading_font = 36
contrast_check = true # Check contrast ratios
# ============================================================
# VALIDATION CONFIGURATION
# ============================================================
[validation]
validation_level = "warn"
auto_validate_on_generate = true
[validation.content]
one_message = true # P-CONTENT-ONE-MESSAGE
max_bullets = true
code_size = true
structure = true
[validation.design]
whitespace = true # P-DESIGN-WHITESPACE
contrast = true # P-DESIGN-CONTRAST
fonts = true # P-DESIGN-FONTS
[validation.code]
size_limit = true # P-CODE-SIZE-LIMIT
highlight = true # P-CODE-HIGHLIGHT
complexity = true
[validation.audience]
terminology = true # P-AUDIENCE-TERMINOLOGY
jargon = true # P-AUDIENCE-JARGON-CONTEXT
[validation.accessibility]
readability = true # P-A11Y-READABILITY
color_blind = true # P-A11Y-COLOR-BLIND
keyboard_navigation = true
# ============================================================
# EXPORT CONFIGURATION
# ============================================================
[export]
output_dir = "./.project-tools/exports"
default_format = "pdf"
[export.pdf]
enabled = true
page_size = "A4"
quality = "high"
[export.html]
enabled = true
minify = true
# ============================================================
# PRESENTATION PROFILES
# ============================================================
# Profile: Technical Talk (30-45 minutes)
[profiles.talk]
mode = "talk"
duration = "30min"
target_slides = 25
audience = "developers"
technical_depth = "moderate"
jargon_level = "medium"
[profiles.talk.content]
code_examples = 3
live_demos = 1
demo_backup = true
focus = ["concepts", "implementation", "best-practices"]
[profiles.talk.sections]
include = "all"
exclude = []
# Profile: Pitch (5-10 minutes)
[profiles.pitch]
mode = "pitch"
duration = "10min"
target_slides = 12
audience = "executives"
technical_depth = "minimal"
jargon_level = "low"
[profiles.pitch.content]
code_examples = 0
live_demos = 0
demo_backup = false
focus = ["problem", "solution", "impact"]
[profiles.pitch.sections]
include = ["intro", "problem", "solution", "conclusion"]
exclude = ["demo"]
# Profile: Workshop (2-4 hours)
[profiles.workshop]
mode = "workshop"
duration = "3hours"
target_slides = 40
audience = "learners"
technical_depth = "deep"
jargon_level = "high"
[profiles.workshop.content]
code_examples = 5
live_demos = 2
demo_backup = true
focus = ["learning", "practice", "mastery"]
[profiles.workshop.sections]
include = "all"
exclude = []
# Define exercises for workshop
[[profiles.workshop.exercises]]
after = "solution"
duration = "20min"
type = "coding"
title = "Hands-on Exercise"
description = "Implement the concepts from the previous section"
# Profile: Lightning Talk (5 minutes)
[profiles.lightning]
mode = "lightning"
duration = "5min"
target_slides = 8
audience = "general"
technical_depth = "minimal"
jargon_level = "low"
[profiles.lightning.content]
code_examples = 0
live_demos = 0
demo_backup = false
focus = ["hook", "single-idea", "call-to-action"]
[profiles.lightning.sections]
include = ["intro", "solution", "conclusion"]
exclude = []