diff --git a/AGENTS.md b/AGENTS.md index 5f1a37fb7..5423af8d5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,7 +14,7 @@ To niezależna polska adaptacja HowToLiveBetter: „Jak żyć lepiej. Praktyczny - Chińskie book/*.md, docs/, selfcheck.html, skills/ i historyczne narzędzia są materiałem upstream, nie ukończonym polskim wydaniem. Nie stosuj odziedziczonego chińskiego skilla do polskich porad. - Właściciel potwierdził 2026-11-07 realizację całego potwierdzonego backlogu etapami: ponowną ocenę rekordów oczekujących, ustaleń bezpieczeństwa i aktualnej opublikowanej treści oraz rozdziały 24–34 w osobnych PR. Gotowe, ocenione pozycje można dodać do CHAPTERS w PR właściwego rozdziału. Nie rejestruj nieopracowanego rozdziału w CHAPTERS. Osobne pozostają zgody na merge i uruchomienie Pages. Bieżący plan jest w audit/FINDINGS.md; liczby pokrycia w README, a status i źródła każdej pozycji wyłącznie w book/pl/. - Brak źródła lub wymaganej recenzji dziedzinowej jest blokadą, nie powodem do nadania verified. Zachowaj rekord poza poradami i zapisz konkretny brak w jego kanonicznym miejscu. Osiem wcześniejszych wyłączeń rozdziału 04 nie jest listą porad do automatycznego przywrócenia. Samo utworzenie lub zamknięcie issue nie nadaje verified. Zielone CI ani przegląd AI nie są potwierdzeniem treści przez specjalistę. -- Operator zezwolił 2026-11-02 na zapisywanie konkretnych braków weryfikacji i decyzji jako issues w tym repozytorium. Najpierw sprawdź duplikaty; nie dubluj review otwartego PR ani kanonicznych rekordów treści. Issue #33 dotyczy korekty już scalonej w PR #35, nie polecenia ponownego wprowadzenia usuniętych twierdzeń. Pozycje 17.1, 17.12, 19.18, 20.5, 21.9 i 23.20 pozostają niepublikowane do spełnienia ich własnych kryteriów. Nie zastępuj brakującej polskiej procedury samym wpisem ZRK ani nie uśredniaj różnych zaleceń przygotowania mleka. +- Operator zezwolił 2026-11-02 na zapisywanie konkretnych braków weryfikacji i decyzji jako issues w tym repozytorium. Najpierw sprawdź duplikaty; nie dubluj review otwartego PR ani kanonicznych rekordów treści. Issue #33 dotyczy korekty już scalonej w PR #35, nie polecenia ponownego wprowadzenia usuniętych twierdzeń. Pozycje 17.1, 19.18, 20.5, 21.9 i 23.20 pozostają niepublikowane do spełnienia ich własnych kryteriów. Nie zastępuj brakującej polskiej procedury samym wpisem ZRK ani nie uśredniaj różnych zaleceń przygotowania mleka. - Przepisy, osądy autora i dane obserwacyjne rozdzielaj. Nie sumuj czasu z pieniędzmi ani nie narzucaj decyzji o dziecku. Nie utożsamiaj zaświadczenia kursu z kwalifikacją ani danych grupowych z osobistą gwarancją dochodu lub przeżycia. Nie zamieniaj OR ani HR na indywidualną gwarancję i nie rozszerzaj pojedynczego badania na wszystkie terapie. - Zgoda z 2026-11-07 nie obejmuje opcjonalnych eksportów polskiego wydania, zmiany indeksowania strony, nowej tożsamości do scalania ani płatnych zasobów. Dwie osobno zatwierdzone zmiany administracyjne to poprawienie adresu strony repozytorium i dodanie wymaganego checka Dependency review; nie jest to stałe upoważnienie do zmian ochrony lub uprawnień. Historyczne wyjątki merge dla PR #16–#20 zostały wykorzystane i nie dotyczą nowych PR. - Stan przeglądu opublikowanych porad (wznowionego 2026-10-30, przebieg run7 zakończony), decyzje właściciela i kroki są w audit/README.md oraz audit/FINDINGS.md. Nowe przebiegi przeglądu i zmiany tekstu rozpoczynaj tylko na polecenie właściciela. diff --git a/README.md b/README.md index 1356882aa..9124ed90e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Niezależna polska adaptacja [HowToLiveBetter — 高性价比人生指南](https://github.com/eternity4719/HowToLiveBetter), autorstwa eternity4719. Wybieramy praktyczne zalecenia, sprawdzamy źródła i opisujemy ich ograniczenia. To nie jest oficjalne wydanie autora ani automatyczne tłumaczenie. -**Stan treści: 521 opracowanych polskich porad z dwudziestu trzech rozdziałów.** Źródła sprawdzono w opisanym przy poradach zakresie; nie oznacza to zatwierdzenia przez lekarza lub prawnika. Nie przetłumaczono całej książki ani wszystkich pozycji tych rozdziałów. +**Stan treści: 522 opracowanych polskich porad z dwudziestu trzech rozdziałów.** Źródła sprawdzono w opisanym przy poradach zakresie; nie oznacza to zatwierdzenia przez lekarza lub prawnika. Nie przetłumaczono całej książki ani wszystkich pozycji tych rozdziałów. | Rozdział | Ocenione pozycje źródłowe | W czytniku (verified) | Pozostałe | | --- | --- | --- | --- | @@ -26,14 +26,14 @@ Niezależna polska adaptacja [HowToLiveBetter — 高性价比人生指南](http | [14. Bezpieczeństwo kont i danych](book/pl/14-bezpieczenstwo-kont-i-danych.md) | 12 | 11 | 1 needs_localization | | [15. Wynajem i kupno mieszkania](book/pl/15-wynajem-i-kupno-mieszkania.md) | 18 | 18 | — | | [16. Życie z chorobą przewlekłą](book/pl/16-zycie-z-choroba-przewlekla.md) | 14 | 14 | — | -| [17. Senior w rodzinie: wsparcie, bezpieczeństwo i opieka](book/pl/17-senior-w-rodzinie.md) | 13 | 11 | 1 needs_localization, 1 needs_verification | +| [17. Senior w rodzinie: wsparcie, bezpieczeństwo i opieka](book/pl/17-senior-w-rodzinie.md) | 13 | 12 | 1 needs_localization | | [18. Rodzicielstwo: decyzje, koszty i wsparcie](book/pl/18-rodzicielstwo-decyzje-koszty-i-wsparcie.md) | 7 | 7 | — | | [19. Praca, rozwiązanie umowy i wypadki](book/pl/19-praca-rozwiazanie-umowy-i-wypadki.md) | 24 | 23 | 1 needs_verification | | [20. Opieka nad noworodkiem i niemowlęciem](book/pl/20-opieka-nad-noworodkiem-i-niemowleciem.md) | 17 | 16 | 1 needs_verification | | [21. Podróż za granicę i bezpieczeństwo](book/pl/21-podroz-za-granice-i-bezpieczenstwo.md) | 13 | 12 | 1 needs_localization | | [22. Odpoczynek, rozrywka i bezpieczeństwo](book/pl/22-odpoczynek-rozrywka-i-bezpieczenstwo.md) | 12 | 12 | — | | [23. Edukacja, kwalifikacje i uczenie się](book/pl/23-edukacja-kwalifikacje-i-uczenie-sie.md) | 25 | 24 | 1 needs_localization | -| Razem | 599 | 521 | 70 rekordów oczekujących i 8 wcześniejszych wyłączeń | +| Razem | 599 | 522 | 69 rekordów oczekujących i 8 wcześniejszych wyłączeń | Tabela obejmuje ocenione rozdziały 01–23. Pełny oryginał obejmuje **34** rozdziały i **767** numerowanych pozycji. Poza bieżącą adaptacją pozostaje **11** nieopracowanych rozdziałów (24–34), obejmujących **168** pozycji źródłowych. Nie są to gotowe polskie porady ani obietnica opublikowania każdej pozycji. Dalszą pracę opisuje [zatwierdzony plan, sekcja H](audit/FINDINGS.md); szczegóły braków pozostają przy rekordach w book/pl/. @@ -55,7 +55,7 @@ Każda nowa pozycja ma oryginalny numer i decyzję. Nie zmieniamy numeracji, aby - W rozdziale 01 pozycje 26 oraz 32–34 wymagają dalszej weryfikacji: wynik edukacji nie dowodzi skuteczności całego zestawu wyposażenia, a dane o następstwach zdarzeń nie dowodzą bezpieczeństwa i skuteczności straszącego przekazu kryzysowego. Pozycje 8, 23, 24, 35, 37, 39, 40, 44, 45, 47 i 48 wymagają polskiej lokalizacji lub aktualnej kwalifikacji. Nie publikujemy zaleceń przekazywania haseł bankowych rodzinie, samodzielnego leczenia ani zagranicznych harmonogramów jako polskich zaleceń. - W rozdziale 03 pozycje 9–17, 20–22 i 24 wymagają dalszej weryfikacji. Powody obejmują nieuprawnione uogólnienia, przenoszenie korelacji na interwencję, różne populacje i niezweryfikowane liczby. Pozycje 19 i 25 wymagają polskiej lokalizacji procedur lub informacji o lekach. - W rozdziale 14 pozycja 11 nadal wymaga sprawdzenia polskich procedur i zakresu dostępnych rejestrów. Pozycja 14.5 opisuje już zawężone zasady dla konsumenta korzystającego ze zwykłego rachunku płatniczego, na podstawie polskiej ustawy i oficjalnych objaśnień. Nie gwarantuje zwrotu pieniędzy w każdym oszustwie. Nie skopiowano chińskich uprawnień ani usług. -- W rozdziale 17 pozycja 1 wymaga potwierdzenia aktualnych polskich zasad przyszłej reprezentacji, a pozycja 12 dalszej weryfikacji wynagrodzenia i relacji różnych uprawnień opiekuńczych. Nie przeniesiono zagranicznych dokumentów ani płatnego urlopu jako polskich zasad. +- W rozdziale 17 pozycja 1 wymaga potwierdzenia aktualnych polskich zasad przyszłej reprezentacji i pozostaje niepublikowana. [Pozycję 17.12](book/pl/17-senior-w-rodzinie.md#porada-17-12) oceniono ponownie 2026-11-07 na podstawie odczytanych przepisów i objaśnień PIP oraz ZUS: odróżnia urlop bez ustawowego wynagrodzenia od warunkowego zasiłku i innych zwolnień. Źródła oraz granice lektury pozostają przy poradzie. Nie jest to recenzja prawnika, indywidualna gwarancja świadczenia ani ponowne poświadczenie pozostałych pozycji; zakres zgłoszenia opisuje [issue #31](https://github.com/mikomiel/HowToLiveBetter-PL/issues/31). - W rozdziale 19 pozycja 18 o podatku od świadczeń przy zakończeniu zatrudnienia pozostaje niepublikowana. Brak pełnej kwalifikacji zwolnień i wyjątków jest śledzony w [issue #32](https://github.com/mikomiel/HowToLiveBetter-PL/issues/32); samo zgłoszenie nie oznacza, że każde świadczenie jest opodatkowane lub zwolnione. - W rozdziale 20 pozycja 5 o przygotowaniu mleka w proszku pozostaje needs_verification. Rozbieżne wytyczne WHO i BfR nie zostały zamienione w jeden uniwersalny przepis dla polskich warunków; dalszą pracę śledzi [issue #36](https://github.com/mikomiel/HowToLiveBetter-PL/issues/36). - W rozdziale 21 pozycja 9 o pośrednictwie wizowym, migracyjnym i edukacyjnym pozostaje needs_localization. Nie ustalono jednej właściwej procedury weryfikacji wszystkich tych usług; szczegółowe kryteria pozostają przy rekordzie. diff --git a/book/pl/17-senior-w-rodzinie.md b/book/pl/17-senior-w-rodzinie.md index 31f013c44..ed0c81f36 100644 --- a/book/pl/17-senior-w-rodzinie.md +++ b/book/pl/17-senior-w-rodzinie.md @@ -6,7 +6,7 @@ Niezależna polska adaptacja rozdziału 17 HowToLiveBetter autorstwa eternity471 To informacja edukacyjna, nie porada prawna, finansowa ani indywidualny plan opieki lub leczenia. Asystent AI nie jest lekarzem i nie jest adwokatem ani radcą prawnym. Przy bezpośrednim zagrożeniu życia dzwoń pod 112. Wsparcie nie jest automatycznym uprawnieniem do przejęcia kontroli nad innym dorosłym. -Oceniono wszystkie 13 pozycji oryginału: 11 ma stan verified, pozycja 1 pozostaje needs_localization, a pozycja 12 needs_verification. Rekordy niegotowe nie trafiają do porad czytnika. To decyzje redakcyjne, nie zatwierdzenie przez specjalistę ani pełny przegląd prawa i medycyny. Numeracja pozostaje zgodna z oryginałem. +Oceniono wszystkie 13 pozycji oryginału: 12 ma stan verified, a pozycja 1 pozostaje needs_localization. Rekord niegotowy nie trafia do porad czytnika. To decyzje redakcyjne, nie zatwierdzenie przez specjalistę ani pełny przegląd prawa i medycyny. Numeracja pozostaje zgodna z oryginałem. Nie przeniesiono obcych modeli opieki prawnej, ubezpieczenia i finansowania na Polskę przez samą zmianę nazwy instytucji. Procedury opisano tylko w odczytanym zakresie; osobno wskazano braki. Zalecenia operacyjne i przepisy otrzymują C według README, a wąskie zalecenia kliniczne lub pojedyncza próba B. Nie stosuje się automatycznie ocen oryginału ani formalnej skali GRADE. @@ -172,13 +172,18 @@ Nie przeniesiono obcych modeli opieki prawnej, ubezpieczenia i finansowania na P -### 12. Rekord redakcyjny: uprawnienia pracownika opiekującego się chorym rodzicem -- Status: needs_verification -- Ograniczenia: Odczytano podstawowe warunki pięciodniowego urlopu opiekuńczego z art. 173¹ KP, ale nie ukończono weryfikacji rozliczenia wynagrodzenia i relacji do innych form nieobecności oraz świadczeń. Wymagane: aktualny opis PIP lub właściwego organu, pełne podstawy wynagrodzenia i odróżnienie urlopu od zasiłku opiekuńczego. Nie publikujemy częściowej instrukcji finansowej jako gotowej porady. -- Źródła: [KP art. 173¹ — odczytane warunki urlopu](https://lexlege.pb.pl/kodeks-pracy/art-173-1); [PIP — urlopy pracownicze, źródło do dalszego sprawdzenia](https://www.pip.gov.pl/dla-pracodawcow/porady-prawne/urlopy-pracownicze) +### 12. Sprawdź zasady wolnego i zasiłku na opiekę nad rodzicem +- Status: verified +- Koszt: Czas na wniosek i dokumenty. Urlop opiekuńczy z Kodeksu pracy sam w sobie nie zapewnia wynagrodzenia. Ewentualny zasiłek jest odrębnym świadczeniem, którego kwota zależy od podstawy wymiaru i spełnienia warunków. +- W praktyce: Przed zgłoszeniem nieobecności ustal z kadrami lub ZUS, z jakiego mechanizmu korzystasz. Urlop opiekuńczy z art. 173¹ Kodeksu pracy to do 5 dni w roku kalendarzowym, udzielanych w twoje dni pracy, na osobistą opiekę lub wsparcie m.in. matki lub ojca wymagających tego z poważnych względów medycznych. Dla rodzica ten urlop nie wymaga wspólnego gospodarstwa domowego. Wniosek papierowy lub elektroniczny złóż co najmniej 1 dzień wcześniej; podaj imię i nazwisko rodzica, przyczynę konieczności opieki lub wsparcia oraz pokrewieństwo. Sam ten urlop nie zachowuje ustawowego wynagrodzenia i nie daje zasiłku opiekuńczego za te same dni. Przy odrębnym zasiłku na chorego rodzica sprawdź m.in. ubezpieczenie chorobowe, wspólne gospodarstwo domowe w okresie opieki oraz brak innego członka rodziny w tym gospodarstwie, który może zapewnić opiekę. ZUS wskazuje wniosek Z-15 i zaświadczenie lekarskie, np. e-ZLA; gdy wypłaca ZUS, dla pracownika potrzebne jest też zaświadczenie płatnika składek Z-3. Korzystaj z aktualnej instrukcji ZUS i potwierdź, kto przyjmuje dokumenty. +- Korzyść i dowody: Art. 32–35 ustawy zasiłkowej i objaśnienia ZUS odróżniają zasiłek za osobistą opiekę nad chorym członkiem rodziny od kodeksowego urlopu. Dla tej kategorii zasiłku limit to 14 dni w roku kalendarzowym, nie oddzielnie dla każdego rodzica lub opiekuna; uwzględnia się też łączne limity opieki nad dziećmi i rodziną. Zasiłek może obejmować dni wolne od pracy. Miesięcznie wynosi 80% podstawy wymiaru zasiłku — to nie gwarancja 80% twojej bieżącej pensji netto. Art. 12 ust. 2 pkt 5 w związku z art. 35 ust. 2 oraz komunikat ZUS wykluczają zasiłek opiekuńczy za okres tego urlopu. To odczytane normy, nie pomiar oszczędności ani gwarancja przyznania świadczenia. +- Ocena dowodów: C — odczytane polskie przepisy oraz urzędowe objaśnienia PIP i ZUS; brak pomiaru efektu finansowego dla konkretnej rodziny. +- Ocena redakcyjna: C — rozdzielenie nazw i warunków pomaga uniknąć planowania opieki na podstawie nieistniejącej obietnicy płatnych dni; wynik zależy od sytuacji ubezpieczeniowej i dokumentów. +- Ograniczenia: Pięciodniowy urlop dotyczy pracowników, nie wszystkich opiekunów. Bycie jedynakiem nie jest warunkiem opisanych mechanizmów. Zasiłek na chorego rodzica nie obejmuje automatycznie każdego wsparcia seniora. Opisane przez PIP zwolnienie z art. 188 dla pracownika wychowującego dziecko nie jest ogólnym płatnym wolnym na rodzica. Nie opisano całego katalogu nieobecności, wszystkich wyłączeń, sposobu wyliczenia podstawy ani korzystniejszych postanowień konkretnej umowy lub zakładu. Potwierdź wykorzystany limit, dokumenty i indywidualne prawo u właściwego płatnika; ta informacja organizacyjna nie zastępuje porady prawnej. +- Źródła: [Kodeks pracy — art. 80 i 173¹–173³, s. 34 i 61 PDF](https://api.sejm.gov.pl/eli/acts/DU/2026/1245/text/T/D20261245L.pdf); [Ustawa zasiłkowa — art. 11 ust. 4, 12 i 32–35, s. 6 i 19–22 PDF](https://api.sejm.gov.pl/eli/acts/DU/2026/854/text/U/D20260854Lj.pdf); [PIP — wynagrodzenie i różne uprawnienia opiekuńcze](https://www.pip.gov.pl/dla-pracodawcow/pytania-i-odpowiedzi/czy-pracownik-zachowuje-prawo-do-wynagrodzenia-za-skorzystanie-z-urlopu-opiekunczego?tmpl=pdf); [ZUS — warunki i limity zasiłku](https://www.zus.pl/swiadczenia/zasilki/zasilek-opiekunczy/prawo-do-zasilku-i-okres-przyslugiwania); [ZUS — wysokość zasiłku](https://www.zus.pl/swiadczenia/zasilki/zasilek-opiekunczy/wysokosc); [ZUS — dokumenty, strona z 24 października 2026](https://www.zus.pl/swiadczenia/zasilki/zasilek-opiekunczy/niezbedne-dokumenty); [ZUS — zmiany od 26 kwietnia 2023, pkt 7](https://www.zus.pl/-/zmiany-w-zasi%C5%82kach-od-26-kwietnia-2023-roku) - Oryginał: [17.12](https://github.com/eternity4719/HowToLiveBetter/blob/e2605d3e2242bd6216c9255192b8a8957a08c55a/book/17-%E5%AE%B6%E9%87%8C%E6%9C%89%E8%80%81%E4%BA%BA.md#L106-L114) -- Weryfikacja: 2026-11-02; przeczytano art. 173¹ KP i dostępny fragment rozbudowanego poradnika PIP. Nie uzyskano w odczytanej części wystarczającego potwierdzenia całego planowanego opisu wynagrodzenia i świadczeń. -- Zmiany w adaptacji: Nie przeniesiono chińskich uprawnień jedynaków, prowincjonalnych dni wolnych, płacy, terminów i ścieżki skarg. Zachowano numer oraz rekord do ponownego sprawdzenia zamiast publikacji niepełnej procedury. +- Weryfikacja: 2026-11-07; przeczytano art. 80 i 173¹–173³ Kodeksu pracy (s. 34 i 61 PDF), art. 11 ust. 4, 12 i 32–35 ustawy zasiłkowej (s. 6 i 19–22 PDF), pełne merytoryczne FAQ PIP oraz strony ZUS o warunkach, wysokości i dokumentach (ta ostatnia z 2026-10-24); w komunikacie z 2023 przeczytano pkt 7 i podstawy prawne. Uwzględniono oznaczenie przyszłego brzmienia dotyczącego opieki nad dzieckiem od 2028, bez stosowania go do obecnej porady o rodzicu. Nie przeczytano całych ustaw, wszystkich nowelizacji, przywołanego przez PIP postanowienia SN I PSK 284/21 ani formularzy PDF; nie obliczono indywidualnego świadczenia i nie przeprowadzono recenzji prawnika. +- Zmiany w adaptacji: Oryginalne B zastąpiono C. Chińskie prowincjonalne uprawnienia jedynaków, dni wolne, gwarancje płacy, terminy i ścieżkę skarg zastąpiono węższym rozróżnieniem polskiego urlopu i zasiłku. Nie obiecuje się płatnego urlopu na rodzica ani sumowanej puli 19 płatnych dni. Zachowano numer, kotwicę i przypięty zakres oryginału; pozostałych pozycji nie poświadczono ponownie. diff --git a/tests/browser/reader.spec.mjs b/tests/browser/reader.spec.mjs index 7acc29468..a017a5f34 100644 --- a/tests/browser/reader.spec.mjs +++ b/tests/browser/reader.spec.mjs @@ -47,7 +47,7 @@ test('relaxation supports search, source limits, keyboard details and hidden-tar test('malformed relaxation data fail the whole collection and pending advice remains absent', async ({ page }) => { await ready(page); - for (const id of ['porada-17-1', 'porada-17-12', 'porada-19-18', 'porada-20-5']) await expect(page.locator('#' + id)).toHaveCount(0); + for (const id of ['porada-17-1', 'porada-19-18', 'porada-20-5']) await expect(page.locator('#' + id)).toHaveCount(0); const c = chapters.find(c => c.id === '22'); await page.route(routeFor(c), route => route.fulfill({ contentType: 'text/plain; charset=utf-8', body: c.markdown.replace('- Status: verified', '- Status: ready') })); await page.goto('/'); @@ -425,7 +425,27 @@ test('chapter 17 publishes only checked advice and keeps support limits in the r await page.reload(); await expect(page.locator('#porada-17-7 h3')).toBeFocused(); await expect(page.locator('#porada-17-1')).toHaveCount(0); - await expect(page.locator('#porada-17-12')).toHaveCount(0); + await ready(page, '/#porada-17-12'); + await expect(page.locator('#porada-17-12 h3')).toBeFocused(); + await page.getByLabel('Rozdział', { exact: true }).selectOption('17'); + await page.getByLabel('Szukaj w polskich poradach').fill('Z-15'); + await expect(visibleCards(page)).toHaveCount(1); + const leave = page.locator('#porada-17-12'); + await expect(leave.locator('.practical')).toContainText('5 dni w roku kalendarzowym'); + await expect(leave.locator('.practical')).toContainText('nie zachowuje ustawowego wynagrodzenia'); + await expect(leave.locator('.practical')).toContainText('nie daje zasiłku opiekuńczego za te same dni'); + await leave.locator('summary').focus(); + await page.keyboard.press('Enter'); + await expect(leave.locator('details')).toHaveAttribute('open', ''); + await expect(leave).toContainText('14 dni w roku kalendarzowym'); + await expect(leave).toContainText('80% podstawy wymiaru zasiłku'); + await expect(leave).toContainText('nie przeprowadzono recenzji prawnika'); + await expect(leave.getByRole('link', { name: /ZUS — dokumenty/ })).toHaveAttribute('href', 'https://www.zus.pl/swiadczenia/zasilki/zasilek-opiekunczy/niezbedne-dokumenty'); + await page.getByRole('link', { name: 'Stały link do porady 17.12', exact: true }).click(); + await expect(leave.locator('h3')).toBeFocused(); + await page.reload(); + await expect(page.locator('#porada-17-12 h3')).toBeFocused(); + await expect(page.locator('#porada-17-1')).toHaveCount(0); }); for (const id of ['01', '02', '05', '06', '07', '08', '09', '10', '11', '12', '13', '15', '16', '17']) { diff --git a/tests/chapter-17.test.mjs b/tests/chapter-17.test.mjs index 9e3dff105..a974fd980 100644 --- a/tests/chapter-17.test.mjs +++ b/tests/chapter-17.test.mjs @@ -19,20 +19,17 @@ test('chapter 17 preserves all 13 decisions, pinned source and exact first and f assert.doesNotMatch(text, /\p{Script=Han}|96110|12356|12315|12333|12378|\+86/u); }); -test('unconfirmed representation and incomplete leave procedure stay outside published advice', () => { +test('unconfirmed representation stays outside published advice', () => { assert.equal(f(1).Status, 'needs_localization'); - assert.equal(f(12).Status, 'needs_verification'); - for (const n of [1, 12]) { - assert.match(chapter.entries[n - 1].title, /^Rekord redakcyjny:/); - assert.equal(f(n)['W praktyce'], undefined); - assert.equal(f(n)['Ocena dowodów'], undefined); - assert.match(f(n).Ograniczenia, /Wymagane:/); - } - assert.deepEqual(published(chapter.entries).map(e => e.number), [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13].map(n => `17.${n}`)); + assert.match(chapter.entries[0].title, /^Rekord redakcyjny:/); + assert.equal(f(1)['W praktyce'], undefined); + assert.equal(f(1)['Ocena dowodów'], undefined); + assert.match(f(1).Ograniczenia, /Wymagane:/); + assert.deepEqual(published(chapter.entries).map(e => e.number), [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13].map(n => `17.${n}`)); }); test('law and operational cautions have grade C with all changed source grades disclosed', () => { - const expected = [null, 'C', 'C', 'C', 'C', 'C', 'C', 'B', 'B', 'C', 'C', null, 'B']; + const expected = [null, 'C', 'C', 'C', 'C', 'C', 'C', 'B', 'B', 'C', 'C', 'C', 'B']; const original = 'AABBABABBBABB'; chapter.entries.forEach((e, i) => { assert.equal(e.fields['Ocena dowodów']?.[0] ?? null, expected[i], e.number); @@ -55,19 +52,52 @@ test('support respects autonomy and does not import blanket financial or medical assert.match(f(13).Ograniczenia, /nie jest automatyczną zgodą na odebranie samodzielności/); }); -test('published senior advice is searchable while both pending records remain excluded', () => { - for (const [query, n] of [['testamentu', 2], ['wydatków', 3], ['presji', 4], ['opłatę', 5], ['mieszkania', 6], ['Barthel', 7], ['odleżynom', 8], ['zaćma', 9], ['zwierzętach', 10], ['wojewody', 11], ['pamięć', 13]]) { +test('published senior advice is searchable while pending representation remains excluded', () => { + for (const [query, n] of [['testamentu', 2], ['wydatków', 3], ['presji', 4], ['opłatę', 5], ['mieszkania', 6], ['Barthel', 7], ['odleżynom', 8], ['zaćma', 9], ['zwierzętach', 10], ['wojewody', 11], ['Z-15', 12], ['pamięć', 13]]) { assert.ok(searchAdvice(chapters, query, { limit: 1000 }).some(r => r.entry.number === `17.${n}`), query); } for (const query of ['reprezentacja', 'opiekuńczego', 'rodzicem']) { - assert.ok(searchAdvice(chapters, query, { limit: 1000 }).every(r => !['17.1', '17.12'].includes(r.entry.number)), query); + assert.ok(searchAdvice(chapters, query, { limit: 1000 }).every(r => r.entry.number !== '17.1'), query); + } +}); + +test('caregiver leave and insured care allowance have separate conditions, pay and limits', () => { + const fields = f(12); + assert.equal(fields.Status, 'verified'); + assert.match(fields['W praktyce'], /5 dni w roku kalendarzowym.*dni pracy.*poważnych względów medycznych/); + assert.match(fields['W praktyce'], /papierowy lub elektroniczny.*co najmniej 1 dzień.*imię i nazwisko.*przyczynę.*pokrewieństwo/); + assert.match(fields['W praktyce'], /nie zachowuje ustawowego wynagrodzenia.*nie daje zasiłku opiekuńczego za te same dni/); + assert.match(fields['W praktyce'], /ubezpieczenie chorobowe.*wspólne gospodarstwo domowe.*innego członka rodziny/); + assert.match(fields['W praktyce'], /Z-15\b.*e-ZLA.*gdy wypłaca ZUS.*Z-3\b/); + assert.doesNotMatch(fields['W praktyce'], /\bZ-15[AB]\b/); + assert.match(fields['Korzyść i dowody'], /14 dni w roku kalendarzowym.*nie oddzielnie dla każdego rodzica lub opiekuna/); + assert.match(fields['Korzyść i dowody'], /80% podstawy wymiaru zasiłku.*nie gwarancja 80%.*pensji netto/); + assert.match(fields.Ograniczenia, /art\. 188.*dziecko/); +}); + +test('caregiver advice cites reread primary provisions and discloses what was not read', () => { + const fields = f(12); + assert.equal(fields.Status, 'verified'); + for (const source of ['DU/2026/1245/text/T/D20261245L.pdf', 'DU/2026/854/text/U/D20260854Lj.pdf', 'czy-pracownik-zachowuje-prawo-do-wynagrodzenia', 'prawo-do-zasilku-i-okres-przyslugiwania', 'zasilek-opiekunczy/wysokosc', 'zasilek-opiekunczy/niezbedne-dokumenty', 'od-26-kwietnia-2023-roku']) { + assert.ok(fields['Źródła'].includes(source), source); } + assert.match(fields.Oryginał, /#L106-L114\)/); + assert.match(fields.Weryfikacja, /2026-10-24/); + assert.match(fields.Weryfikacja, /Nie przeczytano.*postanowienia SN.*formularzy PDF/); +}); + +test('withdrawal hides caregiver advice and a status-only representation promotion fails', () => { + const withdrawn = { ...chapter, entries: chapter.entries.map(e => e.number === '17.12' ? { ...e, fields: { ...e.fields, Status: 'needs_verification' } } : e) }; + assert.equal(published(withdrawn.entries).length, 11); + assert.ok(searchAdvice([chapter], 'Z-15', { limit: 100 }).some(r => r.entry.number === '17.12')); + assert.equal(searchAdvice([withdrawn], 'Z-15', { limit: 100 }).some(r => r.entry.number === '17.12'), false); + assert.throws(() => parseChapter(text.replace('- Status: needs_localization', '- Status: verified'), '17'), /Koszt|W praktyce|Ocena dowodów/); }); test('scope and review limitations are explicit and README totals do not count pending advice', () => { assert.match(text, /nie jest oficjalne wydanie autora/); assert.match(text, /nie jest adwokatem ani radcą prawnym/); assert.match(text, /nie porada prawna/); - assert.match(read('README.md'), /\| \[17\. .*\| 13 \| 11 \|/); - for (const e of chapter.entries) assert.match(e.fields.Weryfikacja, /^2026-11-02; /); + assert.match(read('README.md'), /\| \[17\. .*\| 13 \| 12 \|/); + for (const e of chapter.entries) assert.match(e.fields.Weryfikacja, e.number === '17.12' ? /^2026-11-07; / : /^2026-11-02; /); }); diff --git a/tests/chapter-22.test.mjs b/tests/chapter-22.test.mjs index 455b48062..88ebafbc4 100644 --- a/tests/chapter-22.test.mjs +++ b/tests/chapter-22.test.mjs @@ -71,7 +71,7 @@ test('search and publication use canonical relaxation records and preserve withd assert.equal(published(withdrawn).length, 11); assert.throws(() => parseChapter(markdown.replace('- Status: verified', '- Status: ready'), '22'), /stan|status|ready/i); assert.throws(() => parseChapter(markdown.replace(/^- W praktyce: .+\n/m, ''), '22'), /W praktyce/); - assert.equal(published(chapters.flatMap(c => c.entries)).some(e => ['17.1', '17.12', '19.18', '20.5'].includes(e.number)), false); + assert.equal(published(chapters.flatMap(c => c.entries)).some(e => ['17.1', '19.18', '20.5'].includes(e.number)), false); }); test('relaxation retains professional, licensing and source-reading boundaries without imported numbers', () => {