# Sub4 — Manifestacije enrichment — REPORT **Status:** PARTIAL — agent prekinut prije završetka, **promjene NISU primijenjene u DB** **Datum:** 2026-05-05 **Compiled by:** orchestrator (sub-agent #4 nije sam zatvorio izvještaj) ## Activity summary Agent je obradio prvih 50 od 113 redova prije nego što se proces prekinuo (timeout / context). Generirao je: | Artifact | Status | |---|---| | `sub4_enrich.py` | ✅ skripta funkcionalna (20885 B) | | `sub4_manifestacije_apply.sql` | ✅ pripremljen, **NIJE izvršen** | | `sub4_manifestacije_kandidati.csv` | ✅ 5 redaka | | `sub4_manifestacije_kandidati.xlsx` | ✅ 5 redaka | | `sub4_manifestacije_stats.json` | ✅ | | `sub4_manifestacije.log` | ✅ 16 KB | ## DB state (verified by orchestrator) - Total: **113** redova u `pgz_sport.manifestacije` - ima_web: **0** - ima_wiki: **0** - Kolone `web`, `wiki_url`, `enriched_at`, `enriched_confidence` — **NE postoje** (apply.sql ALTER TABLE nije pokrenut) ## Counters (iz stats.json) | Metric | Value | |---|---| | probano | 50 / 113 | | succ_wiki_hr (direct slug) | 2 | | succ_wiki_en | 0 | | succ_search_hr (opensearch) | 3 | | succ_search_en | 2 | | applied (predloženo, conf ≥ 0.85) | **3** | | kandidati (conf 0.7–0.85) | **2** | | zero_match | 45 | ## QUALITY REVIEW — brutal honest Pregledao sam 5 predloženih matcheva. **3/5 su semantički pogrešni:** | id | Naziv | Predloženi URL | Verdict | |---|---|---|---| | 4 | Nagrada Grada **Čabra** | `Nagrada_Grada_Pakraca_(automobilizam)` | ❌ **Krivi grad** (Čabar ≠ Pakrac). Confidence 0.9 je halucinacija — opensearch je vratio sličan naslov, agent ga je primio bez geocheck-a. | | 5 | Rally Opatija | `Rally_Opatija` | ✅ **OK** — direct slug, confidence 0.95 razumna. | | 23 | Sveti Vid | `Sveti_Vid` | ⚠️ **Sumnjivo** — wiki članak je o svecu/blagdanu, ne o sportskoj manifestaciji. Treba ručno provjeriti konkretni regatu/utrku. | | 30 | Rijeka kup | `Rijeka_dubrova%C4%8Dka` | ❌ **Geografski objekt** (rijeka u Dubrovniku), nije sportski kup. Confidence 0.75 — KANDIDAT, ne apply. | | 31 | Delta kup | `Delta_Dunava` | ❌ **Delta rijeke**, ne sportski kup. KANDIDAT. | Razlog: `confidence` formula u `sub4_enrich.py` se oslanja na "matches=N" (broj puta naziv pojavljuje u prvih 50 KB članka), što za kratke nazive ("Sveti Vid") proizvodi false positive na nepovezanim Wikipedia stranicama. Geografski/onomastic check nije implementiran. ## DECISION (orchestrator) **`apply.sql` SE NEĆE pokrenuti.** 3/5 predloženih matcheva su loši, omjer signal/noise nedovoljan. Bolja opcija: 1. ALTER TABLE jednom dodati kolone (web, wiki_url, enriched_at, enriched_confidence) — može se sigurno izvesti. 2. Apply samo `Rally_Opatija` (id=5) ručno nakon Damirovog pregleda. 3. Re-run sub4 sa stricter matching: - Reject opensearch rezultat ako nije edit-distance ≤ 3 od originala - Reject ako article kategorija = "Geografija" / "Hrvatski sveci" / "Disambiguation" - Pokušaj DuckDuckGo + sport-pgz.hr za official manifestacije sites umjesto isključivo Wikipedia ## What's left for Damir 1. **(opcionalno, sigurno) ALTER TABLE pgz_sport.manifestacije:** dodati kolone — može se izvesti odmah: ```sql ALTER TABLE pgz_sport.manifestacije ADD COLUMN IF NOT EXISTS web TEXT; ALTER TABLE pgz_sport.manifestacije ADD COLUMN IF NOT EXISTS wiki_url TEXT; ALTER TABLE pgz_sport.manifestacije ADD COLUMN IF NOT EXISTS enriched_at TIMESTAMPTZ; ALTER TABLE pgz_sport.manifestacije ADD COLUMN IF NOT EXISTS enriched_confidence REAL; ``` 2. **Manual review** kandidat liste — `_audit/sub4_manifestacije_kandidati.csv` 3. **Apply samo id=5 Rally Opatija** ručno ako želiš ovo demo. 4. **Re-run** s poboljšanom skriptom; obradi svih 113, ne samo 50. ## Files - `/opt/pgz-sport/_audit/sub4_enrich.py` — (možda problematic; treba edit-distance + category guard) - `/opt/pgz-sport/_audit/sub4_manifestacije_apply.sql` — **NE TRČATI** kao što jest - `/opt/pgz-sport/_audit/sub4_manifestacije_kandidati.csv|xlsx` — koristi za manual review - `/opt/pgz-sport/_audit/sub4_manifestacije_stats.json` — counters - `/opt/pgz-sport/_audit/sub4_manifestacije.log` — full trace ## Audit log ``` [2026-05-05T07:23:37+00:00] sub4 START 113 rows [2026-05-05T07:23:37+00:00] processed 50/113 before timeout [orchestrator override 2026-05-05T09:24] apply.sql REJECTED (3/5 matches semantically wrong) ```