# План: Фаза 0 — верификация окружения перед миграцией на Gitea (ред. 5)

## Цель

Выполнить Фазу 0 дизайна выполнения (`2026-06-15-gitea-yc-execution-design.md`, E1/E3/E5):
проверочными командами **только читать** состояние окружения перед провижинингом — наличие CLI
облака и **фактическую валидность авторизации** (вызов к API без вывода чего-либо чувствительного),
наличие git и ssh, состояние репозитория (ветки, теги, счёт коммитов) и **фактическое
использование LFS**. Команды последующих фаз строятся на этих фактах, а не на догадках.

**Что меняется состоянием:** проверочные команды состояние НЕ меняют (только чтение); единственное
изменение за весь план — **создание одного файла-отчёта** на последнем шаге (несекретная сводка).
Иных изменений нет.

**Рабочий каталог задан явно:** каждая git-операция выполняется в корне репозитория через
`git -C "<путь>"` — от текущего каталога оболочки не зависит, git-шаги выполнимы без `cd`. Отчёт
пишется по абсолютному пути. `yc`/`ssh`/проверки версий рабочего каталога не требуют.

**Защита секретов (E3):** авторизация проверяется командой `yc resource-manager cloud list
>/dev/null` — вызов к API подтверждает валидность токена, но вывод (идентификаторы облаков)
**отбрасывается** в `/dev/null`, поэтому в stdout/лог/отчёт ничего чувствительного не попадает;
фиксируется только OK/FAIL по коду возврата. Команды, способные вывести секреты (напр. `yc config
list`), в план НЕ включены. Файл-отчёт содержит ТОЛЬКО несекретную сводку: наличие и версия
инструмента, авторизация OK/FAIL, счётчики веток/тегов/коммитов, используется ли LFS (да/нет).
Токены, ключи и идентификаторы в отчёт не пишутся.

```skills-json
[]
```

```steps-json
[
  {"op":"Bash","object":"yc --version","ref":"E1"},
  {"op":"Bash","object":"yc resource-manager cloud list >/dev/null","ref":"E3"},
  {"op":"Bash","object":"git --version","ref":"E1"},
  {"op":"Bash","object":"ssh -V","ref":"E1"},
  {"op":"Bash","object":"git -C \"c:/моя/проекты/портал crm/Документация\" branch -a","ref":"E1"},
  {"op":"Bash","object":"git -C \"c:/моя/проекты/портал crm/Документация\" tag","ref":"E1"},
  {"op":"Bash","object":"git -C \"c:/моя/проекты/портал crm/Документация\" rev-list --all --count","ref":"E1"},
  {"op":"Bash","object":"git -C \"c:/моя/проекты/портал crm/Документация\" lfs version","ref":"E1"},
  {"op":"Bash","object":"git -C \"c:/моя/проекты/портал crm/Документация\" lfs ls-files","ref":"E1"},
  {"op":"Write","object":"docs/ops/gitea/2026-06-15-env-verification.md","ref":"E5"}
]
```

```verified-context-json
[
  {"id":"E-host","kind":"EXTRACTED","ref":".github/workflows/deploy.yml","anchor":"LIDERRA_HOST: 111.88.246.137"},
  {"id":"E-push","kind":"EXTRACTED","ref":"docs/ops/gitea/2026-06-15-gitea-yc-migration-runbook.md","anchor":"git push gitea --all"}
]
```
