feat(01-sonarqube-baseline): SonarQube configuration and quality baseline

Phase 1 complete:
- sonar-project.properties configured for crmPRO
- First scan: 88 files, 9356 LoC, 58 bugs, 1649 code smells, 0% coverage
- Baseline documented with prioritized recommendations for Phase 2

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-15 00:56:09 +01:00
parent f35b561d07
commit e92c9fe522
6 changed files with 524 additions and 0 deletions

View File

@@ -0,0 +1,142 @@
---
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>