--- phase: 01-sonarqube-baseline plan: 01 type: execute wave: 1 depends_on: [] files_modified: [sonar-project.properties] autonomous: false --- ## 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 ## Project Context @.paul/PROJECT.md @.paul/ROADMAP.md @.paul/STATE.md ## Source Files @index.php @autoload/ (główny kod PHP) @templates/ (szablony) @tests/ (testy) ## 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 ``` Task 1: Utworzenie sonar-project.properties sonar-project.properties 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 Plik sonar-project.properties istnieje i zawiera poprawne ścieżki AC-1 satisfied: Konfiguracja SonarQube gotowa do skanu 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) Wklej wyniki skanu lub podaj link do dashboardu. Wpisz "done" jeśli skan zakończony. Task 3: Dokumentacja baseline w SUMMARY.md .paul/phases/01-sonarqube-baseline/01-01-SUMMARY.md 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) SUMMARY.md zawiera kompletne metryki i rekomendacje AC-3 satisfied: Baseline udokumentowany z rekomendacjami ## 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 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 - sonar-project.properties skonfigurowany poprawnie - Pierwszy skan zakończony bez błędów - Baseline udokumentowany w SUMMARY.md - Rekomendacje dla Phase 2 przygotowane After completion, create `.paul/phases/01-sonarqube-baseline/01-01-SUMMARY.md`