Přeskočit na obsah

Lekce 01.3: Nastavení projektu (Setting Up the Project)

⏱️ 3 min čtení Lekce 01.3

🧠 Mentální model & teoretický rozbor

Kódovací agent nemá oči ani fyzický mozek – jeho vnímání reality je stoprocentně určeno tím, jaké soubory mu harness zpřístupní. Pokud je váš projekt zaplaven nepořádkem:

  • Agent otevře složku dist/ a začne analyzovat minifikovaný JavaScript plný generovaných proměnných a, b, c.
  • Agent prohledá node_modules/ a načte do kontextu 50 000 tokenů cizích knihoven.
  • Výsledek: Okamžité vyčerpání rozpočtu tokenů a pád do Dumb Zone.
PROJEKTOVÝ ADRESÁŘ:
├── src/ <── ZDE chceme, aby agent pracoval (TypeScript zdrojáky)
├── dist/ / build/ <── ZÁKAZ VSTUPU (Zabíjí kontext minifikovaným kódem)
├── node_modules/ <── ZÁKAZ VSTUPU (Desítky tisíc cizích souborů)
└── .env <── PŘÍSNÝ ZÁKAZ (Riziko úniku API klíčů a hesel)

Deterministické mantinely projektu (TypeScript tsconfig.json, linter a .gitignore) jsou vaší první linií obrany.


🏢 Realistický scénář z praxe

Představte si full-stack repozitář (Next.js + Prisma + Tailwind CSS). Vývojář zapomněl přidat složku .next do .gitignore. Když zadá agentovi: „Najdi, kde se renderuje profil uživatele,“ agent použije nástroj GrepSearch. Vyhledávač vrátí 40 výskytů ze serverových buildů v .next/server/pages/.... Agent otevře zkompilovaný cachovaný soubor, upraví ho tam namísto v src/components/UserProfile.tsx a vývojář se diví, proč se změny po restartu serveru ztratily.


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

1. Profesionální .gitignore pro projekty s AI agenty:

# Závislosti
node_modules/
.pnp/
.pnp.js
# Build výstupy
dist/
build/
.next/
out/
*.tsbuildinfo
# Dočasné a testovací logy
coverage/
*.log
npm-debug.log*
yarn-debug.log*
# Citlivá data a prostředí
.env
.env*.local
*.pem
id_rsa
# Systémový odpad
.DS_Store
Thumbs.db

2. Přísný tsconfig.json – okamžité zrcadlo pro agenta:

{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"noUncheckedIndexedAccess": true,
"skipLibCheck": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", ".next"]
}

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

Chyba: Spoléhání na to, že agent “ví”, jaký máte linter

Pokud nemáte v repozitáři nakonfigurovaný automatický formátovač (např. Biome nebo Prettier), agent začne formátovat kód podle svého náhodného stylu (jednou jednoduché uvozovky, podruhé dvojité; jednou 2 mezery, podruhé 4).

  • Důsledek: Obří Git diffy plné změn mezer, kde lidský revident přehlédne skutečnou byznys chybu.

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

  1. Vytvořte a zvalidujte .gitignore: Ujistěte se, že git status --ignored správně skrývá všechny build artefakty.
  2. Nainstalujte Biome (ultrarychlý linter a formátovač):
    Terminál
    npm install --save-dev --save-exact @biomejs/biome
    npx biome init
  3. Ověřte jedním příkazem stav celého projektu:
    Terminál
    npx biome check src/ && npx tsc --noEmit
    Tento příkaz přidejte do instrukcí pro agenta jako povinný validační krok.

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

Úkol:

Zkontrolujte svůj aktuální projekt a zjistěte, zda v něm nezůstaly nezachycené soubory, které by mohly zmást agenta.

Kroky:

  1. Spusťte v kořenu projektu:
    Terminál
    git status -uall
  2. Pokud vidíte jakékoliv soubory z .cache, .next, dist nebo soubory končící .log, okamžitě je přidejte do .gitignore.
  3. Otestujte, zda TypeScript kompilátor vrací čistý výstup:
    Terminál
    npx tsc --noEmit