След като Cursor пусна режим за планиране със запазване във файл, реших да допиля и публикувам моя набор от правила за Cursor. Той се събра от работа по няколко десетки проекта и сега успешно (май) се използва в няколко компании. Ползван е и за код, и за инфраструктура (Terraform, Ansible, Helm).
Основната идея е да работиш съвместно с агента, като запазваш контрол над процеса и играеш ролята на guardrail между етапите, като ги превключваш явно чрез @task-*.
Ключови принципи:
- унифициране на инструкциите (в процес): настройката на нов проект трябва да се свежда до избор на правила и редакция на
main.mdc; - разделяне на инструкциите по типове:
task-*[Apply Manual] — етапи на работа по задачата;rules-*[Always Apply] — правила на работа: TDD, code style и т.н.docs-*[Always Apply] — правила за документация;run-commands.mdc[Always Apply] — описание на конзолни команди за поддръжка на проекта;howto-*[Apply Intelligent] — автоматични инструкции за ситуативни задачи, които могат да възникнат за модела по време на работа;
- документацията като дългосрочна памет на агента:
- цялата документация трябва да е в репото;
- два варианта на схема за документация: cline-bank (7 файла) и опростена (Software Requirements Specification + Software Design Specification, 4 файла);
- документация в компактен стил и отделна задача за нейното „компактиране“;
- запазване на текущата задача във файл (
./documents/whiteboard.md) за предаване между чатове и етапи; - максимален автоматичен контрол на регресиите: цялата проверка на проекта се свежда до една команда (
./run check), така че агентът да не може да изпълни само част от проверките; същата се ползва и в CI; - единен entrypoint за всички команди на проекта (
./run).
Инструкциите далеч не са идеални и засега нямам време за отделно доизпипване, но работят — и работят много по-добре от гола IDE.