"# Nastavení Cursoru – Pravidla / Rules ve Vibe codingu
V této části seriálu o Vibe codingu si ukážeme, jak v nástroji Cursor nastavit pravidla (Rules), která agent vždy dodržuje při generování kódu. Pravidla umožňují definovat, jak má agent kód psát, jaké styly dodržovat, jak se chovat, a dokonce i jaké role může při práci zastávat. Některé z těchto pravidel si společně rozebereme na příkladu naší demo kalkulačky.
Co jsou pravidla a proč je používat?
Pravidla slouží k tomu, aby agent pracoval konzistentně a podle vašich standardů. Pomáhají předcházet nekonzistencím a chaosu v generovaném kódu, udržují kvalitu, styl a strukturu projektu.
Každý projekt je jiný a vyžaduje vlastní pravidla. Pravidla tak pomáhají přizpůsobit chování agenta konkrétním požadavkům projektu, technologii a firemním standardům.
Kde a jak pravidla nastavujeme?
Pravidla nastavujeme v nastavení aplikace Cursor, které najdete v pravém horním rohu kliknutím na ozubené kolečko.
V nastavení otevřete sekci Rules. Zde najdete dvě hlavní kategorie:
User Rules (uživatelská pravidla)
- Globální pravidla, která platí ve všech projektech, které vytváříte.
- Napíšete je jednou a jsou automaticky aplikována ve všech projektech.
- Pro přidání klikněte na Add rule, nebo u existujícího pravidla na tři tečky (...) a zvolte Edit.
Project Rules (projektová pravidla)
- Pravidla specifická pro konkrétní projekt.
- Neukládají se v nastavení aplikace, ale v samostatném souboru uvnitř složky projektu.
- Při otevření projektu se pravidla načtou a aplikují pouze na tento projekt.
- Přidání pravidla provedete opět kliknutím na Add rule a zadáním názvu souboru (například
rules.cs,python.rulesnebo jiný popisný název). - U každého pravidla lze nastavit, jak se má aplikovat, s možnostmi:
| Nastavení | Popis |
|---|---|
| Manual | Pravidlo se použije jen pokud ho v promptu výslovně zmíníte. |
| Always | Pravidlo je automaticky součástí promptu při každém požadavku, ale není vidět uživateli. |
| Auto attached | Pravidlo se aplikuje automaticky, pokud agent zpracovává soubor s určitou příponou (např. .cs). |
| Agent requested | Pravidlo se aplikuje jen při specifické situaci, například při psaní dokumentace. |
Co do pravidel psát a proč?
Neexistuje univerzální sada pravidel, která by fungovala pro všechny projekty. Každý jazyk a projekt má svá specifika.
Níže najdete doporučená pravidla, která jsme nastavili pro naši demo kalkulačku.
Základní pravidla pro kvalitní kód
- Dodržuj SOLID principy, KISS (Keep It Simple, Stupid) a DRY (Don't Repeat Yourself).
- Maximální délka třídy je 200 řádků.
- Přidávej komentáře ke každé public metodě, na začátek třídy a komentuj celý interface.
- Každá třída i interface musí být v samostatném souboru.
Příklad pravidla (jak by mohlo vypadat v textové formě):
- Každá public metoda musí být opatřena XML komentářem, který stručně popisuje účel a parametry metody.
- Třídy delší než 200 řádků nejsou povoleny; kód je třeba rozdělit do menších komponent.
- Interface musí mít dokumentaci u všech členů.
Testování a TDD (Test Driven Development)
Aplikace je funkční, ale jak jí důvěřovat? Přidáme pravidla, která zajistí, že agent bude používat metodologii TDD:
- Pro vývoj vždy využívej TDD přístup – nejdříve napiš testy, až poté implementuj logiku.
- Po každém úkolu spusť všechny testy a ověř, že se nic nerozbilo.
TDD pomáhá zvyšovat kvalitu kódu, předcházet chybám a zajišťuje, že nové funkce neporušují stávající funkcionalitu.
Git a dokumentace
Je dobré, aby agent věděl, že projekt je spravovaný v Gitu, a podle toho se choval:
- Projekt se připravuje pro GIT – přidej
.gitignore, pokud neexistuje. - Po každé změně aktualizuj soubor
readme.md, který popisuje projekt, jak ho sestavit a spustit.
Rozdělení úkolů a analýza
Pro složitější úkoly je vhodné, aby si agent nejdříve provedl analýzu a rozložil práci na menší části.
- Před každým úkolem si vytvoř seznam úkolů v souboru
tasks.md. - Po dokončení úkolu aktualizuj
tasks.md, například s checkboxy označujícími splněné části.
Tímto způsobem získáte lepší přehled o postupu práce a zvyšujete kvalitu výsledku.
Paměť agenta – vibememories.md
Paměť je kritická záležitost. V aplikaci Cursor začnete první chat a první zadání, ale všechno má své limity. Jak s agentem postupně řešíte aplikaci, ladíte ji a přidáváte další funkcionalitu, po čase se může stát, že začne dělat chyby. Chat i všechno okolo se totiž prodlouží natolik, že v tom AI začne tápat, což spíš než ke kvalitnímu řešení vede k problémům.
Takovou situaci obvykle vyřešíte tím, že v pravém horním panelu kliknete na vytvoření nového chatu. Tím získáte volné kontextové okno a můžete ve vývoji pokračovat. Ovšem tím se zároveň stane jedna věc – nové chatovací okno nezná historii toho, co se před tím dělo a proč. Když mu pak zadáte, aby přidal novou funkcionalitu nebo něco opravil, musí si celý kód znovu projít a pochopit jeho fungování od začátku.
A právě na tohle existuje řešení – paměť. Existuje více přístupů, od jednoduchých po sofistikovanější, my si však ukážeme tu jednodušší cestu.
Přidáme další pravidlo, které agentovi nařizuje vytvořit a aktualizovat zvláštní soubor, například vibememories.md. Do tohoto souboru si bude zapisovat vše důležité o aplikaci – její architekturu, účel, způsob řešení jednotlivých částí, strukturu, známé problémy a další podstatné informace.
Během práce můžete toto pravidlo upravit a rozšířit podle potřeby. Pro menší projekty však bohatě postačí i takové základní vedení kontextu, které výrazně pomůže udržet přehled a kvalitní navazování na předchozí práci.
Řešením je přidat dlouhodobou paměť:
- Po každém úkolu aktualizuj soubor
vibememories.md, který bude obsahovat:- Cíl projektu
- Návrh řešení a architekturu
- Popis jednotlivých částí a problémů
- Příkazy a znalosti, které agent opakovaně potřebuje
Při další práci si agent nejdříve tento soubor načte a vyhne se tak nutnosti opakovaně zpracovávat celý kód.
Další důležitá pravidla a doporučení
- Jsi senior software developer a architekt řešení v C#.
- Pracuješ na OS Windows 11, .NET 9.
- Finální řešení sestav a otestuj automaticky, pokud to není desktopová aplikace.
- Nepoužívej placené NuGet balíčky (např. FluentAssertions je nově placená, nahraď ji třeba AwesomeAssertions).
- Prioritně řeš výkon – snaž se minimalizovat alokace paměti, používej
Span<T>a další moderní techniky. - Používej pouze free a bezpečné balíčky.
- Vždy mysli na bezpečnost a nepoužívej zastaralé či zranitelné knihovny.
Kompletní shrnutí všech pravidel
- Dodržuj SOLID principy, KISS a DRY.
- Dodržuj maximální velikost třídy 200 řádků.
- Přidávej komentáře ke každé public metodě, na začátek třídy a komentuj celý interface.
- Každá třída i interface musí být ve vlastním souboru.
- Pro vývoj vždy využívej TDD přístup: nejdříve testy, pak logiku.
- Po každém úkolu spusť všechny testy a ověř, že se nic nerozbilo.
- Projekt se připravuje pro GIT – přidej
.gitignore, pokud neexistuje, a udržujreadme.md. - Před každým úkolem si proveď analýzu a zapiš seznam úkolů do
tasks.md. - Po každém úkolu aktualizuj soubor vibememories.md, který bude obsahovat:
Cíl projektu
Návrh řešení a architekturu
Popis jednotlivých částí a problémů
Příkazy a znalosti, které agent opakovaně potřebuje - Po provedení úkolu aktualizuj
tasks.md. - Po provedení úkolů aktualizuj
vibememories.md– dlouhodobou paměť agenta. - Jsi senior software developer a architekt řešení v C#.
- Pracuješ na OS Windows 11, .NET 9.
- Finální řešení sestav a otestuj automaticky.
- Nepoužívej placené NuGet balíčky, nahraď je volně dostupnými alternativami.
- Prioritně řeš výkon a bezpečnost.
Demonstrace rozdílu
Nyní, když máme pravidla připravena a uložena, můžeme aplikaci vytvořit znovu se všemi pravidly.
- Otevřete novou složku projektu.
- Napište svůj známý prompt:
Ahoj, napiš mi konzolovou aplikaci v jazyce C# (verze 10 nebo novější). Vytvoř celé řešení (solution) i projekt.
Program po spuštění vypíše krátké menu, ze kterého si budu moci vybrat buď násobení dvou čísel, nebo sčítání dvou čísel.
Poté zadám dvě čísla, aplikace provede výpočet a vypíše výsledek na obrazovku.
- Sledujte, jak agent rozkládá úkoly, vytváří testy a až poté kóduje.
- Výsledek je robustnější, strukturovanější a lépe dokumentovaný projekt.
- Program je otestovaný a připravený na další rozšiřování.
Výstupy ke stažení a inspirace
První demo bez pravidel:
https://github.com/Michal1609/Blog_VibeCoding_DemoOneDruhé demo po aplikaci pravidel:
https://github.com/Michal1609/Blog_VibeCoding_DemoTwo
Závěr
V dnešním díle jsme si ukázali, co jsou pravidla (Rules), jak je zadávat a proč jsou nezbytná pro kvalitní vývoj pomocí AI agentů.
V dalších částech se zaměříme na další pokročilá nastavení Cursoru, srovnání s jinými agentními systémy, práci s pamětí, MCP servery a možnosti integrace Cursoru s dalšími systémy.
Děkuji za pozornost a těším se na další pokračování!
"