iwe-update · v1.0.0 · 2026-07-23 · sha256 c9a3571973f41b85
iwe-update v1.0.0A
Immutable. This exact content is served forever at /api/v1/blob/c9a3571973f41b85.
---
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 в режиме превью:
```bash
cd "$IWE_TEMPLATE" && bash update.sh --check 2>&1
```
Из вывода извлечь:
- Версию upstream (текущая vs новая)
- Список новых файлов
- Список обновлённых файлов
- Количество строк изменений
Если «Всё актуально» → сообщить пользователю и завершить.
### 2. CHANGELOG — что изменилось
`CHANGELOG.md` больше не доставляется локально (WP-401 Ф6.1) — читать по raw-URL:
```bash
curl -fsSL "https://raw.githubusercontent.com/TserenTserenov/FMT-exocortex-template/main/CHANGELOG.md"
```
Найти записи между текущей и новой версией.
**Объяснить пользователю на человеческом языке:**
- Что добавлено и зачем (не список файлов, а **польза**)
- Что изменилось в поведении (может ли сломать что-то)
- Что исправлено (баги, которые могли затрагивать пользователя)
**Формат объяснения:**
```
## Обновление IWE: v{old} → v{new}
**Что нового:**
- [1-3 пункта на языке пользователя, не разработчика]
**Что изменилось:**
- [поведение, которое может заметить пользователь]
**Исправления:**
- [если есть]
```
### 3. Анализ совместимости
Перед применением — проверить пользовательские кастомизации:
**3a. Extensions:**
```bash
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`):
```bash
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` для обновления.»