# Как вносить изменения 1. Различать проверенное поведение и намерения: в документах писать только то, что измерено или покрыто тестами, с указанием, где лежат данные. 2. Изменение механизма CM подтверждать живой серией ([как повторить](docs/EFFICIENCY-AB.md#как-повторить-в-облачной-сессии-claude-code)) и сохранять все прогоны, включая неудачные, в `evaluation/`. Неудачные подходы описывать в [HISTORY.md](docs/HISTORY.md). 3. Ссылки на файлы репозитория — относительные; на внешний исходник — репозиторий, revision, путь и строки. 4. Перед commit: `npm ci` (в облаке `ONNXRUNTIME_NODE_INSTALL=skip npm ci`) и `npm run verify` — сборка, проверка документации, тесты и проба разбора. 5. Не включать в публикацию локальные артефакты, исходники частных проектов и секреты. 6. Код — TypeScript strict, ESM. Внешние JSON-данные проверять схемой во время выполнения. 7. `npm run compile` пересобирает runtime. Перед commit добавить актуальные `dist/src/` и `dist/viewer/` в Git; `npm run package:check` сверяет сборку с ними. Остальные `dist/`, модели и локальные индексы не публиковать. Скрипты `build`/`prepare`/`prepack`/install lifecycle намеренно отсутствуют: GitHub-установка использует готовый runtime без сборки и загрузки devDependencies.