# Projekt Agenta DBA z Gemini

Ten projekt ma na celu skonfigurowanie i wykorzystanie agenta Gemini jako wyspecjalizowanego asystenta do spraw administracji bazami danych (DBA). Centralnym elementem jest zdefiniowanie "persony" agenta, która steruje jego zachowaniem, priorytetami i ograniczeniami, pozwalając mu działać jak ekspert w danej dziedzinie.

## Spis Treści
1.  [Struktura Projektu](#struktura-projektu)
2.  [Konfiguracja i Persona Agenta](#konfiguracja-i-persona-agenta)
3.  [Kluczowe Dokumenty i Workflow](#kluczowe-dokumenty-i-workflow)
4.  [Jak Używać](#jak-używać)
5.  [Jak Rozszerzać Konfigurację](#jak-rozszerzać-konfigurację)

---

## Struktura Projektu

Najważniejsze pliki i katalogi w projekcie:

```
.
├── .github/
│   └── instructions/
│       └── gemini.instructions.md  <-- KLUCZOWY PLIK: Definicja persony i reguł agenta
├── docs/
│   ├── dba_responsibility.md       <-- Zakres obowiązków i odpowiedzialności DBA
│   ├── dba_workflow.md             <-- Cykliczny przepływ pracy DBA
│   └── db_security_best_practices.md  <-- Najlepsze praktyki bezpieczeństwa
└── README.md                       <-- Główna dokumentacja projektu (ten plik)
```

---

## Konfiguracja i Persona Agenta

Główna konfiguracja agenta, definiująca jego tożsamość i zasady działania, znajduje się w pliku:
- **[`.github/instructions/gemini.instructions.md`](./.github/instructions/gemini.instructions.md)**

Plik ten jest automatycznie odczytywany przez agenta i zawiera wszystkie reguły, którymi się on kieruje.

### Aktualna Persona: Starszy Administrator Baz Danych (Senior DBA)

Agent został skonfigurowany do działania jako **Starszy Administrator Baz Danych**. Jego głównym celem jest zapewnienie **bezpieczeństwa, wydajności i niezawodności** zarządzanych systemów bazodanowych. Kluczowe zasady jego działania to:

> - **Bezpieczeństwo Przede Wszystkim (Security First):** Rygorystyczne stosowanie zasady najmniejszych uprawnień, ochrona przed SQL Injection, unikanie zakodowanych na stałe poświadczeń i wymaganie potwierdzenia dla operacji destrukcyjnych.
> - **Wydajność i Optymalizacja:** Proaktywna analiza planów wykonania zapytań (`EXPLAIN PLAN`), optymalizacja poprzez indeksowanie i refaktoryzacja "wąskich gardeł".
> - **Zarządzanie Schematem i Integralność:** Wprowadzanie zmian poprzez idempotentne skrypty migracyjne i zapewnianie integralności danych za pomocą więzów (`PRIMARY KEY`, `FOREIGN KEY` itp.).
> - **Automatyzacja:** Dążenie do automatyzacji powtarzalnych zadań w celu zwiększenia niezawodności i efektywności.

---

## Kluczowe Dokumenty i Workflow

W katalogu `docs` znajduje się szczegółowa dokumentacja opisująca obowiązki, procedury i najlepsze praktyki stosowane przez agenta.

- 📄 **[Zakres Obowiązków DBA](./docs/dba_responsibility.md)**
  - Szczegółowy opis odpowiedzialności agenta w zakresie administracji różnymi systemami baz danych (MSSQL, MySQL, PostgreSQL, MongoDB, OracleDB), komponentami (SSIS, SSRS) oraz systemami operacyjnymi.

- 🔄 **[Workflow Administratora Baz Danych](./docs/dba_workflow.md)**
  - Zorganizowany przepływ pracy agenta, podzielony na zadania **codzienne, tygodniowe, miesięczne** oraz zadania wykonywane **na żądanie**. Opisuje, jak agent podchodzi do monitorowania, konserwacji, planowania pojemności i reagowania na incydenty.

- 🛡️ **[Najlepsze Praktyki Bezpieczeństwa](./docs/db_security_best_practices.md)**
  - Omówienie fundamentalnych zasad bezpieczeństwa, które agent aktywnie wspiera i egzekwuje, takich jak zasada najmniejszych uprawnień czy ochrona przed SQL Injection.

---

## Jak Używać

Aby skorzystać ze skonfigurowanego agenta, po prostu kontynuuj z nim interakcję w tym środowisku. Będzie on automatycznie postępował zgodnie z zdefiniowanymi regułami. Nie są wymagane żadne dodatkowe komendy.

## Jak Rozszerzać Konfigurację

Aby dostosować lub rozszerzyć zachowanie agenta, edytuj plik `.github/instructions/gemini.instructions.md`, modyfikując istniejące reguły lub dodając nowe. Możesz na przykład:
- Dodać zasady specyficzne dla konkretnego dialektu SQL.
- Zdefiniować procedury tworzenia backupów obowiązujące w Twojej organizacji.
- Zmienić personę agenta na zupełnie inną, np. eksperta ds. cyberbezpieczeństwa.