🎯

ln-150-presentation-creator

🎯Skill

from levnikolaevich/claude-code-skills

VibeIndex|
What it does

Generates interactive HTML presentations with 6 tabs from project documentation, creating a professional, navigable web view for sharing project details.

πŸ“¦

Part of

levnikolaevich/claude-code-skills(85 items)

ln-150-presentation-creator

Installation

Node.jsRun Node.js server
node build-presentation.js
πŸ“– Extracted from docs: levnikolaevich/claude-code-skills
13Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

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.

Overview

# 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

  1. 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)

  1. Read ADRs (if exist):

- reference/adrs/adr-001-.md through adr-NNN-.md

- Parse ADR metadata (status, date, title, Category: Strategic|Technical)

  1. Read Guides (if exist):

- reference/guides/*.md - How-to guides for Guides tab

  1. Read Kanban Board (if exists):

- tasks/kanban_board.md - Epic Story Counters table for Roadmap progress

  1. 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

  1. 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](references/phases_detailed.md#phase-3-validate-source-content-quality)

---

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:

```bash

mkdir -p docs/presentation/

```

  1. 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

  1. 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

  1. 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

  1. Copy template files:

```bash

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/

```

  1. 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 ... 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](references/phases_detailed.md#phase-6-content-injection--example-cleanup)

---

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)

  1. Navigate to presentation assets directory:

```bash

cd docs/presentation/assets/

```

  1. Run build script:

```bash

node build-presentation.js

```

  1. Build Script Process:

- Step 1: Read presentation_template.html

- Step 2: Read and inline styles.css β†’