|
| 1 | +--- |
| 2 | +name: gk-sm-4-harmonogram |
| 3 | +description: > |
| 4 | + Faza 4 promocji meetupu Python Łódź — harmonogram publikacji, YT live, |
| 5 | + pakiet LinkedIn, dry-run i uzbrojenie crona. Użyj po zaakceptowanych |
| 6 | + grafikach: "harmonogram postów", "zaplanuj publikacje", "odpal promocję", |
| 7 | + "załóż live na YouTube", "pakiet LinkedIn". Pisze social/schedule.yaml |
| 8 | + + social/linkedin-paste.md, zakłada YT live, robi dry-run, commituje do main. |
| 9 | + Czwarty skill sekwencji gk-sm-*. |
| 10 | +--- |
| 11 | + |
| 12 | +# gk-sm-4-harmonogram — kalendarz, YT live, wklejka, uzbrojenie (faza 4) |
| 13 | + |
| 14 | +Ostatnia faza przed automatem: układa kalendarz, zakłada transmisję, |
| 15 | +generuje pakiet ręcznej wklejki i uzbraja cron przez commit do `main`. |
| 16 | + |
| 17 | +**Kontrakt z procesem:** faza 4. Wejście: `social/posts.md` + |
| 18 | +`social/images/final/`. Wyjście: `social/schedule.yaml` + |
| 19 | +`social/linkedin-paste.md` (+ link YT w postach). Następny: gk-sm-retro |
| 20 | +(po meetupie). |
| 21 | + |
| 22 | +## Proces |
| 23 | + |
| 24 | +1. **Kalendarz**: przypisz każdemu postowi datę + slot (tylko **9:00** lub |
| 25 | + **17:00** Europe/Warsaw), kanały, grafikę i tagi IG. Format |
| 26 | + `schedule.yaml` (kontrakt z publisherem — patrz niżej). |
| 27 | +2. **YT live** (jeśli brief mówi „tak"): |
| 28 | + ```bash |
| 29 | + uv run pyldz social yt-create-live --title "Python Łódź #<nr> — <tytuł>" \ |
| 30 | + --start "<YYYY-MM-DD HH:MM>" --description-file page/content/spotkania/<nr>/descriptions/youtube-live.md |
| 31 | + ``` |
| 32 | + Zwrócony link wstaw w `posts.md` w miejsce `[LINK DO LIVE]`. |
| 33 | + (Pierwsze użycie: otworzy się OAuth w przeglądarce; token → `.yt_token.json`.) |
| 34 | +3. **Pakiet LinkedIn**: `social/linkedin-paste.md` — dla każdego posta |
| 35 | + z kanałem `linkedin`: data+slot, pełny tekst (kanoniczny lub override), |
| 36 | + którą grafikę załączyć, kogo oznaczyć (profile LinkedIn prelegentów |
| 37 | + z briefu — tagowanie ręcznie w UI natywnego schedulera, do 3 mies. w przód). |
| 38 | + Opcjonalnie sekcja YT Community (brak API — też wklejka). |
| 39 | +4. **Dry-run** — pokaż userowi DOKŁADNE payloady: |
| 40 | + ```bash |
| 41 | + uv run pyldz social dry-run --meetup <nr> |
| 42 | + ``` |
| 43 | + Uwaga: dry-run pokazuje tylko posty due „teraz"; harmonogram przyszły |
| 44 | + zweryfikuj czytając schedule.yaml na głos (post × kanał × slot × grafika). |
| 45 | +5. **Akceptacja → uzbrojenie**: po jawnej akceptacji całości commit + push |
| 46 | + do `main` (posts.md, schedule.yaml, images/final/, linkedin-paste.md). |
| 47 | + Publikacja = merge do main; cron (`.github/workflows/social-publish.yaml`, |
| 48 | + sloty 9:00/17:00 PL) przejmuje resztę i nadrabia zaległe sloty. |
| 49 | + Deploy strony (GitHub Pages) musi zajść przed pierwszym slotem — |
| 50 | + grafiki muszą być publicznie dostępne pod |
| 51 | + `https://pythonlodz.org/spotkania/<nr>/social/…` (FB/IG ciągną URL). |
| 52 | + |
| 53 | +## Format social/schedule.yaml (kontrakt z publisherem — nie zmieniaj!) |
| 54 | + |
| 55 | +```yaml |
| 56 | +meetup: "<nr>" |
| 57 | +timezone: Europe/Warsaw |
| 58 | +posts: |
| 59 | + - post: <id z posts.md> |
| 60 | + channels: [facebook, instagram, discord, linkedin] |
| 61 | + scheduled: 2026-07-08 09:00:00 # czas lokalny Europe/Warsaw |
| 62 | + image: images/final/<post-id>-4x5.png # względem social/ |
| 63 | + ig_tagged: [<ig-handle-bez-@>] # opcjonalne |
| 64 | +``` |
| 65 | +
|
| 66 | +Zasady: IG wymaga `image`; `linkedin` w `channels` = tylko do pakietu wklejki |
| 67 | +(publisher pomija); posty przeszłe bez wpisu w `status.json` publikują się |
| 68 | +w najbliższym runie (świadomie — tak działa nadrabianie). |
| 69 | + |
| 70 | +## Feedback loop (obowiązuje) |
| 71 | + |
| 72 | +- **Na starcie fazy**: przeczytaj `tasks/feedback.md` i zastosuj wpisy ze statusem |
| 73 | + `nowy` dotyczące tej fazy, zanim cokolwiek wyprodukujesz. |
| 74 | +- **Po każdej korekcie usera** (zrobiłeś coś nie tak, jak chciał): dopisz wpis |
| 75 | + `[data] | gk-sm-4-harmonogram | co poszło nie tak | jak ma być | nowy`. |
| 76 | +- Wpisy do skilli promuje wyłącznie gk-sm-retro — nie edytuj SKILL.md w trakcie fazy. |
| 77 | + |
| 78 | +## Definition of Done |
| 79 | + |
| 80 | +- `schedule.yaml` waliduje się (`uv run pyldz social dry-run --meetup <nr>` |
| 81 | + działa bez błędu), każdy post ma slot 9:00/17:00 i grafikę tam, gdzie trzeba. |
| 82 | +- YT live założony, link wstawiony w posty (jeśli dotyczy). |
| 83 | +- `linkedin-paste.md` kompletny (teksty + daty + grafiki + kogo oznaczyć). |
| 84 | +- User zaakceptował harmonogram; całość scommitowana i wypchnięta na `main`. |
| 85 | +- Po meetupie: **gk-sm-retro**. |
0 commit comments