Návod
Jak nahrát výsledky hodnocení
Výsledek je jeden JSON dokument s hodnocením všech medailonů. Nahrajete ho voláním API (ideálně to udělá rovnou váš AI agent), nebo přes formulář v prohlížeči.
1. Token = SHA-1 vašeho e-mailu
Každý požadavek se prokazuje hlavičkou Authorization: Bearer <token>. Token je
SHA-1 hash vaší firemní e-mailové adresy zapsané malými písmeny, bez mezer a bez znaku konce řádku.
Váš e-mail musí mít organizátor v seznamu účastníků.
macOS
export WSR_TOKEN=$(printf '%s' 'jan.novak@dotykacka.cz' | tr '[:upper:]' '[:lower:]' | shasum | cut -d' ' -f1)
echo $WSR_TOKEN
Linux
export WSR_TOKEN=$(printf '%s' 'jan.novak@dotykacka.cz' | tr '[:upper:]' '[:lower:]' | sha1sum | cut -d' ' -f1)
Python
python3 -c "import hashlib; print(hashlib.sha1('jan.novak@dotykacka.cz'.strip().lower().encode()).hexdigest())"
Pozor na echo bez -n: přidá konec řádku a hash pak nesedí. Proto printf '%s'.
Příkazy jsou pro bash/zsh, na Windows platí i v Git Bash a WSL.
Ověření tokenu
curl -sS https://wsr.vibeapp.doty.eu/api/v1/me -H "Authorization: Bearer $WSR_TOKEN"
PowerShell
$env:WSR_TOKEN = ([System.BitConverter]::ToString([System.Security.Cryptography.SHA1]::Create().ComputeHash([System.Text.Encoding]::UTF8.GetBytes('jan.novak@dotykacka.cz'.Trim().ToLowerInvariant()))) -replace '-','').ToLowerInvariant()
$env:WSR_TOKEN
Python
python -c "import hashlib; print(hashlib.sha1('jan.novak@dotykacka.cz'.strip().lower().encode()).hexdigest())"
Příkazy jsou pro PowerShell. Volejte curl.exe, samotné curl je ve Windows PowerShellu alias
pro Invoke-WebRequest. V Git Bash nebo WSL použijte záložku macOS / Linux.
Ověření tokenu
curl.exe -sS https://wsr.vibeapp.doty.eu/api/v1/me -H "Authorization: Bearer $env:WSR_TOKEN"
Vrátí vaše jméno a stav odevzdání. Odpověď 401 znamená, že token nesedí nebo e-mail není v seznamu.
2. Formát výsledků
Jeden JSON objekt s polem ratings – jedna položka na každý ohodnocený medailon.
Původní medailon a jeho vylepšenou verzi (-new) hodnoťte jako dvě samostatné položky.
{
"model": "Claude Opus 5.5",
"ratings": [
{
"medallion": "Jan Novák",
"variant": "original",
"scores": {
"creativity": 8,
"technical": 7,
"bug_free": 9
},
"comment": "Animovaná vizitka s mini hrou, na mobilu přetéká text."
},
{
"medallion": "Jan Novák",
"variant": "new",
"scores": {
"creativity": 9,
"technical": 8,
"bug_free": 9.5
},
"comment": "Opravené přetékání, přidaný tmavý režim."
}
]
}
| Pole | Povinné | Popis |
|---|---|---|
model | ne | Jaký AI model / nástroj hodnotil (např. Claude Opus 5.5, GPT-5). Zobrazí se ve statistikách. |
ratings[] | ano | Seznam hodnocení, max. 300 položek. |
medallion | ano | Jméno autora = název jeho složky na Google Drive, např. Jan Novák. Na diakritice, velikosti písmen ani pořadí jména a příjmení nezáleží. |
variant | ne | original = Původní medailon, new = Vylepšená verze (-new). Výchozí je original. |
scores.creativity | ano | Nápaditost – originalita nápadu a jeho zpracování. Číslo 1–10, desetinná místa povolena. |
scores.technical | ano | Technické řešení – úroveň technického řešení, kvalita kódu, použité technologie. Číslo 1–10, desetinná místa povolena. |
scores.bug_free | ano | Bezchybnost – množství chyb obráceně: 10 = žádné chyby, 1 = samé chyby. Číslo 1–10, desetinná místa povolena. |
comment | ne | Krátké zdůvodnění, max. 1000 znaků. |
Svůj vlastní medailon hodnotit můžete, do výsledků se ale nezapočítá.
Strojově čitelný popis formátu: /api/v1/format.
3. Nahrání
Nejdřív si formát ověřte (?dry_run=1 nic neuloží), pak nahrajte naostro:
curl -sS -X POST "https://wsr.vibeapp.doty.eu/api/v1/results?dry_run=1" \
-H "Authorization: Bearer $WSR_TOKEN" \
-H "Content-Type: application/json" \
--data-binary @results.json
curl -sS -X POST "https://wsr.vibeapp.doty.eu/api/v1/results" \
-H "Authorization: Bearer $WSR_TOKEN" \
-H "Content-Type: application/json" \
--data-binary @results.json
curl.exe -sS -X POST "https://wsr.vibeapp.doty.eu/api/v1/results?dry_run=1" `
-H "Authorization: Bearer $env:WSR_TOKEN" `
-H "Content-Type: application/json" `
--data-binary "@results.json"
curl.exe -sS -X POST "https://wsr.vibeapp.doty.eu/api/v1/results" `
-H "Authorization: Bearer $env:WSR_TOKEN" `
-H "Content-Type: application/json" `
--data-binary "@results.json"
Nahrát můžete kolikrát chcete – platí poslední nahrání, předchozí se celé nahradí.
První nahrání vrací 201, další 200.
Prompt pro AI agenta
Stáhněte medailony do složky rozcvicka/, nastavte WSR_TOKEN (viz krok 1) a agentovi
(Claude Code, Codex, Cursor…) dejte tento prompt. Klidně ho upravte – hodnoticí kritéria jsou na vás.
The ./rozcvicka folder contains the medallions of the workshop participants. Each subfolder is named after its author and contains their medallion and an improved version made by a colleague (files with the -new suffix, e.g. index-new.html).
Rate each medallion separately: the original version as variant "original" and the -new version as variant "new". Open the medallions and try them out, do not judge the source code alone. Score each category with a number from 1 to 10 (higher = better):
- creativity: Creativity – originality of the idea and its execution
- technical: Technical execution – level of the technical solution, code quality, technologies used
- bug_free: Bug-free – number of bugs reversed: 10 = no bugs, 1 = full of bugs
Add a short justification to each rating in "comment" (in Czech, max. 1000 characters).
Save the result to results.json in exactly this format ("medallion" = the exact subfolder name, "model" = the model that did the rating):
{
"model": "Claude Opus 5.5",
"ratings": [
{
"medallion": "Jan Novák",
"variant": "original",
"scores": {
"creativity": 8,
"technical": 7,
"bug_free": 9
},
"comment": "Animovaná vizitka s mini hrou, na mobilu přetéká text."
},
{
"medallion": "Jan Novák",
"variant": "new",
"scores": {
"creativity": 9,
"technical": 8,
"bug_free": 9.5
},
"comment": "Opravené přetékání, přidaný tmavý režim."
}
]
}
Then validate and upload the file (the token is in the WSR_TOKEN environment variable):
curl -sS -X POST "https://wsr.vibeapp.doty.eu/api/v1/results?dry_run=1" -H "Authorization: Bearer $WSR_TOKEN" -H "Content-Type: application/json" --data-binary @results.json
curl -sS -X POST "https://wsr.vibeapp.doty.eu/api/v1/results" -H "Authorization: Bearer $WSR_TOKEN" -H "Content-Type: application/json" --data-binary @results.json
If the server reports format errors, fix them and upload again.
The ./rozcvicka folder contains the medallions of the workshop participants. Each subfolder is named after its author and contains their medallion and an improved version made by a colleague (files with the -new suffix, e.g. index-new.html).
Rate each medallion separately: the original version as variant "original" and the -new version as variant "new". Open the medallions and try them out, do not judge the source code alone. Score each category with a number from 1 to 10 (higher = better):
- creativity: Creativity – originality of the idea and its execution
- technical: Technical execution – level of the technical solution, code quality, technologies used
- bug_free: Bug-free – number of bugs reversed: 10 = no bugs, 1 = full of bugs
Add a short justification to each rating in "comment" (in Czech, max. 1000 characters).
Save the result to results.json in exactly this format ("medallion" = the exact subfolder name, "model" = the model that did the rating):
{
"model": "Claude Opus 5.5",
"ratings": [
{
"medallion": "Jan Novák",
"variant": "original",
"scores": {
"creativity": 8,
"technical": 7,
"bug_free": 9
},
"comment": "Animovaná vizitka s mini hrou, na mobilu přetéká text."
},
{
"medallion": "Jan Novák",
"variant": "new",
"scores": {
"creativity": 9,
"technical": 8,
"bug_free": 9.5
},
"comment": "Opravené přetékání, přidaný tmavý režim."
}
]
}
Then validate and upload the file in PowerShell (the token is in the WSR_TOKEN environment variable; call curl.exe, plain curl is an alias of Invoke-WebRequest):
curl.exe -sS -X POST "https://wsr.vibeapp.doty.eu/api/v1/results?dry_run=1" -H "Authorization: Bearer $env:WSR_TOKEN" -H "Content-Type: application/json" --data-binary "@results.json"
curl.exe -sS -X POST "https://wsr.vibeapp.doty.eu/api/v1/results" -H "Authorization: Bearer $env:WSR_TOKEN" -H "Content-Type: application/json" --data-binary "@results.json"
If your shell is bash (e.g. Git Bash) rather than PowerShell, run the same commands with curl, "Bearer $WSR_TOKEN" and @results.json instead.
If the server reports format errors, fix them and upload again.
Odpovědi a chyby
| Kód | Význam |
|---|---|
200 / 201 | Uloženo (201 = první nahrání, 200 = aktualizace). S dry_run=1 jen „formát je v pořádku“. |
400 | Tělo požadavku není platný JSON. |
401 | Chybí hlavička Authorization, token nesedí, nebo váš e-mail není v seznamu účastníků. |
413 | Soubor je větší než 256 kB. |
422 | JSON neodpovídá formátu – pole errors přesně říká, co opravit (např. ratings[3].scores.technical: chybí). |
429 | Příliš mnoho pokusů, chvíli počkejte. |