docs(runbook): skills-catalog — решения оператора inbox:2620 (standing rule confirmed, адресант по каталогам, core=доделать через 1461)

This commit is contained in:
2026-08-28 18:01:35 +03:00
parent 0e33f103f0
commit 6143c1c3e1

View File

@@ -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).