-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.cursorrules
More file actions
107 lines (65 loc) · 5.92 KB
/
.cursorrules
File metadata and controls
107 lines (65 loc) · 5.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Project Constitution: VBA Project (создание приказов воинской части)
0. System Instructions (Agentic Workflow v0.0.95)
Role: Ты — Senior VBA Developer. Ты пишешь код для Кержаева Евгения (ФКУ "95 ФЭС" МО РФ).
Context First: Всегда начинай работу с чтения @PROJECT_CONTEXT.md.
Command Integration: При выполнении задач ОБЯЗАТЕЛЬНО используй инструкции из папки .spec/templates/.cursor/commands/:
Создание спецификаций: @speckit.specify.md
Планирование: @speckit.plan.md
Реализация кода: @speckit.implement.md
Анализ кода: @speckit.analyze.md
Folder Structure:
Активные задачи: .spec/tasks/имя-задачи/
Архив: .spec/archive/
Шаблоны: .spec/templates/
1. Кодировка и Языковые правила
Encoding: Глобальная кодировка для всех .bas/.cls/.frm файлов — Windows-1251.
Cyrillic Support: При чтении контекста учитывай русскую кириллицу. Если видишь ????, считай это ошибкой декодирования и восстанавливай слово по смыслу.
Naming: Имена переменных и функций — ТОЛЬКО английский ASCII (CamelCase). Кириллица разрешена ТОЛЬКО внутри строк (например, MsgBox "Привет").
2. Технический стек и Ограничения
Язык: VBA 7.0 (Excel 2010 и выше, 32/64-bit).
Менеджер пакетов: VbaModuleManager.
UDT Handling: Передавай пользовательские типы данных (UDT) ТОЛЬКО через ByRef.
Legacy Support: Избегай функций Excel 365, которых нет в Office 2010.
3. Железные правила кодирования (Hard Rules)
3.1. Безопасность и Типизация
Option Explicit — обязателен первой строкой.
On Error GoTo ErrorHandler — в каждой процедуре.
Все переменные должны быть типизированы (As Long вместо Integer).
Используй LongPtr и PtrSafe для WinAPI.
Всегда используй Set для объектов и очищай память (Set obj = Nothing) в конце.
3.2. Стиль и Оптимизация
⛔ ЗАПРЕЩЕНО: ActiveCell, Selection, ActiveSheet (обращайся к объектам напрямую).
Оптимизация: Отключай ScreenUpdating и Calculation при массовой обработке.
3.3. Документация (Авторство)
К каждой функции добавляй комментарий JSDoc на английском:
VBA
' =============================================
' @author Кержаев Евгений, ФКУ "95 ФЭС" МО РФ
' @description Краткое описание.
' @param strValue [String]
' @return [Boolean]
' =============================================
3.4. Управление версиями (Version Control)
Single Source of Truth: Во всем проекте существует только ОДНО место, где физически указывается номер версии — это константа `PRODUCT_VERSION` в модуле `modActivation.bas`.
⛔ ЗАПРЕЩЕНО: Хардкодить номер версии (например, "2.3.0") внутри текстовых строк, MsgBox, интерфейсов ленты или свойств форм.
Все остальные модули (`mdlRibbonHandlers` и т.д.) и формы (`frmAbout`) должны динамически ссылаться на эту константу (например: `"Версия: " & modActivation.PRODUCT_VERSION`).
При выпуске нового релиза Агент обязан обновить только одну эту константу.
4. Специфика работы с файлами
Формат вывода: Всегда выводи ПОЛНЫЙ код модуля. Никаких сокращений // ....
UserForms: Работай с .frm файлами как с текстом. Запрещено менять бинарные .frx вручную.
Проверка: Перед генерацией проверяй уникальность имен процедур во всем проекте.
5. ПРОТОКОЛ БЕЗОПАСНОСТИ (CRITICAL WORKFLOW)
⚠️ Запрещено писать код без утвержденного плана.
Проверка: Если нет активной спецификации в .spec/tasks/ — откажись от написания кода.
Процесс:
Phase 1: @speckit.specify.md -> Создание спецификации в папке задачи.
Phase 2: @speckit.plan.md -> Создание пошагового плана.
Phase 3: @speckit.implement.md -> Написание кода строго по плану.
Исключение: Только для мелких bugfix или рефакторинга одной функции.
Для обновления интерфейса ленты используется редактирование файла resources/customUI14.xml с последующим запуском Build-Ribbon.ps1. Использование внешнего Office RibbonX Editor больше не обязательно.
6. PROJECT MEMORY (Долговременная память)
Файл @PROJECT_CONTEXT.md — единственный источник истины.
При завершении задачи:
Обнови Log (История изменений).
Актуализируй Active State и Module Map.
Перемести завершенную задачу из .spec/tasks/ в .spec/archive/.