skills-i18n-sync
$
npx mdskill add SteelMorgan/1c-agent-based-dev-framework/skills-i18n-syncSynchronizes Russian-language skills in framework/ with their English mirror in framework_eng/ to maintain translation integrity.
- Helps manage translation status and resolve commit blocks due to outdated or missing English versions.
- Integrates with a Python script (tools/sync-skill.py) for automated synchronization and status checks.
- Decides actions based on file changes, pending or dirty statuses, and error triggers from hooks.
- Presents results through status tables and command outputs, guiding users to run specific sync commands.
SKILL.md
.github/skills/skills-i18n-syncView on GitHub ↗
---
name: skills-i18n-sync
description: >
Управление синхронизацией русскоязычных навыков (framework/) с
англоязычным зеркалом (framework_eng/). Используй когда нужно
проверить статус синхронизации, вручную запустить перевод,
или понять почему заблокирован коммит.
---
# 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` — последний перевод завершился ошибкой
```bash
python3 tools/sync-skill.py --check
```
### `/sync-skills`
Синхронизировать все `pending` и `dirty` файлы:
```bash
python3 tools/sync-skill.py --all
```
### `/sync-skills <path>`
Синхронизировать конкретный файл:
```bash
python3 tools/sync-skill.py framework/skills/bsl-practices/coding-standards/SKILL.md
```
### `/sync-skills init-all`
Первичная синхронизация — перевести всё что ещё не имеет EN-зеркала.
Запускается один раз при инициализации или после добавления большого блока файлов:
```bash
python3 tools/sync-skill.py --init-all
```
---
## Правила для агентов
1. **После любого изменения файла в `framework/`** — сразу запускай синхронизацию.
Не откладывай до коммита: хук заблокирует его если EN отсутствует.
2. **Исключение:** `README.md` файлы не переводятся и не синхронизируются.
3. **Перед использованием навыка** — проверь что его статус `synced`.
Если `dirty` — данные в `.claude/skills/` устаревшие.
4. **`framework_eng/` только читай**, никогда не пиши напрямую.
5. **При конфликте содержимого** 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` в корне репо — статусы и хэши каждого файла.
---
## Установка хука на новой машине
```bash
cp tools/hooks/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
```
---
depends_on: []
---