Install any skill in seconds. Free to start, no credit card required.
Get Started Free →A career-pivot story from consultant to product leader — the arc, the proof, and why the next role is the right bet. Built as a decision-grade career deck for hiring manager, mentors.
.claude/skills/nexu-io-huashu-slides/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 48% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 128% | 0% |
Produce a single-file, publication-grade HTML deck. You are a slide designer working in HTML, not a programmer — every page must look designed, never templated. The visual system, canvas contract, and navigation runtime are locked by example.html. Start from example.html, replace content only — do not rewrite the design or the script.
Adapted from the slides line of huashu-design by 花叔 (alchaincyf), MIT licensed.
<div id="stage"> fixed at 1920 × 1080 px, centered withposition: fixed; top: 50%; left: 50%.
fit() function scales the stage to the viewport:scale = min(innerWidth / 1920, innerHeight / 1080), applied as translate(-50%, -50%) scale(s), re-run on resize. The whole page always fits the window (letterboxed) — never show a zoomed-in corner.
vw/vh/% for type) —the scaler owns responsiveness.
<section class="slide"> directly inside #stage, with adata-screen-label="01 封面"-style label (1-indexed; humans never say "slide 0").
.active (display toggled by the script); darkpages add the .dark class.
←/↑/PageUp previous · →/↓/Space/PageDown next ·Home/End first/last.
#/N (1-indexed) read on load and hashchange, written viahistory.replaceState on every navigation.
03 / 10), key-hint bottom-left.scrollIntoView(), no external JS, no build step — the file must opencorrectly inside a sandboxed iframe via file://.
:root, keep the names)--paper warm paper light bg · --night warm near-black dark bg · --ink/--night-ink text · --accent the single accent (seed: terracotta #C04A1A) · --hairline rules · --serif Noto Serif SC display · --serif-en Lora italic English subtitles · --sans body · --mono labels. Re-theme by changing token values only (from the user's brand or an active DESIGN.md); never introduce a second accent color.
| Layout | Role | |---|---| | cover | masthead + kicker + giant serif title + English italic subtitle | | divider | dark bg + chapter number + oversized chapter title | | content | one claim (60–84px) + at most 3 supporting cards | | data | a giant number or chart as the visual protagonist | | quote | whitespace + huge quote (with inline-SVG quote mark) + attribution | | two-column | before/after · problem/solution comparison | | closing | dark bg + giant CTA + key-hint capsule |
numbering lives only in the runtime counter pill — never also print NN / total inside a slide (upstream's documented double-page-number bug).
var(--serif) weight 900; key words get class="hl" (accent) —never color the whole heading.
Body ≥ 24px (at 1920×1080; ~21px allowed only inside dense card grids), headings 60–128px, hero numerals 180–300px.
least one dark divider, one dark hero/stat, and a dark closing.
tone, and whether an editable PPTX is needed (this changes the HTML rules — see below). One focused batch of questions, then wait.
never invented statistics. Missing data gets an honest <!-- 待用户提供 --> placeholder, not fake numbers.
pages (e.g. cover + data), show them, then batch the rest with the approved grammar. Direction wrong = 2 pages of rework, not 13.
example.html, retitle it, swap token values if the user has abrand, then replace each section's content following the layout enumeration. Keep masthead/kicker/footer chrome and the script intact.
#/N hash stay in sync; no page overflows 1920×1080; no 3+ same theme in a row; body type ≥ 24px; grep for leftover TODO/placeholder text.
paper + single terracotta accent is the baseline.
✦ ✓ → ·).#0D1117 + neon glow "GitHub-dark" laziness.screenshots); ask the user for them rather than faking.
The HTML deck is always the source of truth. If the user only needs to present or archive, the HTML (or a browser-printed PDF) is the deliverable.
If the user explicitly needs an editable PPTX (colleagues will edit text in PowerPoint), the HTML must follow these constraints from the first line — retrofit costs hours:
<p>/<h1>–<h6>/<ul>/<ol> — no bare text in <div>,no <span> as the main text carrier, no ::before/::after text.
<p>/<h*> themselves (wrap in a div).background-image on divs (use <img>), no webcomponents, no complex decorative SVG.
Tell the user honestly that this trades away visual freedom, and never degrade the default HTML deck design just to keep PPTX possible. Conversion itself is done with an HTML-to-PPTX tool of the user's environment (upstream uses html2pptx); from this plugin, deliver the constraint-compliant HTML.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | fail→pass | 30,574 | 43,428 | +42% | 1 | 1 | 0% | 6,241 | 9,212 | +48% | 0 | 0 | — |
case-02 | fail→fail | 37,850 | 52,910 | +40% | 1 | 1 | 0% | 8,262 | 10,220 | +24% | 0 | 0 | — |
case-01 | fail→fail | 38,417 | 71,387 | +86% | 1 | 1 | 0% | 8,261 | 10,219 | +24% | 0 | 0 | — |
case-03 | fail→pass | 36,729 | 75,579 | +106% | 1 | 1 | 0% | 8,249 | 10,207 | +24% | 0 | 0 | — |
case-04 | fail→fail | 25,012 | 35,873 | +43% | 1 | 1 | 0% | 5,029 | 7,947 | +58% | 0 | 0 | — |
case-05 | pass→pass | 29,559 | 34,818 | +18% | 1 | 1 | 0% | 4,700 | 6,781 | +44% | 0 | 0 | — |
case-06 | fail→pass | 50,466 | 49,849 | -1% | 1 | 1 | 0% | 8,234 | 10,192 | +24% | 0 | 0 | — |
case-07 | fail→fail | 22,255 | 53,423 | +140% | 1 | 1 | 0% | 4,995 | 10,192 | +104% | 0 | 0 | — |
case-09 | pass→pass | 27,664 | 39,323 | +42% | 1 | 1 | 0% | 4,350 | 10,179 | +134% | 0 | 0 | — |
case-10 | fail→pass | 27,751 | 41,511 | +50% | 1 | 1 | 0% | 6,124 | 8,751 | +43% | 0 | 0 | — |
case-11 | fail→pass | 12,140 | 15,825 | +30% | 1 | 1 | 0% | 1,795 | 4,085 | +128% | 0 | 0 | — |
case-12 | pass→pass | 13,095 | 7,571 | -42% | 1 | 1 | 0% | 1,751 | 3,173 | +81% | 0 | 0 | — |
case-13 | pass→pass | 10,739 | 10,478 | -2% | 1 | 1 | 0% | 1,707 | 3,284 | +92% | 0 | 0 | — |
case-14 | fail→pass | 8,053 | 29,095 | +261% | 1 | 1 | 0% | 1,224 | 6,792 | +455% | 0 | 0 | — |
case-15 | fail→fail | 16,171 | 47,977 | +197% | 1 | 1 | 0% | 3,098 | 9,876 | +219% | 0 | 0 | — |
case-16 | pass→pass | 13,474 | 36,988 | +175% | 1 | 1 | 0% | 2,320 | 10,208 | +340% | 0 | 0 | — |
case-17 | pass→pass | 17,371 | 12,803 | -26% | 1 | 1 | 0% | 2,499 | 4,166 | +67% | 0 | 0 | — |
case-18 | pass→pass | 14,238 | 12,839 | -10% | 1 | 1 | 0% | 2,094 | 3,811 | +82% | 0 | 0 | — |
case-19 | pass→pass | 10,246 | 8,289 | -19% | 1 | 1 | 0% | 1,549 | 3,002 | +94% | 0 | 0 | — |
case-20 | pass→fail | 24,389 | 8,853 | -64% | 1 | 1 | 0% | 3,517 | 3,389 | -4% | 0 | 0 | — |
case-21 | pass→pass | 30,589 | 38,519 | +26% | 1 | 1 | 0% | 5,869 | 10,189 | +74% | 0 | 0 | — |
case-22 | fail→fail | 76,119 | 39,017 | -49% | 1 | 1 | 0% | 8,238 | 10,196 | +24% | 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. 22 cases were attempted. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 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.