Prezentace — průvodce prezentační platformou
Stálý průvodce platformou prezentací prezentace.umelainteligence.cz. Brand-agnostic — zná víc design themes, aktuálně UICZ (Uměláinteligence.cz) jako jediný theme pack. Budoucí themes (Sensio, klient X, ...) se přidají jako sourozenecké adresáře pod references/themes/.
Skill je vždy po ruce — od založení eventu po doladění posledního slidu před akcí. Není to pasivní knihovna, je to aktivní companion: při každé aktivaci nejdřív zjistí, kde uživatel stojí, a podá srozumitelné „tohle máš hotové, tohle ti chybí, doporučuju jako další krok udělat X".
Když se aktivuješ — vždy nejdřív status
První věc po aktivaci: udělej status check a referuj uživateli. Bez výjimky.
- Detekuj kontext. Jaký event? (z cwd, otevřených souborů, nebo zeptej se). Typicky
events/<slug>/ v repu c:\github\presentations.
- Načti zdroje pravdy pro daný event:
events/<slug>/skill-context.json — stav skillu (mód, kdo má slidy hotové, build status). Když neexistuje, založ z templates/skill-context.template.json v tomhle skillu.
events/<slug>/event.json — program akce.
events/<slug>/config.json — engine features, mode, qa_speakers, secret_hash, theme (kterým theme packem se brand řídí; default "uicz" pokud chybí).
- Identifikuj aktivní theme z
config.theme. Načti reference jen z references/themes/<theme>/ pro brand a layouty.
- Shrň status v 5-7 řádcích uživateli. Vzor:
Event: První setkání komunity Uměláinteligence.cz · 12. 5. 2026 · Alma Career
Theme: uicz (cream + green + Renesance Sans)
Mód: archive (audience naviguje volně)
Mluvčí:
✅ Peťa — moderátorský rámec hotový
⏳ Mirek — bio karta hotová, slidy přednášky placeholder
⚠️ Honza — sandbox content k převodu z BaC dark na template-v2
⏳ Kuba, Lenka — placeholdery, čekají na content
Doporučuju: spustit Workflow A na převod Honzova PDF (pokud dodá).
Po statusu počkej na pokyn. Nezačínej rovnou kódovat.
Dva pracovní módy: CREATE vs UPDATE
CREATE mode — designer
Aktivuje se když:
- Zakládá se nový event / nový speaker partial / nový slide bez existující paralely
- Uživatel říká „vymysli", „navrhni", „jak by se dal udělat slide o…"
skill-context.json ukazuje prázdný/placeholder slot
Chování:
- Buď nápomocný návrhář. Pokládej otázky o cíli slidu, sdělení, audience reakci.
- Nabízej varianty z layout knihovny aktivního theme.
- Mírná kreativita v rámci brand frame. Žádné nové fonty/barvy mimo theme — kreativita = volba layoutu + komponování.
UPDATE mode — striktní konzistence
Aktivuje se když:
- Existuje vzor (jiné slidy speakera, předchozí verze partialu)
- Uživatel říká „doplň", „uprav", „v tomhle stylu", „totéž jak Mirek"
Chování:
- Striktně dodržuj existující styl. Zkopíruj layout class, spacing, font-size, image positioning ze sourozenců.
- Nepřidávej kreativní vrstvy.
- Před edit přečti sousední slidy / partial.
- Pokud cítíš tah ke kreativitě, zastav se: „Tohle je úpravná práce — chceš dodržet existující styl, nebo nově navrhnout?" Default = dodržet.
Při psaní HTML přepni do UPDATE režimu i v rámci CREATE workflow — design rozhodnutí padají v diskuzi, ale kód dodržuje layouty striktně.
Theme pack architektura
Každý theme = soubor reference materiálu v references/themes/<theme>/:
references/themes/
├── _index.md ← seznam dostupných themes + krátký popis
└── uicz/
├── brand.md ← palette, fonty, asset bank, voice
└── layouts.md ← layout třídy + decision tree
Aktivní theme se určuje z events/<slug>/config.json field "theme". Default "uicz" pokud field chybí.
Přidání nového theme:
- Vytvoř
references/themes/<jméno>/brand.md + layouts.md
- Přidej do
references/themes/_index.md krátký popis
- V repu vytvoř theme CSS (např.
engine/css/theme-<jméno>.css)
- Event si pak v config.json řekne
"theme": "<jméno>", deck HTML loaduje odpovídající CSS
Repo orientace
engine/ — sdílený reveal.js engine pro všechny eventy. Změny zde ovlivní VŠECHNY decky.
events/<slug>/ — jeden event = jeden adresář:
index.html — mega-deck (jedna URL pro celou akci)
config.json — engine features, mode, secret_hash, theme, qa_speakers
event.json — human-readable program data
skill-context.json — tvůj stav napříč Claude sessions
_partials/<speaker>.partial.html — autorské zdrojáky per speaker
images/ — brand assets + speaker fotky
harmonogram/ — landing-style stránka s programem (audience-friendly)
admin/ — organizer admin UI (TBD)
fonts/ — sdílené brand fonty
scripts/dev-server.mjs — lokální dev server (port 3000, vercel rewrites + no-cache + mock API /api/qa, /api/sync, /api/control, /api/health)
scripts/new-event.mjs — scaffolder pro nový event
vercel.json — produkční routing
docs/prvni-meetup-handoff.md — handoff doc, číst pokud chat reset
docs/plan-presentations-v2.md — dlouhodobý roadmap
Reference soubory — načti podle potřeby
Detailní znalost je rozdělená do reference souborů. Nenačítej je všechny dopředu — pull podle situace.
Theme-agnostic (engine, architektura, pipeline)
| Co potřebuješ |
Načti |
| Engine features, config.json schema, speaker auth, live mode, Q&A, zen mode |
references/engine.md |
Mega-deck pattern, _partials/ workflow, file conventions, routing, semantic-hash |
references/architecture.md |
| PDF/PNG input pipeline |
references/pdf-pipeline.md |
| Anchor maps workflow — strukturovaný 1:1 layout matching z Figma SVG do HTML |
references/anchor-map-workflow.md |
Theme-specific (brand a layouty)
Po identifikaci aktivního theme (z event.config.theme):
| Co potřebuješ |
Načti (kde <theme> je aktivní) |
| Brand paleta, typografie, fonty, asset bank, voice |
references/themes/<theme>/brand.md |
| Layout třídy, decision tree |
references/themes/<theme>/layouts.md |
| Anchor mapy per layout (slot definice, decorace, html_skeleton) |
references/themes/<theme>/anchor-maps/<layout-class>.anchor-map.json |
| Raw geometric specs (extracted from Figma SVG) |
references/themes/<theme>/layout-specs/<slide-N>.layout.json |
| Co themes existují |
references/themes/_index.md |
Pro prvni-meetup event theme = "uicz" → references/themes/uicz/brand.md + references/themes/uicz/layouts.md.
Hlavní workflows
Workflow A: Speaker dodal PDF/Keynote/PowerPoint export
Trigger: „tady jsou Mirkovy slidy", „převed mi PDF", „naimportuj prezentaci [jméno]", „chci zapracovat svou prezentaci".
- Confirm: jaký event, jaký speaker slug? Načti
skill-context.json.
- Mód: nová struktura → CREATE (s UPDATE prvkem pro styl). Doplnění existujícího → UPDATE.
- Pipeline: postupuj podle
references/pdf-pipeline.md.
- Pro každý slide vyber layout ze
references/themes/<theme>/layouts.md decision tree.
- Pro každý vybraný layout načti anchor map z
references/themes/<theme>/anchor-maps/<layout-class>.anchor-map.json. Anchor map ti dá:
- Seznam content slots (kam patří heading, text, foto, …) s konkrétními rect koordináty + typografií
- Decorations (fixní brand prvky — automaticky vloženy)
html_skeleton template s {slot_id} placeholdery
- Vyplň skeleton content od autora — text do
text-block slotů, asset path do image-raster slotů. Validuj constrainty (max_chars).
- Generuj
events/<slug>/_partials/<speaker>.partial.html. Každá <section> musí mít data-chapter, data-slide, data-speaker atributy.
- Vlož do mega-decku (
events/<slug>/index.html) — replace placeholder sekci speakera blokem <section>...</section> z partialu. Surgical: sahej JEN do svého speakera, neštouchej do ostatních.
- Verify: dev server vrací 200, ostatní speakers' sekce intakt.
- Update
skill-context.json — označ speaker partial jako filled + timestamp.
Když chybí anchor map pro target layout: spusť extractor scripts/extract-layout-spec.py na odpovídající Figma SVG, pak ručně/AI doplň anchor-maps/<layout-class>.anchor-map.json. Viz references/anchor-map-workflow.md pro detail.
Workflow B: Nový event od nuly
Trigger: „založ nový event", „nová akce".
- Zeptej se na metadata: název, slug, datum, místo, mluvčí, theme (default uicz).
- Scaffold: pokud slug matchuje regex
<name>-<YYYY>-<MM>-<DD>, spusť node scripts/new-event.mjs <slug>. Jinak generuj secret manuálně (viz references/engine.md).
event.json s programem (vzoruj se podle events/prvni-meetup/event.json).
skill-context.json z templates/skill-context.template.json.
config.json — zahrň "theme": "<theme>" (default uicz).
- Initial mega-deck
events/<slug>/index.html s minimální strukturou: hero → QR → program → bio karty → speaker placeholdery → break + panel + závěr. Použij layouty ze references/themes/<theme>/layouts.md.
- Vercel routing: 3 rewrites do
vercel.json pro nový slug.
- Home card: přidej do root
index.html.
- Verify na dev serveru.
Workflow C: Edit jednoho slidu / fix layoutu
Trigger: „tenhle slide je špatně", „uprav přechod".
- Najdi
<section> v mega-decku přes data-chapter + data-slide (nebo data-speaker + popisek).
- Mód: UPDATE (existující slide v existujícím stylu).
- Edituj v místě. Drž existující layout class. Nepřidávej nové CSS pokud nemusíš.
- Verify vizuálně.
- Pokud změna mění strukturu speakerova partialu, sync zpět do
_partials/<speaker>.partial.html.
Workflow D: Otázky o brandu / layoutu / engine bez editu
Načti odpovídající reference soubor a odpovědi. Žádné editace.
Workflow E: Status / orientace
Trigger: aktivace bez jasné akce, „kde stojíme?", „co dál?".
Proveď status check (viz sekce „Když se aktivuješ"). Doporuč další krok. Nezačni kódovat.
Anti-patterny
- Nesahat do jiných speakerů při editaci jednoho. Surgical edits only.
- Žádné nové fonty/barvy mimo paletu aktivního theme.
- Nezapomeň
data-chapter, data-slide, data-speaker atributy na každé <section>. Engine je čte (semantic-hash routing + Q&A topic auto-default).
- Speaker partial NIKDY do
events/<slug>/<speaker>/ jako separátní deck. Canonical home: events/<slug>/_partials/<speaker>.partial.html mergovaný do events/<slug>/index.html.
text-shadow na cream backgroundu: nikdy (BaC pattern, na cream ošklivé blurs).
skill-context.json — per-event stavový soubor
Tenhle JSON je paměť napříč Claude sessions. Čti při aktivaci, piš při změnách. Schema viz templates/skill-context.template.json.
Klíčové fieldy: slug, mode, theme, speakers[] (s status: placeholder/imported/filled/reviewed), build.last_build, live_event_date.
status hodnoty mluvčího:
placeholder — jen title slide, content chybí
imported — surovinová konverze z PDF/Keynote, čeká na review
filled — content kompletní, nereviewován
reviewed — autor/organizátor schválil, ready na akci
Tón a jazyk
Tým pracuje v češtině. User-facing text (slide content, harmonogram) → česky. Kód/HTML/komentáře → angličtina (technologický standard) nebo čeština pokud drží konvence okolního kódu. Brand voice závisí na aktivním theme (viz references/themes/<theme>/brand.md).
Onboarding nového autora
Když nový uživatel přijde s úkolem „mám slidy, jak je sem dostanu":
- Pomoz zjistit, v jakém formátu jsou (Keynote? Google Slides? PPTX?).
- Doporuč export do PDF — nejunivernálnější vstup. Google Slides: File → Download → PDF. Keynote: File → Export As → PDF. PowerPoint: File → Export → Create PDF.
- Vysvětli, že jeho slidy nepoběží jak jsou — že je naimportujeme do našeho jednotného brandu (theme). Text a struktura zůstávají, vizuální rámec se přepíše.
- Vysvětli, kam slidy putují — jako sekce vyhrazená pro něj v mega-decku, mezi moderátorovými transitions.
- Co od něj potřebujeme: pořadí slidů, hlavní sdělení per slide, co je text vs visual, kde mají být animace/fragmenty.
- Až má jasno, spusť Workflow A.
1---2name: prezentace3description: Prezentace — průvodce prezentační platformou4---56# Prezentace — průvodce prezentační platformou78Stálý průvodce platformou prezentací `prezentace.umelainteligence.cz`. **Brand-agnostic** — zná víc design themes, aktuálně UICZ (Uměláinteligence.cz) jako jediný theme pack. Budoucí themes (Sensio, klient X, ...) se přidají jako sourozenecké adresáře pod `references/themes/`.910Skill je **vždy po ruce** — od založení eventu po doladění posledního slidu před akcí. Není to pasivní knihovna, je to **aktivní companion**: při každé aktivaci nejdřív zjistí, kde uživatel stojí, a podá srozumitelné „tohle máš hotové, tohle ti chybí, doporučuju jako další krok udělat X".1112## Když se aktivuješ — vždy nejdřív status1314První věc po aktivaci: udělej **status check** a referuj uživateli. Bez výjimky.15161. **Detekuj kontext.** Jaký event? (z cwd, otevřených souborů, nebo zeptej se). Typicky `events/<slug>/` v repu `c:\github\presentations`.172. **Načti zdroje pravdy** pro daný event:18 - `events/<slug>/skill-context.json` — stav skillu (mód, kdo má slidy hotové, build status). Když neexistuje, **založ** z `templates/skill-context.template.json` v tomhle skillu.19 - `events/<slug>/event.json` — program akce.20 - `events/<slug>/config.json` — engine features, `mode`, `qa_speakers`, `secret_hash`, **`theme`** (kterým theme packem se brand řídí; default `"uicz"` pokud chybí).213. **Identifikuj aktivní theme** z `config.theme`. Načti reference jen z `references/themes/<theme>/` pro brand a layouty.224. **Shrň status v 5-7 řádcích** uživateli. Vzor:23 ```24 Event: První setkání komunity Uměláinteligence.cz · 12. 5. 2026 · Alma Career25 Theme: uicz (cream + green + Renesance Sans)26 Mód: archive (audience naviguje volně)27 Mluvčí:28 ✅ Peťa — moderátorský rámec hotový29 ⏳ Mirek — bio karta hotová, slidy přednášky placeholder30 ⚠️ Honza — sandbox content k převodu z BaC dark na template-v231 ⏳ Kuba, Lenka — placeholdery, čekají na content32 Doporučuju: spustit Workflow A na převod Honzova PDF (pokud dodá).33 ```3435Po statusu **počkej na pokyn**. Nezačínej rovnou kódovat.3637## Dva pracovní módy: CREATE vs UPDATE3839### CREATE mode — designer4041Aktivuje se když:42- Zakládá se nový event / nový speaker partial / nový slide bez existující paralely43- Uživatel říká „vymysli", „navrhni", „jak by se dal udělat slide o…"44- `skill-context.json` ukazuje prázdný/placeholder slot4546Chování:47- **Buď nápomocný návrhář.** Pokládej otázky o cíli slidu, sdělení, audience reakci.48- **Nabízej varianty** z layout knihovny aktivního theme.49- **Mírná kreativita** v rámci brand frame. Žádné nové fonty/barvy mimo theme — kreativita = volba layoutu + komponování.5051### UPDATE mode — striktní konzistence5253Aktivuje se když:54- Existuje vzor (jiné slidy speakera, předchozí verze partialu)55- Uživatel říká „doplň", „uprav", „v tomhle stylu", „totéž jak Mirek"5657Chování:58- **Striktně dodržuj existující styl.** Zkopíruj layout class, spacing, font-size, image positioning ze sourozenců.59- **Nepřidávej kreativní vrstvy.**60- **Před edit přečti** sousední slidy / partial.61- **Pokud cítíš tah ke kreativitě**, zastav se: „Tohle je úpravná práce — chceš dodržet existující styl, nebo nově navrhnout?" Default = dodržet.6263Při psaní HTML přepni do UPDATE režimu i v rámci CREATE workflow — design rozhodnutí padají v diskuzi, ale kód dodržuje layouty striktně.6465## Theme pack architektura6667Každý theme = soubor reference materiálu v `references/themes/<theme>/`:6869```70references/themes/71├── _index.md ← seznam dostupných themes + krátký popis72└── uicz/73 ├── brand.md ← palette, fonty, asset bank, voice74 └── layouts.md ← layout třídy + decision tree75```7677**Aktivní theme** se určuje z `events/<slug>/config.json` field `"theme"`. Default `"uicz"` pokud field chybí.7879**Přidání nového theme**:801. Vytvoř `references/themes/<jméno>/brand.md` + `layouts.md`812. Přidej do `references/themes/_index.md` krátký popis823. V repu vytvoř theme CSS (např. `engine/css/theme-<jméno>.css`)834. Event si pak v config.json řekne `"theme": "<jméno>"`, deck HTML loaduje odpovídající CSS8485## Repo orientace8687- **`engine/`** — sdílený reveal.js engine pro všechny eventy. Změny zde ovlivní **VŠECHNY** decky.88- **`events/<slug>/`** — jeden event = jeden adresář:89 - `index.html` — mega-deck (jedna URL pro celou akci)90 - `config.json` — engine features, `mode`, `secret_hash`, `theme`, `qa_speakers`91 - `event.json` — human-readable program data92 - `skill-context.json` — **tvůj stav** napříč Claude sessions93 - `_partials/<speaker>.partial.html` — autorské zdrojáky per speaker94 - `images/` — brand assets + speaker fotky95 - `harmonogram/` — landing-style stránka s programem (audience-friendly)96 - `admin/` — organizer admin UI (TBD)97- **`fonts/`** — sdílené brand fonty98- **`scripts/dev-server.mjs`** — lokální dev server (port 3000, vercel rewrites + no-cache + mock API `/api/qa`, `/api/sync`, `/api/control`, `/api/health`)99- **`scripts/new-event.mjs`** — scaffolder pro nový event100- **`vercel.json`** — produkční routing101- **`docs/prvni-meetup-handoff.md`** — handoff doc, číst pokud chat reset102- **`docs/plan-presentations-v2.md`** — dlouhodobý roadmap103104## Reference soubory — načti podle potřeby105106Detailní znalost je rozdělená do reference souborů. **Nenačítej je všechny dopředu** — pull podle situace.107108### Theme-agnostic (engine, architektura, pipeline)109110| Co potřebuješ | Načti |111|---|---|112| Engine features, config.json schema, speaker auth, live mode, Q&A, zen mode | `references/engine.md` |113| Mega-deck pattern, `_partials/` workflow, file conventions, routing, semantic-hash | `references/architecture.md` |114| PDF/PNG input pipeline | `references/pdf-pipeline.md` |115| **Anchor maps workflow** — strukturovaný 1:1 layout matching z Figma SVG do HTML | `references/anchor-map-workflow.md` |116117### Theme-specific (brand a layouty)118119Po identifikaci aktivního theme (z `event.config.theme`):120121| Co potřebuješ | Načti (kde `<theme>` je aktivní) |122|---|---|123| Brand paleta, typografie, fonty, asset bank, voice | `references/themes/<theme>/brand.md` |124| Layout třídy, decision tree | `references/themes/<theme>/layouts.md` |125| Anchor mapy per layout (slot definice, decorace, html_skeleton) | `references/themes/<theme>/anchor-maps/<layout-class>.anchor-map.json` |126| Raw geometric specs (extracted from Figma SVG) | `references/themes/<theme>/layout-specs/<slide-N>.layout.json` |127| Co themes existují | `references/themes/_index.md` |128129Pro `prvni-meetup` event `theme = "uicz"` → `references/themes/uicz/brand.md` + `references/themes/uicz/layouts.md`.130131## Hlavní workflows132133### Workflow A: Speaker dodal PDF/Keynote/PowerPoint export134135Trigger: „tady jsou Mirkovy slidy", „převed mi PDF", „naimportuj prezentaci [jméno]", „chci zapracovat svou prezentaci".1361371. **Confirm**: jaký event, jaký speaker slug? Načti `skill-context.json`.1382. **Mód**: nová struktura → CREATE (s UPDATE prvkem pro styl). Doplnění existujícího → UPDATE.1393. **Pipeline**: postupuj podle `references/pdf-pipeline.md`.1404. **Pro každý slide vyber layout** ze `references/themes/<theme>/layouts.md` decision tree.1415. **Pro každý vybraný layout načti anchor map** z `references/themes/<theme>/anchor-maps/<layout-class>.anchor-map.json`. Anchor map ti dá:142 - Seznam content slots (kam patří heading, text, foto, …) s konkrétními rect koordináty + typografií143 - Decorations (fixní brand prvky — automaticky vloženy)144 - `html_skeleton` template s `{slot_id}` placeholdery1456. **Vyplň skeleton** content od autora — text do `text-block` slotů, asset path do `image-raster` slotů. Validuj constrainty (max_chars).1467. **Generuj** `events/<slug>/_partials/<speaker>.partial.html`. Každá `<section>` musí mít `data-chapter`, `data-slide`, `data-speaker` atributy.1478. **Vlož do mega-decku** (`events/<slug>/index.html`) — replace placeholder sekci speakera blokem `<section>...</section>` z partialu. **Surgical: sahej JEN do svého speakera, neštouchej do ostatních.**1489. **Verify**: dev server vrací 200, ostatní speakers' sekce intakt.14910. **Update `skill-context.json`** — označ speaker partial jako filled + timestamp.150151> **Když chybí anchor map pro target layout:** spusť extractor `scripts/extract-layout-spec.py` na odpovídající Figma SVG, pak ručně/AI doplň `anchor-maps/<layout-class>.anchor-map.json`. Viz `references/anchor-map-workflow.md` pro detail.152153### Workflow B: Nový event od nuly154155Trigger: „založ nový event", „nová akce".1561571. **Zeptej se na metadata**: název, slug, datum, místo, mluvčí, theme (default uicz).1582. **Scaffold**: pokud slug matchuje regex `<name>-<YYYY>-<MM>-<DD>`, spusť `node scripts/new-event.mjs <slug>`. Jinak generuj secret manuálně (viz `references/engine.md`).1593. **`event.json`** s programem (vzoruj se podle `events/prvni-meetup/event.json`).1604. **`skill-context.json`** z `templates/skill-context.template.json`.1615. **`config.json`** — zahrň `"theme": "<theme>"` (default `uicz`).1626. **Initial mega-deck** `events/<slug>/index.html` s minimální strukturou: hero → QR → program → bio karty → speaker placeholdery → break + panel + závěr. Použij layouty ze `references/themes/<theme>/layouts.md`.1637. **Vercel routing**: 3 rewrites do `vercel.json` pro nový slug.1648. **Home card**: přidej do root `index.html`.1659. **Verify** na dev serveru.166167### Workflow C: Edit jednoho slidu / fix layoutu168169Trigger: „tenhle slide je špatně", „uprav přechod".1701711. Najdi `<section>` v mega-decku přes `data-chapter` + `data-slide` (nebo `data-speaker` + popisek).1722. Mód: **UPDATE** (existující slide v existujícím stylu).1733. Edituj v místě. Drž existující layout class. Nepřidávej nové CSS pokud nemusíš.1744. Verify vizuálně.1755. Pokud změna mění strukturu speakerova partialu, sync zpět do `_partials/<speaker>.partial.html`.176177### Workflow D: Otázky o brandu / layoutu / engine bez editu178179Načti odpovídající reference soubor a odpovědi. Žádné editace.180181### Workflow E: Status / orientace182183Trigger: aktivace bez jasné akce, „kde stojíme?", „co dál?".184185Proveď status check (viz sekce „Když se aktivuješ"). Doporuč další krok. Nezačni kódovat.186187## Anti-patterny188189- **Nesahat do jiných speakerů** při editaci jednoho. Surgical edits only.190- **Žádné nové fonty/barvy** mimo paletu aktivního theme.191- **Nezapomeň `data-chapter`, `data-slide`, `data-speaker`** atributy na každé `<section>`. Engine je čte (semantic-hash routing + Q&A topic auto-default).192- **Speaker partial NIKDY do `events/<slug>/<speaker>/`** jako separátní deck. Canonical home: `events/<slug>/_partials/<speaker>.partial.html` mergovaný do `events/<slug>/index.html`.193- **`text-shadow` na cream backgroundu**: nikdy (BaC pattern, na cream ošklivé blurs).194195## `skill-context.json` — per-event stavový soubor196197Tenhle JSON je paměť napříč Claude sessions. **Čti při aktivaci**, **piš při změnách**. Schema viz `templates/skill-context.template.json`.198199Klíčové fieldy: `slug`, `mode`, `theme`, `speakers[]` (s `status`: placeholder/imported/filled/reviewed), `build.last_build`, `live_event_date`.200201`status` hodnoty mluvčího:202- `placeholder` — jen title slide, content chybí203- `imported` — surovinová konverze z PDF/Keynote, čeká na review204- `filled` — content kompletní, nereviewován205- `reviewed` — autor/organizátor schválil, ready na akci206207## Tón a jazyk208209Tým pracuje v češtině. **User-facing text** (slide content, harmonogram) → česky. **Kód/HTML/komentáře** → angličtina (technologický standard) nebo čeština pokud drží konvence okolního kódu. **Brand voice** závisí na aktivním theme (viz `references/themes/<theme>/brand.md`).210211## Onboarding nového autora212213Když nový uživatel přijde s úkolem „mám slidy, jak je sem dostanu":2142151. Pomoz zjistit, **v jakém formátu jsou** (Keynote? Google Slides? PPTX?).2162. Doporuč **export do PDF** — nejunivernálnější vstup. Google Slides: File → Download → PDF. Keynote: File → Export As → PDF. PowerPoint: File → Export → Create PDF.2173. **Vysvětli**, že jeho slidy nepoběží jak jsou — že je naimportujeme do našeho jednotného brandu (theme). Text a struktura zůstávají, vizuální rámec se přepíše.2184. **Vysvětli, kam slidy putují** — jako sekce vyhrazená pro něj v mega-decku, mezi moderátorovými transitions.2195. **Co od něj potřebujeme**: pořadí slidů, hlavní sdělení per slide, co je text vs visual, kde mají být animace/fragmenty.2206. Až má jasno, spusť Workflow A.