✏️ Commit = mała, logiczna historia
przykład:
„feat: add password-strength meter”
Dlaczego + co w 1-2 zdaniach (max 72 zn./linia).
Jedna zmiana → jeden commit — łatwy revert & cherry-pick.
Hook commitlint + Conventional Commits pilnuje formatu.
🔍 Pull Request = miejsce na rozmowę, nie „wall of code”
Co wrzucić do PR-a?
Tytuł: identyczny jak pierwszy commit, mówi wprost, co dostajemy.
Opis: krótko co i dlaczego + link do środowiska preview.
Checklistę: testy, lint, dokumentacja — odhaczasz przed wysłaniem.
#Numer ticketu: Resolves #123 → automat zamyka zadanie po merge’u.
❗ Dlaczego numer ticketu jest kluczowy?
Jeden klik prowadzi do pełnego opisu biznesowego.
Boty generują changelog bez dodatkowej pracy.
PM widzi, ile PR-ów zamknęło konkretny epic.
feat: add discount-coupon validation (#456)
Validates coupons client-side to reduce API calls.
Resolves #456.
🤝 Kod gotowy? Pamiętaj o trzech krokach
Oznacz co najmniej 2 reviewerów (różne perspektywy).
Ustal czas na review ≤ 24 h w zespole — sprint nie stoi.
Po akceptacji squash-merge: czysta, liniowa historia commitów.