Lekce 06.9: Vynucování standardů kvality kódu (Enforcing Your Coding Standards)
🧠 Mentální model & teoretický rozbor
Nenechávejte kvalitu kódu na dobré vůli člověka ani na pozornosti agenta. Skutečný inženýrský systém staví automatické závory (Guardrails), které fyzicky nedovolí nekvalitnímu kódu proniknout do repozitáře:
VÝVOJÁŘSKÉ ZÁVORY V CI/CD PIPELINE:Kód od agenta │ ▼Pre-commit hook (Husky / lint-staged) ──> Formátování a linter (Lokální stopka) │ ▼Git push │ ▼GitHub Actions / CI Pipeline ──> Typová kontrola, Unit testy, E2E testy │ ▼Pull Request schválen a nasazen do produkce!Agent se v takovém prostředí rychle naučí dodržovat pravidla, protože systém mu okamžitě vystaví červenou kartu při jakémkoliv pochybení.
🏢 Realistický scénář z praxe
V projektu je nastaven pre-commit hook přes husky a lint-staged:
Agent zkusí commitnout kód, kde zapomněl odstranit console.log.
Pre-commit hook okamžitě commit zablokuje s chybou no-console.
Harness (Antigravity i Claude Code) zachytí chybu z gitu, agent sám pochopí, co se stalo, smaže console.log a teprve poté úspěšně commitne. Člověk nemusel říct jediné slovo!
💻 Konkrétní ukázky kódu & promptů
Konfigurace lint-staged v package.json:
{ "lint-staged": { "*.{ts,tsx}": [ "biome check --write", "vitest related --run" ] }}GitHub Actions CI workflow (.github/workflows/ci.yml):
name: CI Pipeline
on: [push, pull_request]
jobs: verify: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v3 - uses: actions/setup-node@v4 with: node-version: 22 cache: 'pnpm'
- run: pnpm install --frozen-lockfile - run: pnpm biome check src/ - run: pnpm tsc --noEmit - run: pnpm vitest run --coverage⚠️ Analýza selhání & Anti-patterns
Chyba: Oslabování CI pravidel, když “agentovi testy neprochází”
Povolit v CI continue-on-error: true nebo vypnout linter, aby pipeline prošla.
- To je přímá cesta k degradaci celého projektu.
- Pravidlo: Mantinely v CI jsou svaté. Pokud kód neprojde, problém je v kódu, ne v mantinelech!
🛠️ Inženýrský postup krok za krokem (Playbook)
- Nastavte Husky a lint-staged pro lokální kontrolu.
- Zaveďte striktní GitHub Actions pipeline.
- Nastavte ochranu hlavní větve (Branch Protection Rules) vyžadující zelenou CI před mergem.
🧪 Praktické cvičení (Hands-on Lab)
Úkol:
Zaveďte do projektu jednoduchý pre-commit skript ověřující formátování před commitem.