diff --git a/.wiki/concepts/skills-catalog-deploy-runbook.md b/.wiki/concepts/skills-catalog-deploy-runbook.md index 54789c2..534e543 100644 --- a/.wiki/concepts/skills-catalog-deploy-runbook.md +++ b/.wiki/concepts/skills-catalog-deploy-runbook.md @@ -15,8 +15,8 @@ updated: 2026-08-28 > ⚠️ **DRAFT (2026-08-28, task:1462).** Секции «Артефакты/Шаги» в части команд > заполняются после появления deploy-скриптов в каталогах-репо (mappa **task:1461**, -> blocked). Scope, стоящее правило, verify/rollback/gotchas — актуальны. Финализация — -> после 1461 + подтверждения оператора (needs-human, см. «Открытые вопросы»). +> blocked). Scope, стоящее правило, verify/rollback/gotchas — актуальны. Решения +> оператора по needs-human приняты (см. «Решения оператора»); финализация — после 1461. ## Scope @@ -65,13 +65,15 @@ updated: 2026-08-28 **Прогон деплоя каталога скилов — при каждом изменении исходников в каталогах-репо.** Уведомление — **письмом от владельцев репо** (mappa-зона — держатель исходников). -1. Владельцы репо при каждом замерженном изменении исходников (новый SKILL.md / - правка / удаление) шлют письмо-уведомление в `.admin` +1. Проект, который пушит изменения в каталог-репо, при каждом замерженном изменении + исходников (новый SKILL.md / правка / удаление) шлёт письмо-уведомление в `.admin` (`inbox_send`, from проект-владелец, type action): какие скилы затронуты, что изменилось. + Адресант НЕ фиксирован на проекте («кто пришлёт, тот и держатель»): сейчас mappa → + mappa-skills (core), skills → mappa-vitya-skills (methodology); сменится владелец + каталога — сменится адресант. 2. `.admin` по письму: ops-таска (при необходимости) → прогон деплоя по этому ранбуку (dry-run → apply → verify) → письмо-отчёт + закрытие таски. -3. Триггер — **только письмо**. Без CI/крона/автоматики (решение о канале — needs-human, - подтверждено оператором; см. «Открытые вопросы»). +3. Триггер — **только письмо**. Без CI/крона/автоматики (подтверждено оператором 2026-08-28). ## Verify / smoke @@ -91,9 +93,11 @@ updated: 2026-08-28 ## Gotchas -1. **`kind=core` immutable** — PATCH/DELETE `/skills` → 403. Обновление существующих - core-скилов: рабочий путь решает task:1461 (entity-update / иной API-путь / - документированное ограничение + перезасев). Не пытаться PATCH'ить core. (2026-08-28) +1. **`kind=core` immutable** — PATCH/DELETE `/skills` → 403. Это **пробел сервера**, + не «ограничение + ручной шаг» как финал: core обязаны обновляться деплоем по + определённому пути → follow-up на доработку `/skills` (требование внесено в task:1461). + Ранбук фиксирует финальный механизм, когда 1461 его определит (до этого — DRAFT). + Не пытаться PATCH'ить core напрямую. (2026-08-28, решения оператора inbox:2620) 2. **422 secret-scan** — тело SKILL.md с секретом (token/password/… ≥6 симв.) → `POST /skills` → 422. Перед деплоем прогон `mcp__mappa__admin_secret_scan` (0 hits). 3. **Направление не путать** — репо → mappa (этот ранбук, deploy) vs mappa → диск @@ -102,11 +106,17 @@ updated: 2026-08-28 4. **Триггер письмом, не таской** — таска на борде .admin не пингует живую сессию; уведомление = письмо (канон mappa-messaging). Без письма деплой не стартует. (2026-08-28) -## Открытые вопросы (needs-human, task:1462) +## Решения оператора (2026-08-28, inbox:2620) -1. **Стоящее правило** (текст выше) — подтвердить формулировку «деплой при каждом - изменении исходников, уведомление письмом от владельцев репо». -2. **Владельцы репо-отправители** — кто шлёт письма: mappa (держатель исходников - скилов mappa-зоны)? подтвердить адресанта. -3. **Обновление core (immutable)** — путь, который предложит task:1461 - (entity-update / перезасев / ограничение+ручной шаг) — подтвердить при финализации. +1. **Стоящее правило** — подтверждено как сформулировано: деплой каталога при каждом + изменении исходников; уведомление письмом → ops-таска → dry-run → apply → verify; + триггер только письмом, без CI/автоматики. +2. **Адресант уведомлений** — НЕ фиксировать на проекте: «кто пришлёт, тот и держатель». + Проект, пушащий изменения в каталог-репо, шлёт письмо в .admin. Сейчас: mappa (core), + skills (methodology); сменится владелец каталога — сменится адресант. +3. **Обновление core (immutable)** — ДОДЕЛАТЬ: core должны обновляться деплоем по + определённому пути. 403 = пробел сервера → follow-up на доработку /skills (требование + внесено в task:1461), не «ограничение + ручной шаг» как финал. Ранбук фиксирует + финальный механизм после 1461 (до этого — плейсхолдер DRAFT). + +**Статус:** ждём закрытия mappa **task:1461** → финализация ранбука + снятие blocked (task:1462).