Dziękujemy za zainteresowanie wnoszeniem wkładu. Ten przewodnik opisuje, jak uczestniczyć, co akceptujemy i jak zacząć.
## Sposoby wnoszenia wkładu {#ways-to-contribute}
### Zgłoszenia (nie wymagają konfiguracji) {#issues-no-setup-required}
- **Zgłoszenia błędów** - Coś nie działa? Otwórz [zgłoszenie błędu](https://github.com/snapotter-hq/snapotter/issues/new?template=bug_report.yml) wraz z krokami do odtworzenia problemu.
- **Propozycje funkcji** - Masz pomysł? Rozpocznij [dyskusję](https://github.com/snapotter-hq/snapotter/discussions/new?category=ideas), aby społeczność mogła się wypowiedzieć i oddać na nią głos.
- **Problemy z tłumaczeniami** - Zauważyłeś błędne lub brakujące tłumaczenie? Otwórz [zgłoszenie dotyczące tłumaczenia](https://github.com/snapotter-hq/snapotter/issues/new?template=translation.yml).
- **Problemy z dokumentacją** - Coś jest nie tak w dokumentacji? Otwórz [zgłoszenie dotyczące dokumentacji](https://github.com/snapotter-hq/snapotter/issues/new?template=documentation.yml).
### Kod (wymaga CLA) {#code-requires-cla}
Akceptujemy pull requesty dotyczące:
| Typ | Proces |
|------|---------|
| Poprawki błędów | Otwórz PR bezpośrednio (podlinkuj zgłoszenie, jeśli istnieje) |
| Nowe tłumaczenia | Otwórz PR bezpośrednio (zobacz [Przewodnik po tłumaczeniach](/pl/guide/translations)) |
| Ulepszenia dokumentacji | Otwórz PR bezpośrednio |
| Ulepszenia pokrycia testami | Otwórz PR bezpośrednio |
| Nowe narzędzia lub funkcje | Najpierw rozpocznij [dyskusję](https://github.com/snapotter-hq/snapotter/discussions/new?category=ideas); opiekun projektu zamienia zatwierdzone pomysły w śledzone zgłoszenie, zanim zaczniesz pisać kod |
| Refaktoryzacje lub zmiany architektury | Najpierw rozpocznij [dyskusję](https://github.com/snapotter-hq/snapotter/discussions/new?category=ideas) i poczekaj na akceptację opiekuna projektu, zanim zaczniesz pisać kod |
### Czego nie zaakceptujemy {#what-we-will-not-accept}
- Zmian w przepływach CI/CD, konfiguracji wydań lub konfiguracji lintera/kompilatora
- PR-ów bez podpisanej [Umowy licencyjnej współtwórcy](#contributor-license-agreement)
- PR-ów zmieniających ponad 400 wierszy (podziel dużą pracę na mniejsze PR-y)
- Funkcji, które nie zostały wcześniej przedyskutowane i zatwierdzone
- Zmian w `packages/ai/` bez wcześniejszej dyskusji
Zanim będziemy mogli scalić Twój pierwszy PR, musisz podpisać naszą [Indywidualną umowę CLA](https://github.com/snapotter-hq/snapotter/blob/main/CLA.md). Jest to wymóg jednorazowy.
**Dlaczego:** SnapOtter ma podwójną licencję (AGPLv3 + komercyjna). CLA daje nam prawo do dystrybucji Twojego wkładu na obu licencjach. Zachowujesz pełne prawa autorskie do swojej pracy.
**Jak:** Gdy otworzysz swój pierwszy PR, bot CLA Assistant doda komentarz z odnośnikiem. Kliknij go, zapoznaj się z umową i podpisz ją za pomocą swojego konta GitHub. Zajmuje to 30 sekund.
Jeśli wnosisz wkład w imieniu swojego pracodawcy, a pracodawca zachowuje prawa własności intelektualnej do Twojej pracy, skontaktuj się z contact@snapotter.com, aby przygotować firmową umowę CLA przed przesłaniem wkładu.
7. Poczekaj, aż CI przejdzie, a opiekun projektu przejrzy zmiany
### Czego oczekiwać podczas przeglądu {#review-expectations}
- Staramy się odpowiadać na PR-y w ciągu 7 dni
- Małe, skupione PR-y są przeglądane szybciej
- Jeśli nie otrzymasz odpowiedzi w ciągu 7 dni, zostaw komentarz przywołujący wątek
- Możemy poprosić o zmiany, zasugerować inne podejście lub zamknąć PR, jeśli nie jest zgodny z kierunkiem projektu
### Po scaleniu Twojego PR-a {#after-your-pr-is-merged}
Twój wkład zostanie uwzględniony w kolejnym wydaniu i wymieniony w dzienniku zmian.
## Dobre pierwsze zgłoszenia {#good-first-issues}
Szukasz czegoś do zrobienia? Sprawdź nasze [dobre pierwsze zgłoszenia](https://github.com/snapotter-hq/snapotter/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) w poszukiwaniu zadań przyjaznych dla początkujących lub [potrzebna pomoc](https://github.com/snapotter-hq/snapotter/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) w przypadku większych zadań, przy których docenimy pomoc społeczności.
## Styl kodu {#code-style}
- Biome zajmuje się formatowaniem i lintowaniem (cudzysłowy podwójne, średniki, wcięcie 2 spacje)
- Hook pre-commit automatycznie uruchamia `biome check --write` na plikach ze staging
- Jeśli linter zgłasza uwagi, popraw kod (nie modyfikuj konfiguracji Biome)
Pełne informacje o architekturze znajdziesz w [Przewodniku dla programistów](/pl/guide/developer).
## Bezpieczeństwo {#security}
**Nie otwieraj publicznego PR-a ani zgłoszenia dla luk bezpieczeństwa.** Zgłaszaj je prywatnie poprzez [GitHub Security Advisories](https://github.com/snapotter-hq/snapotter/security/advisories/new) lub e-mailem na contact@snapotter.com. Pełne szczegóły znajdziesz w [SECURITY.md](https://github.com/snapotter-hq/snapotter/blob/main/SECURITY.md).