HNS endpoints: /clan/{id}/hns-career + /klubovi/pgz-financirani + /dashboard/hns-coverage
Backed by: pgz_sport.hns_player_seasons, hns_klub_roster, v_pgz_financirani_klubovi Used by: cc-hns subagents for UI integration
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
# 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)
|
||||
```
|
||||
Reference in New Issue
Block a user