Skill pro Claude Code, který odsouhlasí počet nalezených geokeší mezi databází GeoGet (tedy tím, co ukazuje statistika ze Statoru) a oficiálními čísly z geocaching.com. Když čísla nesouhlasí, dohledá každý jednotlivý rozdíl a zařadí ho do třídy, která má jasnou nápravu.
Vzniklo z reálného případu, kdy statistika hlásila 5 335 nálezů, ale profil 5 299. Rozdíl 36 záznamů se podařilo vysvětlit do posledního kusu — a nešlo o jednu příčinu, ale o tři různé.
| třída | co to je | náprava |
|---|---|---|
| [A] | lab keš naimportovaná v DB dvakrát (starý import bez GUID), takže se počítá dvakrát | smazat — vygeneruje se .ggt list pro GeoGet |
| [B] | lab nález v DB, který na serveru neexistuje (předčasně odkliknuté, nebo pozůstatek po přeobsazeném slotu série) | odznačit nález, záznam nechat |
| [C] | nelabová keš označená jako nalezená, ale log se nikdy nenahrál na server | zalogovat na geocaching.com |
| chybějící nález | log na serveru je, v GeoGetu nález chybí | doimportovat MyFinds |
| duplicitní logy | tentýž vlastní log v DB dvakrát | nemá vliv na počet nálezů, ale kazí statistiky z logů |
Adventure Lab keše se párují přes GUID, ne podle jména — proto to zvládne i série, kde má
víc labek stejné jméno, i labky, které owner přejmenoval. (Právě na tomhle Diff.html pluginu
LabForGg produkuje falešné poplachy.)
- Windows — GeoGet je windowsová aplikace, cesty jsou
%APPDATA%/c:\ - GeoGet s pluginem LabForGg — kvůli lab nálezům z API
- Python 3 v
PATH - volitelně plugin Logator — jeho
Missing.ggtslouží jako levná předběžná kontrola
/plugin marketplace add rimuln/claude-plugins
/plugin install geoget-audit@rimuln-plugins
Pak stačí v Claude Code napsat třeba „nesouhlasí mi počet nálezů“ nebo „zkontroluj nálezy“.
Alternativně bez pluginu: nakopíruj skills/kontrola-nalezu/ do .claude/skills/ ve svém
projektu, nebo do ~/.claude/skills/.
Skill si všechno dohledá sám, ale skript jde pustit i samostatně:
python skills/kontrola-nalezu/scripts/audit_nalezu.py
python skills/kontrola-nalezu/scripts/audit_nalezu.py --db kopie.db3 --user mujnickCesty a nick se jinak detekují automaticky — nick i oficiální serverová čísla se berou
z Account.json, který si LabForGg ukládá vedle LabFinds.json. Čísla z webu tedy nikam
opisovat nemusíš.
SOUCTY GeoGet server rozdil
celkem (dtfound>0) 5335 5299 +36 <<< NESOUHLASI
z toho labky 906 873 +33 <<< NESOUHLASI
z toho nelabove 4429 4426 +3 <<< NESOUHLASI
LABKY vs server (225 serii)
sparovano se serverem : 873 / 873 {'guid': 615, 'name': 258}
[!] v GG nalez, na serveru log neni : 33
[A] legacy duplikat (bez guid i LABid) : 31 -> SMAZAT
[B] ostatni : 2 -> proverit smart-link
NELABOVE
[!] [C] nalez v DB, ale zadny muj log : 3
VERDIKT: 36 polozek k reseni, detaily nize.
Skript otevírá SQLite read-only a nic nezapisuje. I tak doporučuju pracovat na kopii — GeoGet umí mít soubor zamčený a živá databáze se mění pod rukama. Nápravu je pak lepší provést v GeoGetu než přímo v SQLite, aby se aktualizovaly i indexy a statistika.
Skript nečte AccesToken.json (přístupový token ke geocaching.com API) a čtení Account.json
omezuje na nick a dvě čísla.
Když budeš hlásit chybu nebo posílat ukázkový výstup, projdi si ho: výstup obsahuje seznam
tvých nálezů a .ggt list taky. A hlavně — nikdy nikam nepřikládej svoji cachedb.db3, jsou
v ní domácí souřadnice, PM listingy a logy tisíců cizích lidí.
MIT — viz LICENSE.