Jeden klik vo vnútri Apola → hlásenie sa obohatí o presný technický kontext, Claude ho roztriedi a napíše hotový návod na opravu, a padne do admin fronty. Programátor (Petr) už nič nevyšetruje — dostane tiket pripravený na opravu cez Claude Code.
Od kliknutia po pripravený tiket bežia tieto kroky automaticky.
Widget potichu zbiera kliky, zmeny polí, navigáciu, JS chyby a zlyhané requesty.
Popis pracovníka + celý kontext idú ako JSON na náš server (/api/bug).
Claude určí typ, prioritu P1–P4, oblasť (FE/BE), kroky na reprodukciu a fix-prompt.
Hlásenie + analýza sa uložia do Supabase (tabuľka apolo_hlasenia).
Tiket sa objaví v admine — s logom aj s promptom na opravu na skopírovanie.
Stojí to na rovnakej infraštruktúre ako zvyšok GoMerch AI Liga: Next.js na Verceli + Supabase + Claude API.
Malý <script>, ktorý sa vloží do Apola. Pridá plávajúce tlačidlo „Nahlásiť", od načítania ticho zbiera kontext a po odoslaní pošle JSON na server. Žiadne kľúče v prehliadači.
/api/bugServerová route (Next.js). Prijme hlásenie, zavolá Claude na triáž, výsledok aj kontext uloží do Supabase. Beží na serveri — API kľúč ani service-role kľúč sa nikdy nedostanú do prehliadača.
Model claude-sonnet-4-6 cez Anthropic API. Z logu zrekonštruuje, čo sa stalo, určí prioritu a oblasť, a napíše fix-prompt do Claude Code.
Postgres tabuľka so všetkými hláseniami. Admin stránka (/apolo-debug/admin) ich zobrazuje — chránená rovnakým heslom ako admin v AI Lige.
Pracovník napíše len vlastnými slovami, čo sa stalo. Zvyšok sa priloží sám — toto je to, čo programátorovi inak chýba.
#/orders/detail/4521)Z hlásenia + kontextu vznikne štruktúrovaný tiket — vrátane hotového promptu na opravu.
apolo_hlasenia (Supabase)Jedna tabuľka drží surové hlásenie aj výsledok triáže.
| Stĺpec | Typ | Význam |
|---|---|---|
id | uuid | identifikátor |
vytvorene | timestamptz | čas nahlásenia |
typ | text | Bug / Vylepšenie / Otázka |
dopad | text | Blokuje / Obmedzuje / Kozmetické |
popis | text | text od pracovníka |
stranka | text | URL kde sa to stalo |
pouzivatel | text | kto nahlásil |
kontext | jsonb | breadcrumbs + JS chyby + failed requesty |
nazov | text | názov tiketu (Claude) |
diagnoza | text | čo sa deje a prečo, 2–4 vety (Claude) |
priorita | text | P1–P4 (Claude) |
oblast | text | frontend / backend / db (Claude) |
fix_prompt | text | prompt na opravu do Claude Code (Claude) |
stav | text | nové / v riešení / vyriešené |
riesil | text | kto to rieši / vyriešil |
Stačí jeden riadok pred </body>. Widget sa sám pripojí a začne zbierať kontext.
<!-- na koniec stránky Apola --> <script src="https://offlineid.com/apolo-bug-reporter.js"></script>
Hlásenia potom chodia na https://offlineid.com/api/bug a objavujú sa v admine. Widget je možné vložiť aj na iné naše weby — vždy posiela, z ktorej stránky a od koho hlásenie prišlo.
apolo-bug-reporter.js (zber kontextu + odoslanie)/api/bug s automatickou Claude triážouapolo_hlasenia/apolo-debug/admin — zoznam, log, fix-prompt na kopírovanie, stav & priorita