Legendární český správce souborů Salamander, dříve známý jako Servant Salamander a Altap Salamander, se v roce 2023 stal otevřeným softwarem a dostal nový název Open Salamander. Díky dostupnosti zdrojových kódů pod licencí GNU GPL v2 se na něj vrhla komunita, nedávno například vznikl fork Samandarin s moderními funkcemi. Teď přichází další samostatná vývojová větev, která z Open Salamanderu vychází. Software se jmenuje Tandem Commander a byl vytvořen díky umělé inteligenci, respektive velkým jazykovým modelům (LLM) a agentům.
Tandem Commander stvořil Pavel Stupka jako projekt ve volném čase. Prozatím jde o ranou verzi dostupnou pro Windows s tím, že na GitHubu jsou k dispozici zdrojové kódy pod licencí GNU GPL v2. Projekt vychází z Open Salamanderu 5.0, tedy open source verze původního softwaru.
Tandem Commander je průběžně vylepšován. Má záložky, prohlížeč kódu, markdown, Unicode a dlouhé cesty, náhledy bez čekání, shell podle vaší volby, dva panely a další užitečné funkce určené hlavně pro ty, kdo se soubory pracují pomocí klávesnice. Nástroj je příjemně rychlý.
Pavel Stupka se pro myšlenku vlastní úpravy open source verze Salamandera nadchnul hned při uvolnění zdrojových kódů. “C++ mám velmi rád, tak jsem se na to dost těšil. Nicméně velmi brzy jsem narazil na realitu, kterou není ani tak velmi stará kódová základna (ostatně celý program je napsán s vlastním vykreslováním, což je i důvod, proč je tak rychlý), ale především čas. Trvalo týdny, než jsem se začal alespoň trochu v kódu orientovat, ale upravovat jádro například pro plnou podporu Unicode bylo v podstatě nemožné. Pro jednoho člověka s plným úvazkem jinde byl to byl projekt na roky. To se změnilo během posledních měsíců s nástupem agentních, respektive harness nástrojů,” popsal Stupka pro Lupu.
Takže zde máme další ukázku, nebo case study, chcete-li, jak nástup prvků AI může pomoci s vývojem, urychlit práci a jak se tato oblast zásadně mění. Zároveň jde o příklad, jak AI umožňuje pracovat s rozsáhlým historickým kódem.
Není to klasický vibe coding
Stupka metodu toho, jak AI použil pro tvorbu Tandem Commandera, odlišuje od tradičního pojetí vibe codingu. Na asistovaný vývoj pomocí AI nejde způsobem, že napíše prompty “udělej mi X” a použije vrácený výsledek. To podle něj stačí na malý skript, ale pro legacy aplikaci napsanou v C++, která pracuje s cizími soubory, je to cesta k velkému zmatku.
“Já tomu říkám Full Agentic Spec-Driven Development: jasně definovaný proces nejen pro kód, ale pro celý projekt. Základní princip je, že paralelně vedle kódu vznikají artefakty, které jasně popisují všechna architektonická rozhodnutí včetně plánu, jak bude daná funkce implementována, co ovlivní, jaká jsou rizika a jak je nutné postavit testy. Díky tomu je pak možné stavět funkční řešení i s relativně velkou kódovou základnou, protože agenti se mají příště od čeho odrazit,” přiblížil Stupka.
Tandem Commander je postaven primárně pomocí nástroje Claude Code využívajícího model Fable (aktuálně 5.1). V prvních fázích si autor psal vlastní agenty pro vývoj, nakonec přes několik Spec Driven frameworků skončil u GitHub Spec Kit. Každá funkce prochází pěti fázemi a mezi nimi je vždy rozhodnutí člověka. To Stupka přibližuje následovně:
- Specifikace (specify). Popíšu, co má funkce dělat z pohledu uživatele – ne jak. Třeba u záložek v panelech: kolik jich může být, co se stane po zavření okna, jak se chovají při přepnutí panelů. Agent z toho napíše formální specifikaci s uživatelskými scénáři a akceptačními kritérii.
- Upřesnění (clarify). Agent specifikaci projde a hledá nejasnosti a díry – položí mi strukturované otázky typu “co se má stát, když adresář v záložce mezitím někdo smaže?”. Odpovědi se zapíšou zpět do specifikace. Tato fáze je podle mě nejcennější, protože odhalí rozhodnutí, která by jinak agent potichu udělal sám.
- Plán (plan). Teprve teď se řeší “jak”. Agent prostuduje existující kód, navrhne architekturu, sepíše výzkumné poznámky a rozhraní (kontrakty). Plán kontroluji a případně vracím a reviduji. Důležité je, že zároveň vznikají návrhy testů.
- Úkoly (tasks). Plán se rozpadne na desítky malých, na sebe navazujících úkolů, každý s jasným rozsahem a ověřením. Některé je pak možné spouštět paralelně – ale tokeny a limity pak mizí jako blázen.
- Implementance (implement). Agent úkoly postupně provede, průběžně kompiluje a testuje. Výsledek pak prochází revizí – a tu nedělá jen jeden model. Implementaci dnes dělá Claude Code s Fable 5.1, revize například provádí GPT-5.6 Sol (Codex) a další modely. Různé modely mají různá slepá místa, takže křížová revize chytí věci, které by jeden přehlédl. Tyto úpravy si řeším většinou lokálně, v repozitáři jsou nicméně všechny artefakty generované Spec Kitem – v podstatě plná dokumentace architektury a postupu vývoje v markdown souborech.
Produkťák a softwarový architekt
“Každá funkce má v repozitáři vlastní složku ve specs/ se specifikací, plánem, rozpadem na úkoly, výzkumnými poznámkami a kontrakty. Repozitář tak zaznamenává nejen co se v kódu změnilo, ale proč. Kdokoli (například další agenti) si může otevřít specifikaci třeba Unicode podpory a porovnat, co bylo zadáno a co vzniklo,” uvedl dále Stupka.
“Stejným procesem vzniká i infrastruktura kolem: podepisování všech binárek certifikátem, instalátor, publikace do Microsoft WinGet (vydání na GitHubu automaticky vygeneruje manifest, ověří podpis instalátoru a otevře žádost u Microsoftu – zatím je v procesu schvalování),” doplnil autor Tandem Commandera.
Stupka označuje svojí roli jako produktovou a architektonickou. Rozhoduje, co co se bude dělat a v jakém pořadí, odpovídá na otázky ve fázi upřesnění, schvaluje nebo vrací plány, testuje výsledky a rozhoduje, co se vydá. “Zkušenost z osmnácti let vývoje se tu projevuje jinak než dřív – ne tím, že píšu C++, ale tím, že poznám špatný plán dřív, než se podle něj napíše tisíc řádků,” vysvětlil Stupka.
Podle Stupky obecně platí, že proces nenahrazuje úsudek: “Tandem Commander není dokonalý a chyby v něm jsou. Rozdíl je v tom, že každá chyba se dá dohledat až k rozhodnutí, ze kterého vznikla.”
“Většina firem nemá problém napsat nový software, ale udržet a modernizovat ten starý. Tandem Commander je pro mě praktický test, jestli se dá agentně a zodpovědně pracovat s rozsáhlým legacy kódem, který psali jiní lidé před více než dvaceti lety. Zatím to vypadá, že ano – pokud je proces disciplinovaný a člověk zůstává u rozhodnutí,” shrnul autor své dosavadní zkušenosti.
Stupka si myslí, že stojíme na sklonku nové éry softwarového vývoje, takzvaného AI Agentic Engineeringu. “Dříve jsme psali kód a překládali jej kompilátorem. Dnes děláme v podstatě to samé, pouze novým programovacím jazykem je náš přirozený jazyk a překladačem jsou harness nástroje a jazykové modely.”