deck
/octave:deck - Octave-Powered Deck Builder
Build compelling, self-contained HTML presentations powered by your Octave GTM knowledge base. Unlike generic slide builders, this skill leverages your library's personas, competitors, Motion ICP narratives, proof points, and real conversation data to research, structure, and generate presentations grounded in your actual go-to-market intelligence.
HTML presentation engine inspired by frontend-slides by Zara Zhang (MIT license). Decks render on a fixed 1920×1080 stage scaled to the viewport (see references/viewport-base.css).
On-brand styling — use a brand kit if one exists
Before generating, decide whose brand this deck should match (usually the target company; sometimes your own company). Then:
- Resolve the company to a
<slug>and check for a cached brand kit at~/.octave/brands/<slug>/manifest.json. - If a kit exists → offer it: "I found a saved brand kit for — want this deck rendered in their brand?" If yes, style the output with the kit instead of a generic preset:
- inline the kit's
tokens.css(:root+ the embedded@font-face) andget-brand-components/assets/kit_base.cssinto the output<style>; - follow
brand-kit.md→ Signature moves, and reuse the kit's real logo,images/, andicons.json; - for doc-shaped output you can compose directly with
get-brand-components/scripts/render_kit.py(hero / split / logos / pricing / cta / footer blocks).
- inline the kit's
- If no kit exists → offer to build one first: "No brand kit for yet — want me to capture it (~1 min) so this is on-brand?" → run
/octave:get-brand-components <domain>, then proceed. - If the user declines → generate with the default style/preset.
The brand kit is the strongest styling signal — when one is available, prefer it over generic
--stylepresets. See theget-brand-componentsskill for the kit format, token contract, and renderer.