---
phase: 01-sonarqube-baseline
plan: 01
type: execute
wave: 1
depends_on: []
files_modified: [sonar-project.properties]
autonomous: false
---

<objective>
## Goal
Skonfigurować projekt crmPRO w SonarQube, uruchomić pierwszy skan i udokumentować baseline jakości kodu.

## Purpose
Uzyskanie obiektywnej oceny stanu kodu — lista bugów, vulnerabilities, code smells i duplikacji. Baseline posłuży jako punkt odniesienia dla kolejnych faz naprawczych.

## Output
- `sonar-project.properties` — konfiguracja projektu dla SonarQube
- `.paul/phases/01-sonarqube-baseline/01-01-SUMMARY.md` — udokumentowany baseline
</objective>

<context>
## Project Context
@.paul/PROJECT.md
@.paul/ROADMAP.md
@.paul/STATE.md

## Source Files
@index.php
@autoload/ (główny kod PHP)
@templates/ (szablony)
@tests/ (testy)
</context>

<acceptance_criteria>

## AC-1: Konfiguracja SonarQube
```gherkin
Given projekt crmPRO bez konfiguracji SonarQube
When utworzony zostanie plik sonar-project.properties z poprawnymi ścieżkami źródeł
Then SonarQube Scanner może przeskanować projekt bez błędów konfiguracji
```

## AC-2: Pierwszy skan zakończony
```gherkin
Given skonfigurowany projekt w SonarQube
When użytkownik uruchomi sonar-scanner
Then skan zakończy się sukcesem i wyniki będą widoczne w SonarQube
```

## AC-3: Baseline udokumentowany
```gherkin
Given zakończony pierwszy skan
When wyniki zostaną przeanalizowane
Then SUMMARY.md zawiera liczbę bugów, vulnerabilities, code smells, pokrycie i duplikacje
```

</acceptance_criteria>

<tasks>

<task type="auto">
  <name>Task 1: Utworzenie sonar-project.properties</name>
  <files>sonar-project.properties</files>
  <action>
    Utworzyć plik sonar-project.properties w katalogu głównym projektu:
    - projectKey: crmPRO (zgodny z .paul/config.md)
    - projectName: crmPRO
    - sources: autoload, templates (główne katalogi z kodem PHP)
    - tests: tests
    - exclusions: vendor/**, node_modules/**, .paul/**, *.min.js, *.min.css
    - sourceEncoding: UTF-8
    - language: php
    - php.version: 7.4
  </action>
  <verify>Plik sonar-project.properties istnieje i zawiera poprawne ścieżki</verify>
  <done>AC-1 satisfied: Konfiguracja SonarQube gotowa do skanu</done>
</task>

<task type="checkpoint:human-action" gate="blocking">
  <what-to-do>
    Uruchom skan SonarQube:
    1. Upewnij się, że serwer SonarQube działa (http://localhost:9000 lub Twój adres)
    2. Utwórz projekt "crmPRO" w SonarQube UI jeśli nie istnieje
    3. Uruchom w katalogu projektu: sonar-scanner
    4. Poczekaj na zakończenie skanu
    5. Podaj wyniki z dashboardu SonarQube (lub wklej output skanera)
  </what-to-do>
  <resume-signal>Wklej wyniki skanu lub podaj link do dashboardu. Wpisz "done" jeśli skan zakończony.</resume-signal>
</task>

<task type="auto">
  <name>Task 3: Dokumentacja baseline w SUMMARY.md</name>
  <files>.paul/phases/01-sonarqube-baseline/01-01-SUMMARY.md</files>
  <action>
    Na podstawie wyników skanu od użytkownika:
    - Udokumentować metryki baseline (bugs, vulnerabilities, code smells, coverage, duplications)
    - Wylistować issues pogrupowane po severity (CRITICAL, MAJOR, MINOR)
    - Zidentyfikować pliki z największą liczbą problemów
    - Zapisać rekomendacje dla Phase 2 (co naprawić najpierw)
  </action>
  <verify>SUMMARY.md zawiera kompletne metryki i rekomendacje</verify>
  <done>AC-3 satisfied: Baseline udokumentowany z rekomendacjami</done>
</task>

</tasks>

<boundaries>

## DO NOT CHANGE
- autoload/** (żaden kod źródłowy nie jest modyfikowany w tej fazie)
- templates/** (żadne szablony nie są modyfikowane)
- config.php (konfiguracja aplikacji)
- index.php (punkt wejścia)

## SCOPE LIMITS
- Ta faza to TYLKO konfiguracja i analiza — żadne naprawy kodu
- Nie modyfikujemy istniejącego kodu
- Nie dodajemy nowych zależności

</boundaries>

<verification>
Before declaring plan complete:
- [ ] sonar-project.properties istnieje z poprawnymi ścieżkami
- [ ] Skan SonarQube zakończony sukcesem
- [ ] SUMMARY.md zawiera metryki baseline
- [ ] Zidentyfikowane priorytety dla Phase 2
- [ ] All acceptance criteria met
</verification>

<success_criteria>
- sonar-project.properties skonfigurowany poprawnie
- Pierwszy skan zakończony bez błędów
- Baseline udokumentowany w SUMMARY.md
- Rekomendacje dla Phase 2 przygotowane
</success_criteria>

<output>
After completion, create `.paul/phases/01-sonarqube-baseline/01-01-SUMMARY.md`
</output>
