themis-updatelisted
Install: claude install-skill zarubinphil/themis
# Обновление Themis
Тянет свежую ЛОГИКУ из GitHub через `scripts/update.sh`, данные пользователя не трогает. Скилл добавляет к скрипту страховку: снимок git-статуса ДО, сверка ПОСЛЕ, откат при сбое.
## Входной контракт
| Проверка | Нет → |
|---|---|
| `.git/` в корне проекта | СТОП: «Не git-клон Themis. Склонируй свежий Themis отдельно и перенеси в него свои `cases/` и `knowledge/` (только их)» |
| `scripts/update.sh` существует | СТОП: система повреждена, сообщить пользователю |
## Что обновляется / что нет
- Обновляется: `.claude/`, `AGENTS.md`, `scripts/`, `cockpit/`, `bin/` (включая `vision-ocr.swift`), `install.sh`, `README.md`, `.mcp.json`, `docs/`. Новые зависимости и пересборка Apple Vision OCR — через `install.sh` (скрипт запускает сам).
- НЕ трогается: `cases/` (все дела), `knowledge/` (practice_index, redlines, lessons-log), рантайм (кеши, `_baselines/`, `cockpit/.state.json`).
## Алгоритм
1. Снимок ДО (вывод каждой команды сохранить в контексте — сверка на шаге 5):
```bash
OLD=$(git rev-parse --short HEAD)
git status --porcelain -- cases knowledge
git status --porcelain -- .claude AGENTS.md scripts cockpit bin install.sh .mcp.json docs
```
2. Третья команда вывела строки (локальные незакоммиченные правки системных путей) → СПРОСИТЬ пользователя: обновление перезапишет их через `git checkout origin -- <путь>`. Без явного «да» — СТОП.
3. `bash scripts/update.sh` — код возврата проверить явно. «Уже последняя версия» → доложить, шаги 4-5 не нужны.
4. Exit ≠ 0