> Źródło: https://redai.pl/dev/lista-kontrolna-przed-wyslaniem/ (dokumentacja modułów portalu redAi). Cała dokumentacja w jednym pliku: https://redai.pl/dev/moduly.md

## Lista kontrolna przed wysłaniem

1. Klucz modułu zgodny ze wzorcem `^[a-z][a-z0-9_]{1,40}$` i taki sam jak nazwa folderu.
2. Manifest to same stałe, ma `nazwa`, `opis`, `wersja` (wyższa niż poprzednia) i wpis w `zmiany` dla tej wersji.
3. `php -l` przechodzi dla każdego pliku PHP: `find narzedzia/<klucz> -name '*.php' -print0 | xargs -0 -n1 php -l`.
4. Moduł widać w Modułach jako wyłączony, włączenie przechodzi, migracje bez błędu.
5. Ekran startowy i każda akcja działa w przeglądarce jako administrator **i jako zwykły użytkownik**, w trybie jasnym i ciemnym, na telefonie.
6. Po wyłączeniu modułu zwykły użytkownik wchodzący na jego adres ląduje na liście narzędzi z komunikatem, reszta portalu działa.
7. Tabele i ustawienia mają prefiks klucza, moduł nie zapisuje nic poza swoim.
8. Każdy zewnętrzny adres jest wpisany w `opis_pozycji.szczegoly`.
9. W paczce nie ma sekretów, `.env`, `.git`, `node_modules`, kopii `*.bak*`, `.zrodlo.json`.
10. Log portalu (`storage/logs/laravel.log`) bez nowych błędów po przeklikaniu modułu.
11. Paczka ma jeden katalog `<klucz>/` na górze (`tar tzf paczka.tar.gz | head`).

