Kapitola 4 · Řemeslo · 7 min čtení
První prompt nikdy není poslední. Hodnota Claude Code není výstup — je to smyčka, která tě dovede ke správnému výstupu za tři čtyři kola místo jednoho frustrovaného přepisu.
V čase se cíl posouvá. Na začátku čteš každý diff, kontroluješ každou změnu, držíš všechno v ruce. Později si kolem agenta postavíš harness, který dělá jeho práci ověřitelnou bez toho, aby tvoje oči byly na každém řádku. Tahle kapitola je obě poloviny — denní návyky iterace a postoj, díky kterému fungují ve velkém.
Dvakrát Esc v Claude okně. Jsi o zprávu zpět. Změny v souborech jsou rollbacknuté. Konverzace se větví. Stejný efekt jako /rewind, jenom rychlejší.

Tohle je nejužitečnější klávesová zkratka v celém nástroji. Používej ji, kdykoliv:
Rewind je levný. Nový prompt od začátku je drahý.
V menu přetáčení přibyla volba Summarize up to here — zkomprimuje starší historii a nechá nedávná kola nedotčená. Použij ji, když chceš uvolnit kontext v konkrétním místě konverzace bez toho, abys začínal od nuly.
Nejrychlejší cesta ke špatnému výstupu je prompt, který chce moc věcí naráz.
Široký:
Zrefaktoruj tenhle soubor na dependency injection, přidej testy a převeď ho na TypeScript strict mode.
Úzký, tři prompty:
Zrefaktoruj tenhle soubor na dependency injection. Testy a typy zatím nech.
Teď přidej testy pro zrefaktorované rozhraní.
Teď zapni strict mode a oprav, co se rozbije.
Tři úzké prompty dopadnou třikrát rychleji než jeden široký. Každý dostane čistý review.
Když Claude udělá něco blízkého, ale vedle, nepodléhej nutkání to přepsat od začátku. Popiš mezeru:
Helper funkce je v pořádku, ale přesuň ji do
utils/time.ts— tam držíme časové helpery.
Claude ji přesune. Struktura drží. Nemusel jsi vysvětlovat celý úkol znovu.
/clear vs /compactKontextová okna jsou velká, ale nejsou nekonečná. Dva příkazy, dva nástroje:
/compact [focus] — stejná konverzace, Claude si shrne dosavadní historii a zahodí surové zprávy. Použij, když jsi uprostřed úkolu a potřebuješ si odlehčit./clear — nová konverzace, ta stará se zaarchivuje (dá se obnovit přes /resume). Použij, když přehodíš do jiné části codebase nebo konverzace má 30+ kol a drifftuje.Čistá konverzace s dobrým CLAUDE.md je skoro vždycky rychlejší než dlouhá.
Pro tip pro Compound Engineering smyčku (kapitola 7): dělej /clear mezi fázemi. /clear před /plan znamená, že brainstormingové kolo nezaneřádí plánování. /clear před /work znamená, že debatování nad plánem neobarví implementaci. Každá fáze dostane ostrý kontext; /compound na konci má čistý materiál k shrnutí.
Na začátku agentní práce je rada jednoduchá: čti každý diff, kontroluj každou změnu, nevěř agentovi. To je kontrolní reflex. Vybuduje dovednost.
Jakmile s Claude Code pracuješ denně, tenhle postoj se stává úzkým hrdlem. Nemůžeš číst padesát diffů za hodinu. Nemůžeš zároveň držet plán + diff + codebase v hlavě. Čím déle vysedáváš v režimu kontroly, tím méně tě agent ve skutečnosti dokáže zrychlit.
Lepší cesta: postav si kolem Claude Code harness, který dělá jeho práci ověřitelnou bez toho, aby tvé oči byly na každém řádku. Tvoje role se posune z reviewera na architekta harnessu.
Jak ten harness v praxi vypadá: testovací disciplína (tracer bullets, TDD, mutační kontroly), review vedené agentem (/security-review, claude-code-action, Semgrep nebo Snyk v CI), bezpečnostní postoj proti lethal trifectě a automatizace (hooky, Playwright, benchmark asserce). Kapitola 8 je místo, kde je tohle rozvedené — vyber jednu věc, přečti si odkazy, zkus ji na skutečném úkolu.

S harnessem na místě se otázka mění z „udělal Claude v tomhle diffu chybu?“ na „chytil by to harness, kdyby ano?“ Čtení diffu se stává spot-checkem, ne povinností. Ty jsi rychlejší. Agent získává důvěru. Oboje roste společně.
Jestli teprve začínáš: čti diffy pečlivě a vybuduj si reflexy. Jak harness kolem tebe roste, čti jich míň. Ta progrese je pointa.
Claude Code má pět režimů oprávnění. Aktivní řídí, co může Claude dělat bez ptání.
.npmrc, .yarnrc*, bunfig.toml, .bazelrc, .pre-commit-config.yaml, .devcontainer/ apod.), se pořád zeptá.--dangerously-skip-permissions. V desktopové aplikaci ho nejdřív musíš povolit v nastavení, než se v menu objeví. Bypass se nově vztahuje i na zápisy do .claude/, .git/, .vscode/ a konfiguračních souborů shellu — cesty, které dřív vyžadovaly potvrzení i v bypass módu. Destruktivní příkazy se pořád ptají jako záchranná síť. Používej jen v izolovaném prostředí.settings.autoMode.hard_deny — pravidla tam blokují bezpodmínečně, nevadí, co uživatel chce ani jestli máš v allow výjimky. Spouštění subagentů teď klasifikátor vyhodnocuje ještě před startem — subagent nemůže bez předchozí kontroly žádat o blokovanou akci. Auto mode nepotlačuje AskUserQuestion, jestli na něm závisíš ty nebo skill. Destruktivní git příkazy (git reset --hard, git checkout -- ., git clean -fd, git stash drop) se teď blokují, jestli jsi nepoprosil o zahození lokální práce. git commit --amend se zablokuje, jestli ten commit neudělal agent v aktuální session. terraform destroy, pulumi destroy a cdk destroy se taky blokují, jestli jsi nespecifikoval konkrétní stack.Jemná pravidla oprávnění. Záznamy allow a deny v settings.json přijímají syntaxi Tool(param:value) — porovnávají se skutečné parametry, se kterými byl nástroj zavolán, ne jen jeho název. Wildcard * funguje. Příklad: Agent(model:opus) v pravidle deny zablokuje spouštění Opus subagentů a nechá ostatní volání Agent projít. Hodí se na setup s auto módem — rychle, ale Opus ne na každého subagenta.
Syntaxe pravidel oprávnění. Systém oprávnění zná pravidla ve formátu Tool(param:value), která odpovídají parametrům vstupu nástroje — s * jako wildcard. Agent(model:opus) v disallowedTools třeba zablokuje jakéhokoliv subagenta spouštěného s Opusem.
Jak přepínat:
M a pak číslo 1–5. Režimy, které potřebují povolit v nastavení, jsou do té doby zašedlé.Shift+Tab cyklí dostupnými režimy. Nebo rovnou startuj v konkrétním režimu přes --permission-mode <mode> (například --permission-mode auto).
Plan mode je ten, který má smysl znát nejvíc v každodenní práci. Claude v něm může přemýšlet tak tvrdě, jak chce, aniž by udělal cokoliv destruktivního — ty vidíš jeho úvahy, potvrdíš nebo přesměruješ, a pak plan mode opustíš, ať to provede. Auto mode je ten, kterému má smysl se naučit věřit, až budeš mít v repu testy a harness, které chyby chytí. Bypass je pro izolované prostředí — nedělej z něj návyk.

Plan mode plán nikam neukládá. Plán žije v konverzaci a s /clear zmizí. Pokud chceš plány zapsané na disk — abys je mohl později zkontrolovat, sdílet s kolegou nebo aby proti nim běžel /work — přesně to dělá skill /plan z Compound Engineeringu (kapitola 7). Je to doporučený flow, jakmile máš reálnou víc-krokovou práci.
Kdy se plan mode vyplatí:
Kdy se nevyplatí:
Ještě jedna dimenze, kterou stojí za to znát: /sandbox. Je to samostatný toggle, nezávislý na těchhle pěti režimech — obalí každý bash příkaz, který Claude pouští, sandboxem na úrovni OS (filesystem + síť). I v „accept edits" nebo „auto" pak Claude nemůže sáhnout mimo projekt ani na neschválené domény. Kapitola 8 to rozebírá včetně flagů pro firemní nasazení.
Troubleshooting přes --safe-mode. Chová se Claude jinak, než bys čekal — hook se zasekl, MCP server zasahuje do session, skill přepisuje něco, co nechceš? Spusť session s --safe-mode nebo nastav CLAUDE_CODE_SAFE_MODE=1. Zakáže všechna přizpůsobení: soubory CLAUDE.md, pluginy, skilly, hooky i MCP servery. Pokud problém zmizí, bylo to v konfiguraci. Přidávej věci zpátky jednu po druhé, dokud ho nenajdeš.
Dvě přidané možnosti hookování, které stojí za zabudování do harnessu.
args: string[] (exec form) přeskočí shell úplně. Pole jde přímo do procesu — path placeholdery nepotřebují uvozovky, žádná shell expanze, žádná překvapení. Přepni na exec form tehdy, když má příkaz dynamické argumenty, které by shell pobral špatně.
continueOnBlock: true na PostToolUse hooku mění, co zamítnutí znamená. Standardně zamítnutí ukončí kolo. S continueOnBlock jde důvod zamítnutí zpět Claudovi a konverzace pokračuje. Claude vidí, co porušil, a může se přizpůsobit bez toho, aby ses musel znovu promptit. Hodí se pro výukové hooky — ty, co vynucují konvence místo přímého odmítání.
terminalSequence v JSON výstupu hooku: hook teď může posílat desktopové notifikace, měnit titulek okna nebo zazvonit zápisem do tohohle pole — bez kontrolního terminálu. Šikovné pro PostToolUse hooky, co tě upozorní, když se dokončí dlouhý build a ty jsi mezitím od klávesnice odešel.
background_tasks a session_crons jsou teď součástí vstupu Stop a SubagentStop hookům — seznam aktivních background tasků a naplánovaných cronů v okamžiku, kdy session končí. Hodí se pro Stop hooky, které potřebují rozhodnout, jestli je potřeba úklid nebo předání kontextu, než session skončí.
hookSpecificOutput.additionalContext v návratové hodnotě Stop nebo SubagentStop hooku předá Claudovi zpětnou vazbu a nechá kolo pokračovat — bez označení za chybu hooku. Hook řekne Claudovi, co se stalo; Claude se přizpůsobí a konverzace pokračuje místo zastavení.
Tahle kapitola je o denních návycích. Kapitola 7 je praxe, která je balí do opakovatelné smyčky: brainstorm → plan → work → review → compound. Compound Engineering plugin si nainstaluj, až budeš připravený — je to nejkratší cesta z „iteruju po jednom promptu“ k „mám praxi, která vyrábí spolehlivě dobrou práci.“
Procházíš lab popořadě? Vezmi, co tě tahle kapitola naučila, k ukázce, se kterou jsi začal v kapitole 2 — nebo rovnou ke svému vlastnímu codebase, kde to sedne hlouběji.
GET /version vracející { "version": "1.0.0" }. Na vlastním repu malý route s reálnými daty z tvojí domény. Než prompt pustíš, zmáčkni Shift+Tab, dokud nejsi v plan módu — Claude bude plánovat, ale needituje.Esc a udělej rewind, pak znovu promptni s užším popisem. Lepší plán porazí opravený diff.Když to funguje: tvoje ukázka má dva endpointy a ty sis sáhl na plan mode i rewind na reálném úkolu — dva pohyby, které budeš ve zbytku labu používat nejčastěji. Praxe v další kapitole tě nechá postavit malý skill, který takové route generuje sám.
Jít hlouběji
Záznamy z knihovny, které navazují na tuto kapitolu.