# Discover Presentation

> Interview the user. Use when starting a new presentation or updating requirements.

- Skill: `ken-guru/discover-presentation` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add ken-guru/discover-presentation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ken-guru/discover-presentation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ken-guru (https://skillmd.com/u/ken-guru)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ken-guru/discover-presentation

---


# Discover Presentation

Gathers presentation requirements through a conversational interview. Writes results to `DISCOVERY.json` and `PROJECT.json` in the project folder.

## Output voice

Apply a lightweight human-voice pass to interview questions, assumption
summaries, and confirmation prompts. Keep the conversation specific and warm
without forced enthusiasm. Preserve user wording when it is being recorded as
project content, and keep JSON field names and values exact. Record any
editorial preferences the user gives. Every presentation-copy phase must run
the standalone `unslop` Skill as a required editorial pass, using those
preferences.

## Gotchas
- Advance to Step 2 only after at least 3 of 4 persona dimensions are known — thin personas produce generic slides
- Infer language from how the user writes; ask explicitly only if ambiguous
- Write DISCOVERY.json only after the user confirms the defaults summary in Step 2

## Startup

Before proceeding:
1. Confirm the project folder is writable — if not, abort:
   `❌ Cannot write to <path>`.

If `DISCOVERY.json` already exists, read and retain it for change comparison. Do not delete anything yet.

## Procedure

### Step 1: Interview

Ask the questions in [QUESTIONS.md](QUESTIONS.md) conversationally. Extract structured data from free-form answers. Accept partial answers and fill the rest with defaults from [DEFAULTS.md](DEFAULTS.md).

**Language detection:** Infer the presentation language from how the user writes. If they write in Norwegian, default to Norwegian bokmål. If they write in English or another language, use that. The detected language is recorded in `DISCOVERY.json` and must be respected throughout all subsequent phases — all generated content (slides, presenter notes, glossary) must be in that language.

Complete the persona depth section before moving to Step 2. A persona is considered sufficient when at least 3 of the 4 depth dimensions (experience level, goal, concerns, takeaways) are known.

### Step 2: Confirm defaults

Present a one-shot confirmation summary before writing any files:

```
📋 Default assumptions — correct anything that doesn’t fit:

- Topic: [topic]
- Audience: [audience]
  - Experience level: [experience_level]
  - Goal: [goal — implement / understand]
  - Concerns: [top_concerns]
  - Top 3 takeaways: [top_takeaways]
- Duration: [duration]
- Occasion: [occasion]
- Language: [language]
- Presentation style: [narrative structure from DEFAULTS.md]
- Presentation Theme: [Editorial / Signal / Field Notes] ([identifier])
- Editorial preferences: [tone, preferred styles, and styles to avoid — or none]
- External Font Override: [exact family or none]
- Pagination: Yes
- Max bullet points per slide: 5–6
- Visual preference: [Picture / Diagram / None]
```

Also confirm file/folder naming:

| File / Folder | Default |
|---|---|
| Agenda | `AGENDA.md` |
| Presentation | `PRESENTASJON.md` |
| Images | `images/` |
| Videos | `videos/` |
| Docs | `docs/` |
| Sources | `docs/sources/` |
| Themes | `themes/` |

Ask: "Would you like to use the default names, or would you like to adjust any?"

Wait for the user to approve or correct before proceeding to Step 3.

If prior Discovery state exists, compare it with the confirmed values now. Run the restart guard per [RESTART-GUARD.md](RESTART-GUARD.md), selecting the theme-only, font-only, or general path from the actual diff. Complete the guard before writing new state.

### Step 3: Write state files
Read the external pointer file `WRITE_DISCOVERY.md` for the next steps ONLY AFTER the user confirms the defaults in Step 2.

