Baserat på ett verkligt fall av automatisk programmering med Claude Code, dela med dig av några prompttekniker

Den här artikeln delar med sig av ett verkligt användningsfall av Claude Code genom ett praktiskt exempel. Innan vi delar med oss, låt oss göra en liten undersökning.
Ursprungligt behov: En betalande användare önskade att jag skulle lägga till en ändringstid för artiklar i mina inlägg.
Vid första anblicken verkade detta behov svårt att uppfylla. Eftersom artiklarna på min webbplats inte lagras i en databas, utan byggs med next.js SSG, finns det ingen uppdateringstid.
Ett knep här är: När vi löser problem ska vi inte mata in det ursprungliga behovet direkt till Claude Code, av följande skäl:
1. Ursprungsbehovet är relativt otydligt, vilket kan leda till missförstånd. Om det missförstås kan det slutligen lägga till en tid, men den tiden kanske inte är tillförlitlig.
2. Token-förbrukningen i Claude Code är verkligen mycket dyr, så otydliga krav kan leda till att många tokens slösas bort meningslöst.
Därför behöver vi bryta ner det ursprungliga behovet. Jag konsulterade först deepseek, som gav mig två lösningar:
1. Filbyggnadstid: Vid varje bygge behöver vi hämta filens byggtid, men turbopacks paketeringsstrategi är lite annorlunda. Vid varje bygge ändras filens hash-värde, så denna byggtid kanske inte är tillförlitlig.
2. Git-incheckningstid: Jag tänkte att detta borde vara mer tillförlitligt.
Efter att ha fått en grov lösningsriktning skapade jag denna enkla prompt: Kompilera git-incheckningstiden i huvudet på varje .mdx-artikel.
Claude Code är ganska pålitligt. Om prompten är tillräckligt exakt, går det oftast bra, och den kör bara på.
Efter att ha använt 7 dollar av mitt kredit och tagit cirka 20 minuter, slutfördes det äntligen.
Och som väntat, så hände det oväntade: den hoppade över ändringar i 171 filer.
Det knepiga här är att de filer som hoppades över bara hade skickats med en extra pass-parameter, allt annat var exakt likadant.
<PostLayout pass>...Men den kunde inte vara flexibel och definierade denna extra parameter som ett helt annat anpassat komponent. Sedan hoppade den bara över det ~ ~
import Layout from 'components/post-layout';
import { getGitFileInfo } from '@/utils/git-info';
export default function Article({ children }: any) {
const gitInfo = getGitFileInfo('src/app/你的路径/page.mdx');
return (
<Layout gitInfo={gitInfo || undefined}>
{children}
</Layout>
);
}Men i verkligheten behövde jag detta resultat, och körresultatet skulle vara helt identiskt.
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>
);
}Och här föll jag i en promptfälla.
Jag skrev prompten igen: Använd samma metod som ovan för att refaktorisera de 171 filer som hoppades över.
Mitt uttryck, vid närmare eftertanke, har en viss tvetydighet. Eftersom Claude Code redan gett mig ett förslag, men jag inte accepterade det, var min avsikt att använda samma metod som för de hundratals redan ändrade filerna för att ändra de hoppade filerna. Men under körningen tolkade den det som: det förslag den gav ovan.
Denna tvetydighet ledde till att den körde i 20 minuter enligt det schema jag inte ville ha, med två fel under vägen som den självrättade, och svalde mina tokens våldsamt. De två tolkningarna började kollidera och orsakade fel.
Till slut var jag tvungen att avbryta denna körning och förtydliga min betydelse igen.
Sammanfattning
1. I prompts är det bäst att inkludera relativt stabila och exakta lösningar. Ju mindre AI behöver tänka, desto lägre blir hallucineringsfrekvensen.
2. Prompts för krav får inte innehålla tvetydigheter. Tvetydigheter leder lätt till fel. Även om Claude Code till slut kan rätta till dem, förbrukar det många tokens. Och eftersom LLM genererar resultat baserat på förutsägelsemekanismer, kan tidiga missförstånd eller tvetydigheter leda till att varje steg går längre i fel riktning. Den kommer också att försöka vara logiskt konsekvent och generera saker som inte finns, vilket gör problemen större och ökar utvecklarens granskningssvårigheter. Om du låter dig luras av dess hallucinationer kan det leda till allvarliga konsekvenser.
3. Naturligt språks begränsningar är inte lika precisa som kod. Att inkludera filnamn, kodvariabler, kodspecifika termer och facktermer i prompts minskar Claude Codes hallucinationer avsevärt.





