Przejdź do treści

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:

  1. Feature freeze. Żadnej nowej pracy. Każdy nowy element funkcjonalny → osobna wycena, do realizacji po fazie utrzymania (jesień 2026 lub później).
  2. Weekend-only deploy. Coding + push + deploy tylko Sob/Nd. Pn–Pt — produkcja nie jest dotykana. Wyjątek: P0 outage (linia już stoi → hotfix dozwolony).
  3. 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 bug na feature-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):

  1. Sprawdź na produkcji, czy fix faktycznie działa.
  2. Jeśli OK → komentarz „naprawione" + zamknięcie issue'a w Forgejo.
  3. 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:

  1. Backlog access zostaje odebrany wykonawcy (TASK-153). Backlog.md jest ostatecznie freeze'owany — przekazany Ci na własność (backlog/ w repo).
  2. Forgejo aio/panel pozostaje aktywne — Twój issue tracker. Wykonawca nie ma więcej do niego zwykłego dostępu (chyba że osobna umowa).
  3. 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ą.
  4. Klucz age SOPS rezerwowy — przekazywany właścicielowi (rozliczenie końcowe). Po tym: pełna kontrola nad sekretami u Ciebie. Wykonawca nie ma już zapasu.
  5. 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:

  1. 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.
  2. W tygodniu nie spodziewaj się zmiany w panelu — produkcja jest stabilna, weekend coś poprawi.
  3. 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