Раз уж cursor выкатил свой режим планирования с хранением в файле, то решил допричесать и выложить свой набор правил для cursor. Он сложился из работы над парой десятков проектов и теперь успешно (вроде бы) используется в паре компаний. Использовался и для кода, и для инфраструктуры (Terraform, Ansible, Helm).

Основная идея в том, чтобы работать совместно с агентом, сохраняя контроль над процессом и выступая guardrail’ом между стадиями, явно переключая их с помощью @task-*.

Ключевые принципы:

  • унификация инструкций (в процессе): настройка нового проекта должна сводиться к выбору правил и правке main.mdc;
  • разделение инструкций на типы:
    • task-* [Apply Manual] — этапы работы над задачей;
    • rules-* [Always Apply] — правила работы: tdd, code style, etc
    • 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