fix(skills): mappa-brainstorm-promote 1.6.0 — review findings (#1052): brainstorm_update для summary, порядок валидации, failure modes (entity_search/inbox_send), admin_status убран
This commit is contained in:
BIN
dist/mappa-brainstorm-promote.skill
vendored
BIN
dist/mappa-brainstorm-promote.skill
vendored
Binary file not shown.
@@ -96,19 +96,21 @@ brainstorm-сущность в mappa (type=brainstorm, status=buffer)
|
||||
2. **Показать summary буфера (≤2 абзаца).**
|
||||
|
||||
3. **Спросить target-проект** — куда промоутить контент. По умолчанию — проект,
|
||||
где буфер живёт (шторм ведут там, где тема релевантна). Проверить, что проект
|
||||
существует в mappa: `mcp__mappa__entity_search` type=project или
|
||||
`admin_status` (список проектов). Если нет — abort с сообщением.
|
||||
где буфер живёт (брейншторм ведут там, где тема релевантна). Проверить, что
|
||||
проект существует в mappa: `mcp__mappa__entity_search` type=project
|
||||
(или `mcp__mappa__entity_search` с q=<имя проекта>). Если нет — abort с
|
||||
сообщением.
|
||||
|
||||
4. **Если target = skill (пользователь хочет оформить как скил):**
|
||||
- Спросить `<name>` нового скила (если не указан) — валидный slug
|
||||
(`[a-z0-9-]+`).
|
||||
- Валидация: `~/projects/skills/skills/<name>/` НЕ должна существовать.
|
||||
- Валидация (порядок важен): сначала проверить, что `~/projects/skills/`
|
||||
сам репозиторий существует. Если нет — **abort** с сообщением «клонируй
|
||||
skills через update-skills или вручную».
|
||||
- Затем: `~/projects/skills/skills/<name>/` НЕ должна существовать.
|
||||
Если существует — **abort** с сообщением «скил `<name>` уже существует,
|
||||
обновляйся обычным маршрутом в `~/projects/skills/`, этот скил не для
|
||||
апдейтов».
|
||||
- Валидация: `~/projects/skills/` сам репозиторий существует. Если нет —
|
||||
abort с сообщением «клонируй skills через update-skills или вручную».
|
||||
- Двухпроходной каркас: диалог по `description` (триггер-контракт активации:
|
||||
минимум 2-3 фразы, пары русский/английский; что делает; антипаттерны) →
|
||||
preview + confirm → `Write` каркаса (шапка + 6 пустых секций) → локальный
|
||||
@@ -125,7 +127,8 @@ brainstorm-сущность в mappa (type=brainstorm, status=buffer)
|
||||
`brainstorm.promoted`.
|
||||
- **Frontmatter-summary (wiki:2661):** убедиться, что в теле буфера есть
|
||||
`summary:` одной строкой в frontmatter — карточки `wiki.search` читают его.
|
||||
Если нет — дописать перед промоутом.
|
||||
Если нет — дописать через `mcp__mappa__brainstorm_update` (PATCH
|
||||
/brainstorm/:id, title/body/status, optimistic version+409) перед промоутом.
|
||||
- Повторный промоут архивированного буфера → ошибка (one-shot, идемпотентно
|
||||
через статус). Сверить `brainstorm_id` (internal) из шага 1.
|
||||
- Если `brainstorm_promote` упал (конфликт версии, 409) → retry со свежим
|
||||
@@ -189,6 +192,8 @@ brainstorm-сущность в mappa (type=brainstorm, status=buffer)
|
||||
|
||||
- Буфер не найден в mappa (нет brainstorm-сущности) → abort, сообщить: создать
|
||||
через `brainstorm_create` (шаг 1) или HTTP POST /entities.
|
||||
- `entity_search`/`entity_get` упал (API-ошибка, не пустой результат) → abort
|
||||
с текстом ошибки; не создавать буфер по догадке.
|
||||
- Target-проект не существует в mappa → abort до промоута.
|
||||
- `brainstorm_promote` упал (409 версия / стабильный отказ) → retry со свежим
|
||||
internal id; при повторном отказе — abort до создания тасок. Буфер остаётся
|
||||
@@ -199,6 +204,9 @@ brainstorm-сущность в mappa (type=brainstorm, status=buffer)
|
||||
partial. Промоут уже сделан — буфер не откатывается.
|
||||
- `task_create` review-umbrella упал → не блокировать, сообщить пользователю
|
||||
(создать вручную из шага 8).
|
||||
- `inbox_send` (covering-письмо) упал → промоут и таски не откатываются;
|
||||
сообщить пользователю, письмо можно отправить позже (промоут уже виден
|
||||
в графе/инбоксе цели).
|
||||
- **Skill:** `~/projects/skills/` не существует → abort.
|
||||
- **Skill:** `~/projects/skills/skills/<name>/` уже существует → abort.
|
||||
- **Skill:** пользователь не подтвердил preview → abort, состояние не меняется.
|
||||
|
||||
Reference in New Issue
Block a user