Install any skill in seconds. Free to start, no credit card required.
Get Started Free →A family history told through five decades of home movies — the opening question, the eras, and what the footage reveals. Built as a decision-grade story deck for family, close friends.
.claude/skills/nexu-io-hps-retro-tv/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 29% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 320% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 76% | 0% |
A locked single-theme deck plugin: the retro-tv skin from the upstream MIT-licensed lewislulu/html-ppt-skill (36 themes × 31 layouts), shipped as one self-contained seed — example.html — that carries the full token sheet, the broadcast decor devices, the slide scaffold, and the keyboard runtime.
Start from example.html. Replace content only. Never rewrite the design system or the runtime script. Never introduce colors or fonts outside this spec.
Positioning vs. sibling retro-skeuomorphic plugins: this is the light warm-cream picture-tube device — scanlines on a cream canvas, not on a black screen. retro-windows is Win95 grey window chrome (title bars, bevels); hermes is dark-background green-phosphor terminal CRT. The three device systems are mutually exclusive — no dark backgrounds, no terminal language, no window chrome here. Do not mix.
Every variable below is defined in the seed's :root. Slides reference tokens only — never hard-code a color in slide markup.
css:root{ --bg:#f5ecd7; /* warm cream canvas */ --bg-soft:#efe4c6; --surface:#fbf5e2; /* parchment card face */ --surface-2:#efe3c2; --border:rgba(120,70,20,.22); /* warm brown hairlines */ --border-strong:rgba(120,70,20,.45); --text-1:#2a1a08; --text-2:#6b4a22; --text-3:#a68656; --accent:#e67e14; /* amber — the lead */ --accent-2:#c73a1f; /* brick red — headlines & emphasis */ --accent-3:#f2b544; /* gold — support */ --good:#3e8940; --warn:#e67e14; --bad:#c73a1f; --grad:linear-gradient(135deg,#c73a1f,#e67e14 55%,#f2b544); --grad-soft:linear-gradient(135deg,#fde6c4,#fbd9a0); --radius:10px; --radius-sm:6px; --radius-lg:16px; --shadow:0 6px 0 rgba(80,40,0,.12),0 12px 28px rgba(80,40,0,.15); --shadow-lg:0 10px 0 rgba(80,40,0,.15),0 24px 50px rgba(80,40,0,.2); --font-sans:'Inter','Noto Sans SC',sans-serif; --font-serif:'Playfair Display','Noto Serif SC',serif; --font-mono:'JetBrains Mono',SFMono-Regular,Menlo,monospace; --font-display:'Playfair Display','Noto Serif SC',serif; --letter-tight:-.01em; --letter-normal:0; --ease:cubic-bezier(.4,0,.2,1); }
Shadows are always the chunky tube pair — a hard 0 Npx 0 offset plus a soft warm blur together. Never a plain flat or pure-black shadow.
Fonts come from Google Fonts @import only (Playfair Display, Inter, Noto Sans SC, JetBrains Mono). No other external resource of any kind.
body background layers faint horizontalscanlines repeating-linear-gradient(0deg,rgba(80,40,0,.06) 0 2px, transparent 2px 4px) over a curved-glass vignette radial-gradient(ellipse at center,#f7ecd0 0%,#e8d9b0 85%,#c9b888 100%) that darkens toward the edges like a powered-on CRT. Slides stay transparent so it shows through everywhere. Never paint an opaque slide background.
.slide::before addsrepeating-linear-gradient(0deg,rgba(0,0,0,.035) 0 2px,transparent 2px 4px) at z-index:1; all slide content sits at z-index:2. Every page reads as a broadcast frame. Never remove or dim it.
.test-bars is an SMPTE-style strip of sixbars in the locked palette (brick / amber / gold / green / parchment / brown). One per slide maximum, as a garnish.
.h1 is brick red#c73a1f with text-shadow:3px 3px 0 rgba(80,40,0,.18); .h2 is warm ink with a 2px offset shadow. Quotes and the giant section numeral go italic Playfair.
knobs and little TV sets stroked in warm browns (#6b4a22/#a68656) with amber/brick tips (.tv-shape). 1–2 per slide maximum.
.on-air is a brick pill with apulsing gold dot; step cards get an automatic CH 01…04 mono badge; pills are mono-type rounded chips with a soft drop ledge.
.gradient-text (the brick→amber→gold--grad) is reserved for big numbers and 1–2 highlight words.
.anim-tube-on flickers a headline or stat in likea CRT warming up (vertical-collapse scale). Use on cover and stat pages.
The upstream catalog is shared across the html-ppt family; compose pages from these master categories:
| group | layouts | |---|---| | Openers & transitions | cover · toc · section-divider | | Text-centric | bullets · two-column · three-column · big-quote | | Numbers & data | stat-highlight · kpi-grid · table · chart-bar/line/pie/radar | | Code & terminal | code · diff · terminal | | Diagrams & flows | flow-diagram · arch-diagram · process-steps · mindmap | | Plans & comparisons | timeline · roadmap · gantt · comparison · pros-cons · todo-checklist | | Visuals | image-hero · image-grid | | Closers | cta · thanks |
Default sequence: cover → toc → (section-divider → 2–4 content pages) × N → thanks. Charts are always pure CSS or inline SVG — never Chart.js or any external library. The seed demonstrates: cover, toc, section-divider, two-column, kpi-grid, stat-highlight, chart-bar, process-steps, big-quote, thanks.
<section class="slide" data-title="..."> inside<div class="deck" id="deck"> — a horizontal scroll-snap strip, each slide exactly 100vw × 100vh (one screen, no internal scrolling), 16:9 / 1280×720 baseline with clamp() type scales, padding 72px 96px.
.deck-header (deck title + theme chip), .deck-footer(attribution + N / total counter), .progress-bar.
← → Space PageUp PageDown Home End navigate.#/N (1-based) deep-links a slide; navigation syncs thehash via history.replaceState wrapped in try/catch (srcdoc-safe).
Event identity and auto-focuses <body> so keys work without a click — these solve real iframe-host bugs; do not "simplify" them away.
<div class="notes">…</div> per slide.example.html; keep all <style> blocks and the <script>verbatim.
content, real numbers — no lorem ipsum, no placeholder images.
every page; place at most 1–2 .tv-shape SVGs (plus optionally one .test-bars strip) per slide.
and emphasis, gold support, warm-brown ink — no dark backgrounds, no green-terminal or window-chrome language, nothing else.
.notes.#/5 deep-links, no slide overflowsvertically, every shadow is the chunky offset-plus-warm-blur pair.
Visual system, token vocabulary, theme palette, and layout taxonomy come from the upstream MIT-licensed lewislulu/html-ppt-skill (© lewis <sudolewis@gmail.com>), theme retro-tv. The LICENSE file ships alongside this skill — keep it in place when redistributing.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | fail→pass | 16,734 | 9,839 | -41% | 1 | 1 | 0% | 2,468 | 4,185 | +70% | 0 | 0 | — |
case-01 | fail→pass | 44,061 | 43,763 | -1% | 1 | 1 | 0% | 8,260 | 10,663 | +29% | 0 | 0 | — |
case-02 | fail→fail | 44,114 | 39,676 | -10% | 1 | 1 | 0% | 8,261 | 10,664 | +29% | 0 | 0 | — |
case-03 | fail→fail | 40,896 | 38,178 | -7% | 1 | 1 | 0% | 8,264 | 10,667 | +29% | 0 | 0 | — |
case-04 | fail→fail | 16,085 | 7,806 | -51% | 1 | 1 | 0% | 2,984 | 3,896 | +31% | 0 | 0 | — |
case-05 | pass→pass | 21,022 | 13,898 | -34% | 1 | 1 | 0% | 3,515 | 5,204 | +48% | 0 | 0 | — |
case-06 | fail→pass | 14,822 | 9,444 | -36% | 1 | 1 | 0% | 2,210 | 4,199 | +90% | 0 | 0 | — |
case-07 | fail→pass | 16,152 | 37,655 | +133% | 1 | 1 | 0% | 2,533 | 10,651 | +320% | 0 | 0 | — |
case-09 | fail→pass | 13,967 | 11,905 | -15% | 1 | 1 | 0% | 2,540 | 4,461 | +76% | 0 | 0 | — |
case-10 | fail→fail | 21,326 | 13,654 | -36% | 1 | 1 | 0% | 3,589 | 4,959 | +38% | 0 | 0 | — |
case-11 | fail→pass | 19,155 | 38,184 | +99% | 1 | 1 | 0% | 2,788 | 10,643 | +282% | 0 | 0 | — |
case-12 | pass→pass | 22,961 | 25,354 | +10% | 1 | 1 | 0% | 4,407 | 7,917 | +80% | 0 | 0 | — |
case-13 | pass→pass | 22,412 | 38,848 | +73% | 1 | 1 | 0% | 3,437 | 10,640 | +210% | 0 | 0 | — |
case-14 | fail→pass | 19,214 | 39,114 | +104% | 1 | 1 | 0% | 3,460 | 10,634 | +207% | 0 | 0 | — |
case-15 | fail→pass | 17,260 | 8,904 | -48% | 1 | 1 | 0% | 2,675 | 4,006 | +50% | 0 | 0 | — |
case-16 | fail→pass | 14,301 | 38,647 | +170% | 1 | 1 | 0% | 2,184 | 10,637 | +387% | 0 | 0 | — |
case-17 | fail→pass | 16,229 | 12,315 | -24% | 1 | 1 | 0% | 2,434 | 4,599 | +89% | 0 | 0 | — |
case-22 | fail→fail | 14,543 | 8,169 | -44% | 1 | 1 | 0% | 2,289 | 3,725 | +63% | 0 | 0 | — |
case-18 | fail→pass | 14,496 | 9,166 | -37% | 1 | 1 | 0% | 2,012 | 4,004 | +99% | 0 | 0 | — |
case-19 | pass→pass | 15,137 | 25,221 | +67% | 1 | 1 | 0% | 2,382 | 7,518 | +216% | 0 | 0 | — |
case-20 | fail→fail | 14,136 | 8,026 | -43% | 1 | 1 | 0% | 2,179 | 3,662 | +68% | 0 | 0 | — |
case-21 | fail→pass | 10,166 | 8,779 | -14% | 1 | 1 | 0% | 1,649 | 3,839 | +133% | 0 | 0 | — |
case-23 | pass→fail | 5,623 | 35,825 | +537% | 1 | 1 | 0% | 1,109 | 10,662 | +861% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +48 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.