iwe-update
Update IWE with change explanations. Agent calls update.sh, parses CHANGELOG, explains what changed, helps adapt updates to user customizations.
Install
npx skills add https://github.com/TserenTserenov/FMT-exocortex-template/tree/main/.claude/skills/iwe-update
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install tserentserenov-fmt-exocortex-template@llmmart
git clone https://github.com/TserenTserenov/FMT-exocortex-template.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole tserentserenov/fmt-exocortex-template collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
IWE Update (агент-обновитель)
Роль: R6 Кодировщик. Один выход: обновлённый IWE + объяснение что изменилось. Триггер: «обнови IWE», «обновись»,
/iwe-update, или агент предлагает после обнаружения новой версии.
Алгоритм
0. Extensions before
bash .claude/scripts/load-extensions.sh iwe-update before
Код 0 → прочитать каждый путь из вывода в алфавитном порядке и выполнить
инструкции до превью. Код 1 → расширений нет, продолжить. Любой другой код или
ошибка обязательного шага расширения → обновление не начинать, показать
настоящую причину ошибки.
1. Превью (--check)
Запустить update.sh в режиме превью:
cd "$IWE_TEMPLATE" && bash update.sh --check 2>&1
Из вывода извлечь:
- Версию upstream (текущая vs новая)
- Список новых файлов
- Список обновлённых файлов
- Количество строк изменений
Если «Всё актуально» → сообщить пользователю и завершить.
2. CHANGELOG — что изменилось
CHANGELOG.md больше не доставляется локально (WP-401 Ф6.1) — читать по raw-URL:
curl -fsSL "https://raw.githubusercontent.com/TserenTserenov/FMT-exocortex-template/main/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) — предложить как использовать новые возможности.
5e. Extensions checks:
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 .claude/scripts/load-extensions.sh iwe-update after
Код 0 → прочитать и выполнить файлы после отчёта. Код 1 → расширений нет.
Ошибка after не отменяет уже применённое обновление, но обязательно выводится
отдельным предупреждением с именем расширения и причиной.
Автоматическое предложение обновления
При Day Open (шаг 5: IWE за ночь) — если update.sh --check показывает доступные обновления → добавить в «Требует внимания»:
«Доступно обновление IWE v. Запустите
/iwe-updateдля обновления.»
Files (fmt-exocortex-template)
-
SKILL.md 7.8 KB
--- 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 browser_safe: false 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` для обновления.»
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.