Skip to content

v2.0.0 — po audycie merytorycznym

Choose a tag to compare

@github-actions github-actions released this 23 Aug 01:04
· 23 commits to main since this release
ed837ab

2.0.0 — po audycie merytorycznym

Wydanie główne. 22–23 sierpnia 2026 wersja 1.7.0 wszystkich siedmiu silników przeszła audyt merytoryczny: nie jakości kodu, lecz tego, czy to, co narzędzia zwracają, jest w 100% prawdą w zestawieniu z niezależnym źródłem urzędowym (ISAP i urzędowe PDF-y Dz.U., strony i PDF-y dzienników wojewódzkich, EUR-Lex, sn.pl / ipo.trybunal.gov.pl / uzp.gov.pl, surowe strony CBOSA, portal UODO i uodo.gov.pl, API rejestru umów i Biała lista VAT). 15 agentów w trzech fazach (sondy per silnik → adwersaryjna weryfikacja → krytyk kompletności), 129 kontroli: 73 TRUE, 37 PARTIAL, 18 FALSE, 1 UNVERIFIABLE; 56 defektów (7 potwierdzonych adwersaryjnie, 0 obalonych). Pełny raport z dowodami i krokami reprodukcji: docs/audyt-merytoryczny-2026-08.md; tabela defekt → naprawa: README, sekcja „Audyt merytoryczny (sierpień 2026) i wydanie 2.0".

Tam, gdzie silnik ma tekst, brzmienie przepisów zgadzało się z urzędowym PDF znak po znaku; błędy dotyczyły metadanych i kompletności — dat ogłoszenia, aktualności tekstu, statusów uchylenia i prawomocności, brakujących stron i relacji oraz dokumentacji obiecującej więcej, niż kod sprawdzał. To wydanie naprawia wszystkie 56.

Najważniejsze naprawy

  • ELI / e-dzienniki: „Ogłoszono" było datą uchwalenia, nie publikacji (sygnaliści: 14.06 vs 24.06.2024; DS 3292: 7 tygodni) — teraz Data aktu + Ogłoszono (promulgation), Stan prawny na, Uwagi o rozłożonym wejściu w życie. Treść aktu bez HTML (k.c. Dz.U. 2026 poz. 795, Konstytucja; wszystkie dzienniki wojewódzkie, gdzie text.html to tylko 1. strona) pochodzi z urzędowego PDF przez pdftotext — art. 187 k.c. w brzmieniu z 2026 r., nie z 2024 r.
  • ELI: „Nowelizacje po tekście jednolitym" uzupełniane z aktu bazowego (k.p.c.: 5 zamiast 2); Znaleziono = totalCount; przypisy bez wchodzenia w numerację jednostek.
  • e-dzienniki: listing bez ?limit=100000 (przestarzały cache serwera — brak najnowszych aktów, unieważniony MPZP jako „obowiązujący"); detekcja uszkodzonego tekstu; dociąganie łańcucha TLS przez AIA (MP/LS/LD) z pełną weryfikacją; powiązania aktu (sprostowania, uchylenia, rozstrzygnięcia nadzorcze).
  • UODO: decyzje uchylone przez sąd (Bisnode — kara 943 470 zł; Morele) pokazywały „w obrocie: tak" — teraz blok „Kontrola sądowa" z sygnaturami WSA/NSA, nagłówek „DECYZJA UCHYLONA PRZEZ SĄD", --strict blokuje; --od/--do opisane zgodnie z prawdą (data decyzji) + --pub-od/--pub-do; tekst z body.html.
  • CBOSA: flaga prawomocności ze strony orzeczenia; --strict blokuje nieprawomocne.
  • SAOS: granice zbiorów SN/TK/KIO z dokładnością do dnia (22.06.2016 / 9.12.2015 / 6.09.2018), potwierdzane na żywo; art. 556¹ zamiast łamania linii; ostrzeżenie o spłaszczonych indeksach w tekstach SN; działające wzorce adresów źródeł; typy orzeczeń po polsku.
  • EUR-Lex: daty aktu bazowego na wersji skonsolidowanej; ostrzeżenie o nieaktualnych datach stosowania po nowelizacji (AI Act); terminy transpozycji dyrektyw; uchylenia w obie strony; ostatni artykuł bez podpisów i przypisów.
  • Rejestr umów: --nip/--regon/--jsfp filtrują zamawiającego (--rola wykonawca|dowolna), okno 10 000 bez fałszywego zera, prawdziwa sekcja zmianyUmowy + --zmiana-rodzaj/--zmiana-od/--zmiana-do, adresy z powiatem i gminą.
  • Wszystkie: szukaj kończy zero trafień komunikatem i kodem ≠ 0 także z --json; kontrakt --strict opisany per silnik w SKILL.md i rozszerzony; helpery lokalizowane wyłącznie w bieżącym pakiecie (bez find/curl).

Dodatkowo ultrareview całego kodu (2 przebiegi): 5 ustaleń (1 normal, 4 nit) — fałszywa „Przerwa techniczna" w SAOS dla poprawnego JSON-u z tą frazą, walidacja miesiąca w --od/--do, obcinanie --limit UODO przed offsetem, parametr 0 gubiony w query, kontrola przekierowań https→http w rejestrze umów i e-dziennikach — wszystkie naprawione.

Zmiany łamiące

  • meta --json w EUR-Lex jest obiektem (meta, akt_bazowy, zmieniajace, wersje_skonsolidowane, ostrzezenia) zamiast listy.
  • szukaj --json przy zerze trafień kończy się kodem ≠ 0 i komunikatem zamiast [] / count: 0.
  • --nip/--regon/--jsfp w rejestrze umów dopasowują wyłącznie zamawiającego.
  • --strict odrzuca więcej klas wyników (uchylone decyzje, nieprawomocne orzeczenia, tekst zastępczy, niekompletny listing).
  • Zalecany pdftotext (poppler): brew install poppler / apt install poppler-utils. Bez niego tekst aktów bez HTML pochodzi z tekstu zastępczego z ostrzeżeniem, a --strict go odrzuca.

Weryfikacja

Testy jednostkowe offline: 276 → 502; tools/validate.py zielony (lockstep 2.0.0); każda naprawa sprawdzona na żywo na przypadkach z audytu.

Aktualizacja: claude plugin update <nazwa>@gibek-skills (każdy z 7 pluginów) albo claude plugin marketplace update gibek-skills.