Files
j_kedzierski/prompts/12-checklist-odbioru.md
T

58 lines
4.2 KiB
Markdown

# Checklist odbioru — j_kedzierski
Wyciąg z `wymagania-projektowe-strony.md`, zawężony i spriorytetyzowany pod
ten konkretny projekt (wizytówka + generator leadów, nie e-commerce). P1 =
blokuje uruchomienie. Odhaczać `[ ]` → `[x]` przy odbiorze, zgodnie z formatem
źródłowego dokumentu.
## P1 — blokuje start
- [ ] Realne dane firmy w globalu `Company` (adres, telefon, e-mail, WhatsApp) — zero „DO POTWIERDZENIA" ani `+49 123 456 789` na produkcji
- [ ] Zdjęcie Janusza w hero i na `/o-nas` — zero pustych/placeholder obrazów
- [ ] Logo b.b.h. w bloku `affiliation` i stopce
- [ ] Favicon i `site-settings.logo` wgrane przez panel
- [ ] Treść stron: Impressum, Polityka prywatności, Polityka cookies, Stowarzyszenie, FAQ — żadna nie zostaje z „Treść w przygotowaniu" ([06](./06-faq.md), [07](./07-stowarzyszenie.md), [09](./09-strony-prawne.md))
- [ ] System Pages role przypisane (`privacyPolicy`, `cookiePolicy`) — linki w bannerze cookies i stopce prowadzą do realnych stron, nie 404
- [ ] Baner cookies działa: pokazuje się przy pierwszej wizycie, „Odrzuć" na równi z „Akceptuj", zero cookies analitycznych przed zgodą (test w DevTools → Application)
- [ ] Martwy kotwica-link `#jak-to-dziala` z hero naprawiony ([10](./10-architektura-cms.md) §2)
- [ ] `servicesList.linkUrl` uzupełnione — „Zobacz więcej" prowadzi gdzieś ([10](./10-architektura-cms.md) §2)
- [ ] Wszystkie 10 stron istnieją i renderują się poprawnie w PL i DE, przełącznik języka zachowuje bieżącą podstronę
- [ ] Formularz (jeśli wdrożony) ma server-side walidację zgody RODO — nie tylko UI
- [ ] Kontrast tekst/tło sprawdzony na ciepłym papierowym tle (WebAIM Contrast Checker) — min. 4,5:1
- [ ] `prefers-reduced-motion` respektowany na wszystkich animacjach z [01](./01-design-system-impeccable.md) §4
- [ ] Obraz hero ma `priority`, LCP < 2,5s (PageSpeed Insights, dane polowe)
- [ ] Nagłówki bezpieczeństwa (CSP/HSTS/...) — Mozilla Observatory ocena A
- [ ] `sitemap.xml`/`robots.txt` generowane i poprawne, zgłoszone w Search Console
- [ ] Panel `/admin` zabezpieczony (silne hasło), nie indeksowany
## P2 — ważne dla jakości, nie blokuje
- [ ] `/impeccable detect` bez findings „AI slop" (patrz checklista [01](./01-design-system-impeccable.md) §5) na wszystkich 10 stronach
- [ ] `trustPoints` w bloku `affiliation` wypełnione ([02](./02-strona-glowna.md) §7)
- [ ] FAQ pogrupowane w kategorie + `FAQPage` schema.org ([06](./06-faq.md))
- [ ] Blok `team` naprawiony (bez redundancji z `bio` przy jednej osobie — [05](./05-o-nas.md) §3)
- [ ] Warianty rozmiarów obrazów (`imageSizes`) skonfigurowane w Payload
- [ ] `hreflang` między `/pl` i `/de` poprawny (hreflang Tags Testing Tool)
- [ ] Analytics wdrożone za zgodą, zdarzenie `whatsapp_click` mierzone
- [ ] Regulamin świadczenia usług — decyzja podjęta i wdrożona lub świadomie odrzucona z uzasadnieniem ([10](./10-architektura-cms.md) §4)
- [ ] Stopka linkuje do FAQ i Stowarzyszenie ([10](./10-architektura-cms.md) §5)
- [ ] `styles.css` boilerplate usunięty lub potwierdzony jako nieużywany ([10](./10-architektura-cms.md) §6)
- [ ] Lighthouse Accessibility ≥ 95 na kluczowych szablonach
## P3 — opcjonalne / faza 2
- [ ] Sekcja wideo „Co to jest Lohnsteuerhilfe" ([02](./02-strona-glowna.md) §11)
- [ ] Formularz kontaktowy jako opcja zapasowa obok WhatsApp ([08](./08-kontakt.md) §3)
- [ ] Newsletter (wzorem bbh) — tylko jeśli klient chce prowadzić komunikację cykliczną
- [ ] Blog/porady podatkowe (wzorem sekcji „Steuerspar-Tipps" na bbh) — wymaga cyklicznej produkcji treści, nie wdrażać bez zobowiązania klienta do jej utrzymywania
## Weryfikacja końcowa (przed przekazaniem klientowi)
1. `pnpm build --webpack` przechodzi lokalnie bez błędów (`standardy-kodu.md` §7.3)
2. Test ręczny: każda z 10 stron w PL i DE, motyw jasny i ciemny, mobile
(375px) + desktop (1440px) — patrz Responsively App / DevTools Device Mode
3. Test klawiaturą: cała strona wyłącznie Tab/Shift+Tab/Enter/Esc
4. `npx impeccable audit` jako ostatni przelot jakości wizualnej
5. Odczytanie własnego diffu przez osobę, która go nie pisała — „czy następny
człowiek/agent to zrozumie za pół roku" (`standardy-kodu.md`, kompas senior)