# Prompt dla Claude Code — generator contentu social media

Skopiuj poniższy tekst i wklej do Claude Code w katalogu backendu (`/Users/gladki/projects/tropo`).

---

## Prompt

Zbuduj komendę Symfony `app:generate-social-content` która generuje gotowe posty na Instagram i TikTok z danych misji w bazie.

### Co ma robić

1. Pobiera misje z bazy (Entity `Mission`) — wszystkie aktywne
2. Wybiera 7 misji na dany tydzień:
   - rotacja postaci (scout → blitz → nova → echo → scout...)
   - mix lokalizacji (dom / teren)
   - mix trudności
   - unikanie misji użytych w poprzednich tygodniach (trzymaj historię w pliku JSON `var/social-history.json`)
3. Dla każdej misji generuje **3 warianty posta** (jeden do wyboru):
   - **Zagadka** — pytanie z misji jako post, odpowiedź w komentarzu
   - **Ciekawostka** — fun_fact z kroku misji
   - **Cytat postaci** — postać mówi coś motywującego/zabawnego w swoim stylu
4. Dla każdego posta generuje:
   - **Tekst posta** (po polsku, max 200 znaków + hashtagi)
   - **Grafikę 1080x1080 PNG** z postacią, tekstem i kolorem tła postaci

### Grafiki

Generuj grafiki przez HTML → PNG. Użyj dompdf (już masz w stacku) albo zainstaluj `spatie/browsershot` jeśli dompdf nie da rady z PNG. Alternatywnie: wygeneruj SVG i skonwertuj przez GD (`imagecreatefrompng`).

Szablon grafiki:
- Tło: kolor postaci z CharacterService (scout=#3578E5, blitz=#E8612A, nova=#7C3AED, echo=#16A34A)
- Jaśniejsze tło (pastelowe) z akcentami w kolorze postaci
- Duży tekst zagadki/ciekawostki (wycentrowany, max 3 linijki)
- Emoji postaci w rogu (🐕 🐇 🦝 🐢)
- Logo "TROPO" na dole
- Font: system sans-serif, zaokrąglony feel
- Styl: czysty, dziecięcy ale nie infantylny

### Struktura outputu

```
var/social-content/week-2026-12/
├── manifest.json          # metadata wszystkich postów na tydzień
├── 01-scout-zagadka/
│   ├── post.txt           # tekst posta + hashtagi
│   ├── image.png          # grafika 1080x1080
│   └── meta.json          # misja źródłowa, typ, postać
├── 02-blitz-ciekawostka/
│   ├── post.txt
│   ├── image.png
│   └── meta.json
└── ...
```

### manifest.json

```json
{
  "week": "2026-12",
  "generated_at": "2026-03-18T10:00:00+01:00",
  "posts": [
    {
      "day": "monday",
      "directory": "01-scout-zagadka",
      "character": "scout",
      "type": "zagadka",
      "mission_id": "scout_park_medium_012",
      "caption_preview": "Pierwsze 50 znaków..."
    }
  ]
}
```

### Hashtagi

Stały zestaw:
- Zawsze: #TROPO #TROPOapp #edukacjaprzezzabawę #aplikacjadladzieci
- Per postać: #ScoutTropiciel / #BlitzChallenge / #NovaOdkrywa / #EchoNatura
- Per lokalizacja: #zabawywparku / #zabawywdomu
- 2-3 generyczne: #zagadkidladzieci #ciekawostkidladzieci #mamahack

Max 15 hashtagów per post.

### Komendy i opcje

```bash
# Generuj na bieżący tydzień
php bin/console app:generate-social-content

# Generuj na konkretny tydzień
php bin/console app:generate-social-content --week=2026-14

# Tylko tekst (bez grafik — szybciej)
php bin/console app:generate-social-content --text-only

# Wymuś regenerację (ignoruj historię)
php bin/console app:generate-social-content --force
```

### Ważne

- Używaj istniejących serwisów: `CharacterService` (postacie, kolory, emoji), `MissionService` (misje)
- Misje mają pole `steps` (JSON) — tam są dialogi, zagadki i fun_facty
- Zagadki mają typ `choice` (opcje A/B/C) lub `text` (otwarte)
- Nie instaluj ciężkich zależności jeśli nie musisz — spróbuj najpierw z GD/Imagick które już są w systemie
- Outputy nie idą do repozytorium (dodaj `var/social-content/` do `.gitignore`)
- Tekst postów: luźny, ciepły ton. Postać mówi od siebie. Nie "Sprawdź naszą aplikację!" tylko "Hej, mam dla Ciebie zagadkę! 🐕"
