docs(runbook): skills-catalog — решения оператора inbox:2620 (standing rule confirmed, адресант по каталогам, core=доделать через 1461)
This commit is contained in:
@@ -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).
|
||||
|
||||
Reference in New Issue
Block a user