Skip to content
Back to skills

Slidev Deck Pipeline

ASecurity

Deterministic pipeline for authoring, verifying, exporting, and deploying OpenCoven Slidev decks (the weekly Show'n Spells system and one-off branded decks). Use whenever asked to build, rebuild, update, export, or publish a Slidev slide deck for OpenCoven — weekly meeting decks, launch decks, or explainer decks.

  • 67 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 3, 2026
ai-agentsgoshellnodegit

Works with

  • cli

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 3, 2026

npx -y skills add OpenCoven/coven --skill slidev-deck-pipeline --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Slidev Deck Pipeline?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Slidev Deck Pipeline
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/opencoven-slidev-deck-pipeline/badge)](https://www.skillsdirectory.com/skills/opencoven-slidev-deck-pipeline)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: slidev-deck-pipeline
description: "Deterministic pipeline for authoring, verifying, exporting, and deploying OpenCoven Slidev decks (the weekly Show'n Spells system and one-off branded decks). Use whenever asked to build, rebuild, update, export, or publish a Slidev slide deck for OpenCoven — weekly meeting decks, launch decks, or explainer decks."
version: 1.0.0
author: Charm
license: AGPL-3.0-only
tags: [Slidev, slides, deck, show-n-spells, open-coven-weekly, presentation, vercel, deterministic]
---

# Slidev Deck Pipeline

The single, repeatable path for turning content into a published OpenCoven Slidev deck.
Optimize for **determinism**: same inputs → same deck → same verified `dist` → same deploy.
Author by writing a real `.md` file with Node's `fs.writeFileSync`, then run the repo's own
scripts to verify and build. Never eyeball-ship.

## When to use

| Scenario | Use this skill |
|----------|----------------|
| Weekly Open Coven / Show'n Spells deck | ✅ (the canonical path) |
| One-off launch / explainer deck in the same house style | ✅ |
| Rebuilding an existing deck "the standard way" | ✅ |
| Exporting a deck to PDF | ✅ |
| Deploying a deck to Vercel (`show.opencoven.ai`) | ✅ |
| Non-Slidev copy (tweets, Discord posts) | ❌ use the voice/social skills instead |

## Repo facts (canonical)

- **Repo:** `/Users/buns/Documents/GitHub/OpenCoven/open-coven-weekly`
- **Decks:** `slides/YYYY-MM-DD.md` (a `-slug` suffix is allowed: `YYYY-MM-DD-slug.md`)
- **Template:** `slides/template.md`
- **Theme:** `theme/` = `@opencoven/slidev-theme-coven`; referenced from a deck as `theme: ../theme`
- **Static assets:** `slides/public/` → served at `/` (images live in `slides/public/img/`, referenced as `/img/<name>`)
- **Package manager:** `pnpm`
- **Deploy:** Vercel project `open-coven-weekly`, aliased to `show.opencoven.ai`, auto-deploys on push to `main`

### The scripts (this is the deterministic core — always use them)

| Command | What it does |
|---------|--------------|
| `pnpm new` (`node scripts/new-week.mjs`) | Scaffolds next Sunday's `slides/YYYY-MM-DD.md` from `template.md`, replacing `{{DATE}}` and `{{MONTH_DAY_YEAR}}` |
| `pnpm dev` | Live Slidev preview of the **latest dated deck** (auto-resolved) |
| `pnpm build` | Build with GitHub-Pages base `/open-coven-weekly/` |
| `pnpm build:vercel` | Build with root base `/` → publishes `slides/dist` (this is what Vercel runs) |
| `pnpm export` | Installs Chromium, exports the latest deck to PDF |
| `pnpm verify` | `pnpm test` + `verify-week` + both builds + `verify:dist` — the full gate |
| `pnpm verify:dist` | Confirms built `dist/index.html` contains the latest deck's frontmatter title |

**Deck resolution is automatic and deterministic** (`scripts/deck-utils.mjs`): the latest deck is the
one with the highest `YYYY-MM-DD`; on a date tie, the **shorter filename wins** (so a bare
`2026-07-15.md` beats a slugged `2026-07-15-draft.md`). To make a deck "the live one," give it the
latest date and the shortest name.

## The deterministic loop (follow in order)

1. **Gather content** — merged PRs (`gh pr list --state merged --limit 30`), releases
   (`gh release list`), and any Sage brief. Cluster into topics (one topic ≈ one slide).
2. **Scaffold** — `pnpm new` (or copy the newest deck as a starting idiom for a slugged one-off).
3. **Author the file with Node `fs.writeFileSync`** — NOT shell heredocs/echo (they truncate long
   content and mangle escapes). See `references/authoring.md`.
4. **Verify** — `pnpm verify` (or at minimum `node scripts/verify-week.mjs`). Fix every failure.
   The verifier enforces: no blank slides, a speaker note on every slide, required strings
   (`theme: ../theme`, `layout: cover`, `layout: default`, `discord.gg/opencoven`), a frontmatter
   `title:`, and the deck's date present in the body.
5. **Preview** — `pnpm dev`, spot-check every slide and every image renders in-browser.
6. **Commit & push** — `git add slides/YYYY-MM-DD.md slides/public/img/<new>` then
   `git commit -m "slides: add YYYY-MM-DD Show'n Spells deck"` and `git push origin main`.
   Vercel auto-deploys. Commit directly to `main` for weekly decks.
7. **Confirm live** — curl the production URL, assert HTTP 200 on `index` and every referenced image.

## House slide idiom (match it exactly)

Non-cover slide skeleton:

```md
---
layout: default
---

<div class="label">Section Label</div>

# Title with one *italic* word

<!-- Full presenter sentences, natural spoken tone.
Use <span class="cue">[stage direction]</span> for cues. -->
```

- **Cover:** either `layout: cover` with a `.sub` line (`Show'n Spells · <time> · discord.gg/opencoven`),
  or `layout: full` for an absolute-positioned full-bleed hero (see `references/full-bleed-hero.md`).
- **Theme classes:** `.label` (section kicker), `.card` + `.card-title` (grid cards),
  `.badge-shipped` (green, live/merged), `.badge-wip` (amber, in progress), `.cue` (speaker-note stage direction).
- **Reveals:** `v-click` on cards/list items for progressive reveal.
- **Every slide MUST have a `<!-- ... -->` speaker note.** No exceptions — the verifier rejects blanks.
- **Arc:** Cover → Agenda ("Tonight's Spells") → Shipped (one per cluster) → Live demo stop →
  Open-floor stops (2–3, scattered) → optional Architecture → Outro (Discord CTA + next-week teaser).

## Hard rules (learned the hard way — see references/gotchas.md)

- **Author with `fs.writeFileSync`**, never heredoc/echo for deck bodies.
- **Images:** put files in `slides/public/img/`, reference as `/img/<name>.jpg`. Full URLs must be
  `https://`. In-browser (`pnpm dev` / the live Vercel build) renders all images fine.
- **PDF export drops early background images** (Slidev export-timing bug): it reliably renders only
  the *last* image slides. For a perfect PDF, present from the live URL, or composite the PDF from
  high-res text-slide renders + the JPEGs at their exact page positions. Do NOT claim a clean PDF
  without opening it page-by-page.
- **Deploy target:** reuse the existing `open-coven-weekly` Vercel project. Do NOT spawn throwaway
  projects (`dist`, `coven-threads-explainer`, etc.). If you accidentally do, delete them.
- **"Standard format" means the house idiom above** — theme `../theme`, `.label`/`.card`, `v-click`,
  speaker notes, the standard arc. When Val says "rebuild the standard way," this is what she means.

## References

- `references/authoring.md` — the Node `fs.writeFileSync` authoring pattern + template vars
- `references/full-bleed-hero.md` — the absolute full-bleed image hero recipe (from the Cave party deck)
- `references/verify-deploy.md` — the exact verify → commit → deploy → confirm-live commands
- `references/gotchas.md` — PDF export bug, image auth, throwaway-project trap, heredoc trap

Files in this skill

  • SKILL.md6.7 KB
  • references/authoring.md1.7 KB
  • references/full-bleed-hero.md2.3 KB
  • references/gotchas.md2 KB
  • references/verify-deploy.md2.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.