Přeskočit na obsah

Lekce 04.8: Smyčka Grill-Execute-Clear (The Grill-Execute-Clear Loop)

⏱️ 4 min čtení Lekce 04.8

🧠 Mentální model & teoretický rozbor

Jádrem inženýrské metodiky Matta Pococka je cyklus Grill ➔ Execute ➔ Clear:

┌─────────────────────────────────────────────────────────────┐
│ 1. GRILL (Nelítostný výslech & vyjasnění zadání) │
│ Agent vás podrobí sérii otázek. Odhalí hraniční případy, │
│ datové typy a závislosti PŘED napsáním jediného řádku. │
└──────────────────────────────┬──────────────────────────────┘
│ Krystalicky čistá specifikace
┌──────────────────────────────▼──────────────────────────────┐
│ 2. EXECUTE (Rychlá exekuce v čistém sezení) │
│ Implementace testu a kódu na jeden zátah ve Smart Zone. │
│ Deterministické ověření kompilátorem a test runnerem. │
└──────────────────────────────┬──────────────────────────────┘
│ Git commit
┌──────────────────────────────▼──────────────────────────────┐
│ 3. CLEAR (Vyčištění stolu) │
│ Příkaz /clear. Okamžitý návrat na 0 tokenů. Žádný balast │
│ pro další úkol. │
└─────────────────────────────────────────────────────────────┘

Tato smyčka eliminuje jak unáhlené programování bez rozmyslu (vibe coding), tak znečištění kontextu dlouhými konverzacemi.


🏢 Realistický scénář z praxe

Chcete implementovat funkci pro smazání uživatelského účtu (GDPR):

  • Bez grilování: Agent napíše prisma.user.delete(). V produkci to spadne na chybě cizího klíče (Foreign Key Constraint), protože uživatel má navázané objednávky a faktury, které zákon zakazuje smazat!
  • S grilováním: Agent se v první fázi zeptá: „1. Co máme udělat s existujícími objednávkami uživatele – anonymizovat, nebo smazat? 2. Máme zrušit aktivní Stripe předplatné před smazáním záznamu? 3. Má být smazání okamžité, nebo soft-delete s 30denní lhůtou pro obnovu?“
  • Vývojář odpoví a teprve poté vznikne robustní kód, který v produkci nezpůsobí právní ani databázovou katastrofu.

💻 Konkrétní ukázky kódu & promptů

A) V Antigravity (agy): Nativní příkaz /grill-me

Google Antigravity CLI má smyčku grilování zabudovanou přímo jako systémový slash command /grill-me a odpovídající dovednost. Když ho vyvoláte, agent přepne do režimu interaktivního tazatele a použije strukturovaný dotazník:

Terminál
# V terminálu Antigravity:
/grill-me Chci implementovat funkci pro export uživatelských dat do ZIP archivu

Agent nezačne chrlit kód, ale položí vám sérii zacílených otázek s možnostmi výběru (výběr formátu, streaming vs. paměť, práva administrátora).

B) V Claude Code: Promptová šablona nebo dovednost .claude/skills/grill/SKILL.md

V Claude Code (pokud nemáte nadefinovanou skill) můžete grilování vyvolat explicitním promptem:

Mám záměr: Chci implementovat funkci pro export uživatelských dat do ZIP archivu.
NAPIŠ ZATÍM NULOVÝ KÓD.
Podrob mě nelítostnému výslechu (Grill me).
Polož mi 3 klíčové otázky na:
1. Datové entity, které do exportu patří a které ne.
2. Způsob generování ZIPu (streamování vs paměť) s ohledem na paměťové limity Node.js.
3. Bezpečnost, oprávnění a autorizaci požadavku.
Ptej se strukturovaně s konkrétními možnostmi odpovědí.

⚠️ Analýza selhání & Anti-patterns

Chyba: Přeskočení kroku Clear po úspěšném commitu

Vývojář dokončil funkci, testy prošly, commitnul kód, ale neprovedl /clear.

  • Začne řešit další úkol ve stejném sezení.
  • Agent má v kontextu stovky řádků z předchozího grilování a začne si plést požadavky nového úkolu se starým.

Chyba: Pasivní schvalování bez zamyšlení

Vývojář na otázky odpovídá jednoslovně: „udělej to jakkoliv“.

  • Tím se vracíte zpět do vibe codingu. Cílem grilování je přinutit vás jako technického lídra rozhodnout architektonické kompromisy ještě před tím, než vznikne commit.

🛠️ Inženýrský postup krok za krokem (Playbook)

  1. Fáze Grill: V agy zadejte /grill-me <záměr> (nebo v claude zadejte grilovací prompt). Diskutujte s agentem, dokud nejsou zodpovězeny všechny hraniční stavy.
  2. Fáze Spec: Nechte agenta shrnout výsledky do stručné specifikace (3-5 odrážek).
  3. Fáze Execute: V čistém nebo vyjasněném kontextu nechte agenta napsat test a implementační kód.
  4. Fáze Verify: Spusťte linter a testy (vitest, tsc).
  5. Fáze Clear: Zkontrolujte git diff, commitněte a zadejte /clear.

🧪 Praktické cvičení (Hands-on Lab)

Úkol:

Vyzkoušejte si grilování na reálném webovém scénáři.

Kroky:

  1. Spusťte agy (nebo claude).
  2. V agy zadejte:
    Terminál
    /grill-me Chci do projektu přidat rate-limiting na přihlašovací endpoint /api/auth/login.
    (V claude zadejte: „Chci do projektu přidat rate-limiting na /api/auth/login. Než napíšeš kód, vygriluj mě 3 otázkami na architekturu a edge-cases.“)
  3. Zodpovězte jeho otázky (např. Redis vs. in-memory, IP vs. user account, HTTP hlavičky 429).
  4. Sledujte, o kolik přesnější, bezpečnější a čistší kód agent následně vygeneruje.
  5. Proveďte commit a zadejte /clear.