Update IWE with change explanations. Agent calls update.sh, parses CHANGELOG, explains what changed, helps adapt updates to user customizations.
Scanned 9/1/2026
Install to Claude Code
npx -y skills add TserenTserenov/FMT-exocortex-template --skill iwe-update --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Iwe Update?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/tserentserenov-iwe-update)More formats (shields.io, HTML) on the badges page.
---
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`, или агент предлагает после обнаружения новой версии.
## Алгоритм
### 0. Extensions `before`
```bash
bash .claude/scripts/load-extensions.sh iwe-update before
```
Код `0` → прочитать каждый путь из вывода в алфавитном порядке и выполнить
инструкции до превью. Код `1` → расширений нет, продолжить. Любой другой код или
ошибка обязательного шага расширения → обновление не начинать, показать
настоящую причину ошибки.
### 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) — предложить как использовать новые возможности.
**5e. Extensions `checks`:**
```bash
bash .claude/scripts/load-extensions.sh iwe-update checks
```
Код `0` → прочитать и выполнить каждый файл до итогового отчёта. Код `1` →
проверок нет. Любой другой код или провал проверки не откатывает уже применённые
файлы, но запрещает объявлять обновление полностью успешным: показать
«обновление применено, пользовательская проверка не прошла», точную причину,
путь упавшего extension и список уже выполненных `checks`-файлов. Remediation:
исправить или временно отключить именно этот extension, снова загрузить
`iwe-update checks` и повторить все проверки; до их успеха состояние называется
`applied_with_failed_extension_check`, а не успешным обновлением.
### 6. Отчёт
```
## Обновление завершено
**Версия:** v{old} → v{new}
**Файлов обновлено:** N
**Конфликтов:** 0 / N (разрешены)
**Новые возможности:** [краткий список]
Перезапустите Claude Code для применения обновлений memory/.
```
### 7. Extensions `after`
```bash
bash .claude/scripts/load-extensions.sh iwe-update after
```
Код `0` → прочитать и выполнить файлы после отчёта. Код `1` → расширений нет.
Ошибка `after` не отменяет уже применённое обновление, но обязательно выводится
отдельным предупреждением с именем расширения и причиной.
---
## Автоматическое предложение обновления
При Day Open (шаг 5: IWE за ночь) — если `update.sh --check` показывает доступные обновления → добавить в «Требует внимания»:
> «Доступно обновление IWE v{new}. Запустите `/iwe-update` для обновления.»
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!