Na základě skutečného případu automatického programování s Claude Code sdílím některé tipy pro prompty

Tento článek vám na základě skutečného případu ukáže reálné využití Claude Code. Než začnu sdílet, udělám malý průzkum.
Původní požadavek: Jeden z mých placených uživatelů si přál, abych do článků přidal čas poslední změny.
Na první pohled se tento požadavek zdál obtížně realizovatelný. Články na mém webu nejsou uloženy v databázi, ale jsou generovány pomocí SSG v next.js. Vůbec nemají čas aktualizace.
Zde je jeden trik: Při řešení problému nepředkládejte přímo původní požadavek Claude Code, a to z následujících důvodů:
1. Původní požadavek je relativně vágní, což může vést k nesprávnému pochopení. Pokud jej AI špatně pochopí, může sice přidat čas, ale ten nemusí být spolehlivý.
2. Spotřeba tokenů v Claude Code je opravdu velmi drahá. Vágní požadavky tedy mohou vést k velké a zbytečné spotřebě tokenů.
Proto je třeba původní požadavek nejprve rozebrat. Nejprve jsem se poradil s deepseek, který mi navrhl dvě řešení:
1. Čas sestavení souboru – při každém buildu bychom potřebovali získat čas sestavení souboru. Strategie balení turbopack je však trochu odlišná; hash souboru se při každém sestavení mění, takže tento čas nemusí být spolehlivý.
2. Čas commitů v gitu – to mi přišlo jako spolehlivější možnost.
S tímto přibližným směrem řešení jsem vytvořil jednoduchý prompt: Kompilovat čas commitů z gitu do hlavičky každého článku .mdx
Claude Code je poměrně spolehlivý. Pokud je prompt přesný, většinou nemá chybu a hned se do toho pustí.
Po spotřebování 7 dolarů z mého kreditu a asi 20 minutách práce bylo vše úspěšně provedeno.
Jak se dalo čekat, stalo se něco neočekávaného: AI přeskočila změny v 171 souborech.
Zde je problém: Tyto přeskočené soubory měly pouze jeden dodatečný parametr pass, vše ostatní bylo úplně stejné.
<PostLayout pass>...AI však nebyla dostatečně flexibilní a tento dodatečný parametr považovala za zcela odlišnou vlastní komponentu, takže je přeskočila a nezpracovala ~ ~
import Layout from 'components/post-layout';
import { getGitFileInfo } from '@/utils/git-info';
export default function Article({ children }: any) {
const gitInfo = getGitFileInfo('src/app/vaše/cesta/page.mdx');
return (
<Layout gitInfo={gitInfo || undefined}>
{children}
</Layout>
);
}Ve skutečnosti jsem však potřeboval tento výsledek, který funguje úplně stejně:
import MdxLayout from 'components/mdx-layout';
export default function Article({ children }: any) {
return (
<MdxLayout pass filePath="src/app/r19base/(4.compiler)/23.compilerlower/page.mdx">
{children}
</MdxLayout>
);
}A zde jsem narazil na problém s promptem.
Zadal jsem znovu prompt: Pomocí stejného přístupu jako výše refaktorujte přeskočených 171 souborů
Když se nad tím zamyslím, tento výraz má určitou dvojznačnost. Claude Code mi již navrhl jedno řešení, ale já s ním nesouhlasil. Mým záměrem bylo upravit přeskočené soubory stejným způsobem jako stovky již upravených souborů. Během provádění to však AI pochopila jako: použít výše navržené řešení.
Tato dvojznačnost vedla k tomu, že AI 20 minut prováděla řešení, které jsem nechtěl. Během toho došlo ke 2 chybám a jejich automatické opravě, což rychle spotřebovávalo mé tokeny. Dva různé výklady začaly „bojovat“, což způsobilo chyby.
Nakonec jsem musel toto provedení zrušit a znovu upřesnit svůj záměr.
Shrnutí
1. V promptech je nejlepší uvést relativně stabilní a přesná řešení. Čím méně musí AI přemýšlet, tím nižší je pravděpodobnost halucinací.
2. V požadavcích v promptech nesmí být žádná dvojznačnost. Dvojznačnost může vést k chybám. I když je Claude Code nakonec může opravit, způsobí to velkou spotřebu tokenů. Navíc, protože LLM generují výsledky na základě predikce, časné chyby v porozumění nebo dvojznačnosti mohou vést k tomu, že každý další krok bude směřovat špatným směrem. AI se navíc bude snažit o logickou konzistenci a může generovat neexistující věci, čímž se problémy budou zvětšovat a ztíží se kontrola vývojářem. Pokud se necháte oklamat jejími halucinacemi, může to mít vážné následky.
3. Přirozený jazyk nemá tak přesná omezení jako kód. Zahrnutí názvů souborů, kódových proměnných, specifických kódových výrazů a odborné terminologie do promptů výrazně sníží halucinace Claude Code.





