From openkb
Generates polished single-file HTML slide decks in the Editorial Monocle visual direction (warm cream, serif, brick-red) from compiled KB content.
How this skill is triggered — by the user, by Claude, or both
Slash command
/openkb:openkb-deck-editorialThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are designing a presentation, not writing a research report. Each
You are designing a presentation, not writing a research report. Each slide carries one idea. Visual structure carries the narrative.
The user typed something like "make a deck about X" inside openkb chat.
You have wiki-read tools in your normal tool set, plus a write_file
tool that can write under output/**, plus a shell tool you can use to
read this SKILL.md and any files in skills/openkb-deck-editorial/ if
needed.
Pick a kebab-case slug for the deck (e.g. transformers-pitch) and
write the output to output/decks/<slug>/index.html.
Exactly one file: output/decks/<slug>/index.html.
It must be self-contained: no external <link rel="stylesheet">,
no external <script src="…">, no remote <img>. All CSS goes in a
single inline <style> in <head>. Helper JS for keyboard navigation
goes in a single inline <script> at end of <body>.
The body is a sequence of <section class="slide" data-type="...">
blocks. Each data-type must be one of the 7 values listed in §
"Slide grammar" below. The deck supports keyboard navigation: ← / →
move between slides, F toggles fullscreen, P triggers print.
Use this fixed design system. Do not improvise nearby colors, do not introduce gradients, do not bring in emojis. This is the only non-monochrome palette in the entire deck.
:root {
--bg: #f3eee1; /* oklch(94% 0.03 80) — warm cream paper */
--ink: #1a1612; /* oklch(15% 0.01 50) — warm near-black */
--muted: #7a6e55; /* oklch(55% 0.04 75) — labels / metadata */
--rule: #d4cfc0; /* oklch(82% 0.02 75) — thin separator */
--accent: #a4341c; /* oklch(45% 0.16 30) — brick red, the ONLY non-monochrome */
--highlight: #fff3a8; /* oklch(95% 0.10 95) — marker highlighter ONLY */
}
font-family-serif: "Charter", "Iowan Old Style", "Times New Roman", Georgia, serif;
font-family-sans: "Inter", -apple-system, "Helvetica Neue", sans-serif; /* labels only */
Type scale (size / line-height / letter-spacing):
--type-display: 56px / 1.05 / -1px — cover/chapter big titles--type-title: 38px / 1.10 / -0.5px — normal slide titles--type-body: 18px / 1.55 / 0 — body copy--type-quote: 28px / 1.30 / -0.3px italic — pull quotes--type-label: 10px / 1.0 / 2.5px uppercase — top/bottom label tracksaspect-ratio: 16/9; width: 100vw; max-width: 1280px;N / Total, right = source short label..display) must use max-width: 18ch (NOT 10ch).
Never wrap an article ("the", "an", "to") onto its own line..data-body { align-items: center; text-align: center } for
data-type="data" only — leave other slide types left-aligned).
Body copy beneath stays centered, max-width 38em..cover-body, .closing-body { max-width: 26em }..kbd { opacity: 0; transition: opacity .25s ease; }
body:hover .kbd { opacity: .55; }
data-type values)data-type | Use | Visual signature |
|---|---|---|
cover | First slide: tag + huge title + 1-line subtitle | Display type, left-aligned, never centered |
chapter | Section divider: oversize number + chapter name | Number 120px brick-red, name 38px serif |
thesis | A single claim + a short explanation | Title fills ~60% height, explanation small bottom |
quote | Italic pull-quote + attribution | Centered, serif italic 28px, generous whitespace |
compare | Two-column comparison: header + 3-5 lines each side | 1px brick-red vertical rule between columns |
data | One number + label + one-line interpretation | Number 120-160px brick-red, micro-copy 12px |
closing | Mirrors cover; thanks / next steps | Same scale as cover but content closes the arc |
Cover/closing exception: the cover and closing slides have no
chapter context, so the top-left label is the deck identifier
("OPENKB") instead of a CHAPTER NN id.
concepts/ and
summaries/, and read wiki/index.md. Form a mental map before
committing to what the deck argues.data-type assignments. Vary data-type — at least 4
distinct types, no run of 3+ consecutive same type.output/decks/<slug>/index.html in one write_file
call. Inline all CSS, inline the keyboard nav JS, use inline
<svg> only for any graphics (v1 does not embed bitmap images).compare / data slide.data-type.quote and closing are centered.output/decks/<slug>/index.html exist and contain no external
<link> or <script src=>?data-type="cover" and one
data-type="closing"?data-type values used?data-type?If any answer is no, revise and re-run this self-check.
npx claudepluginhub vectifyai/openkbGenerates a dark, neon-themed HTML slide deck from compiled KB content with glassmorphism panels and aurora gradient atmosphere. Use for presentations with a cyber/tech aesthetic.
Generate keyboard-navigable HTML slideshow decks for presentations, tech talks, leadership briefings, onboarding walkthroughs, and any sequential visual narrative. Use whenever the user wants slides, a deck, a presentation, a tech talk, a brown-bag, a briefing, or any sequential walkthrough — especially when they want to share via a link rather than as a PowerPoint or Keynote file. Prefer HTML over .pptx whenever the deck contains live code, embedded interactivity, or will be shared as a URL.
Generates a professionally designed HTML slide deck from a brief or content notes. Single-file output with 13 layout types and 8 style presets.