<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Maguyva Blog</title><description>Technické analýzy do hloubky o MCP code intelligence, architektuře AI agentů a poznatky ze stavby vícejazykové platformy pro vyhledávání v kódu.</description><link>https://maguyva.ai/cs/blog</link><language>cs</language><atom:link href="https://maguyva.ai/cs/rss.xml" rel="self" type="application/rss+xml"/><item><title>Kontext, který cestuje s vámi</title><link>https://maguyva.ai/cs/blog/context-that-travels</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/context-that-travels</guid><description>Indexer Cursor je uvnitř Cursor vynikající. Maguyva je hostovaná MCP mapa, kterou stejný agent může dotazovat i z jiných editorů, CLI a CI.</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Indexer Cursor je uvnitř Cursor vynikající. Automatické doplňování, editace v řádku, chat a agent v tom okně už stojí na indexu projektu, který Cursor udržuje pro otevřený pracovní prostor. Pokud je Cursor jediné prostředí, kde píšete kód, a tento index už nachází správné soubory, zůstaňte tam. To je poctivý případ „zůstaňte tam, kde jste“ a právem otevírá tento text.&lt;/p&gt;
&lt;p&gt;Tento článek je o druhé polovině běžného týdne. Stejný repozitář se také otevírá v Claude Code, ptá se ho Codex CLI, kontroluje se na druhém stroji nebo se ho dotazuje agent běžící v CI. Otázka nezní „který indexer je lepší“. Otázka zní, zda je mapa, které agent důvěřuje v jednom okně, stejná jako ta, které důvěřuje v následujícím.&lt;/p&gt;
&lt;p&gt;Maguyva je ta mapa, která cestuje s vámi. Je to vzdálená vrstva kontextu kódové báze přes MCP. Agent ji dotazuje stejným způsobem jako jakýkoli jiný nástroj MCP. Výsledky se vracejí jako seřazené cesty s čísly řádků. Cursor zůstává editorem. Pohybuje se kontext.&lt;/p&gt;
&lt;h2 id=&quot;k-čemu-slouží-indexer-cursor&quot;&gt;K čemu slouží indexer Cursor&lt;/h2&gt;
&lt;p&gt;Vestavěné indexování Cursor existuje proto, aby chat, agent a vyhledávání uvnitř editoru mohly načítat relevantní kód, místo aby se spoléhaly jen na to, co se vejde do syrového kontextového okna modelu. To je správný návrh pro IDE. Tento index je nativní součástí Cursor. Není to MCP server a není dostupný z žádného jiného klienta.&lt;/p&gt;
&lt;p&gt;Takto to funguje, podle veřejné dokumentace Cursor a vlastního vyjádření Cursor v době psaní tohoto textu: hlavní cesta vyhledávání už není cloudový index embeddingů. Tým Cursor na svém komunitním fóru uvedl, že vyhrazené sémantické vyhledávání založené na embeddingech se postupně utlumuje ve prospěch vyhledávání založeného na grep, protože současné modely už samy dokážou dostatečně dobře prozkoumávat živý strom. Na jeho místo nastupuje Instant Grep, lokální vyhledávací index postavený na n-gramech, invertovaných seznamech a Bloomových filtrech, uchovávaný v paměťově mapované vyhledávací tabulce, takže dotazy se řeší přímo na stroji vývojáře, a ne na serveru.&lt;/p&gt;
&lt;p&gt;Samotný index žije uvnitř vlastního adresáře repozitáře &lt;code&gt;.git/cursor/&lt;/code&gt;, ukotveného ke konkrétnímu git commitu; změny od tohoto commitu se na něj vrství, místo aby spouštěly nové skenování, a index se přestavuje jen tehdy, když se lokální stav výrazně odchýlí od toho, na čem byl postaven. Protože leží uvnitř &lt;code&gt;.git&lt;/code&gt;, nikdy se nesleduje verzovacím systémem a nikdy se nepushuje — smažete složku a index zmizí. &lt;code&gt;.gitignore&lt;/code&gt; je dodržováno samotnou konstrukcí, protože do úvahy připadá jen obsah sledovaný gitem, a &lt;code&gt;.cursorignore&lt;/code&gt; se vynucuje na cestě čtení. Na této cestě už není žádný krok embeddingu na straně serveru ani vzdálená vektorová databáze. Dřívější dokumentace popisovala návrh podporovaný cloudem — šifrování bloků, synchronizaci pomocí Merkle stromu, opětovné využití indexu mezi členy týmu — a tým Cursor od té doby uvedl, že tento návrh se utlumuje, takže tento text ho už nepopisuje jako aktuální.&lt;/p&gt;
&lt;p&gt;Výraznou předností uvnitř editoru je subagent Explore od Cursor. Dokáže spustit několik paralelních vyhledávání ve vlastním kontextovém okně na rychlejším modelu a vrátit jen relevantní nálezy, takže se hlavní konverzace nenafukuje výsledky vyhledávání. To je skutečná síla uvnitř editoru. Zachovejte ji.&lt;/p&gt;
&lt;p&gt;Multi-root pracovní prostory jsou podporovány: kontext každé otevřené složky je dostupný agentovi. Některé funkce závislé na gitu, jako worktree, jsou v multi-root konfiguracích vypnuté a Cloud Agents multi-root pracovní prostory vůbec nepodporují.&lt;/p&gt;
&lt;p&gt;Nic z toho není důvod opustit Cursor. Je to přesný popis mapy, která je vynikající tam, kde žije.&lt;/p&gt;
&lt;h2 id=&quot;co-skutečně-znamená-cestovat-s-vámi&quot;&gt;Co skutečně znamená „cestovat s vámi“&lt;/h2&gt;
&lt;p&gt;Mapa cestuje s vámi, když stejné otázky vracejí stejný typ odpovědi, s citacemi, které můžete otevřít, z více než jednoho klienta.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;V Cursor: „Kde je definováno &lt;code&gt;parseConfig&lt;/code&gt; a kdo to volá?“&lt;/li&gt;
&lt;li&gt;V Claude Code, na stejném repozitáři: stejná otázka.&lt;/li&gt;
&lt;li&gt;V Codex CLI, na kontrolním stroji, který nikdy neotevřel okno Cursor: stejná otázka.&lt;/li&gt;
&lt;li&gt;V CI agentovi, který mluví MCP: stejná otázka, vůči stejnému hostovanému snímku.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pokud si každé prostředí buduje vlastní privátní index, nemáte jednu mapu. Máte několik keší, které se rozcházejí. Index editoru může být aktuální pro strom na disku. Relace CLI může zaostávat o den. Úloha CI se může dívat na jiný checkout. A agent bude přesto znít sebejistě.&lt;/p&gt;
&lt;p&gt;Indexer Cursor to řešit nemá. Protože žije uvnitř editoru, kontext, který buduje, je pro ten editor. Čtenář, který potřebuje ještě CLI, pipeline CI nebo jiný editor, potřebuje samostatný nástroj pro tato prostředí. To je fakt rozsahu, ne vada. Maguyva je ten samostatný nástroj.&lt;/p&gt;
&lt;p&gt;Zveřejněný počet jazyků pro indexer Cursor není uveden v podkladech, které tento text smí použít. Maguyva zveřejňuje podporu více než 279 jazyků a textových technologií. Ceny Cursor se tu také nepřebírají; viz jejich stránku s cenami. Maguyva účtuje za pracovní prostor, ne za místo, se zveřejněnými plány $0, $19, $49 a $149 podle rozsahu indexace a velikosti pracovního prostoru.&lt;/p&gt;
&lt;h2 id=&quot;jedna-hostovaná-mapa-každý-mcp-klient&quot;&gt;Jedna hostovaná mapa, každý MCP klient&lt;/h2&gt;
&lt;p&gt;Maguyva je vzdálený MCP server. Připojíte GitHub, vyberete repozitáře a cloudový pipeline vybuduje symboly, hrany grafu a seřazenou mapu. Přidáte API klíč do MCP konfigurace klienta, který už používáte. Maguyva má návody na nastavení pro 24 zdokumentovaných MCP klientů — včetně Cursor — a umí se připojit i k dalším MCP kompatibilním klientům, kteří podporují standardní konfiguraci.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://maguyva.ai/cs/for-cursor&quot;&gt;Stránka nastavení Cursor&lt;/a&gt; je cesta specifická pro tento editor, pokud tam pracujete. Stejný server odpovídá Claude Code, VS Code, Windsurf, Codex CLI a dalším. Nemusíte měnit editor. Každému agentovi dáváte stejný povrch nástrojů: 11 zákaznických MCP nástrojů napříč vyhledáváním, symboly, analýzou závislostí, získáváním souborů, kontextem repozitáře a deterministickými servisními pracovními postupy. Sémantické, strukturální, grafové a textové vyhledávání se slévají do seřazených výsledků.&lt;/p&gt;
&lt;p&gt;V tom spočívá výhoda přenositelnosti. Citace, které jste dnes ráno ověřili v Cursor, mají stejnou podobu jako citace, které dnes večer vrátí Codex CLI. Cesta k souboru a číslo řádku. Otevřete je. Pokud jsou špatné, uvidíte to. Pokud jsou správné, další úprava má kam přistát. Schválené tvrzení zní méně halucinovaných úprav, ne slib, že každá úprava je správná.&lt;/p&gt;
&lt;p&gt;Aktuálnost je zveřejněná. Snímky mají časové razítko, takže agent ví, kterou verzi stromu čte. Frekvence přestavby je denně u bezplatného plánu a hodinově u placených. Poctivým omezením je nesynchronizovaná lokální práce: úprava existující jen v pracovním stromu ještě není v hostované mapě. Toto omezení je stejné bez ohledu na to, ze kterého klienta se dotazujete, a přesně o to jde. Rozdíl mezi klienty už není druhé, skryté omezení.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://maguyva.ai/cs/docs&quot;&gt;Dokumentace&lt;/a&gt; uvádí aktivační smyčku, která platí pro každého klienta: naindexujte repozitář, který už znáte, připojte klienta, položte jednu otázku, kterou umíte ověřit. Udělejte to jednou v Cursor. Udělejte to znovu z CLI, které skutečně používáte ve dnech kontroly. Pokud obě odpovědi citují stejný handler, mapa skutečně cestovala s vámi.&lt;/p&gt;
&lt;h2 id=&quot;jak-vedle-sebe-existují-dvě-mapy&quot;&gt;Jak vedle sebe existují dvě mapy&lt;/h2&gt;
&lt;p&gt;Používejte obě. Nejsou to alternativy ve smyslu srovnávací stránky.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Nechte indexer Cursor zapnutý pro projekt na disku. Ať ho používá Explore, Instant Grep a agent uvnitř editoru. Tato smyčka je nativní a rychlá.&lt;/li&gt;
&lt;li&gt;Přidejte Maguyva jako MCP server do Cursor, aby stejná relace mohla dotazovat i hostovanou mapu pracovního prostoru. Cursor je zdokumentovaný klient Maguyva. Nevybíráte jeden index a nemažete druhý.&lt;/li&gt;
&lt;li&gt;Přidejte stejný server Maguyva do Claude Code, Codex CLI nebo jakéhokoli jiného MCP klienta, který se dotýká repozitáře. Jedna podoba API klíče. Jeden pracovní prostor.&lt;/li&gt;
&lt;li&gt;Pokud je CI agent kompatibilní s MCP, nasměrujte ho na stejný server. Přečte stejný časově orazítkovaný snímek, jaký četl notebook.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Index editoru zůstává nejlepším nástrojem pro otázku „co je právě teď na disku v tomto okně“. Hostovaná mapa je nejlepší nástroj pro otázku „jak tento pracovní prostor vypadá pro každého agenta, který se ho dnes dotkne“. Tyto věty si nekonkurují.&lt;/p&gt;
&lt;p&gt;Kvóty pracovního prostoru jsou zveřejněny na &lt;a href=&quot;https://maguyva.ai/cs/pricing&quot;&gt;stránce s cenami&lt;/a&gt;: repozitáře, naindexované řádky a uživatelé, účtované za pracovní prostor. Agenti a lidé sdílejí stejný počet uživatelů. Začněte zdarma s repozitářem, který už umíte posoudit. Pracovní prostor zvětšujte až poté, co citace přežijí kontakt se stromem.&lt;/p&gt;
&lt;h2 id=&quot;co-tato-stránka-netvrdí&quot;&gt;Co tato stránka netvrdí&lt;/h2&gt;
&lt;p&gt;Netvrdí, že indexer Cursor je slabý, neúplný nebo důvod ke změně editoru. První věta tohoto textu tvrdí opak.&lt;/p&gt;
&lt;p&gt;Netvrdí, že Maguyva nahrazuje Instant Grep nebo subagenta Explore. To jsou funkce Cursor. Zůstávají v Cursor.&lt;/p&gt;
&lt;p&gt;Nevymýšlí si počet jazyků, číslo latence ani úsporu tokenů pro žádný z produktů. Neznámá čísla zůstávají nezveřejněná.&lt;/p&gt;
&lt;p&gt;Nepředstírá, že nenapushovaná lokální práce je v hostované mapě. Časově orazítkované snímky toto omezení zviditelňují. Neodstraňují ho.&lt;/p&gt;
&lt;p&gt;Test je obyčejný. Naindexujte repozitář, který už znáte. Položte jednu otázku, kterou umíte ověřit, nejprve v Cursor, pak ve druhém MCP klientovi. Kontext, který cestuje s vámi, je stejná citace na obou místech.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// same map, wherever you opened it.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>Ecosystem</category><category>MCP</category><category>Portability</category></item><item><title>Nejdřív mapa, pak revize</title><link>https://maguyva.ai/cs/blog/map-first-review-second</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/map-first-review-second</guid><description>Zakotvěte kódovacího agenta v mapě repozitáře dřív, než začne psát. Pull request pak nechte zrevidovat Greptile. Doplňující se dvojice, ne náhrada.</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Na obou stranách pull requestu stojí dva odlišné úkoly. Než agent začne psát, potřebuje mapu stromu, který se chystá změnit. Poté, co agent otevře PR, by měl něco přečíst tuto změnu vůči zbytku systému a nechat komentáře, podle kterých může jednat člověk.&lt;/p&gt;
&lt;p&gt;Tyto úkoly vypadají z dálky podobně, protože oba zahrnují „porozumění kódové bázi“. Nejsou to stejný produkt. Jeden odpovídá na otázku „kam by tato změna měla přistát?“. Druhý odpovídá na otázku „co tento diff porušil, co linter kontrolující řádek po řádku přehlédne?“. Jejich zaměnění dává horší první koncept a hlučnější revizi.&lt;/p&gt;
&lt;p&gt;Tento text je průvodce společným pracovním postupem. Maguyva je mapa, kterou agent dotazuje jako první. Greptile je agent revize, který PR komentuje pak. Tato dvojice je konstrukčně doplňující: Maguyva nerevidiuje pull requesty a Greptile nenahrazuje vrstvu kontextu, kterou agent použil k jejich napsání.&lt;/p&gt;
&lt;h2 id=&quot;proč-je-toto-rozdělení-užitečné&quot;&gt;Proč je toto rozdělení užitečné&lt;/h2&gt;
&lt;p&gt;Kódovací agent, který vychází z tréninkových priorů plus pár vložených souborů, si vymyslí věrohodnou cestu a upraví ji. To je selhání „špatného souboru“ a je to problém vyhledávání. Maguyva je vzdálená vrstva kontextu kódové báze přes MCP: sémantické, strukturální (AST), grafové/závislostní a textové vyhledávání se slévá do seřazených výsledků, plus vyhledávání symbolů a získávání souborů. Podložené odpovědi se vracejí jako &lt;code&gt;path/file.ext:line&lt;/code&gt;, takže omyl můžete odmítnout dřív, než patch vůbec existuje. Tvrzení zůstává skromné: méně halucinovaných úprav. Model může i tak hádat. Prostě první krok už není hádání.&lt;/p&gt;
&lt;p&gt;Greptile je agent revize kódu s umělou inteligencí. Vlastními slovy automaticky revidiuje každý pull request s úplným porozuměním kódové bázi a staví to proti tradičním linterům, které kontrolují soubory izolovaně, ne celý systém. Nastavení spočívá v instalaci aplikace GitHub nebo GitLab a výběru repozitářů. Není tu žádný lokální index, který byste museli provozovat. Hostováno je to na Greptile Cloud (uvádějí soulad se SOC 2 Type II, se zprávou dostupnou na vyžádání), s možností vlastního hostování nabízenou podnikům.&lt;/p&gt;
&lt;p&gt;Jejich vlastní číslovaný proces je: připojit se a vybudovat graf závislostí každé funkce, třídy a závislosti; při každém pull requestu analyzovat změnu pomocí tohoto úplného grafu repozitáře a zveřejnit nálezy jako komentáře PR s navrženými opravami zhruba za tři minuty; každý komentář může předat problém kódovacímu agentovi, kterého tým už používá. Uvádějí také, že v čase čtou předchozí lidské komentáře k PR, aby se naučili standardy kódu týmu a omezili hlučné návrhy. Jejich učicí se systém podle jejich slov potřebuje 2–3 týdny na přizpůsobení.&lt;/p&gt;
&lt;p&gt;Toto je revize, ne psaní. Silnou stránkou Greptile je kontext úplného grafu repozitáře na změnu, která už v PR přistála, a pak uzavřená smyčka, která nález pošle do Claude Code, Codex, Conductor, Cursor nebo Devin. Silnou stránkou Maguyva je seřazená mapa, kterou agent dotázal dřív, než byla tato změna napsána. Používejte oba. Nežádejte po žádném z nich, aby dělal práci toho druhého.&lt;/p&gt;
&lt;p&gt;Oficiální integrace produktů Maguyva–Greptile od první strany není uvedena. Ani ji nepotřebujete. Maguyva mluví s agentem přes MCP. Greptile mluví s GitHub nebo GitLab přes svou aplikaci. Setkávají se u pull requestu. Žádný lepicí skript, žádný cron, který propojuje jeden nástroj s druhým. Tato dvojice se obejde bez bash, protože každý produkt už stojí na povrchu, který mu patří.&lt;/p&gt;
&lt;h2 id=&quot;co-tohle-není&quot;&gt;Co tohle není&lt;/h2&gt;
&lt;p&gt;Toto není demolice Greptile. Není to stránka „vyměňte si recenzenta“. Greptile odstartoval na Hacker News 5. března 2024 jako firma Y Combinator W24 a to vlákno je způsob, jakým se s produktem poprvé seznamovala spousta lidí. Pokud jste je takto našli i vy, zůstaňte u nich. Tato stránka je chybějící přední polovina té smyčky: zakotvit agenta předem, aby PR, který Greptile vidí, už mířil na správné soubory.&lt;/p&gt;
&lt;p&gt;Marketingové materiály Greptile vedou tvrzeními o rychlosti revize a odhalování chyb. Berte je jako vlastní tvrzení Greptile, ne jako nezávisle ověřená čísla. Tento text je neopakuje jako fakta.&lt;/p&gt;
&lt;p&gt;Pokrytí jazyků je stejný druh poctivosti. Greptile rámuje podporu jako pokrytí všech programovacích jazyků, ne jako vyjmenovaný seznam; přesné číslo není uvedeno. Maguyva zveřejňuje podporu více než 279 jazyků a textových technologií, s technickým rozdělením (AST podpořené parserem versus jen text) na webu, když je otázka technická. Jsou to různé produkty s různými tvrzeními. Nemíchejte je.&lt;/p&gt;
&lt;p&gt;Ceny Greptile nejsou uvedeny v podkladech, které tento text smí použít. Placené plány existují; viz jejich stránku s cenami. Maguyva účtuje za pracovní prostor, ne za místo. Plány začínají zdarma. &lt;a href=&quot;https://maguyva.ai/cs/pricing&quot;&gt;Stránka s cenami&lt;/a&gt; uvádí zveřejněné úrovně, pokud potřebujete čísla pracovního prostoru.&lt;/p&gt;
&lt;h2 id=&quot;pracovní-postup&quot;&gt;Pracovní postup&lt;/h2&gt;
&lt;p&gt;Tři pojmenované fáze. Provádějte je v tomto pořadí. Žádnou z nich při prvním vyzkoušení této dvojice nepřeskakujte.&lt;/p&gt;
&lt;h3 id=&quot;1-kontext-maguyva&quot;&gt;1. Kontext Maguyva&lt;/h3&gt;
&lt;p&gt;Naindexujte jeden repozitář, který už znáte. Připojte MCP klienta, ve kterém už píšete kód — Claude Code, Cursor, Codex CLI, VS Code, Windsurf nebo jiného MCP kompatibilního klienta. Maguyva má návody na nastavení pro 24 zdokumentovaných MCP klientů a umí se připojit i k dalším klientům, kteří podporují standardní konfiguraci MCP.&lt;/p&gt;
&lt;p&gt;Položte otázku, kterou dokážete posoudit, dřív, než kdokoli napíše řádek. „Kde se řeší vypršení relace a co to volá?“ je lepší první tah než „oprav autentizaci“. Vyžadujte citace. Otevřete výsledky &lt;code&gt;file.ext:line&lt;/code&gt;. Sledujte symbol. Potvrďte závislost, které se chystáte dotknout.&lt;/p&gt;
&lt;p&gt;Maguyva zpřístupňuje 11 zákaznických MCP nástrojů napříč vyhledáváním, symboly, analýzou závislostí, získáváním souborů, kontextem repozitáře a deterministickými servisními pracovními postupy. Čtyři režimy vyhledávání se slévají do seřazených výsledků; &lt;code&gt;find_symbol&lt;/code&gt; je samostatný nástroj, když už jméno znáte. &lt;a href=&quot;https://maguyva.ai/cs/docs&quot;&gt;Dokumentace&lt;/a&gt; popisuje nejkratší cestu: začít zdarma, naindexovat repozitář, který už znáte, připojit klienta, pak položit jednu otázku, kterou umíte ověřit.&lt;/p&gt;
&lt;p&gt;Snímky mají časové razítko, takže agent pozná, kterou verzi stromu čte. Poctivým omezením je nesynchronizovaná lokální práce. Pokud úprava existuje jen v pracovním stromu a nebyla napushovaná, hostovaná mapa ji ještě neobsahuje. Instrukční soubory (&lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;) tu mají i nadále své místo pro konvence a to, čeho se nedotýkat. Nejsou to živá mapa. Používejte je pro chování. Používejte Maguyva pro fakta.&lt;/p&gt;
&lt;p&gt;Nenechte agenta otevřít PR dřív, než citace přežijí kontakt s repozitářem. Tato brána je celý smysl této fáze.&lt;/p&gt;
&lt;h3 id=&quot;2-pr-agenta&quot;&gt;2. PR agenta&lt;/h3&gt;
&lt;p&gt;Stejný agent teď píše změnu v klientovi, za který už platíte. Maguyva není editor ani recenzent. Agent stále produkuje diff. Vy stále otevíráte pull request na GitHub nebo GitLab tak, jak to už děláte.&lt;/p&gt;
&lt;p&gt;Co by mělo být jiné, je první soubor. PR by měl pojmenovat handler, který dané chování skutečně implementuje, volajícího, který se rozbije, a test, který selže, pokud je změna špatná. Pokud byla fáze 1 přeskočena, fáze 3 utratí své komentáře na změnu, která přistála ve špatném balíčku. Greptile pořád dokáže najít systémové problémy. Neměl by se navíc muset zotavovat z halucinované cesty.&lt;/p&gt;
&lt;p&gt;Držte PR úzce zaměřený. Podložený první soubor není licence k přepsání modulu. Tato doplňující se dvojice funguje, když agent odvedl jednu práci s mapou a pak požádal recenzenta, aby udělal jinou práci na ohraničeném diffu.&lt;/p&gt;
&lt;h3 id=&quot;3-revize-greptile&quot;&gt;3. Revize Greptile&lt;/h3&gt;
&lt;p&gt;Greptile je už připojený k repozitáři přes aplikaci GitHub nebo GitLab. U nového pull requestu analyzuje změnu pomocí úplného grafu repozitáře, který vybudoval, a zveřejňuje nálezy jako komentáře s navrženými opravami. Jejich vlastní materiály udávají tento průchod na zhruba tři minuty.&lt;/p&gt;
&lt;p&gt;Čtěte komentáře tak, jak byste četli pozorného kolegu z týmu: otevřete citované místo, rozhodněte, zda je nález reálný, pak jednejte. Tam, kde Greptile nabízí „Fix with your Agent“, pošle problém — cesty k souborům, čísla řádků, navržený kód — do Claude Code, Codex, Conductor, Cursor nebo Devin. „Fix All“ pošle všechny problémy z revize najednou. Dodávají také Greptile MCP a plugin pro Claude Code pro toto předání. Maguyva na tomto pojmenovaném seznamu cílů není; tato nepřítomnost není problém. Maguyva už svou práci odvedla ve fázi 1. Kódovací agent, který PR napsal, je ten, kdo by měl dostat opravný náklad.&lt;/p&gt;
&lt;p&gt;V prvních 2–3 týdnech čekejte šum, zatímco se učicí se systém Greptile přizpůsobuje komentářům, které váš tým skutečně nechává. To je jejich uvedený harmonogram, ne vada dvojice. Lidská revize zůstává ve smyčce. Greptile je automatizovaný první průchod, ne tlačítko sloučení.&lt;/p&gt;
&lt;p&gt;Pokud komentář Greptile ukazuje na soubor, který agent ve fázi 1 nikdy nedotázal, je to užitečný signál. Buď mapa přehlédla volajícího, nebo agent vynechal citaci. Opravte koncept podle komentáře. Nevypínejte recenzenta.&lt;/p&gt;
&lt;h2 id=&quot;jak-udržet-toto-doplňování-se-poctivé&quot;&gt;Jak udržet toto doplňování se poctivé&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Maguyva vždy první. Revize PR se špatným souborem je pořád revize špatného souboru.&lt;/li&gt;
&lt;li&gt;Greptile vždy pak. Dobře citovaný koncept přesto potřebuje přečtení diffu na úrovni celého systému.&lt;/li&gt;
&lt;li&gt;Nežádejte Maguyva, aby zveřejňovala komentáře k PR. Nedělá to.&lt;/li&gt;
&lt;li&gt;Nežádejte Greptile, aby byl první vyhledávací vrstvou agenta, zatímco ještě vybírá cestu. To není práce, na kterou je postavená jejich aplikace GitHub nebo GitLab.&lt;/li&gt;
&lt;li&gt;Nevymýšlejte bash pipeline, který je „synchronizuje“. Rozhraním je PR.&lt;/li&gt;
&lt;li&gt;Ověřujte obě strany nezávisle. Naindexujte repozitář, který už znáte. Položte jednu otázku, kterou umíte ověřit. Pak otevřete malý PR a přečtěte si, co Greptile skutečně komentuje.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Když tomu dáte jméno, smyčka je obyčejná. Nejdřív mapa. Pak PR agenta. Pak revize. Každý produkt zůstává na té straně pull requestu, ve které je dobrý.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// map first. review second. in that order.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>Ecosystem</category><category>Workflow</category><category>Code Review</category></item><item><title>Jak dát AI agentovi kontext velkého repozitáře bez lokálního indexeru</title><link>https://maguyva.ai/cs/blog/large-repo-context-without-a-local-indexer</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/large-repo-context-without-a-local-indexer</guid><description>Jak dát kódovacímu agentovi dotazovatelnou mapu velkého repozitáře z cloudu, aniž byste na notebooku spouštěli lokální indexer.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Velký repozitář se nevejde do kontextového okna, a pokud jste někdy namířili indexer z notebooku na skutečný monorepo, víte, že se pohodlně nevejde ani tam — RAM vyletí nahoru, první indexace trvá hodinu a váš agent i tak začíná další relaci hádáním, které soubory jsou důležité.&lt;/p&gt;
&lt;p&gt;Běžnou odpovědí je spustit indexer vedle editoru, a pro repozitář, který se pohodlně vejde na jeden stroj, je to dobrá odpověď. Pokud se váš monorepo už rychle indexuje v Cursor a to je jediné místo, kde mapu potřebujete, tento text nemá co dodat — přeskočte ho.&lt;/p&gt;
&lt;p&gt;Tento text je o jiném případu — kdy agent potřebuje dotazovatelnou mapu velkého repozitáře a vy k tomu nechcete spouštět lokální indexer.&lt;/p&gt;
&lt;h2 id=&quot;kdy-je-lokální-indexer-špatný-nástroj&quot;&gt;Kdy je lokální indexer špatný nástroj&lt;/h2&gt;
&lt;p&gt;Lokální index předpokládá, že kód žije na stroji, který se ho dotazuje, a v měřítku skutečného monorepo se tento předpoklad napíná i uvnitř jednoho editoru. Repozitář je prostě větší, než chcete udržovat „zahřátý“ na notebooku: pracujete v jednom balíčku, zatímco rozsah dopadu leží o tři adresáře dál, a první studená indexace stromu o dvou milionech řádků není něco, co chcete zažít dvakrát — ani na svém stroji, ani na CI runneru, který tento strom nikdy dřív neklonoval. Nebo by měl kolega z týmu umět dotazovat stejnou mapu jako vy, aniž by čekal, až se jeho vlastní stroj prokouše stejným indexem.&lt;/p&gt;
&lt;p&gt;Nic z toho není důvod zahodit dobrý indexer editoru. Je to důvod mít navíc hostovanou mapu, kterou kterýkoli z vašich agentů může dotazovat přes MCP.&lt;/p&gt;
&lt;p&gt;A problém rozsahu jde hlouběji než „příliš mnoho souborů na vložení“. Na velkém stromu zajímavá otázka téměř nikdy nezní „ukaž mi tenhle soubor“ — zní který soubor, který symbol, kteří volající, které testy. Agent, který začíná výpisem &lt;code&gt;src/&lt;/code&gt; a čtením prvních tří výsledků, s klidem přehlédne handler v &lt;code&gt;apps/api&lt;/code&gt; a vygenerovaného klienta v &lt;code&gt;packages/sdk&lt;/code&gt;. Potřebujete vyhledávání postavené na celém stromu, pak seřazené, pak citované.&lt;/p&gt;
&lt;h2 id=&quot;co-skutečně-znamená-kontext-velkého-repozitáře&quot;&gt;Co skutečně znamená „kontext velkého repozitáře“&lt;/h2&gt;
&lt;p&gt;Vysypat soubory do promptu není kontext — je to menší, horší kopie stromu. Co váš agent skutečně potřebuje, je klást otázky a dostávat v odpovědi citace: kde je definován tento symbol a kdo ho volá, co závisí na modulu, který se chystám změnit, který testovací soubor pokrývá toto chování a jak strom vypadá &lt;em&gt;teď&lt;/em&gt;, ne minulé čtvrtletí.&lt;/p&gt;
&lt;p&gt;Tyto odpovědi musí pocházet z indexu postaveného na vašem repozitáři, ne z paměti modelu o cizích repozitářích, a tento index musí žít někde mimo kontextové okno agenta. Pro tento problém by měl žít i někde mimo váš notebook.&lt;/p&gt;
&lt;p&gt;Jedna další věc, kterou za vás instrukční soubory nezvládnou: &lt;code&gt;CLAUDE.md&lt;/code&gt; a &lt;code&gt;AGENTS.md&lt;/code&gt; jsou správné místo pro konvence a chování, ale nejsou to živá, seřazená, dotazovatelná mapa stromu o dvou milionech řádků. Pro chování používejte pravidla; pro fakta používejte inteligenci repozitáře.&lt;/p&gt;
&lt;h2 id=&quot;stavíme-mapu-v-cloudu-dotazujeme-se-z-libovolného-klienta&quot;&gt;Stavíme mapu v cloudu, dotazujeme se z libovolného klienta&lt;/h2&gt;
&lt;p&gt;Maguyva je vzdálená vrstva kontextu kódové báze přes MCP. Připojíte GitHub, vyberete své repozitáře a můžete odejít, zatímco cloudové pipeline parsují strom, budují symboly a hrany grafu a udržují seřazenou mapu — nikdy bez lokálního indexeru.&lt;/p&gt;
&lt;p&gt;Když pushnete kód, změněné soubory se parsují postupně a vrstvy grafu a řazení se přestavují podle harmonogramu: denně u bezplatného plánu, hodinově u placených. Každý snímek má časové razítko, takže váš agent pozná, kterou verzi stromu čte. Poctivým omezením zde je nesynchronizovaná lokální práce — úprava existující jen ve vašem pracovním stromu, nikdy nenapushovaná, ještě není v hostované mapě.&lt;/p&gt;
&lt;p&gt;Pak připojíte klienta, kterého už používáte, přidáním API klíče do jeho MCP konfigurace. Existují návody na nastavení pro 24 zdokumentovaných MCP klientů a připojit se může i jakýkoli jiný MCP kompatibilní klient, který podporuje standardní konfiguraci. Pokud je Cursor váš domov, &lt;a href=&quot;https://maguyva.ai/cs/for-cursor&quot;&gt;stránka Cursor&lt;/a&gt; tou cestou provede; stejný server odpovídá Claude Code, VS Code, Windsurf, Codex CLI a dalším.&lt;/p&gt;
&lt;p&gt;Nemusíte měnit editor. Svému agentovi dáváte povrch nástrojů — 11 MCP nástrojů napříč vyhledáváním, symboly, analýzou závislostí, získáváním souborů a kontextem repozitáře — s pokrytím více než 279 jazyků a textových technologií, což na monorepo, který přestal být jednojazyčný před lety, znamená víc, než byste čekali.&lt;/p&gt;
&lt;p&gt;Odpovědi se vracejí podložené, jako cesty k souborům s čísly řádků. Sémantické, strukturální, grafové a textové vyhledávání se slévají do seřazených výsledků, takže otázka jako „co závisí na parseConfig“ nedá ani výpis grep, ani jediný sémantický útržek, ale hrst míst, na kterých skutečně záleží.&lt;/p&gt;
&lt;h2 id=&quot;konkrétní-návod&quot;&gt;Konkrétní návod&lt;/h2&gt;
&lt;p&gt;Nezačínejte indexací celé firmy. Tady je cesta, která funguje:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Vyberte jeden repozitář, který už dobře znáte — balíček, který dokážete posoudit ručně, má větší cenu než největší strom, který máte.&lt;/li&gt;
&lt;li&gt;Začněte zdarma: 3 repozitáře, 50 tisíc naindexovaných řádků, všech 11 nástrojů, žádná měsíční kvóta dotazů. Pokud je váš reprezentativní repozitář větší, &lt;a href=&quot;https://maguyva.ai/cs/pricing&quot;&gt;stránka s cenami&lt;/a&gt; uvádí úrovně pracovního prostoru ($0, $19, $49, $149) podle rozsahu indexace — ne podle počtu míst.&lt;/li&gt;
&lt;li&gt;Připojte GitHub a počkejte na dokončení první indexace. Nic přitom lokálně nekompilujete.&lt;/li&gt;
&lt;li&gt;Připojte MCP klienta — pár řádků konfigurace. Maguyva je vzdálený MCP server, takže žádné pluginy, žádná rozšíření, žádný druhý editor k osvojení.&lt;/li&gt;
&lt;li&gt;Položte jednu otázku, kterou umíte ověřit. „Co závisí na parseConfig?“ nebo „Kde se řeší vypršení přihlašovací relace?“ Pak otevřete citované výsledky &lt;code&gt;file.ext:line&lt;/code&gt; a porovnejte je se stromem před sebou.&lt;/li&gt;
&lt;li&gt;Až poté, co citace tuto konfrontaci přežijí, nechte agenta editovat.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pokud první repozitář dobře sedí a váš strom je velký, zvětšete pracovní prostor podle svých naindexovaných řádků a frekvence přestavby. Lidé a agenti sdílejí stejný počet uživatelů — Maguyva účtuje za pracovní prostor, ne za místo —, takže přidání třetího agenta do smyčky vás nic nestojí.&lt;/p&gt;
&lt;p&gt;Aktivační test je stejný, jaký &lt;a href=&quot;https://maguyva.ai/cs/docs&quot;&gt;dokumentace&lt;/a&gt; doporučuje pro jakékoli první spuštění: naindexujte repozitář, který už znáte, položte jednu otázku, kterou umíte ověřit. Velký repozitář test nemění; jen dělá špatný první soubor dražším.&lt;/p&gt;
&lt;h2 id=&quot;na-co-dávat-pozor-po-připojení&quot;&gt;Na co dávat pozor po připojení&lt;/h2&gt;
&lt;p&gt;Sledujte tři věci. Aktuálnost: placené plány se přestavují hodinově, bezplatné denně, a nenapushovaná lokální práce se v mapě neobjeví — to je kompromis, na který přistupujete. Rozsah: indexujte reprezentativní sadu repozitářů, ne každou archivovanou vidličku; bezplatná úroveň je záměrně dimenzovaná tak, abyste zjistili, jestli se odpovědi vyplatí udržovat. A ověřování: mapa velkého repozitáře, která neumí citovat cesty a čísla řádků, je jen pomalejší hádací stroj, takže ať vám agent ukáže místo dřív, než dodá patch.&lt;/p&gt;
&lt;p&gt;Pak spusťte stejný test, jaký byste spustili na malém repozitáři. Naindexujte repozitář, který už znáte. Položte jednu otázku, kterou umíte ověřit. Pokud je mapa opravdová, váš agent přestane začínat od studeného stromu.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// no laptop got hot building this map.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>AI Agents</category><category>MCP</category><category>Indexing</category><category>Monorepos</category></item><item><title>Proč váš AI kódovací agent halucinuje cesty k souborům</title><link>https://maguyva.ai/cs/blog/why-ai-coding-agents-hallucinate-file-paths</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/why-ai-coding-agents-hallucinate-file-paths</guid><description>AI kódovací agenti si vymýšlejí cesty k souborům, když nemají skutečnou mapu repozitáře. Tady je proč se to děje a jak podloženost vede k méně halucinovaným úpravám.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Poznávacím znamením není špatné tělo funkce. Je to sebejistá úprava souboru, který neexistuje, nebo souboru, který existuje, ale neimplementuje dané chování.&lt;/p&gt;
&lt;p&gt;Požádali jste o opravu vypršení relace. Agent otevřel &lt;code&gt;src/auth/session.ts&lt;/code&gt;. Ta cesta je věrohodná. Je taky špatná. Skutečný handler žije v &lt;code&gt;apps/api/src/middleware/expiry.ts&lt;/code&gt;, přejmenovaném před dvěma refaktoringy. Agent vám nelhal. Doplnil řetězec ve tvaru cesty na základě tréninkových priorů plus toho, co už bylo v kontextovém okně.&lt;/p&gt;
&lt;p&gt;Toto je běžný vzorec selhání na skutečném repozitáři. Model umí psát kód. Chyba spočívá ve výběru špatného místa, kam ho napsat.&lt;/p&gt;
&lt;h2 id=&quot;proč-si-agenti-vymýšlejí-cesty&quot;&gt;Proč si agenti vymýšlejí cesty&lt;/h2&gt;
&lt;p&gt;Kódovací agent je model predikce dalšího tokenu vybavený nástroji. Když řeknete „oprav vypršení relace“, musí nejdřív pojmenovat soubor, než bude moct cokoli číst nebo patchovat. Pokud ještě nemá podloženou mapu, sestaví cestu z:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Konvencí pojmenování, které viděl v jiných repozitářích. &lt;code&gt;src/auth/session.ts&lt;/code&gt; je častý tvar.&lt;/li&gt;
&lt;li&gt;Souborů už přítomných v konverzaci, které možná jsou ty, co jste vložili minulý týden, ne ty, na kterých teď záleží.&lt;/li&gt;
&lt;li&gt;Výpisů adresářů, které náhodou spustil, neúplných na velkém stromu.&lt;/li&gt;
&lt;li&gt;Instrukčních souborů. &lt;code&gt;CLAUDE.md&lt;/code&gt; a &lt;code&gt;AGENTS.md&lt;/code&gt; říkají agentovi, jak se chovat. Nejsou to živý index symbolů, volajících ani aktuálních cest.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Žádný z těchto zdrojů není mapou tohoto repozitáře, dnes. Model vyplňuje mezeru stejným způsobem, jakým vyplňuje jakoukoli mezeru: pokračováním s vysokou pravděpodobností. Toto pokračování často vypadá jako skutečná cesta. Někdy soubor existuje a leží vedle toho správného. Někdy existoval na větvi sloučené minulý měsíc. Někdy nikdy neexistoval.&lt;/p&gt;
&lt;p&gt;Grep vás tu nezachrání, pokud agent vůbec nehledá správný řetězec. Agent uhodl cestu, pak přečetl, co ta cesta vrátila, pak ji upravil. Prvním chybným krokem byla cesta, ne patch.&lt;/p&gt;
&lt;p&gt;Čtení souborů také není totéž co nalezení těch správných. Claude Code, Cursor, Codex a podobné nástroje dokážou otevřít cokoli, na co je namíříte. Otázka zní, jestli spolehlivě najdou správné soubory, důležité symboly, závislosti, testy a rozsah dopadu dřív, než upravují. Přístup k souborům bez mapy stále začíná hádáním.&lt;/p&gt;
&lt;h2 id=&quot;úprava-špatného-souboru-je-problém-vyhledávání&quot;&gt;Úprava špatného souboru je problém vyhledávání&lt;/h2&gt;
&lt;p&gt;Berte vymyšlenou cestu jako omyl vyhledávání, ne jako povahovou vadu.&lt;/p&gt;
&lt;p&gt;Kdyby agent musel vrátit &lt;code&gt;path/file.ext:line&lt;/code&gt; dřív, než by mu bylo dovoleno editovat, staly by se dvě věci. Za prvé byste mohli otevřít citaci a odmítnout práci za deset sekund. Za druhé by se agent musel dotázat něčeho, co strom skutečně zná.&lt;/p&gt;
&lt;p&gt;Toto je práce vrstvy kontextu kódové báze. Samotné sémantické vyhledávání nestačí. Útržek, který „zní jako vypršení relace“, může pořád přistát v zastaralém balíčku. Potřebujete taky přesný text, když znáte řetězec, vyhledávání symbolů, když znáte jméno, strukturální vyhledávání, když znáte tvar, a graf závislostí, když potřebujete volající a rozsah dopadu.&lt;/p&gt;
&lt;p&gt;Maguyva je tato vrstva pro kódovací agenty kompatibilní s MCP. Není to editor. Claude Code, Cursor, Codex CLI, VS Code, Windsurf a další MCP klienti zůstávají tam, kde jsou. Agent se dotazuje seřazené mapy dřív, než se dotkne řádku.&lt;/p&gt;
&lt;p&gt;Tvrzení je záměrně skromné: méně halucinovaných úprav. Maguyva modelu neubírá schopnost hádat. Mění výchozí první krok z „vymyslet věrohodnou cestu“ na „vyžádat si seřazená, citovaná místa“.&lt;/p&gt;
&lt;h2 id=&quot;jak-vypadá-podložená-odpověď&quot;&gt;Jak vypadá podložená odpověď&lt;/h2&gt;
&lt;p&gt;Užitečná odpověď na otázku „kde se řeší vypršení relace“ není odstavec. Je to krátký seznam míst:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;apps/api/src/middleware/expiry.ts:48&lt;/code&gt; - handler&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apps/web/src/lib/auth-client.ts:112&lt;/code&gt; - volající&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apps/api/tests/expiry.test.ts:20&lt;/code&gt; - test, který selže, pokud je změna špatná&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tyto řádky můžete otevřít. Pokud jsou špatné, zastavíte se. Pokud jsou správné, agent může editovat. Smysl je v ověření, ne v hesle.&lt;/p&gt;
&lt;p&gt;Maguyva zpřístupňuje 11 zákaznických MCP nástrojů napříč vyhledáváním, symboly, analýzou závislostí, získáváním souborů, kontextem repozitáře a deterministickými servisními pracovními postupy. Čtyři režimy vyhledávání (sémantický, strukturální, grafový/závislostní a textový) se slévají do seřazených výsledků; vyhledávání symbolů je samostatný MCP nástroj (&lt;code&gt;find_symbol&lt;/code&gt;). Podložené odpovědi se vracejí s cestami k souborům a čísly řádků, takže je můžete posuzovat vůči stromu před sebou.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://maguyva.ai/cs/docs&quot;&gt;Dokumentace&lt;/a&gt; popisuje nejkratší cestu: začít zdarma, naindexovat repozitář, který už znáte, připojit klienta, pak položit jednu otázku, kterou umíte ověřit.&lt;/p&gt;
&lt;h2 id=&quot;smyčka-která-mění-první-úpravu&quot;&gt;Smyčka, která mění první úpravu&lt;/h2&gt;
&lt;p&gt;Nepotřebujete novou víru v pracovní postup. Potřebujete jeden krok navíc před prvním zápisem.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Položte otázku, kterou už dokážete posoudit. „Jaký kód řeší přihlášení a vypršení relace“ je lepší než „oprav autentizaci“.&lt;/li&gt;
&lt;li&gt;Vyžadujte citace. Cestu k souboru a číslo řádku, ne shrnutí „modulu autentizace“.&lt;/li&gt;
&lt;li&gt;Otevřete citované soubory. Sledujte symbol. Potvrďte závislost, které se chystáte dotknout.&lt;/li&gt;
&lt;li&gt;Teprve pak nechte agenta patchovat.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pokud krok 2 nevrátí nic užitečného, agent nemá právo cestu improvizovat. Buď hledá znovu, nebo mu ukážete cestu vy. Přesně tato jediná brána vytváří méně halucinovaných úprav. Model je stejný model. Změnila se mapa.&lt;/p&gt;
&lt;p&gt;Instrukční soubory jsou pořád důležité. Zachovejte je. Používejte je pro konvence, revizní pravidla a to, čeho se nedotýkat. Nežádejte je, aby byly indexem. &lt;code&gt;CLAUDE.md&lt;/code&gt;, který vyjmenovává tři důležité adresáře, zastará týden po rozdělení balíčku. Dotazovatelná mapa se aktualizuje, když se aktualizuje repozitář.&lt;/p&gt;
&lt;p&gt;Příbuzné selhání je téměř správný soubor: agent otevře &lt;code&gt;auth.ts&lt;/code&gt;, když chování žije v &lt;code&gt;auth-client.ts&lt;/code&gt;, nebo patchuje vygenerovaný soubor místo zdroje, nebo edituje kopii v &lt;code&gt;packages/legacy&lt;/code&gt;, protože se shodovalo jméno. Citace tyto chyby nedělají nemožnými. Dělají je viditelnými dřív, než diff přistane.&lt;/p&gt;
&lt;h2 id=&quot;co-za-vás-mapa-nevyřeší&quot;&gt;Co za vás mapa nevyřeší&lt;/h2&gt;
&lt;p&gt;Buďte střízliví ohledně toho, co dostáváte. Podložená mapa neudělá každou úpravu správnou — váš agent i tak může napsat špatný patch přesně do správného souboru. Pokud se vaše kódová báze opírá o dynamický dispatch, reflexi nebo monkey-patching, některá vyhledávání symbolů se vrátí chudší, než byste chtěli, protože přesně to dělá běhová nepřímost s jakýmkoli statickým indexem. A pokud doufáte v procento — „halucinované cesty snížené o X %“ — tady ho nenajdete, protože nikdo kromě vás nedokáže poctivě naměřit toto číslo pro váš repozitář.&lt;/p&gt;
&lt;p&gt;Co můžete čekat, je užší a užitečnější: agent přestane začínat úpravy uhodnutou cestou. Tento první krok se podloží skutečnou mapou a odtud pochází méně halucinovaných úprav. Všechno po citaci — čtení diffu, posouzení patche — je pořád vaše práce, stejně jako vždycky byla.&lt;/p&gt;
&lt;p&gt;Tento test vás nestojí skoro nic: naindexujte repozitář, který už znáte, a položte jednu otázku, kterou umíte ověřit. Začněte cestou, na které jste se už spálili. Pokud jsou citace špatné, uvidíte to hned. Pokud jsou správné, další úprava vašeho agenta dostane lepší místo k přistání.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// it doesn&apos;t know the file. it knows how to find it.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>AI Agents</category><category>Hallucination</category><category>Retrieval</category><category>MCP</category></item><item><title>Proč jsme upgradovali vyhledávání v kódu na voyage-4-large</title><link>https://maguyva.ai/cs/blog/upgrading-code-search-to-voyage-4-large</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/upgrading-code-search-to-voyage-4-large</guid><description>Přesunuli jsme naše embeddingy kódu na voyage-4-large — aktuálně na špici veřejného žebříčku RTEB pro retrieval kódu. Upřímná verze: kompromis, který děláme, co skutečně indexujeme a proč platíme za prémiové embeddingy.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Čísla benchmarků v tomto příspěvku odrážejí žebříčky RTEB v době zveřejnění (červen 2026). Žebříčky se hýbou; berte pořadí jako momentku, ne trvalý fakt.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sémantické vyhledávání je jen tak dobré jako embeddingy pod ním.&lt;/p&gt;
&lt;p&gt;Když se agent zeptá Maguyvy „kde řešíme retry“, negrepuje slovo „retry“. Ptá se na &lt;em&gt;význam&lt;/em&gt; — smyčku s backoffem, vzor circuit breaker, tu věc, která obaluje nespolehlivé volání. Na tuhle otázku odpovídá vektorový model, který promění kód na bod v prostoru a najde sousedy. Vyberte lepší model a každý sémantický dotaz v produktu se tiše zostří.&lt;/p&gt;
&lt;p&gt;Tak jsme svůj změnili. Od června 2026 běží embeddingy kódu v Maguyvě na &lt;strong&gt;&lt;code&gt;voyage-4-large&lt;/code&gt;&lt;/strong&gt;, který nahrazuje &lt;code&gt;voyage-code-3&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;benchmark&quot;&gt;Benchmark&lt;/h2&gt;
&lt;p&gt;Tohle rozhodnutí jsme neudělali na základě pocitu. Veřejný &lt;a href=&quot;https://embedding-benchmark-rteb.hf.space/code&quot;&gt;Retrieval Embedding Benchmark (RTEB)&lt;/a&gt; řadí embedding modely podle skutečných retrieval úloh a na svém žebříčku &lt;strong&gt;Code&lt;/strong&gt; sedí &lt;code&gt;voyage-4-large&lt;/code&gt; na &lt;strong&gt;1. místě celkově (90,86)&lt;/strong&gt; — před &lt;code&gt;gemini-embedding-2-preview&lt;/code&gt; (90,26) a, což je pozoruhodné, před modelem, který jsme už používali, &lt;code&gt;voyage-code-3&lt;/code&gt; (89,73, 3. místo).&lt;/p&gt;
&lt;p&gt;To je malý absolutní rozdíl. Ale je to rozdíl ve správném směru, na veřejném benchmarku, přesně na úloze, na které nám záleží: dohledávat kód podle významu.&lt;/p&gt;
&lt;h2 id=&quot;kompromis-který-přijímáme-binární-kvantizace&quot;&gt;Kompromis, který přijímáme: binární kvantizace&lt;/h2&gt;
&lt;p&gt;Tady je část, kterou většina příspěvků typu „upgradovali jsme náš model“ vynechává.&lt;/p&gt;
&lt;p&gt;Maguyva neukládá vektory v plné přesnosti. Ukládáme &lt;strong&gt;binárně kvantizované&lt;/strong&gt; embeddingy: každý 2048-dimenzionální vektor se zkomprimuje na 2048bitovou signaturu — &lt;strong&gt;256 bajtů na vektor&lt;/strong&gt;. Tyto signatury se prohledávají Hammingovou vzdáleností, indexované a rozdělené na partition podle tenanta.&lt;/p&gt;
&lt;p&gt;To je záměrný kompromis. Binární kvantizace obětuje trochu přesnosti retrievalu výměnou za dramaticky menší úložiště a rychlou, levnou matematiku vzdálenosti bez nutnosti provozovat samostatnou vektorovou databázi. Pro produkt, který indexuje celé repozitáře na jeden pracovní prostor, na téhle ekonomice záleží víc než na vymáčknutí posledního zlomku bodu z benchmarku.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;voyage-4-large&lt;/code&gt; do tohoto designu zapadá, aniž by si vynutil migraci vrstvy úložiště: produkuje 2048-dimenzionální výstup, stejně jako &lt;code&gt;voyage-code-3&lt;/code&gt;, takže se naše sloupce &lt;code&gt;bit(2048)&lt;/code&gt; a cesta Hammingova vyhledávání nezměnily. Model se zlepšil; schéma zůstalo na místě.&lt;/p&gt;
&lt;h2 id=&quot;kód-byl-jen-začátek&quot;&gt;Kód byl jen začátek&lt;/h2&gt;
&lt;p&gt;Maguyva je nástroj pro inteligenci nad kódem. Ale jsme také svým vlastním prvním zákazníkem a míříme s ní i na něco jiného: na markdown, který v našich repozitářích žije vedle kódu. Záznamy architektonických rozhodnutí, runbooky, smlouvy, finanční a policy dokumenty — všechno verzované v Gitu, všechno za stejným MCP serverem, sémantický index nad &lt;em&gt;dokumenty&lt;/em&gt;, ne jen nad zdrojovým kódem.&lt;/p&gt;
&lt;p&gt;Přesně proto na šíři voyage-4-large záleží. Na stejné rodině žebříčků RTEB je &lt;strong&gt;1. na financích, 1. ve zdravotnictví a 1. na celkovém textovém retrievalu&lt;/strong&gt; — před Gemini Embedding od Googlu, Embed v4 od Cohere a text-embedding-3-large od OpenAI. (Voyage je spoluautorem RTEB, takže to čteme jako silný veřejný signál, ne jako dokonale neutrálního rozhodčího — ale je přímo srovnávaný v benchmarku proti každému velkému komerčnímu modelu na privátních hold-out sadách.) Stejný index, který agentovi najde správnou funkci, najde i správnou klauzuli ve smlouvě nebo správný řádek v policy dokumentu — a v těchto doménách voyage-4-large není kompromis, je to lídr.&lt;/p&gt;
&lt;h2 id=&quot;proč-platíme-za-prémiové-embeddingy&quot;&gt;Proč platíme za prémiové embeddingy&lt;/h2&gt;
&lt;p&gt;Existuje levnější způsob, jak dělat vyhledávání, a velká část je zdarma. Lexikální vyhledávání — BM25 a jeho příbuzní — porovnává klíčová slova, běží lokálně a nic nestojí. Open-source embedding modely jako BGE, Nomic a embeddinggemma dávají opravdu &lt;em&gt;slušný&lt;/em&gt; sémantický retrieval a můžete si je hostovat sami za cenu GPU. Maguyva používá i tu bezplatnou stranu: každý dotaz fúzuje textové, AST, grafové a sémantické vyhledávání. Na čem nešetříme, je sémantická vrstva.&lt;/p&gt;
&lt;p&gt;Za prémiové embeddingy — &lt;code&gt;voyage-4-large&lt;/code&gt; — platíme za token místo toho, abychom si sami hostovali bezplatný model, ze dvou důvodů. Za prvé, samotné vyhledávání podle klíčových slov nedokáže odpovědět na „kde řešíme retry“, když kód říká &lt;code&gt;backoff&lt;/code&gt; a &lt;code&gt;circuit breaker&lt;/code&gt; a nikdy neřekne slovo „retry“ — význam je celý smysl embeddingu a v doménách, které obsluhujeme, otevřené modely za prémiovými zaostávají: pár bodů pozadu na obecném textu a ještě víc pozadu v nikách jako kód, smlouvy a finance. Za druhé, podle naší zkušenosti kvalita retrievalu tvaruje finální odpověď víc než model na druhém konci — silný agent, kterému dáte špatný kontext, pořád odpoví špatně, a nikdy neuvidí dokument, který nikdy nedostal.&lt;/p&gt;
&lt;p&gt;Prémiové embeddingy jsou tedy účet za token, který roste s každým repozitářem a dokumentem, který indexujeme — a platíme ho záměrně. Pro výsledek, který naši uživatelé dostanou, správnou funkci nebo správnou klauzuli, si myslíme, že ten kompromis stojí za to.&lt;/p&gt;
&lt;h2 id=&quot;upřímná-část&quot;&gt;Upřímná část&lt;/h2&gt;
&lt;p&gt;Vlastní dokumentace Voyage pořád označuje &lt;code&gt;voyage-code-3&lt;/code&gt; jako model optimalizovaný pro kód. Tak proč přejít?&lt;/p&gt;
&lt;p&gt;Protože jsme si přečetli veřejný benchmark, ne jen tabulku modelů dodavatele, a benchmark postavil na první místo pro retrieval kódu &lt;code&gt;voyage-4-large&lt;/code&gt;. Bylo to rozhodnutí s výhledem dopředu: vzít novější, obecně silnější model a ověřit ho proti veřejnému žebříčku na úlohách, na kterých záleží. Cítíme se s touhle sázkou dobře, protože důkazy jsou široké — voyage-4-large nevyhrává jen na kódu, vede i na financích, zdravotnictví a celkovém retrievalu.&lt;/p&gt;
&lt;h2 id=&quot;nenápadný-základ&quot;&gt;Nenápadný základ&lt;/h2&gt;
&lt;p&gt;Každý nástroj, který vystavujeme — sémantické vyhledávání, sběr task-context, ukotvené odpovídání na otázky — v základu stojí na kvalitě vyhledávání. Když se retriever zlepší, agent na druhém konci dostane lepší důkazy, udělá méně špatných odboček a ukotví své odpovědi ve správném kódu — nebo ve správné klauzuli, nebo ve správném policy dokumentu. Ostřejší embedding model není okázalá funkce. Je to základ všeho ostatního a ten jsme právě zlepšili. Nevšimnete si toho. To je ten záměr.&lt;/p&gt;
</content:encoded><category>Embeddings</category><category>Search</category><category>Architecture</category></item><item><title>Jazykové rekurzivní sebezlepšování: brousíme code intelligence napříč ~280 jazyky</title><link>https://maguyva.ai/cs/blog/autonomous-quality-loops-language-grind</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/autonomous-quality-loops-language-grind</guid><description>Podporujeme code intelligence pro ~280 jazyků. Ručně to žádný člověk nedokáže celé zkontrolovat. Postavili jsme proto jazykovou smyčku rekurzivního sebezlepšování — namátková kontrola, LLM jako rozhodčí, oprav jednu věc, znovu ověř — a necháme ji běžet na flotile izolovaných agentů, dokud extrakce není skutečně správná, ne jen zelená.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Čísla v tomto příspěvku odrážejí stav systému v době zveřejnění (květen 2026). Aktuální čísla najdete na naší &lt;a href=&quot;https://maguyva.ai/cs/team&quot;&gt;stránce týmu&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Maguyva extrahuje symboly, reference a graf závislostí ze zdrojového kódu zhruba v 280 jazycích. Každý jazyk má vlastní tree-sitter handler — dotazy, heuristiky, hraniční případy — a každý handler může být po svém jemně špatně. Volání metody vyexportované jako čtení. Funkce přiřazená ke špatnému obklopujícímu scope. Vztah, který tam prostě není.&lt;/p&gt;
&lt;p&gt;To se nedá ručně zaauditovat. Žádný tým nepřečte výstup extrakce napříč 280 gramatikami a nenajde ty špatné hrany. Zajímavá otázka tedy není „je naše extrakce správná“, ale „jak &lt;em&gt;zjistíte&lt;/em&gt;, že je špatná, v této šíři, bez člověka v každé smyčce“. Naše odpověď je jazykové rekurzivní sebezlepšování: kvalitativní smyčka poháněná jazykovými agenty, LLM v roli rozhodčího a jedno pravidlo, které se pořád znovu učíme: zelená není totéž co správná.&lt;/p&gt;
&lt;h2 id=&quot;zelená-není-správná&quot;&gt;Zelená není správná&lt;/h2&gt;
&lt;p&gt;Každý jazyk má sadu fixtures a release gate ho boduje napříč pěti dimenzemi — přesnost, strukturální integrita, úplnost, kvalita a výkon. Jazyk dostane &lt;strong&gt;ZELENOU&lt;/strong&gt; jen tehdy, když na svých fixtures dosáhne precision ≥ 0,95, recall ≥ 0,99 a F1 ≥ 0,97, s alespoň 20 očekávanými hranami pro statistickou důvěru. Pod tím je ŽLUTÁ nebo ČERVENÁ, a nejde do provozu.&lt;/p&gt;
&lt;p&gt;Tahle brána je nutná, ale ne dostatečná. Fixtures validují proti fixtures, které jsme &lt;em&gt;sami napsali&lt;/em&gt;. Zakódovali jsme do nich případy, na které jsme už mysleli. Handler může být na svých fixtures bezchybný a přesto zpackat vzorec, který se objeví jen ve skutečném kódu — makro idiom, generická metoda, jazyková vlastnost, pro kterou nikdo fixture nenapsal. ZELENÁ znamená, že fixtures projdou. Neznamená to, že se skutečný repozitář extrahuje čistě. Smyčka proto musí opustit fixtures a podívat se do divočiny.&lt;/p&gt;
&lt;h2 id=&quot;vnitřní-smyčka-namátková-kontrola-rozhodčí-oprava-důkaz&quot;&gt;Vnitřní smyčka: namátková kontrola, rozhodčí, oprava, důkaz&lt;/h2&gt;
&lt;p&gt;Jádro smyčky běží vždy pro jeden jazyk:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ┌──────────────────────────────────────────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  1. corpus run ── clone real-world repos, extract relationships   │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  2. spot-check 100 edges (seed 42, then seed 123 to cross-check)  │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  3. LLM judge classifies every sampled edge:                      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        CORRECT · FALSE_POSITIVE · TYPE_ERROR ·                    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        SCOPE_ERROR · METADATA_ERROR                               │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  4. fix ONE thing — handler .py, .scm query, or config           │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  5. re-validate — F1 + re-classify + manifest diff (no regressions)│&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   better? ──no──► revert, try a different fix ────────────────────┤&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │ yes                                                       │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                           │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  6. promote the fix into fixtures (a permanent regression guard) ──┘&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Několik věcí zajišťuje, že tohle funguje, a ne jen mele naprázdno.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rozhodčí je agent, ne API volání.&lt;/strong&gt; Když říkáme „LLM jako rozhodčí“, myslíme tím, že samotný jazykový agent čte každou vzorkovanou hranu proti skutečnému zdroji a klasifikuje ji podle pevné hodnoticí metodiky s pěti kategoriemi: je tahle hrana správná, false positive, správný vztah se špatným typem, připojená ke špatnému scope, nebo nese špatná metadata? Tato metodika je klíčová — „23% chybovost“ nic neznamená, dokud nevíte, jestli jde o skutečné defekty, nebo o rozhodčího, který se spletl v počítání.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Oprav jednu věc, pak to dokaž.&lt;/strong&gt; Každá iterace mění přesně jeden editovatelný asset, pak se znovu spustí proti pevnému harnessu a změnu si ponechá jen tehdy, pokud se zlepší F1 a překlasifikace vypadá lépe. Pokud ne, vrátí se zpět. Žádná dávka spekulativních úprav, žádné „mělo by být lepší“. Změna si své místo buď vydělá, nebo zmizí. A když se oprava chytí, povýší se do sady fixtures — takže chyba, kterou opravila, se už tiše nemůže vrátit. Tenhle krok povýšení je to, co dělá smyčku &lt;em&gt;rekurzivní&lt;/em&gt;, a ne jen opakovanou: každý průchod zpevňuje orákulum, proti kterému validuje ten další.&lt;/p&gt;
&lt;h2 id=&quot;ponaučení-které-se-pořád-znovu-učíme-metriky-nadhodnocují&quot;&gt;Ponaučení, které se pořád znovu učíme: metriky nadhodnocují&lt;/h2&gt;
&lt;p&gt;Tady je past, do které jsme spadli po hlavě. Sekundární metriky korpusu — jak často má extrahovaný cíl nedořešitelný symbol, kolik symbolů vypadá „osiřele“ a tak dále — masivně nadhodnocují problémy. Jsou to většinou &lt;em&gt;artefakty paradigmatu&lt;/em&gt;, ne bugy.&lt;/p&gt;
&lt;p&gt;Nejčistší příklad: &lt;code&gt;llvm&lt;/code&gt; jednou ukázal 73% míru „zdroj-bez-symbolu“ a byl označen za katastrofální. Ponořili jsme se do toho. Skutečná přesnost byla &lt;strong&gt;98,5 %&lt;/strong&gt;. „Chybějící symboly“ byly téměř všechny legitimní externí reference — volání do standardní knihovny, do frameworků, do kódu, který žije mimo repozitář. Metrika měřila vlastnost jazyka, ne defekt handleru. Jazyky jako Zig, COBOL a Odin ukazují 65–70% míru „osiřelosti“ a jsou přitom úplně v pořádku; COBOL neměl žádné skutečné chyby.&lt;/p&gt;
&lt;p&gt;Kdybychom nechali tahle čísla řídit práci, strávili bychom týdny „opravováním“ handlerů, které už byly správné, a ignorovali bychom jazyky s tichými, skutečnými chybami. Závěr je nekompromisní: agregátní metriky jsou v nejlepším případě hrubý třídicí signál. &lt;strong&gt;Skutečný signál kvality je namátková kontrola s klasifikací hran&lt;/strong&gt; — dívat se na skutečné hrany ve skutečných repozitářích a posuzovat je jednu po druhé. Data před intuicí, ale jen ve chvíli, kdy víte, která data mluví pravdu.&lt;/p&gt;
&lt;h2 id=&quot;vnější-smyčka-flotila-ne-maraton&quot;&gt;Vnější smyčka: flotila, ne maraton&lt;/h2&gt;
&lt;p&gt;Zpracovávat všech 280 jazyků jeden po druhém by trvalo věčnost, takže je vnitřní smyčka zabalená do vnější, která zpracovává mnoho jazyků paralelně.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   pick a wave of near-GREEN / high-error languages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   fan out 10–15 agents, each ISOLATED in its own git worktree,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   each grinding ONE language, committing to its own branch&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   orchestrator integrates serially: file-scoped apply, then&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   `manifest diff` — any cross-language regression blocks the batch&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   gated push (reviewed and confirmed) ──► rotate to the next wave&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Každý agent pracuje v jednorázovém pracovním stromě, takže si nemůžou šlapat na paty. Orchestrátor integruje jejich opravy jednu po druhé, každou za kontrolou regrese na celém manifestu: změna, která pomůže svému vlastnímu jazyku, ale tiše rozbije tři další, neprojde. Integrace je hlídaná bránou a potvrzená ještě předtím, než se cokoli pushne — regresní brána rozhoduje, co je &lt;em&gt;bezpečné&lt;/em&gt;; o tom, co se &lt;em&gt;odešle&lt;/em&gt;, pořád rozhoduje člověk. Pak se fronta protočí na další sadu jazyků a celé se to opakuje.&lt;/p&gt;
&lt;h2 id=&quot;co-je-pořád-nedokonalé&quot;&gt;Co je pořád nedokonalé&lt;/h2&gt;
&lt;p&gt;Rozhodčí se může mýlit a ta mýlka má směr: agent běžící s příliš malým kontextem &lt;em&gt;nadhodnocuje&lt;/em&gt;. V jedné dávce bylo osm jazyků označeno chybovostí 5–20 %; po prozkoumání byla skutečná chyba specifická pro jazyk jen jedna — zbytek byly chyby rozhodčího z toho, že mu unikla vlastní sémantika daného jazyka (jeden zdrojový řádek legitimně produkuje několik hran, vazby parametrů modelované jako přiřazení, jazyky typu reference-per-identifier). Proto vzorkujeme se dvěma seedy a křížově kontrolujeme, a proto se neshoda mezi rozhodčím a fixtures bere jako &lt;em&gt;nejzajímavější&lt;/em&gt; signál, ne jako uzavřený verdikt — někdy je to fixture, co je špatně.&lt;/p&gt;
&lt;p&gt;Jsme také upřímní ohledně cíle. Cílem je nula skutečných chyb, tečka — ale „nula“ je směr, ke kterému se brousíme jazyk po jazyku, ne políčko, které jednou zaškrtnete. Vždycky existuje další repozitář s dalším idiomem.&lt;/p&gt;
&lt;h2 id=&quot;vydobyté-ne-tvrzené&quot;&gt;Vydobyté, ne tvrzené&lt;/h2&gt;
&lt;p&gt;Všechno, co Maguyva pro agenta dělá — najít symbol, sledovat závislost, odpovědět na otázku s citovaným kódem — stojí na tom, že podkladová extrakce je správná. Napříč 280 jazyky se „správnost“ nedá jen tvrdit; musí se soustavně &lt;em&gt;vydobýt&lt;/em&gt; proti skutečnému kódu. Smyčka je způsob, jak si ji vydobýváme: autonomní cyklus namátkové kontroly a opravy, který ke svým vlastním metrikám přistupuje s podezřením, každou změnu dokazuje a každou opravu mění na strážce proti příští regresi. Není to okázalé. Je to práce, díky které můžeme říct „podporujeme váš jazyk“ a myslet to vážně. Zelená je snadná. Správná se vydobývá.&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Languages</category><category>Agents</category></item><item><title>Multi-modální fúzní vyhledávání: pro každý dotaz ten správný retriever</title><link>https://maguyva.ai/cs/blog/multi-modal-fusion-search</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/multi-modal-fusion-search</guid><description>Dotaz jako „kde je definovaný parseConfig“ chce jiné vyhledávání než „jak funguje autentizace“. Maguyva klasifikuje záměr, podle toho nastaví váhy čtyř vyhledávacích modalit a výsledky sloučí pomocí vážené Reciprocal Rank Fusion.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Poznámka k historickému návrhu: tento článek z dubna 2026 popisuje tehdejší návrh směrování, nikoli současné výchozí chování. Níže uvedená zářijová oprava se týká pouze tvrzení o měření. Aktuální směrování, předvolby a explicitní nastavení modalit najdete na stránce &lt;a href=&quot;https://maguyva.ai/cs/docs/how-it-works&quot;&gt;Jak to funguje&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vyhledávací dotazy mají různé potřeby.&lt;/p&gt;
&lt;p&gt;„kde je definovaný &lt;code&gt;parseConfig&lt;/code&gt;“ chce přesný symbol — jedno přesné místo, rychle. „jak funguje autentizace“ chce význam — rozptýlený související kód, který vysvětluje koncept. „co se rozbije, když změním tuhle funkci“ chce graf závislostí. „najdi řetězec &lt;code&gt;ECONNREFUSED&lt;/code&gt;“ chce doslovnou shodu, nic chytrého.&lt;/p&gt;
&lt;p&gt;Grep je výborný na doslovné shody a užitečný při některých pátráních po referencích, ale není to graf závislostí a nerozumí významu. Embeddingy pokrývají sémantickou stránku, ale jsou špatný nástroj na přesné řetězce a analýzu dopadu. Většina nástrojů pro vyhledávání v kódu si vybere jeden engine a nechá s tou volbou žít každý dotaz. Maguyva se neomezuje na jeden engine. Zjistí, jaký typ otázky jste položili, a pak smísí čtyři retrievery v poměru, jaký si daná otázka zaslouží.&lt;/p&gt;
&lt;h2 id=&quot;čtyři-modality&quot;&gt;Čtyři modality&lt;/h2&gt;
&lt;p&gt;Pod kapotou existují čtyři nezávislé způsoby, jak najít kód:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;sémantický&lt;/strong&gt; — vektorové vyhledávání nad binárními Voyage embeddingy; hledá kód podle významu.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;textový&lt;/strong&gt; — trigramová shoda; hledá literály, chybové řetězce, přesné identifikátory.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;strukturální&lt;/strong&gt; — dotazy AST; hledá definice, signatury a jazykové konstrukce.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;grafový&lt;/strong&gt; — graf závislostí; hledá volající, volané a rozsah dopadu.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Každý je silný na jiné třídě otázek. Trik je rozhodnout, nakolik každému z nich věřit pro dotaz, který máte před sebou.&lt;/p&gt;
&lt;h2 id=&quot;klasifikace-záměru&quot;&gt;Klasifikace záměru&lt;/h2&gt;
&lt;p&gt;Než proběhne jakékoliv vyhledávání, odlehčený klasifikátor zařadí dotaz do jednoho ze šesti záměrů, s mírou jistoty. Je záměrně levný — seřazené heuristiky, vyhrává první shoda — protože běží na hot path a přidává jen milisekundu nebo dvě:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;začíná na &lt;code&gt;def &lt;/code&gt;, &lt;code&gt;class &lt;/code&gt;, &lt;code&gt;func &lt;/code&gt;, &lt;code&gt;import &lt;/code&gt;… → &lt;strong&gt;find_definition&lt;/strong&gt; (jistota 0,95)&lt;/li&gt;
&lt;li&gt;„who calls“, „usages of“, „references to“ (kdo volá, použití, odkazy na) → &lt;strong&gt;find_references&lt;/strong&gt; (0,90)&lt;/li&gt;
&lt;li&gt;„impact“, „blast radius“, „what depends on“ (dopad, rozsah dopadu, co na tom závisí) → &lt;strong&gt;impact_analysis&lt;/strong&gt; (0,90)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&quot;string&quot;&lt;/code&gt; v uvozovkách nebo chybový token jako &lt;code&gt;traceback&lt;/code&gt; → &lt;strong&gt;exact_match&lt;/strong&gt; (0,85–0,90)&lt;/li&gt;
&lt;li&gt;identifikátor ve tvaru &lt;code&gt;CamelCase&lt;/code&gt; nebo &lt;code&gt;snake_case&lt;/code&gt; → &lt;strong&gt;find_definition&lt;/strong&gt; (0,60–0,80)&lt;/li&gt;
&lt;li&gt;„how“, „why“, „explain“, „architecture“ (jak, proč, vysvětli, architektura) → &lt;strong&gt;understand_code&lt;/strong&gt; (0,75)&lt;/li&gt;
&lt;li&gt;nic nesedí → &lt;strong&gt;understand_code&lt;/strong&gt;, nízká jistota (0,40)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Každý záměr nese profil vah napříč čtyřmi modalitami. Toto jsou skutečná čísla:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Záměr&lt;/th&gt;
&lt;th&gt;sémantický&lt;/th&gt;
&lt;th&gt;textový&lt;/th&gt;
&lt;th&gt;strukturální (AST)&lt;/th&gt;
&lt;th&gt;grafový&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;find_definition&lt;/td&gt;
&lt;td&gt;0,2&lt;/td&gt;
&lt;td&gt;0,1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0,6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0,1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;find_references&lt;/td&gt;
&lt;td&gt;0,1&lt;/td&gt;
&lt;td&gt;0,2&lt;/td&gt;
&lt;td&gt;0,2&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0,5&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;understand_code&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0,5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0,2&lt;/td&gt;
&lt;td&gt;0,2&lt;/td&gt;
&lt;td&gt;0,1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;find_similar&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0,4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0,3&lt;/td&gt;
&lt;td&gt;0,2&lt;/td&gt;
&lt;td&gt;0,1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;impact_analysis&lt;/td&gt;
&lt;td&gt;0,1&lt;/td&gt;
&lt;td&gt;0,1&lt;/td&gt;
&lt;td&gt;0,1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0,7&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;exact_match&lt;/td&gt;
&lt;td&gt;0,0&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0,9&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0,1&lt;/td&gt;
&lt;td&gt;0,0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Takže „kde je definovaný &lt;code&gt;parseConfig&lt;/code&gt;“ se výrazně opírá o AST (0,6). „jak funguje autentizace“ se opírá o sémantické vektory (0,5). „co na tomhle závisí“ je skoro celé grafové (0,7). „najdi &lt;code&gt;ECONNREFUSED&lt;/code&gt;“ je skoro celé trigramové (0,9), embedding model je úplně vypnutý — protože sémantická podobnost je přesně ten špatný nástroj na přesný řetězec.&lt;/p&gt;
&lt;h2 id=&quot;rychlá-cesta-a-fúzovaná-cesta&quot;&gt;Rychlá cesta a fúzovaná cesta&lt;/h2&gt;
&lt;p&gt;Když si je klasifikátor jistý — skóre ≥ 0,85 — a dotaz je běžný, Maguyva fúzi úplně přeskočí a routuje přímo na jednu dominantní modalitu. „kde je definované X“ nepotřebuje čtyři retrievery; potřebuje AST index, hned. Tahle přímá cesta se hlásí zpátky jako &lt;code&gt;fusion_strategy: &quot;direct&quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Všechno nejednoznačné prochází fúzí. Čtyři (nebo tři, na výchozím presetu) modality běží paralelně, každá vrací svůj vlastní seřazený seznam, a my je kombinujeme.&lt;/p&gt;
&lt;h2 id=&quot;vážená-reciprocal-rank-fusion&quot;&gt;Vážená Reciprocal Rank Fusion&lt;/h2&gt;
&lt;p&gt;Fúzovat heterogenní retrievery je těžší, než to zní: kosinová podobnost 0,82, trigramové skóre 137 a grafová centralita 0,004 nejsou na stejné škále, takže je nemůžete jen sečíst. Reciprocal Rank Fusion tenhle problém obchází tím, že zahodí syrová skóre a ponechá si jen &lt;strong&gt;pořadí&lt;/strong&gt;, které danému výsledku přidělil každý engine. Příspěvek výsledku z jedné modality je:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;contribution = weight × 1 / (k + rank + 1)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;kde &lt;code&gt;rank&lt;/code&gt; je jeho pozice v seznamu dané modality a &lt;code&gt;k&lt;/code&gt; je vyhlazovací konstanta. Příspěvky se sčítají napříč modalitami pro každý výsledek, který našel víc než jeden engine — výsledky, na kterých se retrievery shodnou, přirozeně postoupí výš. Používáme &lt;strong&gt;k = 40&lt;/strong&gt; na výchozím presetu a 60 na &lt;code&gt;thorough&lt;/code&gt; (&lt;code&gt;quick&lt;/code&gt; běží čistě sémanticky, takže se tam fúze nikdy nezapojí). Původní práce o RRF přistála na k = 60 pro obecné vyhledávání; naše výchozí nastavení o něco více zvýhodňuje přední pozice, což dává shodě mezi modalitami na nejvyšších pozicích trochu větší váhu — a nedoporučujeme to ručně dolaďovat.&lt;/p&gt;
&lt;p&gt;Nad tím vším výsledky nesou ještě &lt;strong&gt;boost za grafovou důležitost&lt;/strong&gt;. Hub — funkce, o kterou se opírá celá kódová základna — by měla předstihnout málo známý listový uzel i při stejné textové relevanci, takže každý příspěvek násobíme:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;boost = min(1 + 0.3 × ln(1 + centrality), 1.5)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Centralita pochází z předpočítaných metrik PageRank/stupně z pipeline a boost je oříznutý na 1,5×, aby populární funkce úplně nepohřbila relevantnější, ale obskurnější výsledek. Nakonec degradujeme výsledky z cest vendor, build a archive a deduplikujeme na nejlepší chunk na soubor.&lt;/p&gt;
&lt;h2 id=&quot;co-je-pořád-nedokonalé&quot;&gt;Co je pořád nedokonalé&lt;/h2&gt;
&lt;p&gt;Klasifikátor záměru je sada regulárních výrazů, nikoli naučený model. Běžné podoby dotazů zpracovává pomocí heuristik a nejednoznačný dotaz přechází na &lt;code&gt;understand_code&lt;/code&gt; a směs upřednostňující sémantiku. Starší verze tohoto článku popisovala pokles podílu dotazů bez výsledků z přibližně 15 % pod 5 % jako dosažený. Návrh z prosince 2025 však ve skutečnosti uváděl odhad výchozí hodnoty a cíl; podpůrná sada dotazů ani záznam měření nejsou k dispozici. Tvrzení o dosaženém zlepšení stahujeme; viz &lt;a href=&quot;https://maguyva.ai/evidence/search-quality.md&quot;&gt;zdrojové důkazy a oprava&lt;/a&gt;. Klasifikátor jsme nenahradili trénovaným modelem, protože levná verze je rychlá a pro zamýšlené směrování dostatečná, a protože chybný, ale sebejistý klasifikátor je horší než otevřený návrat k výchozí variantě. Samotné váhy jsou ručně zvolené předpoklady, nikoli hodnoty naučené z údajů o kliknutí, které nesbíráme.&lt;/p&gt;
&lt;h2 id=&quot;položte-otázku-výběr-nástroje-nechte-systému&quot;&gt;Položte otázku, výběr nástroje nechte systému&lt;/h2&gt;
&lt;p&gt;Agent by neměl muset vědět, jestli sáhnout po grepu, embeddingech, nebo grafu volání — měl by položit svou otázku prostými slovy a dostat správnou odpověď. Multi-modální fúze je to, co umožňuje &lt;code&gt;find_symbol&lt;/code&gt;, sémantickému vyhledávání a analýze závislostí sedět za jedním dotazovacím rozhraním: systém přečte tvar otázky a tiše sestaví ten správný retriever. Na modelu, který embeddingy skóruje, záleží, ale záleží i na tom, kdy je &lt;em&gt;nepoužít&lt;/em&gt;. Vybrat pro každý dotaz správný nástroj je svůj vlastní druh kvality, a raději ho vlastníme sami, než abychom ho přehazovali na volajícího.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// you bring the question. it brings the tools.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>Search</category><category>Architecture</category></item><item><title>Observabilita agentů: hooks, Alloy a Grafana</title><link>https://maguyva.ai/cs/blog/agent-observability-hooks-alloy-grafana</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/agent-observability-hooks-alloy-grafana</guid><description>Zapojili jsme Claude Code a Codex do jednoho Grafana stacku pomocí OpenTelemetry a Alloy a pak jsme pomocí trace a logů dohledávali a opravovali problémy v chování agentů přímo u zdroje.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Agentní systémy selhávají podivnými způsoby.&lt;/p&gt;
&lt;p&gt;Někdy je problém v modelu. Někdy v nástroji. Někdy je váš MCP server v pořádku, ale agent si zvolil špatného specialistu, nebo strávil polovinu session prací v shellu, kterou jste nečekali, nebo potichu zvyšoval náklady ve smyčce, která zvenčí vypadala produktivně.&lt;/p&gt;
&lt;p&gt;Pokud ten rozdíl nevidíte, agentní systém ve skutečnosti neprovozujete. Jen hádáte.&lt;/p&gt;
&lt;p&gt;Postavili jsme si tedy observabilitu pro náš vlastní workflow: Claude Code, Codex, hook eventy Claude, notify eventy Codexu, nativní OpenTelemetry, Grafana Alloy a na druhé straně Grafana Cloud.&lt;/p&gt;
&lt;p&gt;Zajímavá část není „udělali jsme dashboard“. Zajímavá je skutečnost, že jsme museli telemetrii rozdělit do dvou různých proudů, protože žádný jednotlivý feed nám nedal celý obrázek.&lt;/p&gt;
&lt;h2 id=&quot;problém-telemetrie-agentů-je-roztříštěná&quot;&gt;Problém: telemetrie agentů je roztříštěná&lt;/h2&gt;
&lt;p&gt;Moderní kódovací agenti už nějakou telemetrii vysílají. To pomáhá, ale nestačí to.&lt;/p&gt;
&lt;p&gt;Nativní OTEL umí dobře odpovídat na otázky typu:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kolik požadavků jsme provedli?&lt;/li&gt;
&lt;li&gt;Kolik stála daná session?&lt;/li&gt;
&lt;li&gt;Kde jsou spany a trace?&lt;/li&gt;
&lt;li&gt;Vyskočila latence?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mnohem hůř odpovídá na otázky jako:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Na který MCP server se agent spoléhal nejvíc?&lt;/li&gt;
&lt;li&gt;Selhalo to v &lt;code&gt;Bash&lt;/code&gt;, ve vestavěném nástroji pro práci se soubory, nebo ve volání MCP?&lt;/li&gt;
&lt;li&gt;Který skill se skutečně aktivoval?&lt;/li&gt;
&lt;li&gt;Jaký typ subagenta byl vyslán?&lt;/li&gt;
&lt;li&gt;Dělala session užitečnou práci, nebo se jen bezcílně motala?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ta druhá skupina otázek stojí blíž hookům než trace.&lt;/p&gt;
&lt;p&gt;Platí ale i opak: některé z nejdůležitějších výkonnostních otázek stojí blíž trace než hookům.&lt;/p&gt;
&lt;p&gt;Pokud chcete vědět, kde se latence skutečně nakumulovala, které spany byly pomalé, nebo jestli session propálila čas ve voláních modelu, nebo v provádění nástrojů, potřebujete kromě sémantických eventů i data z trace.&lt;/p&gt;
&lt;h2 id=&quot;architektura-u-které-jsme-skončili&quot;&gt;Architektura, u které jsme skončili&lt;/h2&gt;
&lt;p&gt;Provozujeme dvě telemetrické cesty vedle sebe.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Claude Code&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  native OTEL -&amp;gt; Alloy -&amp;gt; Grafana Cloud&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  hooks        -&amp;gt; send_event.py -&amp;gt; Grafana Cloud Loki&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Codex&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  native OTEL -&amp;gt; Alloy -&amp;gt; Grafana Cloud&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  notify hook -&amp;gt; codex_notify.py -&amp;gt; shared Loki schema&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Toto rozdělení je záměrné.&lt;/p&gt;
&lt;p&gt;Je také asymetrické. Claude Code nám dává mnohem bohatší rozhraní hooků životního cyklu. Codex nám dává nativní OTEL plus notify rozhraní, takže méně podrobné události dokončení tahu normalizujeme do stejného schématu logů, místo abychom předstírali, že oba runtime nabízejí stejné kontrolní prvky.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nativní OTEL&lt;/strong&gt; nám dává základní proud: logy a trace ze samotného runtime, plus metriky tam, kde je runtime skutečně vysílá.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hook a notify eventy&lt;/strong&gt; nám dávají sémantickou vrstvu: věci jako &lt;code&gt;PreToolUse&lt;/code&gt;, &lt;code&gt;PostToolUse&lt;/code&gt;, &lt;code&gt;PostToolUseFailure&lt;/code&gt;, &lt;code&gt;UserPromptSubmit&lt;/code&gt;, &lt;code&gt;SubagentStop&lt;/code&gt;, &lt;code&gt;SkillActivated&lt;/code&gt; a klasifikovaná metadata, na kterých nám při ladění chování agentů skutečně záleží. Claude Code sem přispívá bohatším proudem eventů. Codex přispívá tenčím, ale pořád užitečným normalizovaným proudem.&lt;/p&gt;
&lt;h2 id=&quot;proč-hooky-vůbec-existují&quot;&gt;Proč hooky vůbec existují&lt;/h2&gt;
&lt;p&gt;Naše hook pipeline eventy obohacuje ještě předtím, než dorazí do Loki.&lt;/p&gt;
&lt;p&gt;Místo pouhého „nástroj proběhl“ klasifikujeme event do polí jako:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tool_type&lt;/code&gt;: builtin, mcp, skill, agent, bash&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mcp_server&lt;/code&gt;: který MCP backend volání zpracoval&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bash_cli&lt;/code&gt;: rodina shellového příkazu&lt;/li&gt;
&lt;li&gt;&lt;code&gt;subagent_type&lt;/code&gt;: jaký typ specialisty byl vyslán&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agent_tool&lt;/code&gt;: jestli zdroj byl Claude Code, nebo Codex&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To znamená, že si můžeme klást otázky, na kterých provozně záleží:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{service_name=&quot;claude-code-hooks&quot;} | agent_tool=&quot;codex-cli&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{service_name=&quot;claude-code-hooks&quot;} | tool_type=&quot;mcp&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{service_name=&quot;claude-code-hooks&quot;} | json | bash_cli=&quot;git&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To nejsou okrasná pole. Právě v nich spočívá rozdíl mezi „agent připadal pomalý“ a „agent strávil posledních deset minut intenzivní prací s operacemi gitu v shellu s vysokou mírou selhání nástrojů“.&lt;/p&gt;
&lt;p&gt;Jeden implementační detail, který vypadá podivněji, než ve skutečnosti je: sdílený proud Loki pořád používá &lt;code&gt;service_name=&quot;claude-code-hooks&quot;&lt;/code&gt; jako label, i když event pochází z Codexu. Skutečné rozdělení mezi runtimy probíhá na &lt;code&gt;agent_tool&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;proč-je-alloy-uprostřed&quot;&gt;Proč je Alloy uprostřed&lt;/h2&gt;
&lt;p&gt;Grafana Alloy v tomto nastavení není jen forwarder. Je to místo, kde se uplatňují pravidla pro telemetrii.&lt;/p&gt;
&lt;p&gt;Nativní OTEL proud z Claude Code a Codexu míříme na lokální Alloy proxy na &lt;code&gt;localhost:4318&lt;/code&gt; a necháme Alloy payload vyčistit, než ho přepošle do Grafana Cloud.&lt;/p&gt;
&lt;p&gt;Na tom záleží proto, že syrová telemetrie agentů je plná polí s vysokou kardinalitou, která jsou užitečná pro analýzu, ale hrozná jako indexované labely:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;session_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prompt_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;počty tokenů&lt;/li&gt;
&lt;li&gt;doby trvání&lt;/li&gt;
&lt;li&gt;blob s parametry nástrojů&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pokud indexujete všechno, dostanete explozi labelů a špatný den.&lt;/p&gt;
&lt;p&gt;Alloy pro nás tedy dělá tři věci:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Udržuje indexovanou jen velmi malou sadu labelů s nízkou kardinalitou.&lt;/li&gt;
&lt;li&gt;Přesouvá hlučná, ale užitečná pole do strukturovaných metadat.&lt;/li&gt;
&lt;li&gt;Úplně zahazuje čistý šum.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ta důležitá myšlenka je jednoduchá: &lt;strong&gt;pozoruj víc, indexuj méně&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;proč-hookový-proud-obchází-alloy&quot;&gt;Proč hookový proud obchází Alloy&lt;/h2&gt;
&lt;p&gt;Hookový proud je už tvarovaný pro Loki.&lt;/p&gt;
&lt;p&gt;V okamžiku, kdy &lt;code&gt;send_event.py&lt;/code&gt; odešle event, jsme už rozhodli, která pole si zaslouží zacházení jako label a která patří do strukturovaného JSON těla. Tento proud jde přímo do OTLP brány Grafana Cloud, místo aby procházel ještě jednou přes Alloy.&lt;/p&gt;
&lt;p&gt;Systém tak má jasné rozdělení práce:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alloy&lt;/strong&gt; krotí syrový nativní OTEL proud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Obohacení hooky&lt;/strong&gt; dělá sémantické eventy dotazovatelnými.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Díky tomu je architektura jednodušší, než kdybychom se snažili prohnat všechno jednou cestou.&lt;/p&gt;
&lt;h2 id=&quot;co-dashboard-skutečně-ukazuje&quot;&gt;Co dashboard skutečně ukazuje&lt;/h2&gt;
&lt;p&gt;Snímek obrazovky níže pochází z jednoho z observability dashboardů za naším agentním workflow. Není to benchmark a čísla jsou jen výřez v jednom okamžiku. Jde o tvar dat: activity feed, volání nástrojů, selhání, prompty a členění podle agenta, vestavěných nástrojů, použití MCP, shellových příkazů a skillů.&lt;/p&gt;
&lt;p&gt;Užitečné je, že tento dashboard žije na stejném Grafana stacku jako zbytek agentní telemetrie. Můžeme filtrovat podle zdrojového agenta a rodiny nástrojů a dívat se napříč runtimy, aniž bychom si pro každý systém vymýšleli jiný příběh observability.&lt;/p&gt;
&lt;figure class=&quot;feature-figure feature-figure--wide&quot;&gt;
  &lt;a
    href=&quot;https://maguyva.ai/blog/agent-observability-dashboard.png&quot;
    target=&quot;_blank&quot;
    rel=&quot;noreferrer&quot;
    aria-label=&quot;Otevřít snímek observability dashboardu v plném rozlišení&quot;
  &gt;
    &lt;img
      src=&quot;https://maguyva.ai/blog/agent-observability-dashboard.png&quot;
      alt=&quot;Grafana dashboard zobrazující activity feed, počty volání nástrojů, selhání, prompty a členění podle agentů, vestavěných nástrojů, použití MCP, CLI příkazů a skillů pro agentní workflow.&quot;
    /&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;
    Jeden z živých dashboardů za naším agentním workflow. Tento snímek je jen jeden výřez ze sdíleného Grafana stacku, který přijímá telemetrii i z našich dalších agentních runtimů a systémů. Klikněte na obrázek pro verzi v plném rozlišení.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;proč-na-trace-záleží-víc-než-se-na-první-pohled-zdá&quot;&gt;Proč na trace záleží víc, než se na první pohled zdá&lt;/h2&gt;
&lt;p&gt;Logy nám říkají, jaká kategorie práce proběhla. Trace nám říkají, jak se práce v čase odvíjela.&lt;/p&gt;
&lt;p&gt;Na tomto rozdílu v agentních systémech záleží, protože „pomalé“ je příliš tupý pojem na to, aby byl užitečný.&lt;/p&gt;
&lt;p&gt;Trace nám dokáže říct, jestli bolest pramenila z:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;latence modelu&lt;/li&gt;
&lt;li&gt;doby provádění nástrojů&lt;/li&gt;
&lt;li&gt;opakovaných pokusů&lt;/li&gt;
&lt;li&gt;jedné obzvlášť nákladné interakce s MCP&lt;/li&gt;
&lt;li&gt;dlouhého ocasu drobných operací, které samostatně vypadaly neškodně&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;V praxi používáme hookový proud a trace v Tempo společně.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hook logy&lt;/strong&gt; odpovídají na: jaký typ události nastal?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trace&lt;/strong&gt; odpovídají na: kam šel čas?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ta kombinace je to, co promění observabilitu z dashboardu ve vysvětlení.&lt;/p&gt;
&lt;h2 id=&quot;kam-zapadá-codex&quot;&gt;Kam zapadá Codex&lt;/h2&gt;
&lt;p&gt;Codex je součástí stejného stacku, ale není totožný s Claude Code.&lt;/p&gt;
&lt;p&gt;Pro Codex zapojujeme dvě části:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nativní OTEL z Codexu do Alloy&lt;/li&gt;
&lt;li&gt;Notify webhook do &lt;code&gt;codex_notify.py&lt;/code&gt;, který mapuje dokončení tahů do stejného schématu Loki, jaké používáme pro hook eventy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To nám dává jednotný filtr jako &lt;code&gt;agent_tool=&quot;codex-cli&quot;&lt;/code&gt; v rámci stejného proudu logů.&lt;/p&gt;
&lt;p&gt;Poctivá výhrada: notify payload Codexu je v současnosti tenčí než hookový payload Claude Code, protože nejde o stejný typ integračního rozhraní. V našem dnešním nastavení se dokončení tahů Codexu dají normalizovat do sdíleného schématu, ale bohatá extrakce nástroj po nástroji je pořád lepší v nativním OTEL proudu než v notify mostu.&lt;/p&gt;
&lt;p&gt;To není důvod se tomuto příspěvku vyhýbat. Je to jeho smysl. Skutečné observability systémy se sestavují z nedokonalých signálů.&lt;/p&gt;
&lt;h2 id=&quot;grafana-přes-mcp-mění-hru&quot;&gt;Grafana přes MCP mění hru&lt;/h2&gt;
&lt;p&gt;Větší posun je v tom, že Grafana není jen místo, kam lidé chodí přes prohlížeč.&lt;/p&gt;
&lt;p&gt;V tomto repozitáři vystavujeme Grafanu i přes MCP. To znamená, že agent umí dotazovat Loki, Prometheus a Tempo přímo, místo aby čekal, až člověk nejdřív ručně prohlédne dashboardy.&lt;/p&gt;
&lt;p&gt;To mění observabilitu v aktivní vstup do workflow.&lt;/p&gt;
&lt;p&gt;Agent se může zeptat:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Které rodiny nástrojů selhávaly nejvíc za poslední hodinu?&lt;/li&gt;
&lt;li&gt;Který MCP server v session dominoval?&lt;/li&gt;
&lt;li&gt;Snížily nedávné změny počet selhání nástrojů, nebo jen přesunuly práci do cest náročnějších na shell se stejnými chybami?&lt;/li&gt;
&lt;li&gt;Které trace ukazují nejvyšší latenci nebo opakované pokusy?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Jakmile tohle máte, jste velmi blízko smyčce sebezlepšování.&lt;/p&gt;
&lt;h2 id=&quot;od-dashboardu-ke-zpětnovazební-smyčce&quot;&gt;Od dashboardu ke zpětnovazební smyčce&lt;/h2&gt;
&lt;p&gt;Toto je část, kterou považujeme za nejzajímavější.&lt;/p&gt;
&lt;p&gt;Jakmile je observability stack dotazovatelný z vrstvy agenta, telemetrie přestává být pasivní reportovací plochou a stává se řídicím signálem.&lt;/p&gt;
&lt;p&gt;Smyčka vypadá takto:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Aktivita agenta vysílá trace, metriky a obohacené hook logy.&lt;/li&gt;
&lt;li&gt;Grafana ukládá důkazy do Loki, Tempo a Prometheus tam, kde metriky existují.&lt;/li&gt;
&lt;li&gt;Agenti se na tyto důkazy dotazují přes Grafana MCP.&lt;/li&gt;
&lt;li&gt;Systém identifikuje špatný mix nástrojů, křehké skilly, slabé směrování nebo workflow náročné na shell, které pořád produkují chyby, jimž se dalo vyhnout.&lt;/li&gt;
&lt;li&gt;Agenti nebo operátoři upravují prompty, konfigurace agentů, popisy skillů, pravidla směrování nebo přístup k nástrojům.&lt;/li&gt;
&lt;li&gt;Další session vyprodukuje nový tvar telemetrie a cyklus se opakuje.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Takhle se posunete od „zajímavého dashboardu“ k „měřitelnému systému zlepšování“.&lt;/p&gt;
&lt;p&gt;Cílem není maximalizovat jednu kategorii nástrojů. Cílem je najít správný mix CLI, vestavěných nástrojů, volání MCP a skillů pro práci, která se skutečně dělá.&lt;/p&gt;
&lt;h2 id=&quot;co-nám-to-umožňuje-zodpovědět&quot;&gt;Co nám to umožňuje zodpovědět&lt;/h2&gt;
&lt;p&gt;Jakmile oba runtime přistanou ve stejném Grafana stacku, umíme mnohem rychleji odpovídat na provozní otázky:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jsou selhání koncentrovaná v jedné rodině nástrojů?&lt;/li&gt;
&lt;li&gt;Vytvářejí workflow náročné na shell chyby, kterým by se šlo vyhnout tam, kde by měl existovat nástroj vyšší úrovně?&lt;/li&gt;
&lt;li&gt;Které MCP servery nesou většinu zátěže?&lt;/li&gt;
&lt;li&gt;Platíme za aktivitu agenta, která neprodukuje smysluplný pokrok?&lt;/li&gt;
&lt;li&gt;Je session nezdravá kvůli modelu, nástrojům, nebo orchestrační vrstvě?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To je obzvlášť užitečné ve víceagentních workflow, kde vám „agent byl zaneprázdněný“ neřekne skoro nic.&lt;/p&gt;
&lt;p&gt;Pokud je jeden specialista pořád vysílán a produkuje vysokou míru selhání, jde o problém směrování nebo formulace promptu.&lt;/p&gt;
&lt;p&gt;Pokud jeden MCP server dominuje všem voláním, může to být dobrá architektura, nebo signál, že všechno ostatní je mrtvá váha.&lt;/p&gt;
&lt;p&gt;Pokud selhání nástrojů rostou, zatímco náklady zůstávají vysoké, máte provozní problém, ne problém kvality.&lt;/p&gt;
&lt;p&gt;Pokud práce v shellu pořád selhává předvídatelně a vyhnutelně tam, kde by měl existovat nástroj vyšší úrovně, jde o produktový signál.&lt;/p&gt;
&lt;p&gt;Pokud se jeden skill neustále aktivuje, ale výsledky nezlepšuje, jde o signál k promptu nebo směrování.&lt;/p&gt;
&lt;h2 id=&quot;skutečné-ponaučení&quot;&gt;Skutečné ponaučení&lt;/h2&gt;
&lt;p&gt;Hlubší ponaučení je, že observabilita agentů potřebuje jak &lt;strong&gt;telemetrii runtime&lt;/strong&gt;, tak &lt;strong&gt;telemetrii workflow&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Telemetrie runtime vám řekne, co systém udělal.&lt;/p&gt;
&lt;p&gt;Telemetrie workflow vám řekne, co si agent myslel, že dělá.&lt;/p&gt;
&lt;p&gt;Potřebujeme obojí.&lt;/p&gt;
&lt;p&gt;Pokud si necháváte jen trace a čítače, přijdete o sémantickou vrstvu. Pokud si necháváte jen hook eventy, přijdete o latenci, spany a širší obrázek runtime.&lt;/p&gt;
&lt;p&gt;A pokud si necháváte obojí, ale nikdy je nezapojíte zpět do vrstvy agenta, máte monitoring, ne adaptaci.&lt;/p&gt;
&lt;p&gt;Kombinace je to, co dělá systém dostatečně vysvětlitelným na provoz a dostatečně laditelným na zlepšování.&lt;/p&gt;
&lt;h2 id=&quot;co-je-pořád-nedokonalé&quot;&gt;Co je pořád nedokonalé&lt;/h2&gt;
&lt;p&gt;Pořád tu jsou hrubé hrany.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ne každý hook event obsahuje data o délce trvání a tokenech, jaká bychom chtěli.&lt;/li&gt;
&lt;li&gt;Některé z nejlepších pohledů na časování pořád pocházejí z Tempo trace, ne z hook logů.&lt;/li&gt;
&lt;li&gt;Codex je dnes v obohaceném proudu eventů sémanticky chudší než Claude Code.&lt;/li&gt;
&lt;li&gt;Snímek dashboardu je živý provozní povrch, ne vypulírovaný marketingový artefakt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tenhle poslední bod je záměrný. Radši ukážeme skutečný přístrojový panel, než abychom předstírali, že agentní systémy se magicky vysvětlují samy.&lt;/p&gt;
&lt;h2 id=&quot;proč-na-tom-u-maguyva-záleží&quot;&gt;Proč na tom u Maguyva záleží&lt;/h2&gt;
&lt;p&gt;Maguyva má agentům dávat lepší inteligenci nad kódem. Ale jakmile agenti skutečně dělají užitečnou práci, okamžitě se objeví nový požadavek: potřebujete vidět, jak se chovají.&lt;/p&gt;
&lt;p&gt;Kvalita vyhledávání, kvalita směrování, výběr nástrojů a efektivita kontextu se všechny stávají oblastmi, které lze sledovat.&lt;/p&gt;
&lt;p&gt;Proto si myslíme, že o tom stojí za to psát. Budoucí agentní stack nejsou jen prompty a nástroje. Jsou to prompty, nástroje a instrumentační vrstva, která vám řekne, jestli to celé funguje.&lt;/p&gt;
&lt;p&gt;Pokud stavíte seriózní agentní workflow, observabilita není volitelná infrastruktura. Je součástí produktu.&lt;/p&gt;
</content:encoded><category>Observability</category><category>Grafana</category><category>OpenTelemetry</category><category>Architecture</category></item><item><title>Mining smyčky: jak se ze změn stává institucionální paměť</title><link>https://maguyva.ai/cs/blog/mining-workflow-closing-the-loop</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/mining-workflow-closing-the-loop</guid><description>Git commity se mění na strukturované záznamy changelogu a architektonická rozhodnutí, a ty se pak vrací zpátky do AI agentů jako dotazovatelná institucionální paměť.</description><pubDate>Tue, 03 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Čísla v tomto příspěvku odrážejí stav systému v době zveřejnění (únor 2026). Aktuální čísla najdete na naší &lt;a href=&quot;https://maguyva.ai/cs/team&quot;&gt;stránce týmu&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Každý inženýrský tým čelí stejné výzvě: změny se dějí neustále, ale důvody těchto změn se ztrácejí. O půl roku později se někdo zeptá „proč jsme pro pipeline stages přešli na DuckDB?“ a odpověď žije jen v hlavě toho, kdo to rozhodnutí udělal — pokud je ještě poblíž.&lt;/p&gt;
&lt;p&gt;Postavili jsme mining workflow, který tuhle smyčku uzavírá. Změny proudí přes git commity, zpracuje je naše mining pipeline, promění se na strukturované záznamy changelogu a architektonická rozhodnutí a pak se vrátí zpátky do našich AI agentů přes CLI dotazy. Výsledek: institucionální paměť, ke které mají přístup lidé i AI.&lt;/p&gt;
&lt;h2 id=&quot;problém-rozhodnutí-se-vypařují&quot;&gt;Problém: rozhodnutí se vypařují&lt;/h2&gt;
&lt;p&gt;Zvažte typický scénář. Vývojář commitne:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;feat(canonical): add DuckDB runtime for pipeline stages&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tenhle commit představuje významnou architektonickou volbu. Tým vyhodnotil možnosti, zvážil kompromisy a rozhodl se pro DuckDB z konkrétních důvodů. Ale celý ten kontext žije v:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vlákně na Slacku (pravděpodobně smazaném)&lt;/li&gt;
&lt;li&gt;Něčí paměti (rozhodně blednoucí)&lt;/li&gt;
&lt;li&gt;Komentáři v kódu (možná, pokud máte štěstí)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O tři měsíce později se nový člen týmu zeptá: „Mám pro tenhle nový stage použít DuckDB, nebo SQLite?“ Bez institucionální paměti buď znovu vynalézají kolo, nebo dělají nekonzistentní rozhodnutí.&lt;/p&gt;
&lt;h2 id=&quot;smyčka-od-commitů-ke-kontextu&quot;&gt;Smyčka: od commitů ke kontextu&lt;/h2&gt;
&lt;p&gt;Náš mining workflow proměňuje historii gitu na dotazovatelné znalosti:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Git Commits&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  mine sync          │  ← Build index from git history&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  mine candidates    │  ← Surface commits for review&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  Classification     │  ← Human or LLM assessment&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  (changelog or ADR) │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├──────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼                      ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────┐    ┌───────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ Changelog   │    │ Decisions     │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ Ledger      │    │ Registry      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ (JSONL)     │    │ (YAML files)  │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────┘    └───────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │                      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼                      ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────┐    ┌───────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ CHANGELOG.md│    │ orkestra CLI  │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ per package │    │ queries       │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────┘    └───────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │                      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    └──────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;              │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;              ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      ┌───────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      │ AI Agents     │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      │ (via CLI)     │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      └───────────────┘&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Klíčový postřeh: changelogy i architektonická rozhodnutí plynou ze stejné historie gitu, zpracované jednotnou pipeline. Díky tomu nic nezapadne.&lt;/p&gt;
&lt;h2 id=&quot;jak-mining-funguje&quot;&gt;Jak mining funguje&lt;/h2&gt;
&lt;h3 id=&quot;krok-1-synchronizace-indexu&quot;&gt;Krok 1: Synchronizace indexu&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tenhle příkaz proskenuje historii gitu a postaví index všech commitů. Z každého commitu extrahuje strukturované signály:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Typ konvenčního commitu (&lt;code&gt;feat&lt;/code&gt;, &lt;code&gt;fix&lt;/code&gt;, &lt;code&gt;chore&lt;/code&gt;, &lt;code&gt;docs&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Scope (který balíček nebo oblast)&lt;/li&gt;
&lt;li&gt;Značky breaking change&lt;/li&gt;
&lt;li&gt;Dotčené soubory a metriky složitosti&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;krok-2-kontrola-stavu-pokrytí&quot;&gt;Krok 2: Kontrola stavu pokrytí&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Takhle vypadá náš aktuální stav:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Mining Status&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;=============&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Decisions&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;---------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  Coverage:        100.0%&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Processed:     15637  (of 15637)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Extracted:       476&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Skipped:       15161&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Changelog&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;---------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  Coverage:        100.0%&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Processed:     15637  (of 15637)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Released:       6799&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Skipped:        8838&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;15 637 zpracovaných commitů. 476 se stalo architektonickými rozhodnutími. 6 799 se stalo záznamy changelogu. Každý commit je klasifikovaný.&lt;/p&gt;
&lt;h3 id=&quot;krok-3-získání-kandidátů-k-review&quot;&gt;Krok 3: Získání kandidátů k review&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; candidates&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --limit&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 50&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --full&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tím se zobrazí commity, které ještě nebyly zpracované, s plným kontextem pro klasifikaci:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;90571786d99166c0039ca2e80e4d9cd96184bd85&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;date&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-26&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;subject&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;feat(canonical): add DuckDB runtime for pipeline stages&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;signals&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;commit_type&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;feat&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;scope&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;canonical&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;breaking&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;is_releasable_type&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;domains_affected&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;pipeline&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;data-architecture&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;body&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Establishes DuckDB as canonical in-process analytical database...&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;files_changed&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/canonical/pipelines/stages/duckdb_runtime.py&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;stats&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;files&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;insertions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;450&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;deletions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;120&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Signály pomáhají vést klasifikaci: &lt;code&gt;is_releasable_type: true&lt;/code&gt; naznačuje, že by se to mělo objevit v changelogu. Velké množství přidaných řádků a soubory infrastruktury naznačují, že by to mohlo být i architektonické rozhodnutí.&lt;/p&gt;
&lt;h3 id=&quot;krok-4-klasifikace-commitů&quot;&gt;Krok 4: Klasifikace commitů&lt;/h3&gt;
&lt;p&gt;Tady se cesty rozdvojují: záznamy changelogu a architektonická rozhodnutí.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pro záznamy changelogu:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; classify&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; abc123&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --changelog&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; added&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tím se zaznamená, že by se commit &lt;code&gt;abc123&lt;/code&gt; měl objevit v changelogu pod kategorií „Added“.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pro architektonická rozhodnutí:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nejdřív získejte skutečné ID rozhodnutí:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --domain&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; pipeline&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --dry-run&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Returns: DEC-PL-143&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pak klasifikujte s tímto ID rozhodnutí:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; classify&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; abc123&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --decision&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; DEC-PL-143&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tím se commit propojí se záznamem rozhodnutí, který se vytvoří nebo aktualizuje.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pro dávkové zpracování (co ve skutečnosti děláme):&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Generate classifications file with LLM assistance&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; commit&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --input&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; classifications.jsonl&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Formát JSONL podporuje obě domény v jednom průchodu:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;jsonl&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;abc123&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;changelog&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;action&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;release&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;category&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;added&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;summary&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Add DuckDB runtime for pipeline stages&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;abc123&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;decisions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;action&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;extract&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;decision_id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;DEC-PL-142&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;def456&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;changelog&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;action&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;skip&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;reason&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Chore: dependency update&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;krok-5-vykreslení-výstupů&quot;&gt;Krok 5: Vykreslení výstupů&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; changelog&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; render&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --package&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;pk&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;g&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tím se z ledgeru vygenerují soubory &lt;code&gt;CHANGELOG.md&lt;/code&gt; pro jednotlivé balíčky. Changelogy jsou odvozené artefakty — smažte je a dokonale se znovu vygenerují ze zdrojového ledgeru.&lt;/p&gt;
&lt;h2 id=&quot;struktura-záznamu-rozhodnutí&quot;&gt;Struktura záznamu rozhodnutí&lt;/h2&gt;
&lt;p&gt;Extrahovaná rozhodnutí se stávají YAML soubory s bohatými metadaty:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;DEC-PL-142&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Adopt DuckDB as Canonical Processing Runtime for Pipeline Stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;domain&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;pipeline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;active&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;created&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;2026-01-26&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;summary&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  Establishes DuckDB as the canonical in-process analytical database for pipeline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  stage transformations. Provides a shared runtime module that resolves settings&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  from pipeline defaults with stage-level overrides.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  Pipeline stages performing data transformations each independently configured&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  DuckDB connections. This led to inconsistent settings, duplicated configuration&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  code, and no way to tune DuckDB globally for a pipeline run.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;DuckDB provides efficient in-process OLAP with zero configuration deployment&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Centralized runtime module eliminates duplicated DuckDB setup across stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Hierarchical settings enable global tuning with stage-level overrides&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Memory limits and thread counts can be adjusted per-pipeline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;impact&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  positive&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Consistent DuckDB configuration across all pipeline stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Single point of control for memory/thread tuning&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Reduced code duplication in conversion and export stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  negative&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Adds dependency on shared runtime module&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Stages must adopt new configuration pattern&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;source_commits&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;sha&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;90571786d99166c0039ca2e80e4d9cd96184bd85&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    message&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;feat(canonical): add DuckDB runtime for pipeline stages&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;2026-01-26&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    role&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;primary&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;files&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/canonical/pipelines/stages/duckdb_runtime.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/canonical/pipelines/runner.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/canonical/pipelines/stages/convert_hdx_admin_boundaries_to_geoparquet.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;related&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;DEC-DA-014&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # Data architecture decisions that influenced this&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Každé rozhodnutí odkazuje zpátky na své zdrojové commity. Každé rozhodnutí specifikuje, které soubory ovlivňuje. Vztahy mezi rozhodnutími jsou explicitní.&lt;/p&gt;
&lt;h2 id=&quot;integrace-s-cli-dotazování-institucionální-paměti&quot;&gt;Integrace s CLI: dotazování institucionální paměti&lt;/h2&gt;
&lt;p&gt;Tady se smyčka uzavírá. Agenti mohou rozhodnutí dotazovat přes CLI:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Search by topic&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --query&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;retry&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vrátí rozhodnutí o retry logice, zpracování chyb a vzorcích zotavení.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Get full details on a specific decision&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; DEC-PL-142&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vrátí kompletní záznam rozhodnutí s kontextem, zdůvodněním a dopadem.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# List recent decisions for context&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --limit&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 15&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ukáže, jaká architektonická rozhodnutí byla nedávno učiněna.&lt;/p&gt;
&lt;h3 id=&quot;jak-to-agenti-používají&quot;&gt;Jak to agenti používají&lt;/h3&gt;
&lt;p&gt;Základní instrukce našeho orchestrátoru zahrnují:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;markdown&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8;font-weight:bold&quot;&gt;**Essential CLI commands:**&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; `orkestra registry decisions search &quot;X&quot;`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; — Find architectural decisions&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Když je agent požádán, aby implementoval něco souvisejícího s DuckDB, může nejdřív zkontrolovat:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --query&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;DuckDB&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A objevit DEC-PL-142, kde se dozví:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Proč jsme zvolili DuckDB (kontext)&lt;/li&gt;
&lt;li&gt;Jak ho správně používat (agent_guidance)&lt;/li&gt;
&lt;li&gt;Do kterých souborů se podívat (files)&lt;/li&gt;
&lt;li&gt;Jaká související rozhodnutí existují (related)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Agent nevynalézá znovu kolo. Staví na zavedených vzorcích.&lt;/p&gt;
&lt;h2 id=&quot;test-tří-otázek&quot;&gt;Test tří otázek&lt;/h2&gt;
&lt;p&gt;Ne každý commit si zaslouží záznam rozhodnutí. K filtrování používáme test tří otázek:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Bylo těžké toto rozhodnutí přijmout?&lt;/strong&gt; Vyžadovalo to významnou analýzu, vyhodnocení kompromisů nebo debatu?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Je nákladné to změnit?&lt;/strong&gt; Vyžadovalo by zvrácení tohoto rozhodnutí významnou práci navíc?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Má to celosystémový dopad?&lt;/strong&gt; Ovlivňuje to více balíčků, nebo zakládá vzorce, kterými se budou řídit další?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pokud commit na aspoň jednu z těchto otázek odpoví „ano“, je kandidátem na extrakci rozhodnutí. Náš typický poměr: 1–4 rozhodnutí na 100 commitů (zhruba 1–4 %).&lt;/p&gt;
&lt;p&gt;U záznamů changelogu je laťka nižší: zaznamená se každá změna viditelná pro uživatele (funkce, opravy, vylepšení). Interní úklid, aktualizace dokumentace a refaktoring se obvykle přeskočí. Náš typický poměr: 30–50 záznamů changelogu na 100 commitů.&lt;/p&gt;
&lt;h2 id=&quot;ukládání-dat-append-only-ledgery&quot;&gt;Ukládání dat: append-only ledgery&lt;/h2&gt;
&lt;p&gt;Mining systém používá append-only JSONL ledgery pro bezkonfliktní operace více agentů najednou:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;packages/orchestration/ai_assets/reference/changelog/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── commits_processed.jsonl  # Classification ledger (both domains)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── release_notes.jsonl      # Changelog entries&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── commits_index.yaml       # Derived index (gitignored)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;packages/orchestration/ai_assets/reference/decisions/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── registry.yaml            # Decision index&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── records/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├── DEC-AD-001.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├── DEC-AD-002.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    └── ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Formát JSONL s &lt;code&gt;merge=union&lt;/code&gt; v &lt;code&gt;.gitattributes&lt;/code&gt; znamená, že více agentů může klasifikovat commity současně bez merge konfliktů. Každý řádek je nezávislý.&lt;/p&gt;
&lt;h2 id=&quot;validační-brány&quot;&gt;Validační brány&lt;/h2&gt;
&lt;p&gt;Před každou mining session spouštíme validaci:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; validate&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --quick&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ta kontroluje:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Platnost formátu SHA&lt;/li&gt;
&lt;li&gt;Shodu s formátem ID rozhodnutí&lt;/li&gt;
&lt;li&gt;Žádné duplicitní záznamy pro stejné SHA&lt;/li&gt;
&lt;li&gt;Že odkazovaná rozhodnutí skutečně existují&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Po klasifikaci validujeme znovu, ještě než změny commitneme.&lt;/p&gt;
&lt;h2 id=&quot;proč-na-tom-záleží&quot;&gt;Proč na tom záleží&lt;/h2&gt;
&lt;p&gt;Zpětnovazební smyčka, kterou jsme postavili, řeší několik problémů:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pro nové členy týmu:&lt;/strong&gt; Místo aby se ptali „proč jsme udělali X?“, mohou prohledat registr rozhodnutí. Kontext je zachovaný.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pro AI agenty:&lt;/strong&gt; Neoperují ve vakuu. Mohou se dotázat na institucionální znalosti dřív, než dají doporučení. Když jsou požádáni o přidání nového stage do pipeline, mohou objevit vzorec DuckDB a řídit se jím.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pro architektonickou konzistenci:&lt;/strong&gt; Rozhodnutí jsou explicitní a prohledatelná. Když někdo navrhne přístup, který odporuje existujícímu rozhodnutí, systém dokáže konflikt vynést na povrch.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pro generování changelogu:&lt;/strong&gt; Poznámky k vydání nejsou honička na poslední chvíli. Jsou vedlejším produktem průběžné klasifikace během vývoje.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pro onboarding:&lt;/strong&gt; Noví agenti dědí plný kontext kódové základny. Nevidí jen kód — vidí i rozhodnutí, která ho utvářela.&lt;/p&gt;
&lt;h2 id=&quot;aktuální-stav&quot;&gt;Aktuální stav&lt;/h2&gt;
&lt;p&gt;K dnešnímu dni:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;15 637 commitů&lt;/strong&gt; zpracováno přes pipeline&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;476 architektonických rozhodnutí&lt;/strong&gt; extrahováno a zdokumentováno&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6 799 záznamů changelogu&lt;/strong&gt; zaznamenáno&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;100% pokrytí&lt;/strong&gt; napříč oběma doménami&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Každý commit od chvíle, kdy jsme začali, je klasifikovaný. Institucionální paměť je kompletní a dotazovatelná.&lt;/p&gt;
&lt;h2 id=&quot;jak-začít&quot;&gt;Jak začít&lt;/h2&gt;
&lt;p&gt;Pokud chcete implementovat něco podobného:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Začněte s konvenčními commity.&lt;/strong&gt; Mining pipeline funguje nejlépe, když mají commity strukturované prefixy (&lt;code&gt;feat:&lt;/code&gt;, &lt;code&gt;fix:&lt;/code&gt;, &lt;code&gt;chore:&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Definujte své domény.&lt;/strong&gt; My používáme domény jako &lt;code&gt;pipeline&lt;/code&gt;, &lt;code&gt;agent-design&lt;/code&gt;, &lt;code&gt;observability&lt;/code&gt;, &lt;code&gt;data-modeling&lt;/code&gt;. Ty organizují rozhodnutí podle oblasti.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vybudujte si návyk klasifikace.&lt;/strong&gt; Mining funguje, když týmy pravidelně commity klasifikují. Dávkové zpracování s asistencí LLM pomáhá škálovat.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Udělejte rozhodnutí dotazovatelná.&lt;/strong&gt; Hodnota roste s tím, jak agenti mohou rozhodnutí prohledávat přes CLI. Strukturujte svůj výstup pro strojové zpracování.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Uzavřete smyčku.&lt;/strong&gt; Rozhodnutí by měla ovlivňovat budoucí práci. Zahrňte odkazy na rozhodnutí do instrukcí pro agenty a checklistů pro code review.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cílem není dokonalá dokumentace. Je to zpřístupnění důvodů těchto změn lidem i AI, dnes i za šest měsíců. Když se změny stanou institucionální pamětí, týmy stavějí na zavedených vzorcích místo toho, aby je znovu vynalézaly.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Mining workflow je součástí našeho orchestračního enginu, konkrétně modulu kontextového enginu v našem orchestračním balíčku.&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Workflows</category></item><item><title>Mining skillů: od 3 500 kandidátů k 466 schopnostem</title><link>https://maguyva.ai/cs/blog/skill-mining-3500-and-counting</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/skill-mining-3500-and-counting</guid><description>Prověřili jsme 3 500 kandidátů na skilly a přijali 466. Systematická smyčka těžby a příjmu pro stavbu koherentní knihovny skillů AI agentů ve velkém měřítku.</description><pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Čísla v tomto příspěvku odrážejí stav systému v době zveřejnění (leden 2026). Aktuální čísla najdete na naší &lt;a href=&quot;https://maguyva.ai/cs/team&quot;&gt;stránce týmu&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;problém-3-500-skillů&quot;&gt;Problém 3 500 skillů&lt;/h2&gt;
&lt;p&gt;Když jsme začali stavět systém orchestrace agentů, narazili jsme na zajímavou výzvu: v AI ekosystému jsou rozprostřeny tisíce potenciálních skillů. Repozitáře na GitHubu, dokumentace dodavatelů, komunitní projekty, interní vzorce — skilly existují všude. Ale na kterých záleží? Které fungují? A jak si udržíte koherentní knihovnu skillů, kterou agenti skutečně dokážou používat?&lt;/p&gt;
&lt;p&gt;Naše odpověď: systematická smyčka těžby a příjmu.&lt;/p&gt;
&lt;h2 id=&quot;čísla-dnes&quot;&gt;Čísla dnes&lt;/h2&gt;
&lt;p&gt;Něco přes tři měsíce po tom, co Anthropic 16. října 2025 spustil Agent Skills, takhle jsme na tom byli ve chvíli, kdy byl tento příspěvek publikován 27. ledna 2026:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metrika&lt;/th&gt;
&lt;th&gt;Počet&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Identifikovaní kandidáti&lt;/td&gt;
&lt;td&gt;3 500+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Přijaté skilly&lt;/td&gt;
&lt;td&gt;466&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skilly od dodavatelů&lt;/td&gt;
&lt;td&gt;373&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interní skilly&lt;/td&gt;
&lt;td&gt;93&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aktivní dodavatelé&lt;/td&gt;
&lt;td&gt;25+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Průměrný počet tokenů na skill&lt;/td&gt;
&lt;td&gt;2 834&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Referencované nástroje&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unikátní tagy&lt;/td&gt;
&lt;td&gt;635&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Prošli jsme přes 3 500 kandidátů na skilly. Přijali jsme 466. To je 13% míra přijetí — a ta selektivita je záměrná.&lt;/p&gt;
&lt;h2 id=&quot;systém-znalostních-vrstev&quot;&gt;Systém znalostních vrstev&lt;/h2&gt;
&lt;p&gt;Ne všechny skilly jsou si rovny. Organizujeme je do pěti znalostních vrstev (K0–K4), z nichž každá představuje jiný rozsah použitelnosti.&lt;/p&gt;
&lt;h3 id=&quot;k0-foundations-univerzální&quot;&gt;K0: Foundations (univerzální)&lt;/h3&gt;
&lt;p&gt;Skilly, které by měl mít každý agent. Představují schopnosti „dobrého myslitele“, které fungují kdekoliv.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;foundations/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── test-first-discipline       # TDD: Red-Green-Refactor&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── evidence-based-completion   # Verify before claiming done&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── systematic-debugging        # Root cause methodology&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── structured-planning         # Break work into tasks&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── context-budget-awareness    # Manage token consumption&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Skilly K0 jsou přenositelné do jakéhokoliv projektu, jakékoliv domény, jakéhokoliv stacku. Kódují univerzální kognitivní vzorce.&lt;/p&gt;
&lt;h3 id=&quot;k1-identities-disciplína&quot;&gt;K1: Identities (disciplína)&lt;/h3&gt;
&lt;p&gt;Skilly „dobrého inženýra“ nebo „dobrého výzkumníka“, které platí napříč projekty v rámci disciplíny.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;identities/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── research-workflows          # Multi-source research&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── web-extraction-playbook     # Content extraction&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── code-review                 # PR review patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── cli-interface-standards     # CLI design patterns&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;k2-domains-oborová-expertíza&quot;&gt;K2: Domains (oborová expertíza)&lt;/h3&gt;
&lt;p&gt;Skilly „dobrého databázového experta“ nebo „dobrého bezpečnostního inženýra“ přenositelné v rámci oboru.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;domains/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── schema-migration-workflow   # Safe migration patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── rpc-validation-checklist    # RPC health checks&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── auth-validation-checklist   # JWT/OAuth patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── secrets-audit-checklist     # Credential scanning&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;k3-stacks-technologie&quot;&gt;K3: Stacks (technologie)&lt;/h3&gt;
&lt;p&gt;Skilly „dobrého uživatele Supabase“ nebo „dobrého vývojáře pro Cloudflare“ pro konkrétní technologické stacky.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;stacks/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── maguyva-quickstart          # Our semantic search patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── cloudflare-deployment       # Workers/Pages deployment&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── mcp-tool-best-practices     # MCP tool selection&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;k4-project-organizace&quot;&gt;K4: Project (organizace)&lt;/h3&gt;
&lt;p&gt;Skilly specifické pro naši organizaci a naše workflow.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;project/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── agent-creation-workflow     # How we build agents&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── skill-authoring-workflow    # How we write skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── mining-session-workflow     # This very process&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── vendor-skill-evaluation     # Evaluation rubrics&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;smyčka-těžby&quot;&gt;Smyčka těžby&lt;/h2&gt;
&lt;h3 id=&quot;fáze-1-objevování&quot;&gt;Fáze 1: Objevování&lt;/h3&gt;
&lt;p&gt;Skilly přicházejí odevšad:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Repozitáře dodavatelů&lt;/strong&gt;: AWS, Anthropic, Cloudflare, Supabase a přispěvatelé z komunity publikují kolekce skillů. Sledujeme 25+ kořenů dodavatelů.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Komunitní projekty&lt;/strong&gt;: GitHub je plný šablon pro Claude Code, vzorců agentů a definic workflow.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interní vzorce&lt;/strong&gt;: Jak náš tým řeší problémy, vynořují se vzorce. Ty se formalizují do skillů.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Těžba dokumentace&lt;/strong&gt;: Technická dokumentace často obsahuje implicitní skilly — postupy, checklisty, rozhodovací stromy.&lt;/p&gt;
&lt;p&gt;Objevování je nepřetržité. K sledování kandidátů před formálním vyhodnocením používáme backlog skillů.&lt;/p&gt;
&lt;h3 id=&quot;fáze-2-vyhodnocení&quot;&gt;Fáze 2: Vyhodnocení&lt;/h3&gt;
&lt;p&gt;Každý kandidát se hodnotí podle stejných kritérií:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;adoption_criteria&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;fills_real_gap&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;      # We lack this capability&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;well_structured&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Progressive disclosure&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;actively_maintained&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt; # Commits in last 6 months&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;portable&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;            # Not hyper-specific&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;tested&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;              # Evidence of usage&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Všech pět produktových kritérií musí projít. Proto je 87 % kandidátů odmítnuto.&lt;/p&gt;
&lt;p&gt;Pak každý kandidát prochází samostatným review důvěryhodnosti. Oficiální repozitář dodavatele, známého komunitního maintainera a náhodný repozitář na GitHubu nepovažujeme za rovnocenné zdroje pravdy.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;trust_review&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  vendor_credibility&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;ownership_verified&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;       # Official vendor, known maintainer, or internal source&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;maintenance_signal&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;       # Recent commits, issue response, release history&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adoption_signal&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Evidence of real use, stars alone are not enough&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;provenance_clear&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;         # We can trace where the skill came from&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  prompt_injection_scan&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;hidden_instruction_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt; # Buried &quot;ignore previous instructions&quot; patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;exfiltration_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;       # Prompts that try to leak files, secrets, or context&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;authority_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Claims of priority over system or developer rules&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  script_audit&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;inspect_scripts&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Read shell/python/js helpers before adoption&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;network_and_exec_review&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # curl|bash, remote downloads, subprocess execution&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;file_and_secret_review&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;   # Env vars, credential access, broad file writes&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;destructive_action_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt; # rm, reset, overwrite, or unsafe automation&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Důvěryhodní dodavatelé dostanou lehčí review provenience, ale ne výjimku z kontroly. Nedůvěryhodné nebo neznámé zdroje dostanou hlubší ruční audit a přiložené skripty nespouštíme, dokud nejsou přečtené, ohraničené rozsahem a klasifikované jako bezpečné.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Analýza mezer&lt;/strong&gt;: Před přijetím prohledáme náš registr:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; skills&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;&amp;lt;capability&amp;gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pokud to už máme, nepotřebujeme to. Pokud máme něco blízkého, možná to spíš sloučíme, než abychom to přijímali.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Skórování hloubky a standardů&lt;/strong&gt;: Skórujeme také, jak plně kandidát využívá model agent-skill. Osamocený &lt;code&gt;SKILL.md&lt;/code&gt; může být pořád užitečný, ale hlubší skilly jsou cennější, když oddělují instrukce od referencí, skriptů a assetů tak, jak to podporuje &lt;code&gt;agentskills.io&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;skill_depth&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;SKILL.md only&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;                     # Single instruction file&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;SKILL.md + strong description&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Clear triggers and scope&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_3&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adds references/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;                  # Load docs only when needed&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_4&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adds atomic scripts/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;              # Small, reviewable helpers&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adds assets/examples/templates&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;    # Full progressive disclosure&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;depth_signals&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;standards_adherence&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;        # Structure aligns with agentskills.io conventions&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;reference_quality&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Curated references, not giant context dumps&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;script_atomicity&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;           # Focused helpers, not opaque monoliths&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;tool_boundary_clarity&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;      # Clear limits on what the skill can execute&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;community_signal&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;           # Stars/forks/users help, but only as a weak boost&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hvězdičky na GitHubu dokážou skóre důvěryhodnosti trochu zvednout, ale nikdy nezachrání mělký nebo nebezpečný skill. Repozitář s mnoha hvězdami a jedním vágním &lt;code&gt;SKILL.md&lt;/code&gt; a neprůhlednými skripty skóruje níž než menší repozitář s přesným popisem, kurátorovanými &lt;code&gt;references/&lt;/code&gt; a malými, jasně vymezenými pomocnými skripty, které skutečně využívají plnou schopnost skillu.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Strukturální analýza&lt;/strong&gt;: Kontrolujeme kvalitu skillu:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;wc&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -l&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vendor/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;rep&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skil&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/SKILL.md&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # Size check&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;ls&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vendor/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;rep&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skil&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/scripts/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Supporting files&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;ls&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vendor/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;rep&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skil&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/references/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # Bundled docs&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pokud kandidát obsahuje skripty, ten review je přísnější. Dobrý skill není jen užitečný; musí být čitelný, ohraničený a bezpečný na to, aby se předal agentovi. Sám tenhle bezpečnostní filtr diskvalifikuje významný podíl jinak zajímavých kandidátů.&lt;/p&gt;
&lt;h3 id=&quot;fáze-3-příjem&quot;&gt;Fáze 3: Příjem&lt;/h3&gt;
&lt;p&gt;Když skill projde vyhodnocením, vstoupí do registru. Skilly ale nikdy nepřijímáme nezměněné. Upravují se, aby seděly do našeho systému.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Úpravy při přijetí&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Normalizace metadat&lt;/strong&gt;: každý skill dostane naše frontmatter schéma&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Přiřazení K-vrstvy&lt;/strong&gt;: skilly se zařadí do odpovídající znalostní vrstvy&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Obohacení tagy&lt;/strong&gt;: tagy se přidávají pro objevitelnost&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deklarace nástrojů&lt;/strong&gt;: povolené nástroje jsou explicitně deklarované&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zarovnání sekcí&lt;/strong&gt;: obsah se restrukturuje podle naší šablony&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Typický YAML skillu po příjmu:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;metadata&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  identifier&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor-skill-evaluation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  name&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor-skill-evaluation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  description&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Systematic evaluation of vendor skills for adoption.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  layer&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;K4&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  semantic_folder&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;project&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  source&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;core&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_updated&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;2026-01-17&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;frontmatter&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;agents&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;meta&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skill-adoption&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  allowed_tools&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Bash&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Read&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Write&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Edit&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Grep&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Glob&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Task&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;fáze-4-přiřazení-scope&quot;&gt;Fáze 4: Přiřazení scope&lt;/h3&gt;
&lt;p&gt;Skilly se přiřazují ke scope — kategoriím, které určují, kteří agenti které skilly načtou:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;scopes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  database&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    primary_skills&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;domains/schema-migration-workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;domains/rpc-validation-checklist&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/supabase/supabase-database&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/supabase/supabase-auth&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  research&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    primary_skills&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;identities/research-workflows&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;identities/web-extraction-playbook&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;identities/dataset-discovery-quickstart&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Agenti deklarují své scope a skilly se přiřazují automaticky:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Agent definition&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;scopes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;database&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;research&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Gets: all database skills + all research skills + universal skills&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;fáze-5-materializace&quot;&gt;Fáze 5: Materializace&lt;/h3&gt;
&lt;p&gt;Skilly nežijí v produkci jako YAML. Vykreslují se do souborů SKILL.md, které Claude Code umí načíst:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tento příkaz:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Přečte všechny YAML definice skillů&lt;/li&gt;
&lt;li&gt;Vykreslí je přes šablony Jinja&lt;/li&gt;
&lt;li&gt;Zapíše soubory SKILL.md do &lt;code&gt;.claude/skills/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Organizuje je podle K-vrstvy (foundations/, identities/, domains/, stacks/, project/)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Finální struktura výstupu:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;.claude/skills/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── foundations/     # K0: Universal&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── identities/      # K1: Discipline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── domains/         # K2: Subject&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── stacks/          # K3: Technology&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── project/         # K4: Organization&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── vendor/          # External skills&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;vzorec-spícího-scope&quot;&gt;Vzorec spícího scope&lt;/h2&gt;
&lt;p&gt;Jeden z našich nejsilnějších vzorců jsou skilly „přijaté, ale nenačtené“. Říkáme jim spící scope.&lt;/p&gt;
&lt;p&gt;Vezměte si skilly pro vědecké výpočty z repozitáře k-dense-scientific. Přijali jsme 120+ skillů pokrývajících bioinformatiku, chemii, kvantové počítání a klinickou informatiku. Většina našich agentů ale nepotřebuje molekulární docking ani analýzu genové exprese.&lt;/p&gt;
&lt;p&gt;Místo abychom všech 120 skillů naložili do každého agenta (a nafoukli kontextová okna), postupujeme takto:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Přijmeme&lt;/strong&gt; skilly s konkrétním scope (např. &lt;code&gt;bioinformatics&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Necháme je &lt;strong&gt;spící&lt;/strong&gt; – registrované, ale nenačtené&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zapneme&lt;/strong&gt; je jen tehdy, když agent tento scope deklaruje&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# In scopes.yaml - dormant scope&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;bioinformatics&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  description&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Bioinformatics and genomics&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  primary_skills&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: []  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Empty - skills exist but aren&apos;t loaded&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# When an agent needs bioinformatics:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Agent YAML&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;scopes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;research&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;bioinformatics&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Now loads bioinformatics skills&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Díky tomuto vzorci můžeme mít v registru 466 skillů, zatímco typický agent jich načte jen 40–60 relevantních.&lt;/p&gt;
&lt;h2 id=&quot;typy-skillů&quot;&gt;Typy skillů&lt;/h2&gt;
&lt;p&gt;Skilly přicházejí ve třech kognitivních vzorcích:&lt;/p&gt;
&lt;h3 id=&quot;workflow&quot;&gt;Workflow&lt;/h3&gt;
&lt;p&gt;Seřazené procedurální kroky: „1. Udělej X, 2. Pak Y, 3. Nakonec Z“&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Examples: schema-migration-workflow, mining-session-workflow&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;disciplína&quot;&gt;Disciplína&lt;/h3&gt;
&lt;p&gt;Mantinely chování: „Vždy X“, „Nikdy Y“, „Upřednostni Z“&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;discipline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Examples: test-first-discipline, evidence-based-completion&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;checklist&quot;&gt;Checklist&lt;/h3&gt;
&lt;p&gt;Ověřovací kritéria: „Potvrď X“, „Ověř Y“, „Zkontroluj Z“&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;checklist&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Examples: auth-validation-checklist, secrets-audit-checklist&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;brány-kvality&quot;&gt;Brány kvality&lt;/h2&gt;
&lt;p&gt;Než skill vyjde do provozu, musí projít validací:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;validation&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  file_exists&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;           # Skill file at declared path&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  frontmatter_valid&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Frontmatter parses correctly&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  sections_complete&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Expected sections present&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  tools_registered&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;      # Declared tools exist in registry&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Popisy musí mít 50–400 znaků se spouštěcími frázemi („Použij, když…“, „Když potřebuješ…“), aby Claude Code věděl, kdy je navrhnout.&lt;/p&gt;
&lt;p&gt;Validujeme průběžně:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; validate&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --show-warnings&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;ekosystém-dodavatelů&quot;&gt;Ekosystém dodavatelů&lt;/h2&gt;
&lt;p&gt;Našich 373 skillů od dodavatelů pochází z:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Poskytovatel&lt;/th&gt;
&lt;th&gt;Skilly&lt;/th&gt;
&lt;th&gt;Doména&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AWS Agent&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;Cloudové služby&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;Generování dokumentů&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloudflare&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Edge computing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supabase&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Databáze&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;k-dense&lt;/td&gt;
&lt;td&gt;100+&lt;/td&gt;
&lt;td&gt;Vědecké výpočty&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;silvainfm&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Datová věda&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java Developer Kit&lt;/td&gt;
&lt;td&gt;45+&lt;/td&gt;
&lt;td&gt;Spring/Java&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Automatizace prohlížeče&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Každý kořen dodavatele je deklarovaný v metadata.yaml:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;vendor_roots&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/aws-agent-skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    provider&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;aws&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/k-dense-scientific/scientific-skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    provider&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;k-dense&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/supabase-skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    provider&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;supabase&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Když proběhne &lt;code&gt;orkestra sync&lt;/code&gt;, skilly dodavatelů se symlinknou do &lt;code&gt;.claude/skills/vendor/&lt;/code&gt; pod jejich namespace poskytovatele.&lt;/p&gt;
&lt;h2 id=&quot;co-jsme-se-naučili&quot;&gt;Co jsme se naučili&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Selektivita se vyplácí.&lt;/strong&gt; Je lákavé přijmout všechno, co vypadá užitečně. Ale každý skill stojí tokeny. S průměrem 2 834 tokenů na skill bobtnání rychle bolí. Naše 13% míra přijetí drží agenty útlé.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Struktura umožňuje objevitelnost.&lt;/strong&gt; Systém K-vrstev není jen organizace — jde o přenositelnost. Skilly K0 lze znovu použít kdekoliv. Skilly K4 jsou záměrně specifické pro projekt. Tahle jasnost pomáhá lidem i agentům najít, co potřebují.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Spící scope škálují.&lt;/strong&gt; Můžete přijmout stovky skillů, aniž byste je všechny museli načíst. Scope vám umožní vybudovat rozsáhlý registr a přitom udržet kontextová okna jednotlivých agentů zvladatelná.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Úprava při přijetí je zásadní.&lt;/strong&gt; Syrové skilly dodavatelů se do vašeho systému málokdy hodí beze změny. Proces příjmu — přidání metadat, přiřazení vrstev, obohacení tagů — dělá z externích skillů funkční interní součást.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Těžba je nepřetržitá.&lt;/strong&gt; Číslo 3 500 pořád roste. Objevují se nové repozitáře dodavatelů. Vynořují se komunitní vzorce. Interní workflow se ustalují. Smyčka se nikdy nezastaví.&lt;/p&gt;
&lt;h2 id=&quot;co-je-dál&quot;&gt;Co je dál&lt;/h2&gt;
&lt;p&gt;Pracujeme na několika vylepšeních:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Automatizovaná detekce mezer&lt;/strong&gt;: upozornění, když by dosud nepřijatý skill mohl vyřešit běžná selhání agenta&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Workflow pro deprecaci skillů&lt;/strong&gt;: formální proces pro vyřazování skillů, které jsou nahrazené nebo nepoužívané&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cross-skill závislosti&lt;/strong&gt;: explicitní deklarace předpokladů mezi skilly&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analytika používání&lt;/strong&gt;: sledování, které skilly agenti skutečně vyvolávají, a ne jen načítají&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Smyčka mining skillů je infrastruktura. Není okázalá. Ale je to to, díky čemu 41 agentů koherentně funguje se 466 schopnostmi a přitom zůstává v kontextových limitech.&lt;/p&gt;
&lt;p&gt;To je příběh, jak se z 3 500 stává 466. Ne tak, že bychom 3 000 ignorovali — tím, že jsme je systematicky vyhodnotili a přijali jen to, co funguje.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Chcete vidět systém skillů v akci? Podívejte se na &lt;code&gt;uv run orkestra skills list&lt;/code&gt; a prozkoumejte náš aktuální registr.&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Skills</category></item><item><title>Progresivní odkrývání: okna CLI do agentních systémů</title><link>https://maguyva.ai/cs/blog/progressive-disclosure-cli-into-agents</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/progressive-disclosure-cli-into-agents</guid><description>Agentní systémy jsou ve výchozím stavu neprůhledné. Progresivní odkrývání dává operátorům vrstvené CLI pohledy od rychlé kontroly stavu až po podrobný pohled na vnitřní strukturu agenta a stopy rozhodování.</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Čísla v tomto příspěvku odrážejí stav systému v době zveřejnění (leden 2026). Aktuální čísla najdete na naší &lt;a href=&quot;https://maguyva.ai/cs/team&quot;&gt;stránce týmu&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Agentní systémy jsou neprůhledné záměrně. Dělají rozhodnutí, volají nástroje a koordinují práci napříč desítkami specialistů. Ale když se něco pokazí — nebo když si prostě chcete ujasnit, co se děje — kam se podíváte?&lt;/p&gt;
&lt;p&gt;Odpověď je progresivní odkrývání: vrstvené rozhraní, které odkryje přesně tolik složitosti, kolik potřebujete, přesně ve chvíli, kdy to potřebujete.&lt;/p&gt;
&lt;h2 id=&quot;problém-neprůhlednosti&quot;&gt;Problém neprůhlednosti&lt;/h2&gt;
&lt;p&gt;Moderní systém orchestrace agentů může mít:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;40+ specializovaných agentů, každý s odlišnými schopnostmi&lt;/li&gt;
&lt;li&gt;700+ skillů rozprostřených napříč interní automatizací a integracemi dodavatelů&lt;/li&gt;
&lt;li&gt;470+ architektonických rozhodnutí, která formují chování&lt;/li&gt;
&lt;li&gt;desítky serverů nástrojů MCP poskytujících externí schopnosti&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tahle složitost je záměrná. Agenti potřebují přístup k bohatému kontextu — doménovým znalostem, inteligenci nad kódem, databázovým schématům —, aby se dobře rozhodovali. Ale právě tahle bohatost vytváří problém s viditelností.&lt;/p&gt;
&lt;p&gt;Jak poznáte, který agent má na starosti databázové migrace? Jaká rozhodnutí utvářela chování řazení výsledků ve vyhledávacím systému? Ke kterým nástrojům má přístup poradce pro architekturu?&lt;/p&gt;
&lt;p&gt;Bez strukturovaného přístupu vám zbývá číst zdrojový kód nebo doufat, že dokumentace je aktuální.&lt;/p&gt;
&lt;h2 id=&quot;progresivní-odkrývání-jako-architektura&quot;&gt;Progresivní odkrývání jako architektura&lt;/h2&gt;
&lt;p&gt;Progresivní odkrývání není jen vzorec UI. Je to architektonický princip: organizujte informace do vrstev, každou hlubší než tu předchozí, aby uživatelé mohli zastavit na úrovni, která zodpoví jejich otázku.&lt;/p&gt;
&lt;p&gt;Pro agentní systémy se to překládá do CLI příkazů rostoucí hloubky:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Úroveň&lt;/th&gt;
&lt;th&gt;Příkaz&lt;/th&gt;
&lt;th&gt;Zodpovězená otázka&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra system status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Je všechno zdravé?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra agents list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Jací agenti existují?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra agents info &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Co tenhle agent dělá?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra decisions search&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Proč to funguje takhle?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Nástroje Maguyva MCP&lt;/td&gt;
&lt;td&gt;Ukaž mi kód.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Každá úroveň zodpoví přirozenou navazující otázku. Zřídkakdy potřebujete skočit rovnou na úroveň 5.&lt;/p&gt;
&lt;h2 id=&quot;úroveň-1-zdraví-systému&quot;&gt;Úroveň 1: Zdraví systému&lt;/h2&gt;
&lt;p&gt;První otázka je vždy: funguje všechno?&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; system&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;agents&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;40&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;skills_internal&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;466&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;skills_vendor&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;240&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;skills_total&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;706&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;commands&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;17&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Jeden příkaz. Čtyři čísla. Dost na to, abyste věděli, že systém je nakonfigurovaný a registry jsou naplněné.&lt;/p&gt;
&lt;p&gt;Pokud počet agentů neočekávaně klesne, nebo se skilly nenačtou, uvidíte to tady jako první. Žádné hrabání se v lozích.&lt;/p&gt;
&lt;h2 id=&quot;úroveň-2-inventář-agentů&quot;&gt;Úroveň 2: Inventář agentů&lt;/h2&gt;
&lt;p&gt;Jakmile víte, že je systém zdravý, další otázka zní: co je k dispozici?&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vrátí strukturovaná data — jména agentů, popisy, preference modelu, pokrytí domén. Výstup je ve výchozím stavu JSON, takže se snadno pipe-uje do &lt;code&gt;jq&lt;/code&gt; pro filtrování:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; jq&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos;.agents[] | select(.model == &quot;opus&quot;) | .name&apos;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Chcete agenty, kteří zvládají databázovou práci? Příkaz pro vyhledávání to zúží:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;database&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Prochází jména, popisy a schopnosti. Najdete správného specialistu, aniž byste museli číst 40 definic agentů.&lt;/p&gt;
&lt;h2 id=&quot;úroveň-3-hluboký-ponor-do-agenta&quot;&gt;Úroveň 3: Hluboký ponor do agenta&lt;/h2&gt;
&lt;p&gt;Našli jste agenta, který vypadá relevantně? Příkaz &lt;code&gt;info&lt;/code&gt; odhalí všechno:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; architecture-advisor&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Výstup obsahuje:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Metadata&lt;/strong&gt;: jméno, kategorii, preferenci modelu, popis&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Domény&lt;/strong&gt;: které znalostní oblasti tento agent pokrývá&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identitu&lt;/strong&gt;: charakterové rysy (architect, strategist, knowledge-architect)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Průvodce nástroji&lt;/strong&gt;: která dokumentace nástrojů se vkládá do kontextu&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nástroje&lt;/strong&gt;: úplný seznam MCP nástrojů dostupných tomuto agentovi&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tady je ukázka toho, co uvidíte:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;jsonc&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;metadata&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;name&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;architecture-advisor&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;model&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;opus&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;description&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Strategic decision-making and architectural guidance...&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;domains&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;product&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;development/architecture&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;meta/strategy&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;tools&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;mcp_tools&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &quot;mcp__maguyva__intelligent_search&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &quot;mcp__maguyva__analyze_dependencies&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &quot;mcp__supabase__execute_sql&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FDAEB7;font-style:italic&quot;&gt;      ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To vám přesně řekne, co agent umí. Nemusíte číst zdrojový kód.&lt;/p&gt;
&lt;h2 id=&quot;úroveň-4-archeologie-rozhodnutí&quot;&gt;Úroveň 4: Archeologie rozhodnutí&lt;/h2&gt;
&lt;p&gt;Agenti se chovají podle zdokumentovaných rozhodnutí. Když potřebujete pochopit &lt;em&gt;proč&lt;/em&gt; něco funguje určitým způsobem, registr rozhodnutí je zdroj pravdy.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;agent&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vrátí odpovídající architektonická rozhodnutí:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;results&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;DEC-SR-049&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;title&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;AI-Agent-First Defaults with Graph Intelligence&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;search&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;status&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;active&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Každé rozhodnutí má plnou provenienci — kdy bylo učiněno, proč, jaké kompromisy byly zvažovány, které commity ho implementovaly:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; DEC-SR-049&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;DEC-SR-049&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;title&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;AI-Agent-First Defaults with Graph Intelligence&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;summary&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Changes default values for search tools to AI-agent-optimal behavior...&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;rationale&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;AI agents work better with pre-ranked, importance-weighted results&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;Graph metrics already computed by pipeline - leverage them&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;Community context helps agents understand feature scope in single query&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;source_commits&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;156a880d05eae295669ef7c194b039023f245511&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;message&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;feat(maguyva): enable boost_by_importance...&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tohle je architektonická dokumentace, která zůstává aktuální, protože se těží z commitů, ne udržuje ručně.&lt;/p&gt;
&lt;h2 id=&quot;úroveň-5-přímá-inteligence-nad-kódem&quot;&gt;Úroveň 5: Přímá inteligence nad kódem&lt;/h2&gt;
&lt;p&gt;Když potřebujete vidět skutečnou implementaci — ne metadata o ní —, nástroje MCP od Maguyvy poskytují přímý přístup.&lt;/p&gt;
&lt;p&gt;Zevnitř session agenta:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mcp__maguyva__intelligent_search&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  query: &quot;agent context loading&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tohle automaticky routuje napříč sémantickým, textovým a AST vyhledáváním, aby našlo relevantní kód. Pro konkrétní symboly:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mcp__maguyva__find_symbol&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  symbol_name: &quot;load_agent_context&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pro analýzu závislostí:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mcp__maguyva__analyze_dependencies&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  target: &quot;packages/orchestration/core/agents.py&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tohle nejsou jen náhrady za grep. Pracují s grafem, jsou sémanticky indexované a integrované se stejnou inteligencí nad kódem, která pohání samotné agenty.&lt;/p&gt;
&lt;h2 id=&quot;sjednocené-vyhledávání-napříč-registry&quot;&gt;Sjednocené vyhledávání napříč registry&lt;/h2&gt;
&lt;p&gt;Někdy nevíte, který registr obsahuje odpověď. Sjednocené vyhledávání pokrývá všechno:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;database&quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --summary&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;query&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;database&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;total&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;254&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;counts&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;agents&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;40&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;skills&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;59&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;decisions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;476&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;truths&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;packages&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;254 shod napříč pěti registry. Souhrn vám řekne, kam se ponořit hlouběji. Odeberte &lt;code&gt;--summary&lt;/code&gt; pro podrobné výsledky, nebo přidejte &lt;code&gt;--limit 5&lt;/code&gt;, aby výstup zůstal přehledný.&lt;/p&gt;
&lt;h2 id=&quot;proč-na-tom-záleží&quot;&gt;Proč na tom záleží&lt;/h2&gt;
&lt;p&gt;Progresivní odkrývání není jen o pohodlí. Mění to, jak interagujete se složitými systémy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Debugování se stává zvladatelným.&lt;/strong&gt; Když agent udělá neočekávané rozhodnutí, nehrabete se v lozích. Zkontrolujete, ke kterým nástrojům má přístup (&lt;code&gt;agents info&lt;/code&gt;), jaká rozhodnutí formují jeho chování (&lt;code&gt;decisions search&lt;/code&gt;), a v případě potřeby vysledujete implementaci (&lt;code&gt;intelligent_search&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Onboarding se zrychluje.&lt;/strong&gt; Noví členové týmu nemusí číst celou kódovou základnu. Začnou s &lt;code&gt;system status&lt;/code&gt;, prozkoumají s &lt;code&gt;agents list&lt;/code&gt; a ponoří se hlouběji, jen když narazí na něco, čemu nerozumí.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dokumentace zůstává aktuální.&lt;/strong&gt; Protože CLI čte ze stejných registrů, které konfigurují agenty, výstup je vždy přesný. Nevzniká nesoulad mezi tím, co říká dokumentace, a tím, co systém skutečně dělá.&lt;/p&gt;
&lt;h2 id=&quot;cli-jako-rozhraní&quot;&gt;CLI jako rozhraní&lt;/h2&gt;
&lt;p&gt;Mohli jsme postavit webový dashboard. Mohli jsme napsat rozsáhlou dokumentaci. Místo toho jsme postavili CLI, které čte ze zdroje pravdy.&lt;/p&gt;
&lt;p&gt;CLI má výhody:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kompozovatelné&lt;/strong&gt;: pipe-ujte výstup skrz &lt;code&gt;jq&lt;/code&gt;, propojte je se skripty&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skriptovatelné&lt;/strong&gt;: automatizujte kontroly, generujte reporty&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rychlé&lt;/strong&gt;: žádné načítání stránek, žádné autentizační toky&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Přesné&lt;/strong&gt;: čte skutečnou konfiguraci, ne cachovanou reprezentaci&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pro systémy, kde na správnosti záleží víc než na estetice, vyhrává CLI.&lt;/p&gt;
&lt;h2 id=&quot;postavte-si-vlastní-progresivní-odkrývání&quot;&gt;Postavte si vlastní progresivní odkrývání&lt;/h2&gt;
&lt;p&gt;Pokud stavíte agentní systémy, zvažte, jak je budou uživatelé zkoumat:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Začněte kontrolami zdraví.&lt;/strong&gt; Jeden příkaz, který vám řekne, jestli věci fungují.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Poskytněte pohledy na inventář.&lt;/strong&gt; Vypište, co existuje, dřív než vysvětlíte, co to dělá.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Umožněte cílené dotazy.&lt;/strong&gt; Při velkém objemu dat je vyhledávání účinnější než procházení.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vystavte provenienci.&lt;/strong&gt; Nechte uživatele vysledovat rozhodnutí k jejich původu.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Napojte se na inteligenci nad kódem.&lt;/strong&gt; Nakonec uživatelé potřebují vidět implementaci.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Každá vrstva zodpoví navazující otázku. Stavte je v pořadí podle frekvence — většina uživatelů zastaví na vrstvě 2 nebo 3. Jen power useři dosáhnou vrstvy 5.&lt;/p&gt;
&lt;p&gt;Cílem není vystavit všechno. Je to vystavit přesně to, co je potřeba, přesně ve chvíli, kdy je to potřeba. To je progresivní odkrývání aplikované na architekturu agentů.&lt;/p&gt;
</content:encoded><category>Architecture</category><category>CLI</category><category>Tooling</category></item><item><title>Ground Truths: ukotvení AI agentů v realitě</title><link>https://maguyva.ai/cs/blog/ground-truths-anchoring-ai-to-reality</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/ground-truths-anchoring-ai-to-reality</guid><description>AI agenti si sebevědomě vymýšlejí. Ground Truths jsou verzovaná fakta s vymezenou platností, která ukotvují chování agenta v realitě. Tady je, jak jsme je postavili a jak je vynucujeme.</description><pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Čísla v tomto příspěvku odrážejí stav systému v době zveřejnění (leden 2026). Aktuální čísla najdete na naší &lt;a href=&quot;https://maguyva.ai/cs/team&quot;&gt;stránce týmu&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;AI agenti jsou pozoruhodně schopní. Umí uvažovat, syntetizovat a generovat. Mají ale zásadní slabinu: vymýšlejí si věci. Ne zlomyslně, ale sebevědomě. Agent si může vymyslet parametry API, které neexistují, odkázat na konfigurace, které nikdy nebyly definované, nebo použít vzorce ze svých trénovacích dat, které odporují vaší skutečné architektuře.&lt;/p&gt;
&lt;p&gt;Standardní protilék zní „dej agentovi víc kontextu“. Kontext ale může být protichůdný. Dokumentace se odchyluje od implementace. Komentáře lžou. Dokonce i kód dokáže zmást, když se čte bez pochopení záměru.&lt;/p&gt;
&lt;p&gt;Potřebovali jsme něco explicitnějšího. Něco, co se nedá ignorovat ani špatně interpretovat. Něco, co by agenty ukotvilo v ověřitelné realitě.&lt;/p&gt;
&lt;p&gt;Říkáme tomu Ground Truths.&lt;/p&gt;
&lt;h2 id=&quot;co-je-ground-truth&quot;&gt;Co je Ground Truth?&lt;/h2&gt;
&lt;p&gt;Ground truth je explicitní, verzované faktické tvrzení, které agenti musí respektovat. Není to dokumentace. Není to komentář. Je to plnohodnotná entita v systému s:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unikátním identifikátorem&lt;/strong&gt; (jako &lt;code&gt;GT-MAG-015&lt;/code&gt; nebo &lt;code&gt;GT-MAG-036&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stavem životního cyklu&lt;/strong&gt; (aktuální, předběžný nebo zastaralý)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rozsahem&lt;/strong&gt; (celoplošný pro platformu, specifický pro balíček, nebo vázaný na doménu)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Důkazem&lt;/strong&gt; (cesty k souborům, URL nebo reference, které tvrzení dokládají)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pokyny pro agenta&lt;/strong&gt; (explicitní instrukce co dělat a čemu se vyhnout)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tady je příklad z naší platformy pro code intelligence Maguyva:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-015&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  scope&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;package&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Fuzzy symbol matching is opt-in via `find_similar=true`.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Default behavior returns empty results for non-existent symbols;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    `exact_match=true` enforces strict matching and disables all fuzzy fallbacks.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Deterministic defaults prevent agents from receiving misleading results.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Typos should fail explicitly rather than silently returning unrelated symbols.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  evidence&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/maguyva/server/src/maguyva/services/code_analysis_service.py&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/maguyva/server/docs/quick_reference/parameters.md&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_verified&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-25&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;product&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;ai_first&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;principle&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tohle není próza. Je to smlouva. Když agent na tuto ground truth narazí, ví:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Výchozí chování je deterministické (prázdné výsledky, ne mlhavé odhady)&lt;/li&gt;
&lt;li&gt;Existují konkrétní parametry (&lt;code&gt;find_similar&lt;/code&gt;, &lt;code&gt;exact_match&lt;/code&gt;) s definovaným chováním&lt;/li&gt;
&lt;li&gt;Existují důkazy v konkrétních souborech, které lze ověřit&lt;/li&gt;
&lt;li&gt;Tvrzení bylo ověřeno k určitému datu&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;anatomie-registru-ground-truths&quot;&gt;Anatomie registru Ground Truths&lt;/h2&gt;
&lt;p&gt;Ground truths žijí v YAML registrech pod &lt;code&gt;ai_assets/reference/ground_truths.yaml&lt;/code&gt;. Každý balíček nebo doména může mít vlastní registr. Struktura je:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;metadata&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Maguyva Ground Truths&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  summary&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Foundational constraints and principles that guide Maguyva.&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_updated&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-26&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  owner&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;maguyva&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  render&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    include_statuses&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;tentative&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    show_deprecated&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    groups&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Product Principles&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;        tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;product&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;principle&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;brand&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Architecture &amp;amp; Boundaries&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;        tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;architecture&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;boundaries&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;cqrs&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;statements&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-001&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    scope&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;package&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Maguyva is read-only with respect to user repositories...&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Registr obsahuje metadata o samotné kolekci, konfiguraci vykreslení pro generování dokumentace a samotná tvrzení. Každé tvrzení dodržuje přísné schéma validované Pydantic modely:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; GroundTruthStatement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;BaseModel&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    status: GTStatus  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# current, tentative, deprecated&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    source: GTSource &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # claude-code, orkestra, discipline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    scope: GTScope  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# platform, package, domain&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    statement: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    rationale: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    evidence: list[&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    last_verified: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    tags: list[&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    agent_guidance: AgentGuidance &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;jak-agenti-přistupují-k-ground-truths&quot;&gt;Jak agenti přistupují k Ground Truths&lt;/h2&gt;
&lt;p&gt;Ground truths jsou vystaveny přes několik kanálů:&lt;/p&gt;
&lt;h3 id=&quot;1-vykreslená-dokumentace&quot;&gt;1. Vykreslená dokumentace&lt;/h3&gt;
&lt;p&gt;Příkaz &lt;code&gt;orkestra sync&lt;/code&gt; transformuje YAML registry na čitelný markdown:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tím vzniknou soubory &lt;code&gt;GROUND_TRUTHS.md&lt;/code&gt;, které se zahrnou do kontextu agenta. Vykreslený výstup seskupuje tvrzení podle stavu a kategorie:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;markdown&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF;font-weight:bold&quot;&gt;## Current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF;font-weight:bold&quot;&gt;### Product Principles&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Maguyva is read-only with respect to user repositories... (GT-MAG-001)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Design tool responses for AI agents first... (GT-MAG-009)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF;font-weight:bold&quot;&gt;### Architecture &amp;amp; Boundaries&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Pipeline and Maguyva boundaries are intentional... (GT-MAG-006)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;2-cli-vyhledávání&quot;&gt;2. CLI vyhledávání&lt;/h3&gt;
&lt;p&gt;Agenti s přístupem k shellu mohou ground truths vyhledávat programově:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; truths&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;embedding&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; truths&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --tag&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; security&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; truths&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --status&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; current&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vyhledávací funkce boduje shody napříč více poli s váženou relevancí:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; truth_fields&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(gt: GroundTruthStatement) -&amp;gt; list[FieldSpec]:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;6&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[gt.id]),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;statement&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[gt.statement]),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;rationale&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[gt.rationale] &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; gt.rationale &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; []),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;tags&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;gt.tags &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; []),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;evidence&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;gt.evidence &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; []),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;3-skladba-kontextu&quot;&gt;3. Skladba kontextu&lt;/h3&gt;
&lt;p&gt;Když jsou agenti vykreslováni z YAML definic, jejich kontext může odkazovat na registry ground truths:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;context_composition&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  domain_knowledge&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/maguyva/ai_assets/reference/ground_truths.yaml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tím je zajištěno, že relevantní ground truths se načtou dřív, než agent začne pracovat.&lt;/p&gt;
&lt;h2 id=&quot;kategorie-ground-truths&quot;&gt;Kategorie Ground Truths&lt;/h2&gt;
&lt;p&gt;Když se podíváme napříč našimi registry, ground truths se shlukují do několika vzorců:&lt;/p&gt;
&lt;h3 id=&quot;produktové-principy&quot;&gt;Produktové principy&lt;/h3&gt;
&lt;p&gt;Omezení toho, čím produkt je a čím není:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;„Maguyva je vůči repozitářům uživatelů pouze pro čtení; jediné neobnovitelné aktivum je placená cache embeddingů.“ (GT-MAG-001)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;architektonické-hranice&quot;&gt;Architektonické hranice&lt;/h3&gt;
&lt;p&gt;Kdo za co odpovídá a proč:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;„Hranice mezi pipeline a Maguyva jsou záměrné: pipeline je znovupoužitelná, Maguyva drží logiku specifickou pro kód a CQRS odděluje zápisy stage od čtení serveru.“ (GT-MAG-006)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;pravidla-proti-halucinacím&quot;&gt;Pravidla proti halucinacím&lt;/h3&gt;
&lt;p&gt;Explicitní mandáty, které udržují kontrakty nástrojů deterministickými, ne odvozenými:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;„Fuzzy shoda symbolů je opt-in přes &lt;code&gt;find_similar=true&lt;/code&gt;. Výchozí chování vrací prázdné výsledky pro neexistující symboly; &lt;code&gt;exact_match=true&lt;/code&gt; vynucuje striktní shodu a vypíná všechny fuzzy fallbacky.“ (GT-MAG-015)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;brány-kvality&quot;&gt;Brány kvality&lt;/h3&gt;
&lt;p&gt;Standardy, které se musí udržovat:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;„Změny sdílené infrastruktury (post_filters.py, extraktory vztahů, sdílené handlery) MUSÍ být validovány proti VŠEM podporovaným jazykům přes generování celého manifestu ještě před commitem. Validace jednoho jazyka nestačí pro sdílený kód.“ (GT-MAG-036)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;vzorce-kódu&quot;&gt;Vzorce kódu&lt;/h3&gt;
&lt;p&gt;Implementační požadavky:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;„Pro CPU-náročnou práci v asynchronním kontextu používejte &lt;code&gt;asyncio.to_thread()&lt;/code&gt;; zastaralý vzorec &lt;code&gt;loop.run_in_executor()&lt;/code&gt; by se v novém kódu neměl používat.“ (GT-MAG-018)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;životní-cyklus-ground-truth&quot;&gt;Životní cyklus Ground Truth&lt;/h2&gt;
&lt;p&gt;Ground truths nejsou statické. Vyvíjejí se skrz definovaný životní cyklus:&lt;/p&gt;
&lt;h3 id=&quot;předběžná&quot;&gt;Předběžná&lt;/h3&gt;
&lt;p&gt;Navržené tvrzení, které se zatím vyhodnocuje. Tvrzení je zaznamenané, ale může se změnit:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-044&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;tentative&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    get_file with include_metadata=false may still return metadata in the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    response because middleware may re-inject it for AI agent disambiguation.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;aktuální&quot;&gt;Aktuální&lt;/h3&gt;
&lt;p&gt;Ověřená pravda, kterou agenti musí respektovat. Důkaz byl validován:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-017&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_verified&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-26&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  evidence&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/maguyva/server/src/maguyva/services/supabase.py&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;zastaralá&quot;&gt;Zastaralá&lt;/h3&gt;
&lt;p&gt;Pravda, která už neplatí. Zachovaná pro historickou referenci s odkazem na to, čím byla nahrazena:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-099&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;deprecated&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  superseded_by&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-015&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  notes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Replaced when we moved to explicit matching behavior&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;proč-ne-prostě-dokumentace&quot;&gt;Proč ne prostě dokumentace?&lt;/h2&gt;
&lt;p&gt;Dokumentace slouží jinému účelu. Vysvětluje. Učí. Může být vágní, může používat kvalifikátory jako „obecně“ nebo „obvykle“.&lt;/p&gt;
&lt;p&gt;Ground truths nemohou být vágní. Jsou to tvrzení. Buď platí, nebo neplatí.&lt;/p&gt;
&lt;p&gt;Zvažte ten rozdíl:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dokumentace:&lt;/strong&gt; „API obecně vrací prázdné výsledky, když symbol nenajde, i když fuzzy matching může být v některých konfiguracích zapnutý.“&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ground Truth:&lt;/strong&gt; „Výchozí chování vrací prázdné výsledky pro neexistující symboly; &lt;code&gt;exact_match=true&lt;/code&gt; vynucuje striktní shodu a vypíná všechny fuzzy fallbacky.“&lt;/p&gt;
&lt;p&gt;První je užitečné pro lidi, kteří se systém učí. Druhé dává agentům konkrétní podklad pro rozhodování.&lt;/p&gt;
&lt;h2 id=&quot;pokyny-pro-agenta-dělej-a-vyhýbej-se&quot;&gt;Pokyny pro agenta: dělej a vyhýbej se&lt;/h2&gt;
&lt;p&gt;Některé ground truths obsahují explicitní pokyny pro agenta:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-022&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Accuracy fixes must happen at extraction time via production code,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    never via validator filters.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  agent_guidance&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    do&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Fix extraction bugs in YAML config, handlers, or tree-sitter queries&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Add test cases at the layer where the fix lives&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    avoid&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Adding validator filters to mask production bugs&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Creating test-only workarounds for extraction issues&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tím mizí nejednoznačnost. Agent, který tohle čte, ví nejen, co je pravda, ale i to, jaké kroky ta pravda implikuje.&lt;/p&gt;
&lt;h2 id=&quot;ověřování-a-údržba&quot;&gt;Ověřování a údržba&lt;/h2&gt;
&lt;p&gt;Ground truths vyžadují údržbu. Sledujeme:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;last_verified&lt;/strong&gt;: kdy někdo potvrdil, že tvrzení pořád platí&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;evidence&lt;/strong&gt;: soubory, které tvrzení dokládají (lze ověřit jejich existenci)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;source&lt;/strong&gt;: odkud pravda pochází (inspekce CLI, architektonický review, ponaučení po incidentu)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ground truth se zastaralým datem ověření nebo rozbitými odkazy na důkazy je signál k prošetření. Buď je pravda pořád platná a potřebuje znovu ověřit, nebo se realita změnila a pravda potřebuje aktualizovat.&lt;/p&gt;
&lt;h2 id=&quot;skutečné-příklady-z-provozu&quot;&gt;Skutečné příklady z provozu&lt;/h2&gt;
&lt;h3 id=&quot;bezpečnostní-hranice&quot;&gt;Bezpečnostní hranice&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-014&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Maguyva queries are search patterns, not executable code.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    SQL injection prevention is handled by PostgREST parameterization;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    application-layer SQL keyword blocking must never be added.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Blocking SQL keywords breaks legitimate code search. Users search FOR&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    code containing patterns like &apos;DROP TABLE&apos;, they don&apos;t execute them.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tato ground truth brání třídě zavádějících „bezpečnostních vylepšení“, která by produkt rozbila.&lt;/p&gt;
&lt;h3 id=&quot;přesnost-v-čase-extrakce&quot;&gt;Přesnost v čase extrakce&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-022&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Accuracy fixes must happen at extraction time via production code&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    (YAML config, handlers, queries), never via validator filters.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Validator filters only run during tests. They can hide extractor bugs&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    while production responses remain wrong.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tohle vzniklo z bolestivé zkušenosti. Agenti opravovali selhávající jazykové balíčky přidáváním filtrů jen na straně validátoru, díky kterým test harness vypadal zeleněji, zatímco živý extraktor Maguyva pořád emitoval špatné hrany. Pravidlo vrací opravy zpátky do skutečné cesty: YAML konfigurace, dotazy nebo handlery.&lt;/p&gt;
&lt;h3 id=&quot;vícevrstvé-filtrování&quot;&gt;Vícevrstvé filtrování&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-023&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Language engine uses three-tier filtering: external_method_patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    (builtins/stdlib), allowlists (legitimate idioms), and expected_call_targets&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    (validation-time deduplication). Each tier serves a distinct purpose.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Conflating filter purposes leads to either over-filtering (missing real&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    relationships) or under-filtering (noise).&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tohle brání agentům přidávat filtry na špatné místo, což je běžná chyba, která způsobovala regrese přesnosti.&lt;/p&gt;
&lt;h2 id=&quot;integrace-s-orchestračním-systémem&quot;&gt;Integrace s orchestračním systémem&lt;/h2&gt;
&lt;p&gt;Ground truths jsou jedna vrstva širšího kontextového systému:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Architektonická rozhodnutí (ADR)&lt;/strong&gt; – zaznamenávají, proč jsme zvolili přístup A před B&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ground Truths&lt;/strong&gt; – uvádějí, co je definitivně pravda právě teď&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Doménové vzorce&lt;/strong&gt; – popisují, jak věci dělat správně&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Antivzorce&lt;/strong&gt; – popisují, čemu se vyhnout a proč&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Agent pracující v systému má přístup ke všem čtyřem. Ground truths poskytují faktické ukotvení, rozhodnutí vysvětlují historii, vzorce vedou implementaci a antivzorce varují před nástrahami.&lt;/p&gt;
&lt;h2 id=&quot;měření-dopadu&quot;&gt;Měření dopadu&lt;/h2&gt;
&lt;p&gt;Od zavedení ground truths jsme zaznamenali:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Méně cyklů „oprav tu vyhalucinovanou opravu“&lt;/li&gt;
&lt;li&gt;Sebejistější rozhodování agentů, když jsou fakta jasná&lt;/li&gt;
&lt;li&gt;Lepší review pull requestů, protože očekávání jsou explicitní&lt;/li&gt;
&lt;li&gt;Zkrácenou dobu onboardingu nových agentů (i lidí)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Investice do udržování ground truths se vyplácí ve zmenšeném objemu debugování a jasnějších systémových hranicích.&lt;/p&gt;
&lt;h2 id=&quot;jak-začít&quot;&gt;Jak začít&lt;/h2&gt;
&lt;p&gt;Chcete-li do svého systému přidat ground truth:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Vytvořte &lt;code&gt;ground_truths.yaml&lt;/code&gt; v adresáři &lt;code&gt;ai_assets/reference/&lt;/code&gt; svého balíčku&lt;/li&gt;
&lt;li&gt;Definujte metadata a konfiguraci vykreslení&lt;/li&gt;
&lt;li&gt;Přidejte tvrzení podle schématu&lt;/li&gt;
&lt;li&gt;Spusťte &lt;code&gt;uv run orkestra sync&lt;/code&gt; pro vygenerování dokumentace&lt;/li&gt;
&lt;li&gt;Zahrňte registr do skladby kontextu agenta&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Začněte s fakty, která způsobují nejvíc zmatku, nebo s omezeními, která se nejčastěji porušují. To jsou vaše nejcennější ground truths.&lt;/p&gt;
&lt;h2 id=&quot;závěr&quot;&gt;Závěr&lt;/h2&gt;
&lt;p&gt;AI agenti budou halucinovat. To je jejich přirozenost. Můžeme ale vytvořit prostředí, kde je halucinace omezená, kde jsou určitá fakta nezpochybnitelná, kde si agenti mohou ověřit své předpoklady proti ověřené realitě.&lt;/p&gt;
&lt;p&gt;Ground truths nejsou kompletní řešení. Vyžadují údržbu. Mohou zastarat. Přidávají do vývojového procesu režii.&lt;/p&gt;
&lt;p&gt;Poskytují ale něco cenného: sdílenou slovní zásobu faktů, které mohou důvěřovat lidé i agenti. Ve světě, kde se agenti čím dál víc podílejí na vývoji softwaru, se tenhle sdílený základ stává nezbytným.&lt;/p&gt;
&lt;p&gt;Alternativou jsou nekonečné cykly agentů, kteří sebevědomě dělají chyby, a lidí, kteří je opravují. Ground truths tenhle cyklus přerušují tím, že opravy dělají explicitní a trvalé.&lt;/p&gt;
&lt;p&gt;Vaši agenti si zaslouží vědět, co je pravda. Řekněte jim to.&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Grounding</category></item><item><title>Orkestra: orchestrace AI agentů ve velkém měřítku</title><link>https://maguyva.ai/cs/blog/orkestra-agent-orchestration</link><guid isPermaLink="true">https://maguyva.ai/cs/blog/orkestra-agent-orchestration</guid><description>Jeden orchestrátor směruje práci na specializované AI agenty, každý s odlišnými dovednostmi a pamětí. Jak Orkestra v produkci koordinuje 46 agentů a 466 skillů.</description><pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Čísla v tomto příspěvku odrážejí stav systému v době zveřejnění (leden 2026). Aktuální čísla najdete na naší &lt;a href=&quot;https://maguyva.ai/cs/team&quot;&gt;stránce týmu&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Když jsme začali stavět s Claude Code, narazili jsme na problém, na který dřív nebo později narazí každý tým používající AI kódovací asistenty: jeden agent nedokáže dělat všechno dobře.&lt;/p&gt;
&lt;p&gt;Můžete agenta napromptovat, aby byl databázový specialista. Nebo bezpečnostní auditor. Nebo frontend inženýr. Ale v momentě, kdy ho požádáte, aby byl všechny tři najednou, kvalita utrpí. Kontext se rozřídí. Instrukce si odporují. Z agenta se stane generalista, který je ve všem průměrný.&lt;/p&gt;
&lt;p&gt;Postavili jsme si tedy Orkestru.&lt;/p&gt;
&lt;h2 id=&quot;co-je-orkestra&quot;&gt;Co je Orkestra?&lt;/h2&gt;
&lt;p&gt;Orkestra je systém pro orchestraci agentů pro Claude Code a podobné AI kódovací nástroje. Koordinuje více specializovaných agentů, každý s odlišnou expertízou, pod jedním orchestrátorem, který směruje práci na správného specialistu.&lt;/p&gt;
&lt;p&gt;Představte si ji jako personální agenturu pro AI agenty. Orchestrátor přijme úkol, identifikuje, který specialista by ho měl řešit, a deleguje ho se správným kontextem. Když je práce hotová, výsledky tečou zpátky k orchestrátorovi na syntézu.&lt;/p&gt;
&lt;p&gt;Čísla mluví sama za sebe:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Komponenta&lt;/th&gt;
&lt;th&gt;Počet&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Specializovaní agenti&lt;/td&gt;
&lt;td&gt;46&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Znovupoužitelné skilly&lt;/td&gt;
&lt;td&gt;466&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Archetypy identity&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mindsety&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Komunikační styly&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Znalostní domény&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;systém-charakterů-dd-pro-agenty&quot;&gt;Systém charakterů: D&amp;amp;D pro agenty&lt;/h2&gt;
&lt;p&gt;Klíčový postřeh za Orkestrou je, že chování agenta vzniká ze tří skládatelných primitiv:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Identita&lt;/strong&gt; definuje, &lt;em&gt;čím&lt;/em&gt; agent je. Architekt navrhuje strukturu systémů. Debugger sleduje selhání k jejich kořenové příčině. Guardian vynucuje compliance a bezpečnostní hranice. Máme 27 archetypů identity, které lze míchat.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mindset&lt;/strong&gt; definuje, &lt;em&gt;jak&lt;/em&gt; agent přemýšlí. Analytický mindset ukotvuje tvrzení v důkazech a kvantifikuje nejistotu. Skeptický mindset zpochybňuje předpoklady a hledá vyvracející důkazy. Explorativní mindset přijímá nejednoznačnost a zkouší více přístupů.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Styl&lt;/strong&gt; definuje, &lt;em&gt;jak&lt;/em&gt; agent komunikuje. Technický styl obsahuje přesné hodnoty a odkazuje na konkrétní soubory. Stručný styl seká balast a začíná odpovědí. Diplomatický styl vyvažuje upřímnost s taktem.&lt;/p&gt;
&lt;p&gt;Agent tato primitiva kombinuje:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# architecture-advisor.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;identity&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;knowledge-architect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;architect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;strategist&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;mindset&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;analytical&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;concise&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tato kompozice vytváří agenta, který navrhuje systémy (architect), propojuje znalosti napříč doménami (knowledge-architect), stanovuje strategický směr (strategist), přemýšlí v důkazech a datech (analytical) a komunikuje bez balastu (concise).&lt;/p&gt;
&lt;p&gt;Síla je v kombinatorické explozi. 27 identit krát 11 mindsetů krát 10 stylů dává skoro 3 000 možných osobností agenta. Definujete si ale jen ty kombinace, na kterých pro vaši práci záleží.&lt;/p&gt;
&lt;h2 id=&quot;skilly-znovupoužitelné-moduly-schopností&quot;&gt;Skilly: znovupoužitelné moduly schopností&lt;/h2&gt;
&lt;p&gt;Skilly jsou znalosti a workflow, které agenti mohou vyvolat. Řídí se vrstveným systémem podle rozsahu:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Vrstva&lt;/th&gt;
&lt;th&gt;Název&lt;/th&gt;
&lt;th&gt;Rozsah&lt;/th&gt;
&lt;th&gt;Příklad&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;K0&lt;/td&gt;
&lt;td&gt;Foundations&lt;/td&gt;
&lt;td&gt;Univerzální metodologie&lt;/td&gt;
&lt;td&gt;Test-first disciplína, dokončování založené na důkazech&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K1&lt;/td&gt;
&lt;td&gt;Identities&lt;/td&gt;
&lt;td&gt;Workflow podle role&lt;/td&gt;
&lt;td&gt;Standardy CLI rozhraní, playbook výkonu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K2&lt;/td&gt;
&lt;td&gt;Domains&lt;/td&gt;
&lt;td&gt;Znalosti specifické pro doménu&lt;/td&gt;
&lt;td&gt;Vzorce migrace databáze, validace autentizace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K3&lt;/td&gt;
&lt;td&gt;Stacks&lt;/td&gt;
&lt;td&gt;Specifické pro technologii&lt;/td&gt;
&lt;td&gt;Nasazení na Cloudflare, operace v Supabase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K4&lt;/td&gt;
&lt;td&gt;Project&lt;/td&gt;
&lt;td&gt;Jen tato kódová základna&lt;/td&gt;
&lt;td&gt;Workflow a konvence specifické pro projekt&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Skilly se načítají líně. Agent při startu vidí názvy a popisy skillů, ale plný obsah skillu se načte, až je vyvolán. Díky tomu zůstává kontext útlý, zatímco stovky skillů zůstávají objevitelné.&lt;/p&gt;
&lt;p&gt;Každý skill obsahuje:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jasné spouštěcí podmínky („Použij při migraci databázových schémat“)&lt;/li&gt;
&lt;li&gt;Pokyny krok za krokem&lt;/li&gt;
&lt;li&gt;Povolené nástroje pro daný workflow&lt;/li&gt;
&lt;li&gt;Kritéria úspěchu a cesty zotavení z chyby&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Našich 466 skillů v registru pokrývá všechno od izolace v git worktree přes workflow webového výzkumu po kontrolu stavu nasazení.&lt;/p&gt;
&lt;h2 id=&quot;proč-na-orchestraci-záleží&quot;&gt;Proč na orchestraci záleží&lt;/h2&gt;
&lt;p&gt;Architektury s jedním agentem rychle narazí na zeď:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ředění kontextu.&lt;/strong&gt; Kontextové okno o 200 tisících tokenech zní velkoryse, dokud do něj nenaložíte databázová schémata, dokumentaci API, testovací fixtures a doménové znalosti. Specialisté umí pracovat s cíleným kontextem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Konflikty instrukcí.&lt;/strong&gt; Říct agentovi, aby byl „důkladný, ale rychlý“ a „všechno ověřoval, ale neover-engineeroval“, vytváří napětí. Specialisté to řeší tím, že mají jasný rozsah.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hloubka expertízy.&lt;/strong&gt; Generalistický agent ví trochu o všem. Specializovaný agent, poskládaný ze správné identity a skillů, zná svou doménu do hloubky.&lt;/p&gt;
&lt;p&gt;Orkestra implementuje plochou orchestraci: jeden orchestrátor koordinuje více specialistů. Specialisté nemohou spouštět dalšího sub-specialistu. Tím se předchází explozi složitosti a zároveň to umožňuje paralelní práci.&lt;/p&gt;
&lt;p&gt;Orchestrátor má přístup k 2,2 milionům tokenů efektivní kapacity: svému vlastnímu 200k oknu plus 10 souběžným subagentům po 200k. Práce, která by vyčerpala jednoho agenta, běží pohodlně napříč celou flotilou.&lt;/p&gt;
&lt;h2 id=&quot;vykreslovací-pipeline&quot;&gt;Vykreslovací pipeline&lt;/h2&gt;
&lt;p&gt;Definice agentů žijí v YAML. Claude Code čte Markdown. Orkestra tuhle mezeru přemosťuje deterministickou vykreslovací pipeline:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;YAML Registries → Jinja Templates → .claude/agents/*.md&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Operátoři editují YAML zdroj. Spustí &lt;code&gt;orkestra sync&lt;/code&gt;. Vykreslený Markdown se objeví v &lt;code&gt;.claude/agents/&lt;/code&gt;. Claude Code změny vyzvedne.&lt;/p&gt;
&lt;p&gt;Tohle oddělení slouží různým publikům:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;YAML zdroj&lt;/strong&gt; obsahuje metadata životního cyklu, tagy, validační pravidla a poznámky o zastarávání pro tooling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vykreslený Markdown&lt;/strong&gt; obsahuje jen to, co model potřebuje: popis, nástroje, skilly a vodítko chování&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pipeline skládá identity, mindsety, styly a skilly do jednoho koherentního promptu. Agent architect-analytical-concise dostane úplně jiný systémový prompt než agent debugger-skeptical-technical, i když sdílejí některé podkladové skilly.&lt;/p&gt;
&lt;h2 id=&quot;doménové-znalosti-vzorec-čtyř-souborů&quot;&gt;Doménové znalosti: vzorec čtyř souborů&lt;/h2&gt;
&lt;p&gt;Každá znalostní doména se drží konzistentní struktury:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;domain-name/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  decisions.md      # Key choices, rationale, consequences&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  patterns.md       # Step-by-step guidance and examples&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  anti-patterns.md  # Failure modes and remediation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  evolution.md      # Dated log of changes&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tahle struktura slouží k načítání kontextu agenta. Agent pracující na autentizaci si načte &lt;code&gt;authentication/patterns.md&lt;/code&gt; pro vedení a &lt;code&gt;authentication/anti-patterns.md&lt;/code&gt;, aby se vyhnul známým úskalím. Soubory jsou dimenzované pro efektivní načítání kontextu: dostatečně zaměřené na to, aby byly užitečné, dostatečně obsáhlé na to, aby byly autoritativní.&lt;/p&gt;
&lt;p&gt;Udržujeme 21 doménových vrstev na nejvyšší úrovni včetně analytiky, autentizace, datové vědy, infrastruktury, strojového učení, výkonu, bezpečnosti a dalších. Každá doména může mít poddomény pro jemnější granularitu.&lt;/p&gt;
&lt;h2 id=&quot;hodnoty-operační-systém&quot;&gt;Hodnoty: operační systém&lt;/h2&gt;
&lt;p&gt;Všichni agenti sdílejí základní vrstvu hodnot, která definuje, jak fungují:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jednoduchost na prvním místě.&lt;/strong&gt; Používejte nejjednodušší řešení, které funguje. Složitost přidávejte jen tehdy, když je oprávněná.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Řešte kořenové příčiny.&lt;/strong&gt; Nikdy nezalepujte selhání. Pokud selže pipeline, ladíte pipeline. Pokud selže test, opravíte kód nebo test.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Na základě důkazů.&lt;/strong&gt; Tvrzení označujte jako „ověřené“ (s benchmarky) nebo „odhadované“ (s předpoklady). Detekovaný vzorec neznamená potvrzený problém.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ekonomika kontextu.&lt;/strong&gt; MCP nástroje stojí 0,1 % kontextu. Čtení souboru stojí 2 % za každé. Doménovou expertízu aplikujte dřív, než začnete kód prozkoumávat.&lt;/p&gt;
&lt;p&gt;Tyto hodnoty se šíří ke každému specialistovi přes vykreslovací pipeline. Agent je nemůže kompozicí obejít.&lt;/p&gt;
&lt;h2 id=&quot;cli-řídicí-rovina&quot;&gt;CLI: řídicí rovina&lt;/h2&gt;
&lt;p&gt;Orkestra se dodává s CLI pro správu agentního ekosystému:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Discovery&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;database&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; database-architect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Validation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; validate&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --show-warnings&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Rendering&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --dry-run&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; skills&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; skills&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; schema-migration-workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Decisions&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;authentication&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;CLI je zdroj pravdy o tom, jací agenti existují, jaké skilly mají a jestli je systém zdravý. Před synchronizací spouští validaci, aby zachytilo problémy včas.&lt;/p&gt;
&lt;h2 id=&quot;úvahy-o-open-source&quot;&gt;Úvahy o open source&lt;/h2&gt;
&lt;p&gt;Orkestru jsme postavili, abychom vyřešili náš vlastní problém: koordinaci AI agentů ve velkém měřítku pro komplexní kódovou základnu. Vzorce, které jsme objevili, nejsou specifické pro naši doménu.&lt;/p&gt;
&lt;p&gt;Systém kompozice charakteru (identita + mindset + styl) se hodí pro jakýkoliv tým, který definuje osobnosti agentů.&lt;/p&gt;
&lt;p&gt;Systém vrstev skillů (K0–K4) poskytuje mentální model pro organizaci znovupoužitelných schopností podle rozsahu.&lt;/p&gt;
&lt;p&gt;Vzorec vykreslovací pipeline (YAML zdroj + šablony + generované artefakty) odděluje požadavky nástrojů od obsahu určeného modelu.&lt;/p&gt;
&lt;p&gt;Model ploché orchestrace (jeden koordinátor, mnoho specialistů) se vyhýbá explozi složitosti a přitom umožňuje paralelismus.&lt;/p&gt;
&lt;p&gt;Jestli se Orkestra stane open source, závisí na tom, zda tyto vzorce mají hodnotu pro ostatní, kdo staví s Claude Code. Pokud narážíte na zdi, které jsme popsali, tahle architektura by mohla pomoct.&lt;/p&gt;
&lt;h2 id=&quot;co-jsme-se-naučili&quot;&gt;Co jsme se naučili&lt;/h2&gt;
&lt;p&gt;Stavba Orkestry nás naučila, že orchestrace není o tom, dělat agenty chytřejšími. Je o tom, dělat je zaměřenějšími.&lt;/p&gt;
&lt;p&gt;I agentovi s dokonalými instrukcemi nakonec dojde kontext. Jeden agent se všemi skilly se pořád může splést v tom, který z nich použít. Jeden agent, který se snaží být vším, produkuje průměrné výsledky ve všem.&lt;/p&gt;
&lt;p&gt;Čtyřicet specialistů, každý excelentní ve své doméně, koordinovaných orchestrátorem, který ví, kdy delegovat: takhle dodáváme.&lt;/p&gt;
&lt;p&gt;Na číslech záleží míň než na architektuře. Můžete potřebovat pět agentů, nebo padesát. Princip zůstává: kompozice před schopností, specializace před generalizací, koordinace před individuálním hrdinstvím.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Orkestra pohání agentní ekosystém za Maguyva, naší platformou pro code intelligence. Chcete se dozvědět víc? Ozvěte se týmu.&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Open Source</category></item></channel></rss>