| name | iwe-update |
| description | Обновление IWE с объяснением изменений. Агент вызывает update.sh, парсит CHANGELOG, объясняет что изменилось, помогает адаптировать обновления к кастомизациям пользователя. |
| argument-hint | |
| user_invocable | true |
| version | 1.0.0 |
| layer | L1 |
| status | active |
| triggers | {"slash":["/iwe-update"],"phrases":[]} |
| routing | {"executor":"haiku","deterministic":false} |
| agents | single |
| interaction | multi-step |
| gates_required | [] |
| gates_enforced | [] |
| gates_rationale | операционный скилл; WP Gate применим только при создании нового РП, не для операционных вызовов |
IWE Update (агент-обновитель)
Роль: R6 Кодировщик. Один выход: обновлённый IWE + объяснение что изменилось.
Триггер: «обнови IWE», «обновись», /iwe-update, или агент предлагает после обнаружения новой версии.
When to use
Обновление IWE с объяснением изменений. Агент вызывает update.sh, парсит CHANGELOG, объясняет что изменилось, помогает адаптировать обновления к кастомизациям пользователя.
Algorithm
1. Превью (--check)
Запустить update.sh в режиме превью:
cd "$IWE_TEMPLATE" && bash update.sh --check 2>&1
Из вывода извлечь:
- Версию upstream (текущая vs новая)
- Список новых файлов
- Список обновлённых файлов
- Количество строк изменений
Если «Всё актуально» → сообщить пользователю и завершить.
2. CHANGELOG — что изменилось
Прочитать FMT-exocortex-template/CHANGELOG.md. Найти записи между текущей и новой версией.
Объяснить пользователю на человеческом языке:
- Что добавлено и зачем (не список файлов, а польза)
- Что изменилось в поведении (может ли сломать что-то)
- Что исправлено (баги, которые могли затрагивать пользователя)
Формат объяснения:
## Обновление IWE: v{old} → v{new}
**Что нового:**
- [1-3 пункта на языке пользователя, не разработчика]
**Что изменилось:**
- [поведение, которое может заметить пользователь]
**Исправления:**
- [если есть]
3. Анализ совместимости
Перед применением — проверить пользовательские кастомизации:
3a. Extensions:
ls extensions/*.md 2>/dev/null
Если есть extension-файлы → проверить, не конфликтуют ли новые extension points с существующими файлами.
3b. params.yaml:
Прочитать params.yaml. Если обновление добавляет новые параметры → сообщить пользователю:
«Появился новый параметр X (default: Y). Хотите изменить?»
3c. CLAUDE.md:
Проверить, есть ли .claude.md.base:
- Есть → 3-way merge сработает автоматически
- Нет → предупредить: «Первое обновление после миграции. CLAUDE.md будет обновлён с сохранением USER-SPACE секции. Рекомендую проверить результат.»
4. Применение
Если пользователь одобрил (или --yes):
cd "$IWE_TEMPLATE" && bash update.sh --yes 2>&1
Из вывода извлечь результат:
- Сколько файлов обновлено
- Были ли конфликты 3-way merge
- Подстановка переменных прошла?
- Platform-space обновлён?
5. Пост-обновление
5a. Конфликты 3-way merge:
Если CLAUDE.md содержит маркеры <<<<<<< → помочь разрешить:
- Показать каждый конфликт
- Объяснить: «Платформа изменила X, а вы изменили Y. Что оставить?»
- Применить выбор пользователя
5b. Новые параметры:
Если в обновлении появились новые параметры в params.yaml шаблона → предложить добавить в пользовательский params.yaml.
5c. Новые extension points:
Если в обновлении появились новые extension points в протоколах → сообщить:
«Появились новые точки расширения: [список]. Вы можете создать файлы extensions/X.md для кастомизации.»
5d. Рекомендации:
На основе кастомизаций пользователя (его extensions/, params.yaml, Pack) — предложить как использовать новые возможности.
6. Отчёт
## Обновление завершено
**Версия:** v{old} → v{new}
**Файлов обновлено:** N
**Конфликтов:** 0 / N (разрешены)
**Новые возможности:** [краткий список]
Перезапустите Claude Code для применения обновлений memory/.
Автоматическое предложение обновления
При Day Open (шаг 5: IWE за ночь) — если update.sh --check показывает доступные обновления → добавить в «Требует внимания»:
«Доступно обновление IWE v{new}. Запустите /iwe-update для обновления.»