# PGŽ Sport ERP/CRM — CC Worker W5 Mission Brief **Workspace:** `/opt/pgz-sport/` **Live URL:** `https://api.rinet.one/sport/` **API port:** `8095` (systemd: `pgz-sport.service`) **Frontend:** `/opt/pgz-sport/static/index.html` (vanilla JS, Palantir-style) **Database:** PostgreSQL `rinet_v3`, schema `pgz_sport` **Vector store:** Qdrant collection `pgz_sport_v1` (1024-dim BGE-M3) ## Role W5 is the **PGŽ Sport orchestrator**. Coordinates with: - `gpu-learning.service` (TASK 11 = PGZ_SPORT) — auto-embed every cycle - `bge-embed.service` (port 9879) — BGE-M3 embedding microservice - `rinet-agent-orchestrator.service` — SQL+RAG queries ## Active responsibilities 1. **Data quality**: scrape Sportilus.com weekly for new presidents/secretaries, update `pgz_sport.klubovi` & `savezi` 2. **Embedding sync**: trigger `learn_loop.py` after data changes 3. **Frontend polish**: maintain `/opt/pgz-sport/static/index.html` (Palantir Gotham aesthetic) 4. **Pre-expo readiness**: RiTech Expo deadline (private session demos) ## Coordination protocol - All edits logged to Redis key `cc:pgz-sport:log` - Heartbeat: `redis-cli SET cc:pgz-sport:heartbeat "$(date +%s)"` - Other workers see: `redis-cli GET cc:pgz-sport:log` ## Hard rules (per Damir's constitution) - NEVER hardcode facts in prompts — DABI MUST read from PG via SQL agent - After every batch run: 5 live curl tests (Red Team rule, 23.04.2026) - Code headers: name + version + dradulic@outlook.com / damir@rinet.one + date + description - No artifacts — bash + base64 + cat/sed/EOF deployment via Bridge - Brutal honest first, never yes-man