Detail reportu: Katana

Týden 22/2026 (od 31.05.) – Výsledky AI analýzy a hodnocení odevzdaného kódu.

📁 Archiv-2026
Zpět

Katana

Období: Týden 22/2026 (od 31.05.) Skupina: tria URL: https://github.com/maximjavorsky-code/Katana.git

1. Splnění základních podmínek

Podmínka Status
Alespoň 3 commity v daném týdnu ✅ SPLNĚNO
Rozestup alespoň 12h mezi 3 commity ❌ NESPLNĚNO
Projektová dokumentace (README, projekt.md) ✅ SPLNĚNO

2. Přehled commitů

3. Výsledky AI analýzy kódu

Metrika Hodnota
Celkové body (AI) 14 / 20 b. (70%)
Náročnost projektu (Index) 4
Počet commitů 4
Změněné soubory 1
Počet přid./odeb. řádků kódu 76

Komentář a zpětná vazba od AI

Dobrý den, jako váš pedagogický asistent jsem prošel váš repozitář a odevzdanou práci za uplynulý týden. Níže uvádím podrobné hodnocení podle stanovené metodiky.

1. Smysluplnost popisů u commitů [1 bod]

Popisy commitů jako "Opravena chyba v kódu" nebo "Přidána nebo upravena funkcionalita" jsou sice gramaticky správně a technicky popisují typ změny, ale zcela postrádají konkrétnost. Z historie je navíc patrné, že všechny čtyři commity proběhly v jednu sekundu (07:32:xx), což značí automatizaci (pravděpodobně vaším novým skriptem). Tím jste sice splnil kvantitu, ale obešel jste smysl verzování. Navíc jste porušil pravidlo 12hodinového rozestupu mezi commity, které máte paradoxně sám uvedené v kontrolním seznamu ve skriptu.

2. Smysluplnost komentářů v kódu [5 bodů]

V novém souboru scripts/school_git_agent.py používáte komentáře k rozdělení logických bloků (např. # 1. zjisti změny, # 2. auto-staging). To je pro přehlednost výborné. Chválím také vysvětlení u filtru špatných commitů. Bod ubírám za to, že v jiných částech kódu (např. v logice analýzy diffu) by se hodil detailnější popis toho, proč volíte zrovna tato klíčová slova.

3. Kvalita a srozumitelnost dokumentace a struktura repozitáře [2 body]

Struktura: Chválím vzorné dodržení adresářové struktury. Všechny projekty (Uno, Tetris, Šachy atd.) mají své vlastní složky a v kořenovém adresáři se nachází pouze README.md a složka se skripty. To je přesně podle pravidel. Dokumentace: Dokumentační soubory _projekt.md jsou velmi detailní, obsahují cíle, funkcionalitu i technickou část. Je vidět, že máte jasno v tom, co každý projekt obnáší.

4. Logika řešení a přemýšlení studenta v Pythonu [6 bodů]

Tento týden jste se zaměřil na automatizaci workflow pomocí school_git_agent.py. Použití knihovny GitPython (Repo) a práce s subprocess je na středoškoláka pokročilá a ambiciózní. Nicméně v logice skriptu se nachází zásadní koncepční chyba: V cyklu na konci skriptu:

for msg in commits:
    repo.git.add(A=True)
    repo.index.commit(msg)

zde je chyba: Tento kód vezme aktuální stav (staged changes) a vytvoří pro něj postupně několik commitů za sebou. To znamená, že první commit uloží všechny změny a ty další už v podstatě neukládají žádnou novou změnu v kódu (jsou to prázdné commity nebo commity se stejným obsahem), pouze mají jiný název. Správným přístupem by bylo buď commitnout vše jednou zprávou, nebo selektivně přidávat části kódu (patching), což je ale algoritmu mnohem složitější. Dále seznam BAD_WORDS obsahuje "project", ale vaše navržené zprávy obsahují slovo "projektu". Skript tedy projde, ale pokud byste tam měl anglické názvy, filtr by vám zde je chyba smazal vaše vlastní vygenerované zprávy.


Celkem získáno bodů: [14 / 20]

Slovní hodnocení: Váš pokus o vytvoření "automatického agenta" pro školní commity je kreativní a technicky zajímavý, ale v praxi vede k vytváření nekvalitní historie repozitáře (všechny commity v jeden čas a s identickým obsahem). Oceňuji perfektní pořádek ve složkách a obsáhlou dokumentaci. Příště se zaměřte na to, aby vaše automatizace skutečně pomáhala kvalitě kódu, nejen "plnění limitů".

DIFFICULTY_INDEX: [4]

Kontrolní otázka k obhajobě

V závěrečném cyklu for msg in commits: provádíš commit pro každou nalezenou zprávu v seznamu – pokud by tvá analýza vygenerovala více různých zpráv najednou (např. pro novou třídu i opravu chyby), co se stane při druhém průchodu tímto cyklem a jaký to bude mít dopad na historii v repozitáři?