diff --git a/.ai/conventions/engineering.md b/.ai/conventions/engineering.md index b100e4f..fd2e579 100644 --- a/.ai/conventions/engineering.md +++ b/.ai/conventions/engineering.md @@ -7,11 +7,18 @@ checkout. Внешний API задаётся предоставленным публичным контрактом; исходники или инструкции его реализации не являются зависимостью разработки. При нехватке требования сообщи, какое решение не определено, до его реализации. +При конфликте с общим шаблоном следуй местным правилам и явному запросу +пользователя. Выбирай реализацию самостоятельно, но изменение финансовой +логики, публичного контракта или утверждённой семантики возвращай владельцу +на согласование до зависимой работы. Начни с результата и affected areas. До edits проследи flow/invariants, найди owner и 1–3 примера. Код показывает механизм; случайный аналог не меняет контракт. Работай напрямую; OpenSpec/SDD lifecycle — только по явному запросу. -Перед Node-командами активируй местную `.nvmrc`: `nvm use --silent`. +Перед Node-командами активируй местную `.nvmrc`: если `nvm` не загружен в +non-interactive shell, загрузи установленный `$HOME/.nvm/nvm.sh`; затем +выполни `nvm use --silent` из backend. Если `nvm.sh` недоступен, остановись, +не используй системный Node. Сохраняй чужие staged/unstaged/untracked изменения и read-only архивы. ## Change scope @@ -57,13 +64,18 @@ Peer-конфликт решай совместимыми версиями бе ## Проверки и завершение -Code/dependency change: `npm ci`, полный `npm run verify` и дополнительные -risk checks из местной testing convention. Targeted tests ускоряют итерацию, -но не заменяют финальный gate. `lint:fix`/format — edits, не proof. -Markdown-only: проверь новые/изменённые тексты, локальные ссылки/якоря, маршруты -чтения и `git diff --check`; application build ради текста не нужен. -Повтори routing по staged/unstaged/new files. Запиши краткие команды, результаты -и ограничения. Зелёный lint не заменяет semantic/security review. +| Когда | Что проверить | +| --- | --- | +| Окружение новое, изменились manifest/lockfile или Node, установка сомнительна | `npm ci` до Node-проверок; одна правка кода переустановки не требует. | +| Итерация | Адресные тесты, typecheck и lint по затронутому поведению и риску. При изменении поведения добавь/обнови содержательную регрессию, если существующая проверка не ловит её; для косметики не создавай искусственный тест. | +| Итоговый code/dependency diff | Перед объявлением готовности и передачей к интеграции выполни один полный `npm run verify` на итоговых входах. Дополнительные risk checks из testing convention и явно утверждённые task checks обязательны; CI проверяет независимо. | +| Только Markdown | Проверь тексты, ссылки/якоря, маршруты чтения и `git diff --check`; application build не нужен. При изменении verification-контура проверь его работу. | + +Повтори routing по staged/unstaged/new files. В отчёте по задаче/PR запиши +проверенные входы, команду, exit code, результат и ограничения. Повторяй +проверку при изменении значимых входов (включая config, dependencies и +generated artifacts), сомнении в evidence или явном запросе пользователя. +`lint:fix`/format — edits, не proof; lint не заменяет semantic/security review. ## Git и релизы