Bug-fix mode — standardowa procedura¶
Bug-fix mode to standardowy tryb pracy w fazie utrzymania (maj–sierpień 2026). Ten dokument opisuje, jak realnie wygląda dzień po dniu, czego się spodziewać i co się dzieje 31 sierpnia 2026.
Kontekst
Bug-fix mode obowiązuje od 2026-05-01 do 2026-08-31. Pakiet: 3 750 zł / mc (50 % stawki rozwojowej z fazy projektowej). Zakres określony przez ofertę str. 7 i Podsumowanie Prac → Faza utrzymania.
Co realnie znaczy „bug-fix mode"¶
Trzy zasady operacyjne:
- Feature freeze. Żadnej nowej pracy. Każdy nowy element funkcjonalny → osobna wycena, do realizacji po fazie utrzymania (jesień 2026 lub później).
- Weekend-only deploy. Coding + push + deploy tylko Sob/Nd. Pn–Pt — produkcja nie jest dotykana. Wyjątek: P0 outage (linia już stoi → hotfix dozwolony).
- One-batch owner-notification. Ty (właściciel) dostajesz jeden email w niedzielę wieczór z listą zamkniętych spraw. Brak piecemeal pingów w tygodniu.
Co naprawiamy bez Twojej zgody¶
Standardowa procedura — nie czekamy na ack:
- ✅ Bug, który dokumentacja opisuje jako zachowanie działające. Naprawiamy, deployujemy, raportujemy w sprint-summary.
- ✅ Auto-filed tickety (HTTP 5xx, fatal exception) — wpadają jako issue z prefiksem
[auto]. Naprawiamy zgodnie z priorytetem. - ✅ Drobne hardenowanie / refactor, jeśli wynika z naprawy bugu (np. dodanie test-case'u, ekstrakcja funkcji w trakcie fix). Bez ekspansji zakresu.
- ✅ Aktualizacje sekretów / certyfikatów / kont OAuth, których ważność wygasa (Allegro token co 11h, Amazon SP-API, Temu 90-dniowe re-auth — TASK-248).
- ✅ Restart kontenera / reset failed job w celu odblokowania kolejki — to ops, nie zmiana kodu.
Co wymaga Twojej decyzji (ack)¶
Przed przystąpieniem do tych zmian czekamy na zielone światło — przez Forgejo komentarz albo email:
- 🟡 Reklasyfikacja zgłoszenia z
bugnafeature-request(wycena osobna). Pytamy: „Czy chcesz wycenić tę zmianę osobno, czy odpuszczamy?". - 🟡 Zmiana, która dotyka workflow operatora (np. inny układ kolumn w Obsłudze Klienta). Nawet jeśli tytuł brzmi „bugfix", efekt UX wymaga Twojej akceptacji.
- 🟡 Cofnięcie wcześniejszej decyzji projektowej (np. „przywróćmy stary edytor scenariuszy"). Decyzje są w
backlog/decisions— cofnięcie wymaga decyzji. - 🟡 Aktualizacja dependency major (Convex / Svelte / Windmill major bump) — robimy dopiero gdy issue forsuje, z osobnym uzgodnieniem.
- 🟡 Migracja danych w produkcji (np. backfill kolumny Convex, masowa update w BaseLinker). Zawsze wymaga ack i okna time-windowed.
Co jest poza zakresem (zawsze nowa wycena)¶
- 🛑 Nowa integracja platformy (TikTok Shop, Bol.com, Shopee, ...).
- 🛑 Nowy rynek Amazon / nowy kraj sklepu — patrz FAQ #20 / #26.
- 🛑 Nowy moduł UI (dashboard, raport, wykres).
- 🛑 Subiekt finalizacja — odroczone do migracji właściciela na Subiekt Nexo Pro v57+ (oferta str. 4).
- 🛑 Wsparcie WordPress / WooCommerce — szablony, wtyczki, treści. Wyłączenie wprost ofertą str. 4.
- 🛑 Self-hosted alternatywy dla obecnych narzędzi (np. „zastąpmy Mailcow przez Postfix+Dovecot").
- 🛑 Nowy LLM / model AI w klasyfikacji — obecny Claude jest standardem. Zmiana = nowa praca.
W praktyce: jeśli zgłoszenie nie jest odchyleniem od dokumentacji, jest nową pracą. Patrz Bug czy nowa praca.
Kanały komunikacji w bug-fix mode¶
| Kierunek | Kanał | Częstotliwość |
|---|---|---|
| Owner → wykonawca | Forgejo (bugi/pomysły) · email dev@aiofactory.pl (P0/P1) |
Asynchronicznie, akumuluje się do triage'u w piątek |
| Wykonawca → owner | Sprint-summary email | Raz na sprint (niedziela wieczór) |
| Wykonawca → Forgejo | Brak komentarzy „naprawione" ze strony zespołu dev | Konwencja od 2026-05; Ty sam zamykasz |
| System → wykonawca | Auto-filed Forgejo issue (HTTP 5xx, fatal) | Real-time, bez Twojego udziału |
| System → owner | Beszel email/SMS alert (dysk, RAM, kontener stopped) | Real-time |
Asymetria komunikacji jest celowa
Ty zgłaszasz async (Forgejo); my notyfikujemy batched (sprint-summary). To eliminuje twój koszt mentalny w tygodniu — nie musisz reagować na piecemeal pingi. Wymiana to: ty piszesz kiedy chcesz; my odpowiadamy raz w tygodniu zbiorczo.
Format sprint-summary¶
Wzorzec niedzielnej wieczornej wiadomości:
Subject: AIO Factory — Sprint 4 (2026-W18) podsumowanie
Cześć,
W tym sprincie zamknęliśmy 5 issue'ów + dorzuciliśmy 2 docelowe naprawy:
- ✅ #45 Allegro: brak GPSR safety_text dla rodzin z 0 produktami → naprawione (TASK-321.06)
- ✅ #47 Bramka SMS: timeout connection po 10s zamiast 30s → naprawione (TASK-318)
- ⏭️ #48 Erli: brak shippingTemplates w nowych kategoriach → odroczone (czekamy na vendor)
Prod deploys: Sob 16:00 + Nd 11:30 + Nd 19:00.
Backupy świeże, host-mom RAM 67%, host-dad CPU 20%.
Następny sprint planujemy: PT 2026-05-09 wieczór.
— Tomek
Twoja akcja po przeczytaniu (opcjonalna):
- Sprawdź na produkcji, czy fix faktycznie działa.
- Jeśli OK → komentarz „naprawione" + zamknięcie issue'a w Forgejo.
- Jeśli nie OK → komentarz w issue, my otwieramy ponownie w następnym sprincie.
Stałe obowiązki w fazie utrzymania¶
Niezależne od konkretnych zgłoszeń — chodzą same:
| Element | Częstotliwość | Co robimy |
|---|---|---|
| Monitoring 24/7 (Beszel) | Real-time | Alert na CPU>90% / RAM>90% / dysk>80% / kontener stopped |
| Backupy (Backrest → B2) | Codziennie | Snapshot incus + Convex + bazy WP. Alert >25h opóźnienie |
| OAuth refresh tokeny | Per-platforma | Allegro 11h, Amazon SP-API per-call, eBay 1h, Temu 90 dni (TASK-248 — przed 2026-07-23!) |
| Certyfikaty SSL | Co 90 dni | Caddy auto-renew, monitoring expiry |
| Wildcard cert OVH | Co 90 dni | s-f_infra_renew__wildcard__certs flow Windmilla |
Koniec okna — co dzieje się 31.08.2026¶
31 sierpnia 2026 — koniec fazy utrzymania, zgodnie z ofertą str. 7.
Co się dzieje:
- Backlog access zostaje odebrany wykonawcy (TASK-153). Backlog.md jest ostatecznie freeze'owany — przekazany Ci na własność (
backlog/w repo). - Forgejo
aio/panelpozostaje aktywne — Twój issue tracker. Wykonawca nie ma więcej do niego zwykłego dostępu (chyba że osobna umowa). - Otwarte bugi w Forgejo na 31.08.2026 — zamykane bez naprawy (zgodnie z
doc-083). Jeśli będą krytyczne, wykonawca może je przyjąć jako spot-zlecenie z osobną wyceną. - Klucz
ageSOPS rezerwowy — przekazywany właścicielowi (rozliczenie końcowe). Po tym: pełna kontrola nad sekretami u Ciebie. Wykonawca nie ma już zapasu. - Faza utrzymania = ostatnia faktura. Po 31.08.2026 brak rozliczenia miesięcznego.
Po tym dniu — domyślne założenie z oncall.md: brak SLA, sam zatrudniasz dewelopera spot do bugów / nowych funkcji. Jeśli chcesz przedłużyć współpracę z ROOTACCESS, kontakt mailowy z propozycją umowy uzupełniającej (osobno wycenione godziny lub miesięczny pakiet).
Praktyczne implikacje dla operatora¶
W bug-fix mode jako operator panelu robisz to samo co w fazie projektowej, z trzema różnicami:
- Nowe pomysły kolektywuj w głowie — listę po fazie utrzymania zaprezentujemy razem (sierpień). W trakcie maja-lipca zgłaszaj tylko bugi i konkretne pytania.
- W tygodniu nie spodziewaj się zmiany w panelu — produkcja jest stabilna, weekend coś poprawi.
- Sprint-summary w niedzielę wieczór to Twój regularny update — przeczytaj, zweryfikuj 1-2 fixy w prodzie, idziesz dalej. Średni czas: 5-10 min co niedzielę.
Powiązane¶
- Bug czy nowa praca — granica zakresu utrzymania.
- Czas reakcji i tryby — terminy per-klasa.
- On-call — wewnętrzny widok operacyjny tych samych zasad.
- Podsumowanie Prac → Faza utrzymania — kontraktowy zapis.
- Backlog:
doc-083(Wrap-up plan),doc-085(Weekend Sprint convention), TASK-153 (close-out).