# Kortix Presentation

Recipe: build, edit, present or record a Kortix deck or film (a Next.js route under...

- Repository: https://github.com/kortix-ai/suna (20345 stars)
- Category: Documents
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kortix-ai/suna --skill kortix-presentation -g -a claude-code -y`
Codex: `npx skills add kortix-ai/suna --skill kortix-presentation -g -a codex -y`
Cursor: `npx skills add kortix-ai/suna --skill kortix-presentation -g -a cursor -y`
Gemini CLI: `npx skills add kortix-ai/suna --skill kortix-presentation -g -a gemini-cli -y`

## Description

Recipe: build, edit, present or record a Kortix deck or film (a Next.js route under /presentations in apps/web, never a file). Load kortix-brand first. This skill covers the slide engine, builds, presenter notes, films and QA. Load WHENEVER the user asks for a deck, slides, a presentation, a walkthrough, a talk track, a guided demo, presenter notes, or a product video; and whenever editing anything under apps/web/src/app/[locale]/presentations.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Kortix Presentations

**Load [`kortix-brand`](../kortix-brand/SKILL.md) first.** It owns color, type, layout (deck column), motion, voice and claims. This file owns the slide engine and the procedure.

**A Kortix deck is a Next.js route.** Every presentation lives at
`/presentations/<slug>` in `apps/web`, styled like the marketing site, driven by
the keyboard, and built to be screen recorded.

There is no file format. Do not produce `.pptx`, Keynote, Google Slides, or a
Markdown "slides" file, that output gets rejected on sight, and nothing in this
skill will help you make one. A deck is a React component: it themes correctly,
stays sharp at any projection size, is reviewed in a PR, and cannot drift from
the product copy because it imports the same content modules the marketing pages
do.

## Where everything is

```
apps/web/src/app/[locale]/presentations/
  layout.tsx        full-bleed shell, noindex
  page.tsx          the index, every deck, one card each
  index-client.tsx  the index UI (client: reads each deck's slides for counts)
  registry.ts       the ONE file you edit to add a deck
  [deck]/
    page.tsx        server route: generateStaticParams + generateMetadata
    deck-client.tsx resolves slug → deck, mounts the engine
  decks/<slug>.tsx  a deck: `useSlides(): SlideDef[]`
  engine/
    deck.tsx        keyboard engine, build steps, presenter notes, overview
    parts.tsx       Slide, SectionHead, Spine, Panel, RowList, Shot, Rise…
    diagram.tsx     build-aware mechanism diagrams
  README.md         the authoring guide this skill summarises
```

Shipped decks: `security` (diagram-led, **the reference implementation, read it
first**), `platform`, `sales`. Legacy `/presentation` paths 307 to their new
homes via `next.config.ts`. The tree is allowlisted public in `src/middleware.ts`, decks are link-shared and `noindex`, never behind a login.

## Using a deck

Open `/presentations`, pick one, press `F`.

The rest: https://github.com/kortix-ai/suna/blob/HEAD/.agents/skills/kortix-presentation/SKILL.md
