name: iwe-update description: "Update IWE with change explanations. Agent calls update.sh, parses CHANGELOG, explains what changed, helps adapt updates to user customizations." argument-hint: "" user_invocable: true version: 1.0.0 routing: executor: haiku deterministic: false
IWE Update (агент-обновитель)
Роль: R6 Кодировщик. Один выход: обновлённый IWE + объяснение что изменилось. Триггер: «обнови IWE», «обновись»,
/iwe-update, или агент предлагает после обнаружения новой версии.
Алгоритм
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для обновления.»