# T05: Reporter — pisanje izveštaja **Kreirao:** planer **Datum:** 2026-02-20 **Agent:** coder **Model:** Sonnet **Zavisi od:** T03 ✅, T04 ✅ --- ## Opis Generiše markdown izveštaj posle izvršenog taska. Koristi RunResult iz T03 i VerifyResult iz T04. ## Fajlovi za kreiranje ``` code/internal/supervisor/ ├── reporter.go ← WriteReport() └── reporter_test.go ``` ## Funkcije ```go func WriteReport( task Task, run RunResult, verify VerifyResult, reportsDir string, ) (string, error) // vraća putanju do izveštaja ``` ## Format izveštaja ```markdown # T{XX}: Naslov **Datum:** 2026-02-20 10:15 **Trajanje:** 8m 45s **Status:** ✅ Završen / ❌ Neuspešan **Tag:** v0.1.X ## Verifikacija - ✅/❌ go build (0.3s) - ✅/❌ go vet (0.2s) - ✅/❌ go test (12/12 testova, 2.1s) ## Agent output (skraćen output Claude Code sesije, max 50 linija) ## Commit - Hash: a1b2c3d - Branch: main ``` ## Pravila - Fajl ime: `T{XX}-report.md` (npr. T01-report.md) - Ako reportsDir ne postoji — kreiraj - Output skrati na max 50 linija (poslednje linije, najrelevantnije) - Datum u formatu: YYYY-MM-DD HH:MM - Trajanje: Xm Ys ili Xs ako manje od minuta ## Testovi - WriteReport sa mock podacima → fajl postoji, sadržaj tačan - Proveri format datuma, trajanja - Proveri da folder kreira ako ne postoji - Proveri skraćivanje outputa (>50 linija → samo poslednjih 50) - AllPassed=true → "✅ Završen" - AllPassed=false → "❌ Neuspešan" ## Očekivani izlaz `TASKS/reports/T{XX}-report.md` se generiše sa tačnim sadržajem. `go test ./internal/supervisor/ -v` — svi testovi zeleni. --- ## Pitanja *(agent piše pitanja ovde, planer odgovara)* --- ## Odgovori *(planer piše odgovore ovde)*