Lekce 06.8: Příkaz /goal (The Goal Command)
🧠 Mentální model & teoretický rozbor
Příkaz /goal představuje autonomní inženýrský režim v moderních CLI harnessech (Google Antigravity i Claude Code):
Místo zadávání dílčích příkazů krok za krokem zadáte agentovi vysokoúrovňový cíl společně s deterministickou ověřovací podmínkou (Exit Condition):
AUTONOMNÍ SMYČKA PŘÍKAZU /GOAL:┌─────────────────────────────────────────────────────────────┐│ 1. CÍL + ORÁKULUM (např. `pnpm tsc --noEmit` nebo `vitest`) │└──────────────────────────────┬──────────────────────────────┘ │┌──────────────────────────────▼──────────────────────────────┐│ 2. CYKLUS AUTONOMNÍHO AGENTA: ││ a) Spustí verifikační příkaz v terminálu ➔ zachytí chyby ││ b) Analyzuje diff / chybu a provede cílenou editaci na disku│ c) Spustí verifikaci znovu ││ d) Evaluátor vyhodnotí stav transkriptu a výstupu ││ e) Opakuje, dokud EXIT CODE není 0 nebo cíl není splněn! │└─────────────────────────────────────────────────────────────┘Implementace v Antigravity (agy):
V Antigravity je /goal specializovaný režim pro dlouhotrvající (až noční) autonomní běhy. Běžný agent se po jedné odpovědi zastaví a čeká na člověka. V režimu /goal:
- Antigravity nasadí interní vyhodnocovací vrstvu (evaluator).
- Ta kontroluje výstupy z transkriptů a nedovolí agentovi skončit předčasně, dokud nejsou splněna všechna zadaná kritéria.
- Pokud narazí na chybu, sám se pokusí o alternativní řešení, vyčistí dočasné soubory a pokračuje.
🏢 Realistický scénář z praxe
Při velké aktualizaci TypeScriptu nebo Next.js z verze 14 na 15 se v repozitáři objevilo 45 typových chyb (změny v PageProps, RouteHandlerContext a generateMetadata):
- Místo ručního procházení 45 chyb zadá inženýr do
agy:Terminál /goal Oprav všechny TypeScript typové chyby v src/, dokud příkaz `pnpm tsc --noEmit` neproběhne s exit kódem 0. Neměň byznys logiku komponent, pouze zpřesni typové definice a přidej await pro asynchronní params. - Agent běží autonomně, iterativně opravuje jeden soubor po druhém, spouští kompilátor a skončí s perfektně zkompilovaným projektem!
💻 Konkrétní ukázky kódu & promptů
Správná formulace příkazu /goal:
/goal Odstraň všechna linter varování a formátovací chyby v adresáři src/components/.Ověřovací podmínka: Příkaz `npx biome check src/components/` musí vrátit exit kód 0.Pravidla: Zákaz používání @ts-ignore, any nebo biome-ignore bez výslovného souhlasu.Proč je nutné deterministické orákulum:
[!CAUTION] Nikdy nezadávejte
/goalbez měřitelné podmínky: Zadat:/goal Zlepši UX a udělej kód přehlednějším.
- Neexistuje žádný program, který by změřil “přehlednost” binárním výstupem 0 nebo 1.
- Agent se zacyklí v nekonečných úpravách a spálí statisíce tokenů.
- Pravidlo: Cíl MUSÍ být měřitelný exit kódem terminálového programu (linter, kompilátor, test suite)!
⚠️ Analýza selhání & Anti-patterns
Chyba: Povolení agentovi měnit samotný testovací skript
Pokud agent v rámci /goal smí upravovat samotný test, který ho ověřuje:
- Model v pokušení projít může test jednoduše zkrátit, smazat assert nebo přidat
test.skip()! - Obrana: V promptu výslovně uveďte: „Máš zákaz upravovat soubory
*.test.ts. Testy jsou neměnné orákulum!“
🛠️ Inženýrský postup krok za krokem (Playbook)
- Ujistěte se, že máte funkční a deterministický verifikační příkaz (
pnpm tsc --noEmitnebopnpm vitest run). - Uzamkněte testy: ujistěte se, že testy jsou správné a agent je nesmí smazat.
- Spusťte
/goal [cíl] s podmínkou úspěchu [příkaz]. - Nechte agenta pracovat na pozadí (můžete přepnout na jinou práci).
- Po dokončení proveďte
git diffa zkontrolujte čistotu řešení.
🧪 Praktické cvičení (Hands-on Lab)
Úkol:
Vyzkoušejte si autonomní běh s příkazem /goal na opravě typových chyb nebo linteru.
Kroky:
- Záměrně vytvořte v jednom testu nebo souboru 2 typové neshody (např. nepovolený parametr v interface).
- Spusťte
agy(neboclaude). - Zadejte:
Terminál /goal Oprav typovou nekonzistenci v src/, dokud `pnpm tsc --noEmit` neprojde s exit kódem 0. - Sledujte, jak agent sám spustí kompilátor, přečte řádek s chybou, upraví kód a ověří zelený výsledek.