CtrlK
BlogDocsLog inGet started
Tessl Logo

presentation-structure

Knowledge about the presentation slide format, weight system, navigation, and section structure

55

Quality

61%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.claude/skills/presentation/presentation-structure/SKILL.md
SKILL.md
Quality
Evals
Security

Presentation Structure Skill

Knowledge about how the presentation at presentation/index.html is structured.

File Location

presentation/index.html — a single-file HTML presentation with inline CSS and JS.

Slide Format

Each slide is a div with data-slide (sequential number) and optional data-level (journey level at transition points):

<!-- Regular slide — inherits level from previous data-level slide -->
<div class="slide" data-slide="12">
    <h1>Slide Title</h1>
    <!-- content -->
</div>

<!-- Level transition slide — sets new level for this slide and all following -->
<div class="slide section-slide" data-slide="10" data-level="low">
    <h1>Section Name</h1>
    <p class="section-desc">Level: Low — description of this section</p>
</div>

<!-- Title slide (centered) -->
<div class="slide title-slide" data-slide="1">
    <h1>Presentation Title</h1>
    <p class="subtitle">Subtitle text</p>
</div>

Journey Bar Level System

The presentation uses a 4-level system instead of cumulative percentages:

  • Levels are set via data-level attribute on key transition slides (section dividers)
  • All slides after a data-level slide inherit that level until the next transition
  • The journey bar fills to 25% / 50% / 75% / 100% for Low / Medium / High / Pro respectively
  • The bar is hidden on slide 1 (title slide); from slide 2 onward the bar is shown
  • Slides before the first data-level (slides 2–9) show an empty bar (no level yet set)
  • A .level-badge is JS-injected on the <h1> of slides that carry data-level — do NOT hardcode in HTML

Level Transitions by Section

SectionSlide Rangedata-levelBar Height
Part 0: IntroductionSlides 1-4(none)hidden / empty
Part 1: PrerequisitesSlides 5-9(none)empty
Part 2: Better PromptingSlides 10-17low25%
Part 3: Project MemorySlides 18-24medium50%
Part 4: Structured WorkflowsSlides 25-28(inherits medium)50%
Part 5: Domain KnowledgeSlides 29-33high75%
Part 6: Agentic EngineeringSlides 34-46high75%
AppendixSlides 47+(inherits high)75%

Navigation System

  • goToSlide(n) — used in TOC links, must match actual data-slide numbers
  • totalSlides is auto-computed from DOM (document.querySelectorAll('[data-slide]').length)
  • Arrow keys, Space, and touch swipe for navigation
  • Slide counter shows current / total at bottom-left

Renumbering Rules

After adding, removing, or reordering slides:

  1. Renumber ALL data-slide attributes sequentially starting from 1
  2. Update all goToSlide() calls in the TOC/Journey Map slide
  3. The JS totalSlides auto-computes — no manual update needed
  4. Verify no gaps or duplicates exist

Section Divider Format

Section dividers use the section-slide class. Level-transition section dividers carry data-level and show the level name in the description:

<div class="slide section-slide" data-slide="10" data-level="low">
    <p class="section-number">Part 2</p>
    <h1>Better Prompting</h1>
    <p class="section-desc">Level: Low — effective prompting for real results.</p>
</div>

The JS will inject a .level-badge (e.g., "→ Low") into the <h1> at runtime when the level transitions — do not add these manually in HTML.

Repository
shanraisshan/claude-code-best-practice
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.