Skip to content
ln-150-presentation-creator logo

HTML Presentation Builder

ln-150-presentation-creator

Builds interactive HTML presentation with 6 tabs (Overview, Requirements, Architecture/C4, Tech Spec, Roadmap, Guides). Creates presentation/README.md hub. L2 Worker under ln-100-documents-pipeline.

SKILL.md

Full skill instructions

HTML Presentation Builder

This skill creates an interactive, self-contained HTML presentation from existing project documentation. It transforms Markdown documents into a professional, navigable web presentation with diagrams, collapsible sections, and modern UI.

When to Use This Skill

This skill is a L2 WORKER invoked by ln-100-documents-pipeline orchestrator OR used standalone.

Use this skill when:

  • Building HTML presentation from existing documentation
  • Rebuilding presentation after documentation updates
  • Creating standalone presentation for sharing (no full documentation setup needed)
  • Validating that source documentation is ready for presentation generation

Part of workflow: ln-100-documents-pipeline → ln-110-project-docs-coordinator → ln-120-reference-docs-creator → ln-130-tasks-docs-creator → ln-140-test-docs-creator (optional) → ln-150-presentation-creator

Prerequisites: Existing documentation in docs/ directory with required files:

  • docs/​project/​requirements.md (REQUIRED)
  • docs/​project/​architecture.md (REQUIRED)
  • docs/​project/​tech_stack.md (REQUIRED)

Optional files (enhance presentation but not blocking):

  • docs/​project/​api_spec.md, database_schema.md, design_guidelines.md, runbook.md
  • docs/​reference/​adrs/​*.md (ADRs with Category: Strategic|Technical)
  • docs/​reference/​guides/​*.md (How-to guides)
  • docs/​tasks/​kanban_board.md (Epic Story Counters for Roadmap)

How It Works

The skill follows a 7-phase workflow: READ DOCS → VALIDATE SOURCE EXISTS → VALIDATE SOURCE QUALITY → CREATE DIR → COPY TEMPLATES → INJECT CONTENT → BUILD HTML.

Phase 1: READ DOCS - Load all project documentation from docs/ Phase 2: VALIDATE SOURCE EXISTS - Check required files exist (requirements.md, architecture.md, tech_stack.md), warn if optional missing Phase 3: VALIDATE SOURCE QUALITY - Check diagrams, placeholders, content length (read-only validation) Phase 4: CREATE DIR - Create presentation/ directory + README.md navigation hub Phase 5: COPY TEMPLATES - Copy HTML/​CSS/​JS templates to assets/ Phase 6: INJECT CONTENT - Parse MD docs → replace placeholders in tab files → delete example blocks Phase 7: BUILD HTML - Assemble modular components into standalone presentation_final.html


Phase 1: Read Documentation

Objective: Load all project documentation for transformation.

When to execute: Always (first phase)

Process:

  1. Use docs/ as source:

    • Read documentation from docs/​project/, docs/​reference/, docs/​tasks/ directories
    • Standard locations created by ln-114, ln-112, ln-113
  2. Read Core MD Documents:

    • project/​requirements.md - Functional Requirements
    • project/​architecture.md - Architecture design, C4 diagrams
    • project/​tech_stack.md - Technology versions, Docker configuration
    • project/​api_spec.md - API endpoints, authentication (if exists)
    • project/​database_schema.md - Database schema, ER diagrams (if exists)
    • project/​design_guidelines.md - UI/​UX design system (if exists)
    • project/​runbook.md - Operational procedures (if exists)
  3. Read ADRs (if exist):

    • reference/​adrs/​adr-001-*.md through adr-NNN-*.md
    • Parse ADR metadata (status, date, title, Category: Strategic|Technical)
  4. Read Guides (if exist):

    • reference/​guides/​*.md - How-to guides for Guides tab
  5. Read Kanban Board (if exists):

    • tasks/​kanban_board.md - Epic Story Counters table for Roadmap progress
  6. Extract metadata:

    • Project name, date, version from documents
    • Preserve Mermaid diagram blocks

Output: Loaded documentation data ready for validation and HTML generation


Phase 2: Validate Source Documentation Exists

Objective: Verify that required source documentation exists before building presentation. Prevent building incomplete presentations.

When to execute: After Phase 1 (documentation loaded)

Process:

2.1 Check required files

REQUIRED (must exist - block execution if missing):

  • ✅ docs/​project/​requirements.md
  • ✅ docs/​project/​architecture.md
  • ✅ docs/​project/​tech_stack.md

For each required file:

  1. Use Glob tool: pattern: "docs/​project/​{filename}"
  2. If NOT found:
    • Add to missing list
  3. If found:
    • Check file size > 100 bytes (not empty)

If ANY required file missing or empty:

❌ ERROR: Cannot build presentation - missing required documentation:
  - docs/​project/​requirements.md [missing/​empty]
  - docs/​project/​architecture.md [missing/​empty]

Suggestion: Run ln-111-project-docs-creator to create missing files.

STOP execution.

2.2 Check optional files

OPTIONAL (enhance presentation - warn if missing but continue):

  • ⚠️ docs/​project/​api_spec.md (for backend projects)
  • ⚠️ docs/​project/​database_schema.md (for projects with database)
  • ⚠️ docs/​project/​design_guidelines.md (for frontend projects)
  • ⚠️ docs/​project/​runbook.md (for operational projects)

For each optional file:

  1. Use Glob tool: pattern: "docs/​project/​{filename}"
  2. If NOT found:
    • Add to optional missing list

If optional files missing:

⚠ WARN: Optional files missing: [list]
Presentation will have reduced content in some tabs.
Continue execution.

2.3 Check optional directories

OPTIONAL directories:

  • docs/​reference/​adrs/ - check if any ADR files exist (adrs/​*.md)
  • docs/​reference/​guides/ - check if any guide files exist (guides/​*.md)
  • docs/​tasks/​kanban_board.md - check for Roadmap data

For each directory:

  1. Use Glob tool to find files
  2. If empty/​missing:
    • Log: ℹ Optional directory empty: {directory} - related tab will show placeholder

2.4 Report validation summary

Log summary:

✓ Source documentation validation completed:
  Required files:
    - ✅ requirements.md (found, 8.5 KB)
    - ✅ architecture.md (found, 15.2 KB)
    - ✅ tech_stack.md (found, 3.1 KB)
  Optional files:
    - ⚠️ api_spec.md (missing - Technical Spec tab will have reduced content)
    - ✅ database_schema.md (found, 4.7 KB)
    - ⚠️ design_guidelines.md (missing)
  Optional directories:
    - ✅ adrs/ (5 ADR files found)
    - ⚠️ guides/ (empty - Guides tab will show placeholder)
    - ✅ kanban_board.md (found - Roadmap will show progress)

Output: Validation passed (all required files exist) OR error (stop execution)


Phase 3: Validate Source Content Quality

Objective: Verify source docs contain sufficient content. Warn about incomplete content but don't block execution.

When to execute: After Phase 2 (source files exist)

Checks performed (warnings only, non-blocking):

  1. Mermaid diagrams: architecture.md must have ≥1 diagram, database_schema.md must have ER diagram
  2. Placeholders: Detect {{PLACEHOLDER}}, [Add your ...], TODO: patterns
  3. Content length: requirements.md >500 words, architecture.md >1000 words, tech_stack.md >200 words

Auto-fix: None - ln-115 is read-only. Run ln-111-project-docs-creator to fix issues.

Output: Content quality report with warnings

📖 Detailed workflow: See references/​phases_detailed.md


Phase 4: Create Presentation Directory & README

Objective: Setup presentation directory structure and navigation hub.

When to execute: After Phase 3 (source validation complete, warnings logged)

Process:

  1. Create presentation directory:

    mkdir -p docs/​presentation/
    
  2. Check if presentation/​README.md exists:

    • Use Glob tool: pattern: "docs/​presentation/​README.md"
    • If file exists:
      • Skip creation
      • Log: ✓ docs/​presentation/​README.md already exists (preserved)
      • Proceed to Phase 5
    • If NOT exists:
      • Continue to step 3
  3. Create presentation/​README.md from template:

    • Copy template: references/​presentation_readme_template.md → docs/​presentation/​README.md
    • Replace placeholders:
      • {{PROJECT_NAME}} — from requirements.md
      • {{LAST_UPDATED}} — current date (YYYY-MM-DD)
    • Content structure:
      • Purpose: What is this presentation
      • Quick Navigation: Links to presentation_final.html and assets/
      • Customization Guide: How to edit source files in assets/
      • Build Instructions: How to rebuild after changes
      • Maintenance: When to rebuild, verification checklist
  4. Notify user:

    • If created: ✓ Created docs/​presentation/​README.md (navigation hub)
    • If skipped: ✓ docs/​presentation/​README.md already exists (preserved)

Output: docs/​presentation/​README.md (created or existing)


Phase 5: Copy Templates to Project

Objective: Copy HTML/​CSS/​JS templates from skill references/ to presentation directory.

When to execute: After Phase 4 (presentation directory exists)

Process:

  1. Check if assets exist:

    • Use Glob tool: pattern: "docs/​presentation/​assets/"
    • If docs/​presentation/​assets/ exists:
      • Skip copying (user may have customized files)
      • Log: ✓ Presentation assets already exist - preserving user customizations
      • Proceed to Phase 6
    • If NOT exists:
      • Continue to step 2
  2. Copy template files:

    cp references/​presentation_template.html → docs/​presentation/​assets/
    cp references/​styles.css → docs/​presentation/​assets/
    cp references/​scripts.js → docs/​presentation/​assets/
    cp references/​build-presentation.js → docs/​presentation/​assets/
    cp -r references/​tabs/ → docs/​presentation/​assets/​tabs/
    
  3. Verify copied structure:

    docs/​presentation/​assets/
    ├── presentation_template.html   # Base HTML5 + 6 tab navigation
    ├── styles.css                    # ~400-500 lines
    ├── scripts.js                    # Tab switching + Mermaid init
    ├── build-presentation.js         # Node.js build script
    └── tabs/
        ├── tab_overview.html         # Landing page
        ├── tab_requirements.html     # FRs + ADRs
        ├── tab_architecture.html     # C4 diagrams
        ├── tab_technical_spec.html   # API + Data + Deployment
        ├── tab_roadmap.html          # Epic list
        └── tab_guides.html           # How-to guides
    

Output: Template files copied to docs/​presentation/​assets/ (or skipped if already exist)

Note: Templates contain placeholders ({{VARIABLE_NAME}}) that will be replaced in Phase 6.


Phase 6: Content Injection & Example Cleanup

Objective: Parse MD docs, inject into HTML templates, remove example blocks.

When to execute: After Phase 5 (templates exist in assets/)

Process:

  1. Parse MD docs (10 sources): requirements, architecture, tech_stack, api_spec, database_schema, design_guidelines, runbook, adrs/​*.md, kanban_board, guides/​*.md
  2. Inject content: Replace {{PLACEHOLDER}} in 6 tab files with parsed content
  3. Delete examples: Remove <!-- EXAMPLE START -->...<!-- EXAMPLE END --> blocks from all tabs

Tab placeholders: Overview (5), Requirements (4 + NFR ban), Architecture (5), Technical Spec (4), Roadmap (3), Guides (6)

Validation: No example markers, no hardcoded e-commerce data, only project-specific content

Output: Clean, project-specific tab files ready for build

📖 Placeholder reference & example transformation: See references/​phases_detailed.md


Phase 7: Build Final Presentation

Objective: Assemble modular components into standalone HTML file.

When to execute: After Phase 6 (content injected, examples deleted)

Process:

  1. Check if presentation_final.html exists (Auto-rebuild for automation):

    • Use Glob tool: pattern: "docs/​presentation/​presentation_final.html"
    • If file exists:
      • ✓ Auto-rebuild (generated file, safe operation)
      • Log: ℹ Rebuilding presentation_final.html (generated file, safe to rebuild)
      • Continue to step 2
    • If NOT exists:
      • Log: Creating presentation_final.html
      • Continue to step 2

    Why auto-rebuild:

    • presentation_final.html is a generated file (source of truth: assets/ directory)
    • Rebuilding is safe - no data loss (source files preserved in assets/)
    • Maintains fully automatic workflow when invoked by ln-110-documents-pipeline
    • User customizations in assets/ are preserved (only final HTML is regenerated)
  2. Navigate to presentation assets directory:

    cd docs/​presentation/​assets/
    
  3. Run build script:

    node build-presentation.js
    
  4. Build Script Process:

    • Step 1: Read presentation_template.html
    • Step 2: Read and inline styles.css → <style> tag
    • Step 3: Read and inline scripts.js → <script> tag
    • Step 4: Read all 6 tab files → inject into empty <div> containers
    • Step 5: Replace {{PLACEHOLDERS}} with actual values
    • Step 6: Write ../​presentation_final.html
  5. Validate Output (only if file was built):

    • Check file size (~120-150 KB expected)
    • Verify Mermaid diagrams syntax is valid
    • Log: ✓ Build completed successfully
  6. Notify user:

    • If rebuilt (file existed): ✓ Rebuilt docs/​presentation/​presentation_final.html (~120-150 KB)
    • If created (file NOT existed): ✓ Created docs/​presentation/​presentation_final.html (~120-150 KB)
    • Remind: Test in browser: Double-click to open, or use http-server

Output: docs/​presentation/​presentation_final.html (self-contained, ~120-150 KB, no external dependencies except Mermaid.js CDN)

⚠️ Important Note:

presentation_final.html is a generated file built from modular source files in assets/.

  • ❌ DO NOT edit presentation_final.html directly — changes will be lost on next rebuild
  • ✅ DO edit source files in assets/ directory (template, tabs, styles, scripts)
  • 🔄 Rebuild after changes: cd assets/ && node build-presentation.js

Complete Output Structure

docs/
├── project/                      # Source documentation (input)
│   ├── requirements.md
│   ├── architecture.md
│   ├── tech_stack.md
│   ├── api_spec.md (conditional)
│   ├── database_schema.md (conditional)
│   ├── design_guidelines.md (conditional)
│   └── runbook.md (conditional)
├── reference/                    # Source documentation (input)
│   ├── adrs/
│   │   └── *.md (Category: Strategic | Technical)
│   └── guides/
│       └── *.md (optional)
├── tasks/                        # Source documentation (input)
│   └── kanban_board.md (Epic Story Counters)
└── presentation/                 # Output directory
    ├── README.md                 # Navigation hub
    ├── presentation_final.html   # Final standalone HTML (~120-150 KB)
    └── assets/                   # Modular HTML structure
        ├── presentation_template.html  # Base HTML5 + 6 tabs
        ├── styles.css                  # ~400-500 lines
        ├── scripts.js                  # Tab switching + Mermaid
        ├── build-presentation.js       # Node.js build script
        └── tabs/
            ├── tab_overview.html       # Landing page
            ├── tab_requirements.html   # FRs + ADRs
            ├── tab_architecture.html   # C4 diagrams
            ├── tab_technical_spec.html # API + Data + Deployment
            ├── tab_roadmap.html        # Epic list
            └── tab_guides.html         # How-to guides

Note: Presentation READS from docs/​project/, docs/​reference/, docs/​tasks/ but OUTPUTS to docs/​presentation/​.


HTML Features

  • Single Source of Truth: No information duplication - each piece lives in exactly ONE tab
  • Landing Page (Overview): Problem/​Solution/​Business Value, Stakeholders, Documentation Guide, Quick Facts, Tech Stack badges
  • Interactive Navigation: 6 tabs with SCOPE tags, state persistence (localStorage), smooth transitions
  • Table-Based Layout: FRs table only (Non-Functional Requirements are forbidden), Architecture highlights table
  • Roadmap Simplified: Vertical Epic list with In/​Out Scope sections, status badges, Dependencies/​Success Criteria
  • ADR Organization: Grouped by category (Strategic/​Technical) with accordion, full content inline
  • Diagram Visualization: Mermaid.js with tab-switch rerender (C4, ER, Sequence, Deployment)
  • Responsive Design: Mobile-first (320px/​768px/​1024px+ breakpoints)
  • Collapsible Sections: Auto-collapse with scroll preservation
  • Modern UI: Clean professional design, WCAG 2.1 Level AA compliant
  • English Language: All presentation content in English

Best Practices

Idempotent operation: Preserves README.md, preserves assets/ (user customizations), auto-rebuilds presentation_final.html.

Key rules by phase:

  • Phase 2: STOP if required files missing; Phase 3: WARN only (non-blocking)
  • Phase 5: Don't overwrite existing assets (user customizations)
  • Phase 6: Delete ALL example blocks, escape XSS, valid Mermaid syntax
  • Phase 7: Warn if output >200 KB

Customization Options

Edit assets/​styles.css (CSS variables for theming), assets/​presentation_template.html (layout/​tabs), or assets/​tabs/​*.html (tab content).

⚠️ After any customization: Always rebuild the presentation:

cd assets/
node build-presentation.js

Important: Never edit presentation_final.html directly — it's a generated file that gets overwritten on each build.


Prerequisites

Orchestrator: ln-110-documents-pipeline | Standalone: Yes (rebuild/​validate existing docs)

Required files: requirements.md, architecture.md, tech_stack.md (in docs/​project/) Optional files: api_spec, database_schema, design_guidelines, runbook, adrs/​*.md, guides/​*.md, kanban_board.md

Dependencies: Node.js v18+, Modern browser, Internet (Mermaid CDN)


Definition of Done

PhaseCritical Checkpoints
1. READ DOCS✅ All docs loaded from docs/​project/, docs/​reference/, docs/​tasks/ ✅ Metadata extracted ✅ Mermaid blocks preserved
2. VALIDATE EXISTS✅ Required files exist (requirements.md, architecture.md, tech_stack.md) ✅ ERROR if missing
3. VALIDATE QUALITY✅ Diagrams checked ✅ Placeholders detected ✅ Content length checked ✅ WARN only (non-blocking)
4. CREATE DIR✅ docs/​presentation/ created ✅ README.md created/​preserved
5. COPY TEMPLATES✅ assets/ created with all templates OR preserved if exists
6. INJECT CONTENT✅ All 6 tabs populated ✅ CRITICAL: Example blocks deleted ✅ No <!-- EXAMPLE --> markers ✅ No hardcoded e-commerce data
7. BUILD HTML✅ node build-presentation.js executed ✅ presentation_final.html created (~120-150 KB) ✅ Tested in browser

Output: docs/​presentation/​presentation_final.html + assets/ + README.md


Troubleshooting

  • ERROR: Missing required files: Run ln-111-project-docs-creator to create requirements.md, architecture.md, tech_stack.md
  • WARN: Missing diagrams: Add Mermaid diagrams to architecture.md (C4 Context/​Container/​Component) and database_schema.md (ER diagram)
  • WARN: Placeholders found: Complete documentation in source MD files before building
  • WARN: Sparse content: Expand documentation (requirements.md >500 words, architecture.md >1000 words, tech_stack.md >200 words)
  • Build script fails: Check Node.js v18+, navigate to assets/, verify all files exist
  • Mermaid diagrams not rendering: Check syntax with Mermaid Live Editor, verify CDN loaded
  • Tabs not switching: Check JavaScript loaded, open browser console for errors
  • File too large (>200 KB): Reduce diagrams, minify CSS/​JS, remove unused rules

Version: 8.0.0 Last Updated: 2025-12-12

More DevOps & CI/CD skills

Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.

6K 472.6K
View

Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.

6K 472.6K
View

Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.

1.5K 454.3K
View
azure-kubernetes logo
DevOps & CI/CD

azure-kubernetes

Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.

1.5K 447.1K
View

Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.

92.7K 354.9K
View
just-scrape logo
DevOps & CI/CD

just-scrape

Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.

69 245K
View

Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.

462 159.7K
View

Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.

462 159.1K
View
deploy-to-vercel logo
DevOps & CI/CD

deploy-to-vercel

Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".

31.9K 146.6K
View
programmatic-seo logo
DevOps & CI/CD

programmatic-seo

Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.

53.3K 140.1K
View

Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.

63 123.5K
View

Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".

31.9K 116.1K
View

Coding & apps AI tools

Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View
Imagica logo
Coding & apps

Imagica

Build a no-code AI app in minutes.

Freemium
View
E
Coding & apps

Emergent.sh

An IDE for code migration from legacy to modern frameworks through coding agents.

Freemium
View
Wonder Dynamics logo
Coding & apps

Wonder Dynamics

Automate CGI animation in live-action scenes

Paid
View
M
Coding & apps

Mixo

Launch a website in seconds with AI.

Paid
View
AI Code Convert logo
Coding & apps

AI Code Convert

Streamline Your Coding Experience with AI Code Helper

Free
View