$npx -y skills add TserenTserenov/FMT-exocortex-template --skill extendIWE extensibility catalog: what can be customized, which extension points exist, which parameters are available, how to install a third-party extension.
| 1 | # /extend — Каталог расширяемости IWE |
| 2 | |
| 3 | > **Триггер:** `/extend`, «что я могу расширить?», «как настроить протокол», «как добавить свой шаг». |
| 4 | > **Роль:** R6 Кодировщик. **Один выход:** карта того, что доступно + конкретные инструкции. |
| 5 | |
| 6 | ## Алгоритм |
| 7 | |
| 8 | ### 1. Определить область запроса |
| 9 | |
| 10 | Если аргумент указан (например `/extend day-open`) → показать только этот протокол. |
| 11 | Если аргумент пустой → показать полный каталог. |
| 12 | |
| 13 | ### 2. Показать текущее состояние кастомизаций |
| 14 | |
| 15 | ```bash |
| 16 | ls {{WORKSPACE_DIR}}/extensions/*.md 2>/dev/null || echo "(нет расширений)" |
| 17 | cat {{WORKSPACE_DIR}}/params.yaml 2>/dev/null |
| 18 | ``` |
| 19 | |
| 20 | Сообщить: |
| 21 | - Какие расширения уже установлены (✅) |
| 22 | - Какие параметры уже изменены от defaults |
| 23 | |
| 24 | ### 3. Вывести каталог |
| 25 | |
| 26 | #### Extension points (файлы в extensions/) |
| 27 | |
| 28 | | Протокол | Hook | Файл для создания | Когда выполняется | |
| 29 | |----------|------|-------------------|-------------------| |
| 30 | | `protocol-close` | `checks` | `extensions/protocol-close.checks.md` | **ДО** commit+push — pre-commit gate (R4.3, WP-273) | |
| 31 | | `protocol-close` | `after` | `extensions/protocol-close.after.md` | После чеклиста, перед верификацией | |
| 32 | | `day-open` | `before` | `extensions/day-open.before.md` | Перед шагом 1 — утренние ритуалы | |
| 33 | | `day-open` | `after` | `extensions/day-open.after.md` | После «Требует внимания», перед DayPlan | |
| 34 | | `day-close` | `checks` | `extensions/day-close.checks.md` | После governance batch, перед архивацией | |
| 35 | | `day-close` | `after` | `extensions/day-close.after.md` | После итогов дня, перед верификацией | |
| 36 | | `week-close` | `before` | `extensions/week-close.before.md` | Перед ротацией уроков | |
| 37 | | `week-close` | `after` | `extensions/week-close.after.md` | После аудита memory | |
| 38 | | `protocol-open` | `after` | `extensions/protocol-open.after.md` | После ритуала согласования | |
| 39 | |
| 40 | **Несколько файлов одного hook** — загружаются в алфавитном порядке. |
| 41 | Пример: `day-close.after.md` + `day-close.after.health.md` — оба выполнятся. |
| 42 | |
| 43 | #### Параметры (params.yaml) |
| 44 | |
| 45 | | Параметр | Протокол | Default | Описание | |
| 46 | |----------|----------|---------|----------| |
| 47 | | `video_check` | Day Open | `true` | Проверка видео за предыдущий день | |
| 48 | | `multiplier_enabled` | Day Close | `true` | Расчёт мультипликатора IWE (требует WakaTime) | |
| 49 | | `reflection_enabled` | Day Close | `false` | Рефлексия дня через `day-close.after.md` | |
| 50 | | `lesson_rotation` | Week Close | `true` | Ротация уроков в MEMORY.md | |
| 51 | | `auto_verify_code` | Quick Close | `true` | Автоверификация кода sub-agent Haiku | |
| 52 | | `verify_quick_close` | Quick Close | `true` | Верификация чеклиста sub-agent Haiku | |
| 53 | | `telegram_notifications` | Все роли | `true` | Telegram уведомления | |
| 54 | | `extensions_dir` | Все протоколы | `extensions` | Директория расширений | |
| 55 | |
| 56 | #### Day Open (memory/day-rhythm-config.yaml) |
| 57 | |
| 58 | | Параметр | Описание | |
| 59 | |----------|----------| |
| 60 | | `budget_spread.enabled` | Распределять бюджет РП по дням | |
| 61 | | `budget_spread.threshold_h` | Минимальный бюджет для расчёта (default: 4h) | |
| 62 | | `budget_spread.rounding` | Шаг округления daily_slot (default: 0.5h) | |
| 63 | | `strategy_day` | День стратегирования (session-prep вместо day-plan) | |
| 64 | |
| 65 | #### Свои навыки (.claude/skills/) |
| 66 | |
| 67 | Создать `.claude/skills/<name>/SKILL.md` — skill будет доступен как `/<name>`. |
| 68 | Frontmatter: `name`, `description`, `user_invocable: true`. |
| 69 | `update.sh` не трогает пользовательские skills (не в манифесте). |
| 70 | |
| 71 | ### 4. Предложить следующий шаг |
| 72 | |
| 73 | На основе того что уже настроено — предложить что добавить дальше. |
| 74 | |
| 75 | **Нет ни одного расширения:** |
| 76 | > «Хороший старт — рефлексия дня. Создать `extensions/day-close.after.md` с 3 вопросами?» |
| 77 | |
| 78 | **Есть расширения, нет утреннего ритуала:** |
| 79 | > «Следующий шаг — `extensions/day-open.before.md` для утренней подготовки.» |
| 80 | |
| 81 | ### 5. Создать расширение (если попросили) |
| 82 | |
| 83 | Если пользователь говорит «создай», «добавь» после просмотра каталога: |
| 84 | 1. Уточнить содержимое (или предложить шаблон) |
| 85 | 2. Создать файл в `extensions/` |
| 86 | 3. Напомнить: активируется с **следующего** вызова протокола |
| 87 | |
| 88 | --- |
| 89 | |
| 90 | ## Sharing — установка чужого расширения |
| 91 | |
| 92 | Расширения IWE — обычные Markdown-файлы. Установка: |
| 93 | |
| 94 | ```bash |
| 95 | cp ~/Downloads/day-close.after.health.md ~/IWE/extensions/ |
| 96 | ``` |
| 97 | |
| 98 | **Конфликт имён** (два файла одного hook): |
| 99 | Переименовать с суффиксом: `day-close.after.md` + `day-close.after.health.md`. |
| 100 | Оба загрузятся в алфавитном порядке — конфликта нет. |
| 101 | |
| 102 | **Формат пакета расширений (bundle):** |
| 103 | ``` |
| 104 | my-extension-pack/ |
| 105 | README.md # описание, автор, версия |
| 106 | extensions/ |
| 107 | day-close.after.md # файлы расширений |
| 108 | params-defaults.yaml # рекомендуемые параметры (не применяются автоматически) |
| 109 | ``` |
| 110 | |
| 111 | Установка bundle: |
| 112 | ```bash |
| 113 | cp my-extension-pack/extensi |