{"_id":"@6reduk/unity-sdd","_rev":"3-ffb7fd382c1979fe9665f46c97e69bc0","name":"@6reduk/unity-sdd","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@6reduk/unity-sdd","version":"0.1.0","license":"UNLICENSED","_id":"@6reduk/unity-sdd@0.1.0","maintainers":[{"name":"6reduk","email":"6reduk@gmail.com"}],"homepage":"https://github.com/6reduk/unity-sdd-pipeline#readme","bugs":{"url":"https://github.com/6reduk/unity-sdd-pipeline/issues"},"bin":{"unity-sdd":"src/cli.js"},"dist":{"shasum":"19bed6140245b9cccd1094074a836add5b4674d7","tarball":"https://registry.npmjs.org/@6reduk/unity-sdd/-/unity-sdd-0.1.0.tgz","fileCount":7,"integrity":"sha512-tjTN4TVLj4pYWIUA0jMsRBvvXIV+SVCfBDN6FzcMMK6nF2C8DpKaH+JsbLwiDj59QtxziRqlN+nK+4InZt7zEg==","signatures":[{"sig":"MEYCIQDGjCvX9aQDphf1n3ul0osIadi+Hqp9l/1gjRAIL8IUrgIhAIUiyfQ63rMmH6YGR2lTq+AvM/Jn7adsZMCihmiWvT1n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37032},"type":"module","_from":"file:C:/Projects/unity-sdd-pipeline/.runtime/releases/cli-v0.1.0/6reduk-unity-sdd-0.1.0.tgz","engines":{"node":">=22"},"scripts":{"test":"node --test","check":"node --check src/cli.js","verify":"npm run check && npm test && npm run pack:check","pack:check":"node scripts/pack-check.js"},"_npmUser":{"name":"6reduk","email":"6reduk@gmail.com"},"_resolved":"C:\\Projects\\unity-sdd-pipeline\\.runtime\\releases\\cli-v0.1.0\\6reduk-unity-sdd-0.1.0.tgz","_integrity":"sha512-tjTN4TVLj4pYWIUA0jMsRBvvXIV+SVCfBDN6FzcMMK6nF2C8DpKaH+JsbLwiDj59QtxziRqlN+nK+4InZt7zEg==","repository":{"url":"git+https://github.com/6reduk/unity-sdd-pipeline.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.16.0","description":"Preview installer and diagnostics for project-scoped Unity SDD harnesses","directories":{},"_nodeVersion":"24.18.0","dependencies":{"smol-toml":"1.8.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/unity-sdd_0.1.0_1788813981973_0.17474862796073287","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@6reduk/unity-sdd","version":"0.2.0","license":"UNLICENSED","_id":"@6reduk/unity-sdd@0.2.0","maintainers":[{"name":"6reduk","email":"6reduk@gmail.com"}],"homepage":"https://github.com/6reduk/unity-sdd-pipeline#readme","bugs":{"url":"https://github.com/6reduk/unity-sdd-pipeline/issues"},"bin":{"unity-sdd":"src/cli.js"},"dist":{"shasum":"a0b3ad2ec79ffaed8ef7fabbacc3743bebea6555","tarball":"https://registry.npmjs.org/@6reduk/unity-sdd/-/unity-sdd-0.2.0.tgz","fileCount":11,"integrity":"sha512-aLWRhTqy0t4zGn7DaS/+7rbbBy+NtLIIc6KUyFPlNTaVL5S7meylWta+5l04FYd28oxVuZxnWkjpOZmrYM1aBA==","signatures":[{"sig":"MEYCIQDYlEdPJ13VfemfSsD0LScKl8w8tVwqNPWR6VCHv+bEkQIhAKNC49Yqbagp/tss5QWu7MY9MlbSkabjoQy2Ae5I5XNE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60916},"type":"module","_from":"file:6reduk-unity-sdd-0.2.0.tgz","engines":{"node":">=22"},"scripts":{"test":"node --test","check":"node --check src/cli.js","verify":"npm run check && npm test && npm run pack:check","pack:check":"node scripts/pack-check.js","smoke:claude":"node scripts/native-claude-smoke.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21ae34cc-683b-4ed8-9592-5c47aad9744b"}},"_resolved":"/home/runner/work/unity-sdd-pipeline/unity-sdd-pipeline/packages/cli/6reduk-unity-sdd-0.2.0.tgz","_integrity":"sha512-aLWRhTqy0t4zGn7DaS/+7rbbBy+NtLIIc6KUyFPlNTaVL5S7meylWta+5l04FYd28oxVuZxnWkjpOZmrYM1aBA==","repository":{"url":"git+https://github.com/6reduk/unity-sdd-pipeline.git","type":"git","directory":"packages/cli"},"_npmVersion":"11.19.0","description":"Preview installer and diagnostics for project-scoped Unity SDD harnesses","directories":{},"_nodeVersion":"24.20.0","dependencies":{"smol-toml":"1.8.0","jsonc-parser":"3.3.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/unity-sdd_0.2.0_1789011470730_0.06928029457108265","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@6reduk/unity-sdd","version":"0.3.0","description":"Preview installer and diagnostics for project-scoped Unity SDD harnesses","type":"module","bin":{"unity-sdd":"src/cli.js"},"engines":{"node":">=22"},"scripts":{"test":"node --test","check":"node --check src/cli.js","pack:check":"node scripts/pack-check.js","verify":"npm run check && npm test && npm run pack:check","smoke:claude":"node scripts/native-claude-smoke.js"},"dependencies":{"smol-toml":"1.8.0","jsonc-parser":"3.3.1"},"repository":{"type":"git","url":"git+https://github.com/6reduk/unity-sdd-pipeline.git","directory":"packages/cli"},"license":"UNLICENSED","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_id":"@6reduk/unity-sdd@0.3.0","bugs":{"url":"https://github.com/6reduk/unity-sdd-pipeline/issues"},"homepage":"https://github.com/6reduk/unity-sdd-pipeline#readme","_integrity":"sha512-NHxKlh8YJZWt8dLlYOwdB9QzEwXf/W1KQVzy2dXdksysxXRq3vtGe4hR0a4+q5/f2OfTl0RbNYnZqvdOlmLgCQ==","_resolved":"/home/runner/work/unity-sdd-pipeline/unity-sdd-pipeline/packages/cli/6reduk-unity-sdd-0.3.0.tgz","_from":"file:6reduk-unity-sdd-0.3.0.tgz","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-NHxKlh8YJZWt8dLlYOwdB9QzEwXf/W1KQVzy2dXdksysxXRq3vtGe4hR0a4+q5/f2OfTl0RbNYnZqvdOlmLgCQ==","shasum":"5e219dbeae0cf8eb34ac9edcbe500aa1fd1724b7","tarball":"https://registry.npmjs.org/@6reduk/unity-sdd/-/unity-sdd-0.3.0.tgz","fileCount":14,"unpackedSize":90508,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF+SAhYqtGRfWcmNaO4MT93c5YE0esifRw8nVxxOj7wWAiEAykgOChnToUE2pqN+Om7z+HFW4jr6q/rrjlgBLbZgFPY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21ae34cc-683b-4ed8-9592-5c47aad9744b"}},"directories":{},"maintainers":[{"name":"6reduk","email":"6reduk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/unity-sdd_0.3.0_1789096957892_0.3960997798083612"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-07T20:46:21.817Z","modified":"2026-09-11T03:22:38.188Z","0.1.0":"2026-09-07T20:46:22.129Z","0.2.0":"2026-09-10T03:37:50.866Z","0.3.0":"2026-09-11T03:22:38.044Z"},"bugs":{"url":"https://github.com/6reduk/unity-sdd-pipeline/issues"},"license":"UNLICENSED","homepage":"https://github.com/6reduk/unity-sdd-pipeline#readme","repository":{"type":"git","url":"git+https://github.com/6reduk/unity-sdd-pipeline.git","directory":"packages/cli"},"description":"Preview installer and diagnostics for project-scoped Unity SDD harnesses","maintainers":[{"name":"6reduk","email":"6reduk@gmail.com"}],"readme":"# Unity SDD: настройка рабочего каталога\n\nЭтот инструмент настраивает плагин для выбранного проекта без ручного обхода конфигов.\nОн хранится в том же GitHub-репозитории, что и плагин. Опубликованная версия CLI\n**0.2.0** поддерживает Codex и Claude Code. Рабочая версия исходников также добавляет\nKimi; до отдельной публикации команды `@latest` эту возможность не получают.\nGrok пока не поддерживается установщиком: его выбор останавливает настройку до записи файлов.\n\n## Kimi: локальные компоненты, не глобальный плагин\n\nKimi получает во wrapper 21 маршрут навыков в `.kimi-code/skills/`, локальную запись\n`unity_sdd_blender` в `.kimi-code/mcp.json` и привязку `.unity-sdd/kimi.json`.\nСуществующий `AGENTS.md` сохраняется с `--keep-agents`. Общие инструкции pipeline\nнаходятся в проверенном кэше `~/.unity-sdd/kimi/`; `UNITY_SDD_HOME` позволяет выбрать\nдругое место. Это не профиль Kimi: аккаунт, модели и авторизация остаются прежними.\nЗапускайте обычный `kimi` из wrapper. Доверие к каталогу подтверждаете вы; установщик\nего не выдаёт. При доверенном запуске локальный Blender MCP может стартовать автоматически.\n\nДля проверки неопубликованной реализации из каталога `packages/cli`:\n\n```sh\nnode src/cli.js setup --client kimi --workspace \"../MyGame-workspace\" --kimi-bundle \"../../plugins/kimi/unity-sdd-pipeline\" --keep-agents\nnode src/cli.js setup --client kimi --workspace \"../MyGame-workspace\" --kimi-bundle \"../../plugins/kimi/unity-sdd-pipeline\" --keep-agents --apply\nnode src/cli.js doctor --client kimi --workspace \"../MyGame-workspace\"\n```\n\nПосле публикации используется обычный npm CLI без `--kimi-bundle`: пакет компонентов\nзагружается из GitHub; нужен доступ к приватному репозиторию через Git. Локальный параметр\nпредназначен для разработки и требует доверенного источника. Можно выбрать сразу\n`--client codex,claude,kimi`; настройки клиентов сосуществуют, документы pipeline общие.\n\nОбновление общих ресурсов действует для всех wrapper этого кэша, без фиксации версии\nв документах проекта. Изменение списка/описаний навыков или конфигурации MCP требует\nотдельного обновления локальных проекций: текущий установщик обнаруживает такое изменение\nи останавливается, не оставляя другие workspace с несовместимыми настройками.\nЧужие записи MCP и навыки не перезаписываются; обнаруженный глобальный Unity SDD plugin\nили конфликт имён требует ручного согласования. Прочие глобальные инструменты Kimi\nне отключаются и не относятся к гарантии изоляции этого пакета.\n\nВ текущем pipeline нет отдельных файлов custom agents — они не создаются искусственно.\n`doctor` проверяет файлы, хеши и доступность CLI, но не заменяет проверку видимости\nнавыков в новой сессии, доверия к workspace или подключения MCP.\n\nНа Windows поддерживаются как `kimi.exe`, так и npm-установка Kimi Code:\nустановщик запускает её JavaScript entrypoint через Node без shell и без выполнения\nтекста `.cmd`/`.ps1`. Для npm-версии Kimi соблюдайте также её собственные требования\nк Node — они могут быть строже требований этого установщика.\n\nНовый wrapper можно настроить для нескольких клиентов без `--keep-agents`: текст\nгенерируемых инструкций общий. Если инструкции уже существуют и отличаются (включая\nстарый шаблон с упоминанием Codex), сначала прочитайте их и используйте `--keep-agents`\nдля сохранения. Установщик не переписывает прежние инструкции автоматически.\n\n### Если настройка Kimi прервалась\n\nНе повторяйте `--apply` вслепую и не удаляйте общий кэш или `current.json`.\nСохраните сообщение ошибки и каталог backup, указанный установщиком. В\n`<UNITY_SDD_HOME>/kimi/backups/<operation>/receipt.json` записаны целевые пути,\nисходные хеши и ссылки на резервные копии; копии MCP могут содержать секреты,\nпоэтому их нельзя публиковать целиком.\n\n1. Убедитесь, что другой установщик не работает. Наличие `install.lock` само по себе\n   не доказывает зависание: не удаляйте lock активного процесса.\n2. Сопоставьте receipt, резервные копии, текущие файлы wrapper и общий указатель.\n   Не восстанавливайте файлы поверх изменений другого пользователя или процесса.\n3. После адресного восстановления либо завершения операции проверьте хеши бандла,\n   локальные маршруты, MCP и общий указатель. Только после этого можно записать\n   ручное решение о reconciliation и отметить receipt как `reconciled`.\n4. Если доказано, что lock осиротел, его удаление допустимо только для этой операции.\n   Затем повторите preview и `doctor`; отсутствие pending ещё не означает runtime PASS.\n\nАвтоматической команды repair/migrate в 0.3.0 нет. При конфликте состава навыков\nили MCP оставьте рабочий кэш нетронутым: нужен отдельный план обновления всех его\nwrapper. Удаление указателя ради обхода проверки не является поддерживаемой миграцией.\n\n### Порядок выпуска Kimi\n\nДо публикации npm сначала разместите проверенный `plugins/kimi/unity-sdd-pipeline`\nв GitHub `main`. Затем на чистом тестовом кэше проверьте setup без `--kimi-bundle`:\nлокальный источник и существующий кэш не доказывают доступность доставки из GitHub.\nТолько после успешной проверки публикуйте npm-кандидат. Живой запуск Kimi во wrapper\nостаётся отдельной проверкой после установки.\n\n## Несколько harness, один pipeline\n\nПосле публикации 0.2.0 из одного wrapper:\n\n```sh\nnpx --yes @6reduk/unity-sdd@latest setup --client codex --client claude --workspace \"../MyGame-workspace\"\nnpx --yes @6reduk/unity-sdd@latest setup --client codex --client claude --workspace \"../MyGame-workspace\" --apply\nnpx --yes @6reduk/unity-sdd@latest doctor --client codex --client claude --workspace \"../MyGame-workspace\"\n```\n\nДопустима также запись `--client codex,claude`. Для обновления замените `setup` на\n`update`. Все выбранные harness получают одинаковый путь к репозиторию и читают его\nобщие AGENTS.md, governance и артефакты задач. Совместная установка не разрешает двум\nагентам одновременно перезаписывать один артефакт: распределяйте задачи/file scope.\n\nУ Codex остаются `AGENTS.md`, `.codex/config.toml`, `.unity-sdd/workspace.json`.\nClaude получает `CLAUDE.md`, `.claude/settings.local.json`, `.unity-sdd/claude.json`.\nСуществующие файлы другого клиента не перезаписываются; разные repository bindings\nотклоняются. `--keep-agents` сохраняет существующий файл инструкций выбранного\nклиента (для Claude это CLAUDE.md), не подтверждая корректность его содержания.\n\nClaude устанавливается штатно с `--scope local`. В пользовательском settings.json\nнашего плагина выставляется `enabledPlugins[\"unity-sdd-pipeline@unity-sdd\"] = false`,\nво wrapper — true. Остальные поля, модели, auth и чужие плагины сохраняются.\nИспользуется CLAUDE_CONFIG_DIR либо стандартный ~/.claude. CLI нужно запускать\nс тем же окружением, что и соответствующий harness. GLM через Claude Code выбирается\nкак `--client claude`; модель и её авторизация установщиком не настраиваются.\n\nУстановка клиентов выполняется последовательно и не является атомарной транзакцией.\nПри ошибке CLI сообщает уже завершённые клиенты и путь к receipt; не повторяйте\nкоманду вслепую. Предыдущая установка другого workspace не считается установкой\nClaude для выбранного wrapper. Локальный marketplace с тем же именем не заменяется\nавтоматически: сначала вручную согласуйте его источник.\n\nЗапуск новых сессий — отдельный шаг. Claude может автоматически запустить Blender\nMCP при загрузке включённого плагина; setup/doctor не запускают сессию модели и не\nвызывают MCP. Проверки файлов и native inventory не доказывают видимость навыков,\nсоблюдение gates моделью или отсутствие дополнительных managed/ancestor policies.\n\n`npm run verify` проверяет также установленный tarball: preview/setup/update/doctor,\nидемпотентность, совместную настройку Codex+Claude, сохранность существующих файлов,\nнеподдержанные клиенты и восстановление global opt-out после ошибки. Native CLI в\nэтом автоматическом тесте заменены синтетическими subprocess fixtures; живой пилот\nне следует из PASS тестов.\n\nПубличный npm-пакет называется `@6reduk/unity-sdd`. GitHub-репозиторий плагина\nостаётся приватным: установка CLI не выдаёт доступ к нему.\n\n## Запуск из npm\n\nПосле выхода первой версии клонировать исходники установщика не требуется:\n\n```sh\nnpx --yes @6reduk/unity-sdd@latest setup --client codex --workspace \"../MyGame-workspace\"\nnpx --yes @6reduk/unity-sdd@latest setup --client codex --workspace \"../MyGame-workspace\" --apply\nnpx --yes @6reduk/unity-sdd@latest doctor --client codex --workspace \"../MyGame-workspace\"\n```\n\nОбновление: `update` вместо `setup`, сначала без `--apply`. `@latest` выбирает\nактуальный установщик. Версия плагина общая для всех workspace; глобальное включение\nвыключается, проектные включения сохраняются. Ниже также описан запуск из исходников.\n\n## Что такое wrapper\n\nОбычная папка, из которой запускается Codex. Внутри неё — репозиторий игры:\n\n```text\nMyGame-workspace/               ← запускать Codex здесь; НЕ Git-репозиторий\n  AGENTS.md                    ← короткий указатель на проект и его правила\n  .codex/config.toml           ← включение плагина для этого wrapper\n  .unity-sdd/workspace.json    ← относительный путь к репозиторию\n  project/                    ← Git-репозиторий игры\n    .git/\n    AGENTS.md                 ← общие инструкции проекта для всей команды\n    docs/                     ← регламенты, архитектура, backlog, задачи, архив\n      governance/pipeline.yaml\n    Assets/                   ← пример: Unity может лежать и глубже\n    Packages/\n    ProjectSettings/\n```\n\nНастройки wrapper остаются на компьютере разработчика. Общая документация и\nпроектные инструкции коммитятся внутри `project`. Путь к Unity определяется\n`pipeline.yaml`, не именем папки. Инструмент не переносит и не клонирует игру,\nне архивирует старую документацию и не создаёт второй pipeline во wrapper.\n\n## Подготовка\n\nНужны Node.js **22+** с npm, установленный Codex CLI, Git-доступ к приватному\n`6reduk/unity-sdd-pipeline`. Для клонирования ниже нужен авторизованный `gh`.\nПроверьте `node --version`, `npm --version`, `codex --version`, `gh auth status`.\nУстановка клиентов и авторизация не автоматизируются. Python нужен отдельно\nвалидаторам самого плагина — см. [руководство Codex](https://github.com/6reduk/unity-sdd-pipeline/blob/main/clients/codex/README.md).\n\nОткройте терминал в папке для инструментов:\n\n```sh\ngh repo clone 6reduk/unity-sdd-pipeline\ncd unity-sdd-pipeline\nnpm --prefix packages/cli ci --ignore-scripts\n```\n\nЕсли репозиторий уже есть — откройте его вместо повторного клонирования.\nНе вставляйте токены в команды. CLI не копирует ключи.\n\n## Установка\n\nЗамените `../MyGame-workspace` на путь к вашему wrapper. Все команды ниже выполняются\nиз репозитория плагина. Путь с пробелами оставляйте в кавычках.\n\n```sh\nnode packages/cli/src/cli.js setup --client codex --workspace \"../MyGame-workspace\"\n```\n\nЭто **предварительный просмотр**: файлы не создаются, команды Codex не запускаются.\nПлан показывает пути/действия, но не содержимое секретов. Если репозиторий игры лежит\nне в `project`, добавляйте `--repository \"имя-папки\"` во все команды.\n\nЗакройте параллельные редакторы конфигов. После проверки плана примените его:\n\n```sh\nnode packages/cli/src/cli.js setup --client codex --workspace \"../MyGame-workspace\" --apply\n```\n\nИнструмент:\n\n1. Проверит CLI и адрес marketplace; сохранит резервные копии изменяемых файлов.\n   Для нового профиля сначала создаст пустой CODEX_HOME: этого требует native CLI.\n2. Выключит плагин в пользовательском конфиге и включит во wrapper `.codex/config.toml`.\n3. Создаст wrapper `AGENTS.md`, запись относительного пути и пустую папку `project`,\n   если их ещё нет. Игру нужно поместить туда отдельно.\n4. Зарегистрирует отсутствующий marketplace и установит отсутствующий плагин\n   штатными командами Codex. Затем повторно применит глобальное отключение.\n\nМодель, авторизация, доверие, сторонние плагины и MCP не перенастраиваются.\nЕсли wrapper `AGENTS.md` уже есть и отличается, CLI остановится. Прочитайте файл:\nесли он правильно направляет агента в проект, передайте `--keep-agents` — текст\nостанется без изменений. Это не делает старый pipeline совместимым автоматически.\nВложенный `project/.codex/config.toml` требует отдельного разбора, а не удаления.\n\nОткройте Codex **из wrapper**, рассмотрите запрос доверия и создайте новую сессию.\nДоверие подтверждает пользователь: недоверенный проектный конфиг может игнорироваться.\nЗапуск из вложенного Git-каталога имеет другую область настроек.\n\n## Проверка\n\n```sh\nnode packages/cli/src/cli.js doctor --client codex --workspace \"../MyGame-workspace\"\n```\n\nКоманда ничего не исправляет. Проверяет конфиги, источник marketplace, относительный\nпуть, наличие репозитория/инструкций/регламента, журнал операций и `plugin list`.\nКод выхода `0` — проверки прошли, `2` — есть непройденные пункты, `1` — ошибка\nзапуска/формата. Наличие `pipeline.yaml` не доказывает корректность его содержимого.\nНовая пустая папка игры ожидаемо не пройдёт все проверки.\n\nВ новой сессии Codex отдельно попросите:\n\n> Проведи read-only preflight Unity SDD. Покажи, доступны ли навыки unity-*;\n> прочитай wrapper AGENTS.md, определи Git root и Unity root по регламенту проекта.\n> Ничего не меняй, не запускай Unity/Blender. Отдели установленный пакет,\n> навыки текущей сессии и непроверенную связь с Editor.\n\nВ другом проекте `codex plugin list --json` должен показывать `enabled: false`,\nесли там нет собственного включения. CLI не сканирует и не отключает другие wrapper:\nранее настроенные Unity-проекты могут оставаться включёнными.\n\n## Первичная инициализация AGENTS.md самой игры\n\nАвтоматически создаётся только wrapper `AGENTS.md`. Инструкции игры нельзя угадать.\nПосле проверки установки передайте Codex такой запрос:\n\n> Изучи выбранный репозиторий только на чтение. Найди настоящий Unity root,\n> существующие инструкции и документацию. Предложи минимальный проектный AGENTS.md,\n> docs/governance/pipeline.yaml и структуру docs для Unity SDD. Сохрани ссылки на\n> существующую истину, перечисли конфликты старого workflow. Не изменяй код, сцены,\n> ассеты и старые документы. Покажи план и дождись моего согласия перед записью.\n\nДля уже мигрированного проекта повторная инициализация не нужна.\n\n## Обновление\n\nСначала обновите инструмент в его Git-каталоге. Собственные изменения не сбрасывайте:\n\n```sh\ngit pull --ff-only\nnpm --prefix packages/cli ci --ignore-scripts\nnode packages/cli/src/cli.js update --client codex --workspace \"../MyGame-workspace\"\nnode packages/cli/src/cli.js update --client codex --workspace \"../MyGame-workspace\" --apply\nnode packages/cli/src/cli.js doctor --client codex --workspace \"../MyGame-workspace\"\n```\n\nДля сохранённых нестандартных wrapper-инструкций снова передавайте `--keep-agents`.\n`update` обновляет marketplace и переустанавливает пакет. **Установка общая в CODEX_HOME:**\nобновление затронет все использующие её проекты. Только включение ограничивается\nпроектными конфигами; отдельных версий по проектам CLI не обещает.\n\n## Если операция прервалась\n\nКопии и журнал: `CODEX_HOME/unity-sdd-backups/<run-id>/`; обычно CODEX_HOME — `.codex`\nв домашней папке. Путь выводится в результате. Копии могут содержать секреты:\nне коммитьте и не отправляйте их в отчёты. Проверьте ACL на общей машине.\n\nCLI старается вернуть глобальное отключение даже после ошибки установки. Если\nконфиг стал невалидным/недоступным, это нельзя гарантировать: результат будет ошибкой.\nЖурнал `pending`/`needs_reconciliation` блокирует повторный apply в этом CODEX_HOME.\nАвтоматического отката нет: он мог бы уничтожить новые изменения другого процесса.\nPreview и `doctor` остаются доступны.\n\nПопросите специалиста сопоставить `receipt.json`, конфиги и вывод\n`codex plugin marketplace list --json` / `codex plugin list --json`, восстановить\nтолько необходимые значения и проверить глобальное отключение. После фактической\nсверки можно отметить журнал `state: \"reconciled\"` и записать пояснение сверки.\nНе ставьте статус только для обхода ошибки. Осиротевший lock удаляют лишь убедившись,\nчто установщик не работает. Не заменяйте весь конфиг старой копией вслепую.\n\n## Разработка и ограничения\n\n```sh\nnpm --prefix packages/cli test\nnpm --prefix packages/cli run check\nnpm pack ./packages/cli --dry-run\n```\n\nОдин пакет: общий scaffold/план/резервирование и адаптеры harness в `src/adapters/`.\nGLM через Claude Code не требует отдельного установочного движка. Для Grok сначала\nнужно выбрать agent host. Будущие адаптеры должны проверять свои правила project scope.\nНет postinstall, shell-интерполяции путей, автоматической установки клиентов.\nНеобычные TOML-layouts и symlink/junction-пути блокируются. Таймаут CLI не доказывает\nотсутствия побочных эффектов — для этого существует сверка журнала. Конкурентная\nправка внешним процессом не является транзакцией: закрывайте редакторы конфигов.\n\nUnit-тесты используют временные каталоги и имитацию Codex. Отдельный smoke-test\nна Windows/Codex 0.153.4 установил плагин из GitHub в пустой изолированный CODEX_HOME:\nglobal opt-out и wrapper opt-in подтверждены. Недоверенный wrapper ожидаемо остался\nнеактивным; выдача доверия и доступность навыков в новой сессии не проверялись этим CLI.\nmacOS/Linux требуют отдельного smoke-test.\nАвтоматизация выпуска: [RELEASING.md](https://github.com/6reduk/unity-sdd-pipeline/blob/main/packages/cli/RELEASING.md).\nKimi поддерживается рабочим кандидатом 0.3.0 через проектные компоненты.\nGrok npm-адаптер пока не реализован.\n","readmeFilename":"README.md"}