name: skills-i18n-sync description: Use for управления синхронизацией framework/ (RU-источник) → framework_eng/ (EN-зеркало). Helps проверить статус, запустить перевод вручную или диагностировать блокировку коммита.
skills-i18n-sync — синхронизация RU→EN навыков
framework/ (RU, источник правды) → framework_eng/ (EN, автоматическое зеркало). Симлинки IDE указывают на framework_eng/. Никогда не редактируй framework_eng/ напрямую.
Когда применять
| Триггер | Действие |
|---|---|
Ты изменил любой файл в framework/ (кроме README.md) |
Немедленно синхронизировать изменённый файл через /sync-skills <path> |
Видишь статус dirty или pending в реестре |
Запустить /sync-skills перед использованием навыка |
| Коммит заблокирован хуком с ошибкой перевода | Запустить python3 tools/sync-skill.py --all, затем повторить коммит |
Добавлен новый файл в framework/ |
Запустить /sync-skills <path> для создания EN-версии |
| Нужно проверить состояние всех навыков | Запустить /sync-skills check |
Команды
/sync-skills check
Показывает таблицу статусов всех файлов:
✓ synced— RU и EN синхронизированы○ pending— EN-версия ещё не создавалась✗ dirty— RU изменён, EN устарел! error— последний перевод завершился ошибкой
python3 tools/sync-skill.py --check
/sync-skills
Синхронизировать все pending и dirty файлы:
python3 tools/sync-skill.py --all
/sync-skills <path>
Синхронизировать конкретный файл:
python3 tools/sync-skill.py framework/skills/bsl-practices/coding-standards/SKILL.md
/sync-skills init-all
Первичная синхронизация — перевести всё что ещё не имеет EN-зеркала. Запускается один раз при инициализации или после добавления большого блока файлов:
python3 tools/sync-skill.py --init-all
Правила для агентов
После любого изменения файла в
framework/— сразу запускай синхронизацию. Не откладывай до коммита: хук заблокирует его если EN отсутствует.Исключение:
README.mdфайлы не переводятся и не синхронизируются.Перед использованием навыка — проверь что его статус
synced. Еслиdirty— данные в.claude/skills/устаревшие.framework_eng/только читай, никогда не пиши напрямую.При конфликте содержимого RU и EN — RU всегда победитель (источник правды).
Как работает pre-commit хук
git commit
↓
.git/hooks/pre-commit запускается
↓
Находит staged файлы в framework/ (кроме README.md)
↓
Вызывает: python3 tools/sync-skill.py <список файлов>
↓
sync-skill.py вызывает Codex CLI (gpt-5.1-codex-mini) для перевода каждого файла
↓
Записывает результат в framework_eng/ (зеркальный путь)
Обновляет .skills-sync-state.json
↓
Хук добавляет framework_eng/ файлы и state в коммит (git add)
↓
Коммит продолжается (RU + EN всегда в одном коммите)
↓
При ошибке: БЛОКИРОВКА коммита с инструкцией по исправлению
Реестр синхронизации
Файл .skills-sync-state.json в корне репо — статусы и хэши каждого файла.
Установка хука на новой машине
cp tools/hooks/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit