Backend security / security (push) Successful in 8s
Backend security / security (pull_request) Canceled after 0s
Backend verify / verify (push) Canceled after 9s
Backend verify / verify (pull_request) Canceled after 4s
Conventional commits / commits (pull_request) Successful in 31s
Use owner enums for error and T-Bank protocol values with ESLint regression checks. Preserve open wire fallbacks and keep protocol imports independent of DI and Prisma. Verified npm ci, verify, 226 unit tests, 262 isolated e2e tests and unchanged OpenAPI.
76 lines
5.9 KiB
Markdown
76 lines
5.9 KiB
Markdown
# Работа в репозитории
|
|
|
|
## Граница и порядок работы
|
|
|
|
Репозиторий сам содержит инструкции, исходники, конфигурацию и входы своих
|
|
проверок. Сборка, CI и обязательный маршрут чтения работают без соседних
|
|
checkout. Внешний API задаётся предоставленным публичным контрактом;
|
|
исходники или инструкции его реализации не являются зависимостью разработки.
|
|
При нехватке требования сообщи, какое решение не определено, до его реализации.
|
|
|
|
Начни с результата и affected areas. До edits проследи flow/invariants, найди
|
|
owner и 1–3 примера. Код показывает механизм; случайный аналог не меняет контракт.
|
|
Работай напрямую; OpenSpec/SDD lifecycle — только по явному запросу.
|
|
Перед Node-командами активируй местную `.nvmrc`: `nvm use --silent`.
|
|
Сохраняй чужие staged/unstaged/untracked изменения и read-only архивы.
|
|
|
|
## Change scope
|
|
|
|
Сначала расширь существующего владельца. Иначе используй standard library,
|
|
платформу или установленную dependency; небольшая новая реализация допустима
|
|
при собственной ответственности. Не создавай helper/interface/wrapper ради
|
|
возможного reuse. Общее имя не означает общую бизнес-ответственность.
|
|
Сохраняй validation, authorization, atomicity, accessibility и migration safety.
|
|
|
|
После diff выполни Boy Scout review: проверь новое дублирование, owner, callers,
|
|
небольшие связанные legacy issues и соответствие local conventions. Исправляй
|
|
непосредственно связанные low-risk проблемы; широкий cleanup — отдельная задача.
|
|
|
|
## Domain values
|
|
|
|
Finite business vocabulary принадлежит одному domain/module/entity owner.
|
|
Переиспользуй его symbols; для machine codes и protocol values используй
|
|
строковые `enum`, для структуры с разными payload — discriminated union.
|
|
Сохраняй wire values; generated/external enums не переписывай вручную.
|
|
Numeric policy называй по смыслу и единицам. Индексы, `Math.max(value, 0)` и
|
|
обычные labels не выноси в constants без semantic benefit.
|
|
Локальный TypeScript/lint профиль определяет дополнительные ограничения.
|
|
|
|
## Dependencies
|
|
|
|
Проверь аналоги и direct dependencies в местном manifest до добавления пакета.
|
|
Новая dependency оправдана текущей потребностью и меньшей общей сложностью;
|
|
оцени compatibility, runtime/bundle и maintenance/security. Импортируемый пакет
|
|
объявляется напрямую; транзитивная установка не является контрактом.
|
|
Сохраняй exact versions и lockfile; воспроизводимая установка — `npm ci`.
|
|
Peer-конфликт решай совместимыми версиями без `--force`/`--legacy-peer-deps`.
|
|
Используй существующий analyzer; не добавляй второй для той же проверки.
|
|
|
|
## Test Intent
|
|
|
|
Перед нетривиальным тестом кратко определи наблюдаемый исход, regression risk,
|
|
значимые edge/error/concurrency cases и самую дешёвую надёжную boundary.
|
|
Отдельный artifact не нужен. Проверяй результат, а не private call order,
|
|
декларации, тривиальные wrappers или поведение framework.
|
|
При bug сначала воспроизведи исход. Mock race не доказывает DB atomicity.
|
|
Уровни и runnable commands выбирай по местной testing convention.
|
|
|
|
## Проверки и завершение
|
|
|
|
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.
|
|
|
|
## Git и релизы
|
|
|
|
Работа — в `codex/<task>` от актуального `develop`, затем PR в `develop`.
|
|
Сохраняй чужие изменения; перед commit просмотри staged paths и diff.
|
|
Commits и PR titles — Conventional Commits; допустим `spec:`. Каждый commit
|
|
содержит одну связанную задачу. Root другого checkout не управляет этим repo.
|
|
Прямой push в `main`, force-push и перенос опубликованных тегов не входят в
|
|
обычную работу. Перед release/hotfix прочитай местный README, раздел «Релизы».
|