KATALOG BRAMEK DLA ASYSTENTA AI Co realnie warto zabezpieczyć mechanicznie — z pracującego zestawu, nie z listy życzeń. ═══════════════════════════════════════════════════════════════════ JAK CZYTAĆ TĘ LISTĘ ═══════════════════════════════════════════════════════════════════ Nie wdrażaj wszystkiego. Weź dwie–trzy pozycje, które odpowiadają awariom, jakie u siebie MIAŁEŚ. Bramka postawiona „na wszelki wypadek" jest tylko kosztem — odzywa się, przeszkadza i zostaje wyłączona. Każda pozycja ma podaną REAKCJĘ: blokuje / pyta / przypomina. Kolejność nie jest przypadkowa: BLOKUJE tylko tam, gdzie szkoda jest nieodwracalna. Gdzie da się naprawić później — pyta albo przypomina. ═══════════════════════════════════════════════════════════════════ 1. SZKODA NIEODWRACALNA — tu się blokuje ═══════════════════════════════════════════════════════════════════ [ ] WYSYŁANIE ZMIAN NA ZEWNĄTRZ (push do repozytorium, publikacja, wysyłka) → PYTA za każdym razem, osobne ostrzeżenie przy wariancie wymuszonym. Powód: cofnięcie publikacji jest droższe niż jedno pytanie. [ ] RESTART USŁUGI, KTÓRA WŁAŚNIE PRACUJE → BLOKUJE, gdy sprawdzenie pokazuje, że coś jest w toku; PYTA, gdy nie udało się tego sprawdzić. ⚠️ To jest wzorcowy przykład trzeciego stanu: „nie wiem" nie może kończyć się przepuszczeniem. [ ] ZABICIE DŁUGO ŻYJĄCEJ SESJI ROBOCZEJ → BLOKUJE. Utrata kontekstu jest niewidoczna od razu i nie do odzyskania. [ ] KASOWANIE I NADPISYWANIE PLIKÓW, KTÓRYCH NIE MA W KONTROLI WERSJI → PYTA. Wzorzec, który wraca: rzecz trzymana poza gitem znika i nikt tego nie zauważa miesiącami. ═══════════════════════════════════════════════════════════════════ 2. WIEDZA, KTÓRA PRZEPADA — tu się przypomina i wymusza ═══════════════════════════════════════════════════════════════════ [ ] NOTATKA ZAKŁADANA NA STARCIE SESJI, nie na końcu → SPRAWDZA na starcie, czy istnieje dzisiejsza notatka. Powód: koniec bywa nieosiągalny — urywa się połączenie, wpada telefon, przeskakujesz do innego zadania. Notatka założona na starcie zostawia po zerwaniu notatkę NIEDOKOŃCZONĄ zamiast ŻADNEJ. [ ] GODZINA WE WPISIE Z ZEGARA, NIE Z PAMIĘCI → ODRZUCA wpis, którego godzina odbiega od bieżącej o więcej niż tolerancja. Blizna: w jednej z notatek wpis „11:20" opisywał ustalenie, które w transkrypcie pada o 13:34 — a w oknie między nimi nie było ANI JEDNEJ tury rozmowy. Godzina była po prostu wymyślona. Dziennik ma jeden powód, dla którego zawiera godziny: zestawienie z tym, co się naprawdę działo. Zmyślona godzina zabiera mu ten powód. ⚠️ Sama reguła w pliku z zasadami istniała wcześniej i NIE WYSTARCZYŁA. [ ] KOMPLET SEKCJI W NOTATCE → PRZYPOMINA o brakujących, ale dopiero od pewnej długości. Notatkę pisze się przyrostowo; hook krzyczący od pierwszej linijki zostanie wyłączony. [ ] UTRWALENIE SZCZEGÓŁÓW PRZED KOMPRESJĄ KONTEKSTU → PRZYPOMINA, co ma przetrwać streszczenie. Model streszczający własną rozmowę wyrzuca dokładnie te szczegóły, po które wrócisz za tydzień. ═══════════════════════════════════════════════════════════════════ 3. BŁĄD, KTÓRY WRACA PÓŹNO — tu się sprawdza od razu ═══════════════════════════════════════════════════════════════════ [ ] SPRAWDZENIE PLIKU ZARAZ PO ZAPISANIU (kompilacja, składnia, test) → URUCHAMIA kontrolę i zwraca błąd natychmiast. Powód czysto rachunkowy: błąd znaleziony po piętnastu kolejnych zmianach kosztuje drugie przeczytanie tego samego kodu. [ ] TWIERDZENIE O STANIE NARZĘDZI BEZ SPRAWDZENIA → OSTRZEGA, gdy w odpowiedzi pada zdanie o tym, co narzędzie potrafi, bez wcześniejszego uruchomienia czegokolwiek. To najczęstszy błąd ze wszystkich: zdanie brzmi wiarygodnie i nikt go nie weryfikuje. ═══════════════════════════════════════════════════════════════════ 4. KOSZT — tu się pyta ═══════════════════════════════════════════════════════════════════ [ ] URUCHAMIANIE WIELU POMOCNIKÓW NARAZ → PYTA o estymatę, zanim ruszy flota. Bez tego jedno zadanie warte sześciu wyszukiwań potrafi zamienić się w sto wywołań najdroższego modelu. [ ] CIĘŻKIE ZADANIE NA MASZYNIE, KTÓRA ROBI COŚ WAŻNIEJSZEGO → WYMUSZA niski priorytet. Budowanie na pełnych obrotach potrafi zdławić to, co akurat leci na żywo. [ ] ZADANIE NOCNE URUCHOMIONE W DZIEŃ → PYTA. Zgoda na zakres nie jest zgodą na porę. ═══════════════════════════════════════════════════════════════════ ZANIM UZNASZ BRAMKĘ ZA DZIAŁAJĄCĄ ═══════════════════════════════════════════════════════════════════ [ ] KONTROLA POZYTYWNA: podaj jej przypadek, który MA odrzucić, i sprawdź, że odrzuca. „Nic się nie stało" nie dowodzi, że bramka działa — dowodzi, że nic się nie stało. [ ] Sprawdź, co się dzieje, GDY BRAMKA SAMA PADNIE. Zwykle przepuszcza — i wygląda przy tym na zainstalowaną. Jedna z moich padała po cichu na starszej wersji powłoki: zero wyjścia, kod błędu, wszystko przepuszczone. Mechanizm realizował dokładnie tę awarię, przed którą miał chronić. [ ] Sprawdź, czy łapie KLASĘ DZIAŁANIA, a nie jedno narzędzie. Reguła pilnująca jednej komendy przepuszcza inną, robiącą to samo. ═══════════════════════════════════════════════════════════════════ Maciej Poczek · videomajster.pl/hooki-zamiast-zasad/ Wolno kopiować, przerabiać i używać u siebie.