Přeskočit obsah

Roadmap (idea space, ne kontrakt)

Poslední aktualizace: 13. května 2026

Tento dokument je vizionářský — popisuje nápady pro fáze po MVP, ne závazky. Jakmile se nápad přesune k realizaci, vznikne brief v docs/intent/ přes /define. Před tím nemá ani spec, ani ADR.

Dříve BACKLOG.md. Přesunuto pod ideas/ jako součást I³ doc cleanup (2026-05-13), aby bylo jasné, že roadmap není kontrakt s agenty.

Tento dokument shrnuje plánované funkce a rozhodnutí pro fáze po MVP. Položky jsou seřazeny podle priority a fáze.


Next 3 (Ready for /define)

Krátký seznam tří dalších specs, na které mířit. Splňují Definition of Ready. PO (Tomáš) ho udržuje ručně; doc-curator a process-analyst ho můžou navrhnout přerovnat.

  1. U-04 — Přiřazení tématu ročníku jedním chipem (USERS.md U-04). Cílový uživatel: teacher. Úspěch: učitel přiřadí téma celému ročníku do 5 sekund, žák může být individuálně vyjmut. Závislosti: stávající topics tabulka.
  2. U-05 — Individuální přiřazení žáka k tématu jiného ročníku (USERS.md U-05). Cílový uživatel: teacher. Úspěch: žák je v daném slotu právě u jednoho tématu napříč ročníky. Stojí na U-04.
  3. Týdenní completeness view (USERS.md U-07). Cílový uživatel: teacher na desktopu večer. Úspěch: jedním pohledem na týden vidí, které sloty mají vyplněné téma + docházku. Read-only, žádná editace.

Po dokončení každého z těchto specs (Status: Implemented v jeho souboru) Tomáš doplní novou položku z USERS.md / BACKLOG níže. Seznam má být přesně 3 — víc je rozptyl, míň znamená, že chybí grooming.


RFC: Universal Knowledge Graph

Univerzální knowledge graph jako základ pro celý systém — content-agnostic graf myšlenek/nodů s AI overlay, který dynamicky generuje kontext per role.

ideas/knowledge-graph.md


Fáze 2: Teacher Tools

PM Kanban (vlastní modul v Kosmu)

Jednoduchý interní PM přímo v Kosmu. Detailní specifikace viz Příloha: PM modul na konci dokumentu.

Rozhodnutí: Vlastní modul místo SaaS. Důvod: jedna appka, nativní Gemini integrace, přepis porady → úkoly automaticky. Fallback: Trello/Todoist.

Portfolio upload

Učitel nahrává fotky práce žáků + popis. Základ pro rodičovský feed (Fáze 3).

  • Upload přes Kosmo UI → Supabase Storage (RLS z boxu)
  • Gemini Vision auto-popis fotky
  • Vazba na žáka, třídu, datum

Generování dokumentů (WYSIWYG + Typst → PDF)

Škola dnes plní Word šablony ručně. Řešení: WYSIWYG editor (TipTap v2) v Kosmu, kde ředitel tvoří šablony s proměnnými a sekretářka jedním klikem generuje PDF.

  • Editor: TipTap v2 s custom variable chips (inline {{student.fullName}})
  • Pipeline: Markdown → resolve proměnných z DB → MD → Typst → PDF
  • Typst: Moderní alternativa LaTeXu, ~30 MB binary, kompilace <1s
  • Školní šablona: Záhlaví (logo + adresa), patička (IČO, kontakty), font Inter
  • Batch: Generování pro celou třídu/školu najednou (Vercel cron nebo Inngest)
  • AI asistence (Sofie): Draftování šablon, vylepšení textu, GDPR formulace
  • Tabulky: document_templates, document_template_versions, generated_documents

Otevřené otázky (dokumenty): - D1) Font: výchozí Typst, nebo bundlovat Inter? - D2) Logo školy — potřeba SVG/PNG pro záhlaví - D3) Role v profiles: sloupec role nebo separátní user_roles? - D4) Podpisové pole v PDF? - D5) Archivace: PDF permanentně do GCS, nebo generovat on-demand? - D6) Email: odeslat PDF rodičům přímo?

Generování pracovních listů (Sofie chat → Typst → PDF)

Učitel popíše požadavek v chatu → Sofie (Gemini Flash) vygeneruje Typst markup → typst compile → PDF ke stažení.

  • Workflow: Sofie chat (app.sofie.education) → AI Chain → extract Typst → compile → PDF
  • Typst šablona (worksheet.typ): Helper funkce #exercise(), #fill-blank(), #choice(), #instructions()
  • Error handling: Při chybě kompilace → Gemini opraví (max 1 retry)
  • Iterace: Window Buffer Memory (10 zpráv) pro úpravy
  • Infra: Typst binary jako Vercel Edge Function nebo Docker sidecar na GCP VM

Otevřené otázky (pracovní listy): - W1) Font: výchozí Typst, nebo bundlovat vlastní? - W2) Logo školy v hlavičce? - W3) Kam učitelé přistupují — stávající ai.sofie.education, nebo dedikovaný endpoint? - W4) Ukládat historii vygenerovaných listů?

Hlasový debrief

Přepis porady → extrakce úkolů → automatické vytvoření v PM modulu.

Nahrávka (telefon) → Gemini přepis → extrakce "kdo, co, do kdy" → úkoly v Kosmu
  • Pro MVP: manuálně přes Google AI Studio (zdarma, až 3h přepis)
  • Budoucí: Google Meet „Take notes for me" (vyžaduje Business Standard)

Fáze 3+: Newsletter

Listmonk byl odstraněn (2026-05-11). Newsletter pro ~150 rodin = triviální objem.

  • Nástroj: Resend (transactional, již nastaveno) + ad-hoc HTML šablona per kampaň
  • Gemini flow: Konec měsíce → Gemini projde fotky, projekty, poznámky → draft → ředitel schválí → Resend batch odeslání
  • Lead magnet: „5 Montessori aktivit — PDF zdarma" → Resend + ruční segment

Mailchimp zamítnut (limit 500, branding v patičce). Buttondown nebo ConvertKit jako alternativa pokud Resend batch nestačí.


Fáze 2: Montessori kurikulum (Transparent Classroom → Kosmo)

Transparent Classroom (TC) je nasazený, ale UX je zastaralé (design z 90. let). Jediná jeho hodnota je strukturované Montessori kurikulum. Cíl: vytáhnout kurikulum přes TC API, uložit lokálně do Kosma a použít jako kontext pro AI-driven tracking kompetencí.

Datový model — 3 nové tabulky

montessori_areas        — oblasti (Practical Life, Sensorial, Math, Language, Cultural)
  id, name, name_cs, tc_id, sort_order

montessori_lessons      — lekce a skupiny lekcí (flat s parent referencí)
  id, area_id FK, parent_id FK (nullable), tc_id,
  name, name_cs, level ('lesson_set'|'lesson'),
  age_range, description, sort_order

montessori_rvp_mapping  — mapování Montessori → RVP (many-to-many)
  id, lesson_id FK, rvp_code, rvp_name,
  confidence (0.0–1.0), is_verified BOOLEAN

Plus montessori_lesson_id UUID FK na existující competency_records.

Proč odděleně od RVP: Montessori kurikulum je pedagogická struktura, RVP je regulatorní. Many-to-many vztah — jedna lekce pokrývá víc RVP kódů a naopak.

Import kurikula (jednorázový script)

TC má REST API (/api/v1/) s token auth. Klíčové endpointy: - GET /lesson_sets.json — strom oblastí a skupin lekcí - GET /lessons.json — jednotlivé lekce

Import script (jednorázový, re-runnable): 1. Node.js nebo Python script s TC API tokenem 2. HTTP Request → TC API s X-TransparentClassroomToken header 3. Transformace na Kosmo schéma, zachovat tc_id 4. UPSERT do tabulek (on conflict tc_id = idempotentní) 5. Gemini Flash → vygenerovat české překlady name_cs (~$0.01)

Kurikulum se mění max 1×/rok. Celkem ~200–500 položek.

AI mapování na RVP

Script "Generate RVP Mappings": 1. Načíst všechny montessori_lessons ze Supabase 2. Gemini Flash — batch prompt (po 20–30 lekcích): „Pro každou lekci identifikuj RVP ZV kódy, vrať JSON" 3. INSERT do montessori_rvp_mapping s is_verified = false 4. Učitelé postupně ověřují přes UI

Cena: ~$0.05 za celý mapping.

Rozšíření AI pipeline (Gemini Vision)

Aktuální plán: Fotka → Gemini Vision → competency_records

Rozšířený pipeline: Fotka → načti Montessori lekce pro oblast → Gemini Vision → competency_records (s montessori_lesson_id + RVP kódem)

Gemini Vision prompt dostane kurikulum jako kontext:

Analyzuj fotku studentské práce.
Dostupné Montessori lekce pro tuto oblast:
- Golden Bead Addition (Sčítání se zlatým materiálem) → RVP M-3-1-01
- Stamp Game Subtraction (Odčítání s kolkovou hrou) → RVP M-3-1-02
...
Identifikuj: kterou lekci práce demonstruje, úroveň zvládnutí, RVP kódy.

Jedna oblast = 30–80 lekcí → bez problémů se vejde do kontextového okna.

Prerekvizity

  • TC API token — školní admin: TC Settings → API → vygenerovat token
  • Zmigrovaná competency_records tabulka (zatím jen v docs, ne v migrations)

Otevřené otázky (TC)

  • TC1) Má škola přístup k TC API? (ověřit s adminem)
  • TC2) Které Montessori programy jsou v TC aktivní? (AMI Primary? Elementary?)
  • TC3) Chceme jednorázově importovat i pokrok dětí z TC? (nízká priorita)
  • TC4) Kdo bude ověřovat RVP mapping? (ředitel? učitelé?)

Fáze 3+: Learning Tools

Adaptivní vzdělávací platformy pro žáky (4.–7. třída, bilingvální Montessori). Cíl: 360° profil učení každého žáka v Kosmu.

Doporučené platformy

Tier Platforma Cena Integrace do Kosma
1 Khan Academy Zdarma Přes Google Classroom
1 Brilliant.org Zdarma (Educators program) Přes Google Classroom
1 IXL ~$10/žák/měs Přímá (LTI v1.3 + API)
2 Eduten ~$15–36/žák/rok Bez API
2 Matika.in Zdarma (Hejný) Bez API

Plán integrace

  1. Ihned: Doporučit Khan + Brilliant + Matika.in (zdarma, 0 effort)
  2. Fáze 2: Sekce „Rozšiřující práce" v Kosmu — kurátorované odkazy (~4–8h dev)
  3. Fáze 3: Google Classroom jako hub (~16h dev)
  4. Fáze 4: IXL přímá LTI v1.3 integrace (~16–24h dev)
  5. Fáze 5: Sokratův průvodce — Gemini agreguje data a navrhuje learning path

Otevřené otázky (learning tools): - L1) Investovat do IXL licence? - L2) Vyzkoušet Eduten trial? - L3) Google Classroom jako prostředník? - L4) Od jaké třídy samostatná práce? - L5) Matika česky nebo anglicky? - L6) Které platformy povinné pro sledování žáka? - L7) Ručně doplňovat data z platforem bez API?


Fáze 3+: Marketing a komunikace

Filozofie: žádné reklamy, žádné slogany. Pouze hodnotný obsah — autentický příběh, zprostředkování emoce.

Vrstvy obsahu

  1. Vrstva hodnoty — SEO články 2x/měs („Jak vypadá den čtvrťáka u nás vs. na běžné ZŠ")
  2. Vrstva emoce — Instagram Reels, fotopříběhy 3–4x/týden
  3. Vrstva expertízy — thought leadership 1x/měs (LinkedIn, blog)
  4. Vrstva komunity — doporučení, veřejné akce, rodičovská komunita
  5. Montessori zdroje — tipy, aktivity, materiály k tisku (lead magnety)

Gemini jako content engine

Z jednoho vstupu (poznámka učitele + 5 fotek) → obsah pro 3 kanály za 5 minut:

Učitel nafotí/napíše poznámku → Gemini vygeneruje IG caption + blogpost + newsletter snippet
→ Ředitel schválí → Kosmo publikuje přes API (IG Graph, FB Pages, Resend)

Priorita kanálů

  1. Google Business (zdarma, lokální SEO)
  2. Instagram (emoční obsah, Reels)
  3. Blog na webu (SEO, „Montessori škola Říčany")
  4. Newsletter (nurturing zájemců)
  5. Facebook (lokální komunita)

Předpoklady k ověření s ředitelem

  • Logo ve vysoké kvalitě (SVG/PNG)
  • GDPR souhlasy na fotky dětí pro veřejné kanály
  • Google Business profil — existuje? aktuální?
  • Instagram/Facebook účet — kdo spravuje?
  • Branding: tón komunikace, hodnoty, příběh zakladatele

Fáze 3+: Web (sofie.education)

Škola má dva WordPress weby (ms-sofie.cz, zs-sofie.cz). Cíl: sjednotit pod sofie.education.

Fáze Stav
Teď WordPress zůstává, Kosmo na app.sofie.education
Léto 2026 Migrace statického webu do Next.js, jedna doména sofie.education

Cílový stav: Web + blog + aplikace na jednom Next.js stacku. Obsah přes MDX nebo headless CMS (Sanity/Strapi).


Fáze 3+: Gamifikace rodičů

Rozsáhlý brainstorm proběhl 2026-04-15. 16 nápadů ve 4 tierech — od nudgingu (Inbox Zero, streak, předpřipravená omluvenka) přes sociální mechanismy (třídní momentum, kolektivní odměna) po crazy ideas (skrytý XP systém pro školu, dítě jako motivátor).

GAMIFICATION.md

Klíčový insight: u rodičů nefunguje klasická gamifikace (body, badges). Funguje redukce friction, sociální norma, emoční vazba na příběh dítěte a viditelný dopad na učitele.

Další krok: Probrat s ředitelkou, vybrat 3–5 nápadů pro implementaci.


Fáze 3+: Feed třídy (TODO brainstorm)

Feed jako obousměrný kanál (ne jen škola → rodič). Třídní komunita, rodičovské reakce, tablety ve třídě jako výstupní zařízení. Navazuje na gamifikační nápady #5 a #16.

Status: Čeká na vlastní brainstorming session.


Fáze 3+: Login dětí (4.–7. třída)

Starší žáci potřebují přístup ke svému portfoliu, nahrávání projektů, Sokratův průvodce.

Varianta Popis
Školní Google účet Po migraci na Google Workspace
QR kód / PIN Fyzická karta
Rodičovský účet Sdílený přístup

Otevřené otázky: - 7a) Jak se přihlásí žák? - 7b) Od jaké třídy vlastní přístup?


Fáze 4+: Sokratův průvodce

Gemini AI jako personalizovaný tutor pro žáky. Sokratovská metoda — neptá se „jaká je odpověď?" ale „jak jsi na to přišel?".

  • Agreguje data ze všech vzdělávacích platforem + interní evidenci
  • Navrhuje žákovi personalizovaný learning path
  • Inspirace: Khan Academy Khanmigo

Fáze 4+: Podpora rodičů

  • Feed (/feed) — timeline aktivit dítěte (fotky, projekty, hodnocení)
  • Adaptivní summary — Gemini shrne co se změnilo od poslední návštěvy
  • Sofie chat pro rodiče — FAQ, omluvenky, vyzvedávání
  • Multi-child feed s filtrem (rodič s více dětmi)
  • Push notifikace (PWA)

Otevřená rozhodnutí (nerozřešená)

Následující rozhodnutí z DECISIONS_OPEN.md zatím nemají finální odpověď:

# Téma Urgence Poznámka
7 Login dětí Fáze 3+ Školní Google účet / QR / PIN?
8 Gamifikace Fáze 3+ Montessori vs. motivace
L1–L7 Learning Tools Fáze 3+ IXL licence, GC integrace, jazyk matiky
D1–D6 Generování dokumentů Fáze 2 Font, logo, role, archivace
W1–W5 Pracovní listy Fáze 2 Font, logo, archiv PDF

Příloha: PM modul (detail)

TL;DR

Rekurzivní hierarchie projektů (projekt → podprojekty → …), membership-based viditelnost, AI-generované summary. 3 tabulky, 4 enumy.

Datový model

CREATE TYPE public.project_status AS ENUM ('draft', 'active', 'done', 'cancelled');
CREATE TYPE public.subproject_priority AS ENUM ('required', 'nice_to_have');
CREATE TYPE public.project_member_role AS ENUM ('leader', 'collaborator');
CREATE TYPE public.resource_kind AS ENUM ('file', 'link', 'note');

projects — rekurzivní hierarchie (parent_id → self). Top-level = parent_id NULL. Sloupce: id, parent_id, title, description, leader_id, status, priority, due_date, ai_summary, timestamps. ON DELETE CASCADE na parent_id.

project_members — M:N vazba profilů na projekty. UNIQUE(project_id, profile_id). Role: leader (vše) / collaborator (editace, zdroje).

project_resources — přílohy s diskriminátorem kind (file/link/note). Sloupce: title, url, body, storage_path, ai_summary, uploaded_by.

Viditelnost (RLS)

Viditelnost se dědí dolů, ne nahoru. Member parent projektu vidí všechny podprojekty (rekurzivní CTE). SELECT/INSERT/UPDATE/DELETE pravidla dle role.

Progress tracking

get_project_progress(p_id) — rekurzivní CTE počítá done/total podprojektů → progress bar v UI.

Soubory

GCS bucket projects/{project_id}/{timestamp}_{filename} + sidecar .meta.json. V1 jen linky + poznámky, file upload ve v2.

AI summary

Vercel server action nebo Inngest event po vytvoření/úpravě projektu → Gemini → souhrn stavu (2–3 věty česky).

UI

/projects              → seznam mých top-level projektů
/projects/new          → nový projekt
/projects/[id]         → detail (podprojekty, progress, tým, zdroje, AI summary)
/projects/[id]/edit    → editace

Implementační kroky

  1. SQL migrace (enumy, tabulky, indexy, RLS, RPC)
  2. Server Actions + Zod validace
  3. UI stránky
  4. Navigace — "Projekty" do layoutu
  5. AI summary (Vercel server action → Gemini)
  6. File upload (Supabase Storage signed URL)