iwe-update · v1.0.0 · 2026-06-08 · sha256 79b597566bd20772

iwe-update v1.0.0A

Immutable. This exact content is served forever at /api/v1/blob/79b597566bd20772.

---
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 — что изменилось

Прочитать `FMT-exocortex-template/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` для обновления.»