Внедрение .cursor/rules в Admiral для быстрой разработки административных панелей


Введение
Что такое .cursor/rules?
Основные правила
- crud-page.mdc – правила создания CRUD-страниц со всей сопутствующей логикой.
- admiral-components.mdc – документация по компонентам.
- admiral-hooks.mdc – документация по хукам.
Правила admiral-components.mdc и admiral-hooks.mdc: документация по компонентам и хукам
Правило crud-page.mdc: стандартизация CRUD-разработки
- Единообразие структуры всех CRUD-страниц;
- Стандартизацию именования переменных и функций;
- Четкую организацию файлов и папок;
- Использование только разрешенных компонентов из библиотеки @devfamily/admiral.
Как работает правило crud-page.mdc глазами ИИ-агента
- Определены правила именования файлов, переменных и функций;
- Указано, что страница должна находиться в папке, названной согласно первому пункту из списка, предоставленного пользователем;
- Определен список разрешенных компонентов для форм из библиотеки @devfamily/admiral.
- Как организовать импорты (React, хуки, компоненты);
- Как структурировать основную конфигурацию через `createCRUD`;
- Какие секции являются обязательными (path, resource, index, filter, form);
- Какие секции опциональны (actions, create, update, filter, topContent, bottomContent).
admin/
├── src/
│ └── crud/
│ └─── [resource]/
│ ├──── index.tsx # файл с конфигурацией CRUD-страницы
│ ├──── types.ts # Типизация
│ └────components/ # На случай необходимости использования кастомных компонентов
└── config/
└─── menu.tsx # Файл, описывающий как должно выглядеть меню навигации
└── pages/ # Роутинг
└─── [resource]/
├──── index.tsx # Страница с таблицей
├──── create.tsx # Страница с формой создания
└──── [id].tsx # Страница с формой редактирования
- Создать соответствующие файлы в правильных директориях;
- Настроить маршрутизацию в pages;
- Добавить пункт меню, если это необходимо;
- Следовать типизации из библиотеки @devfamily/admiral;
- Проверить заново созданный код на наличие ошибок Typescript и линтеров, а затем исправить их.
- Настройке таблиц (указание ширины колонок, рендеринг сложных типов данных);
- Организации фильтров (группировка, использование allowClear в селектах);
- Структуре форм (обязательные поля, использование columnSpan и декомпозиция компонентов полей форм);
- Действия таблицы (использование TopToolbar для кастомизации действий, добавление иконок).
- Путь к типизации: node_modules/@devfamily/admiral/lib/admiral/crud
- Запросить у пользователя список из 7 пунктов, если он не предоставлен изначально;
- Создать все необходимые файлы и структуру на основе этого списка.
- Импорты компонентов;
- Настройку форм;
- Настройку фильтров;
- Конфигурацию таблицы;
- Настройку действий;
- Примеры использования различных компонентов.
Как ИИ использует правило crud-page.mdc в Admiral
- Проверяет наличие всех необходимых данных от пользователя.
- Создает правильную структуру файлов и папок.
- Генерирует код, следуя всем указанным правилам и стандартам.
- Использует только разрешенные компоненты из @devfamily/admiral.
- Создает все необходимые связи между файлами.
- Добавляет необходимые пункты меню.
- Находит и исправляет ошибки типизации и линтеров, в случае их наличия.
- Быстрое создание новых страниц через структурированный процесс;
- Единый стиль кодирования;
- Автоматическая проверка типов, linter-ошибок и их исправление;
- Частичная документация по проекту встроена прямо в IDE.
Как использовать правило
- Базовое наименование. Это имя будет использовано в PascalCase для названия компонента, в kebab-case – для пути и папок в каталоге pages.
- Ресурс. Используется для отправки запросов на сервер.
- Список необходимых столбцов для таблицы. Необходимо передать список наименований «name», «age», «address», «phone».
- Список обязательных полей для формы создания.
- Список обязательных полей для формы редактирования. Если они совпадают с пунктом 4, оставьте поле пустым или укажите это.
- Список названий полей, для которых необходимы фильтры.
- Список названий полей, для которых необходимы быстрые фильтры (если они идентичны пункту 6, оставьте пустым или укажите так).
Реальный пример создания CRUD-страницы с помощью rules


