Раз уже 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;
  • єдиний список виклику всіх команд проєкту (./run).

Інструкції далекі від ідеальних і поки немає часу на окреме допилювання, але воно працює — і працює сильно краще, ніж гола IDE.

https://github.com/korchasa/ide-rules