diff --git a/.claude/skills/meeting-room-promote-brainstorm/SKILL.md b/.claude/skills/meeting-room-promote-brainstorm/SKILL.md new file mode 100644 index 0000000..824bac4 --- /dev/null +++ b/.claude/skills/meeting-room-promote-brainstorm/SKILL.md @@ -0,0 +1,127 @@ +--- +name: meeting-room-promote-brainstorm +description: Use when user says "промоутни брейнсторм", "finalize ", "выкати в вики", "promote ", or wants to finalize a .brainstorm/.md buffer. Asks routing (room-meta vs domain), writes to local .wiki/concepts/ OR ingests into target project's wiki via mcp__projects-meta__knowledge_ingest, extracts action-items into target project's .tasks via mcp__projects-meta__tasks_create, archives buffer to .archive/-.md. +--- + +# meeting-room-promote-brainstorm + +Финализирует созревший брейнсторм-буфер. По правилу C+ii из spec'а: room-meta → локальный `.wiki/concepts/`, domain → глобал через `projects-meta`; буфер уезжает в `.archive/`. + +## When to use + +- «промоутни брейнсторм», «finalize », «выкати в вики», «promote ». +- Пользователь явно ссылается на `.brainstorm/.md` как на готовый к промоушену. + +## Inputs + +- Путь `.brainstorm/.md` или просто ``. + +## Decision flow + +``` +.brainstorm/.md + │ + ▼ + read + summarize (1–2 paragraphs) + │ + ▼ +ask: room-meta or domain? + │ │ + │ ▼ + │ ask: target project (validate ~/projects// exists) + │ │ + ▼ ▼ +write to ingest via +.wiki/concepts mcp__projects-meta__knowledge_ingest + │ │ + └──────┬───────┘ + ▼ + parse action-items, show, allow edit + │ + ▼ + for each: mcp__projects-meta__tasks_create + │ + ▼ + git mv .brainstorm/.md .archive/-.md + │ + ▼ + append to .wiki/log.md +``` + +## Steps + +1. **Прочитать `.brainstorm/.md`.** Показать summary (≤2 абзаца). +2. **Спросить тип:** room-meta (методология самой комнаты) или domain (доменное содержимое для какого-то целевого проекта)? +3. **Если domain:** + - Спросить целевой проект (имя папки в `~/projects/`). + - Валидация: вызвать `mcp__projects-meta__meta_status`, убедиться что проект известен; иначе — abort с сообщением «зарегистрируй проект через setup-projects-meta». +4. **Парсинг action-items:** + - regex по строкам вида `- [ ] ...`, `- [ ]`, секции после `## Следующие шаги`/`## TODO`/`## Next steps`/`## Action items`. + - Показать список, дать редактировать/удалять/добавлять. + - Если 0 action-items — продолжить, не блокировать. +5. **Промоушен контента:** + - **room-meta:** `Write` → `.wiki/concepts/.md` с frontmatter: + + ```yaml + --- + date: + source: .brainstorm/.md + status: promoted + type: room-meta + --- + ``` + + Тело — содержимое буфера (можно слегка причесать заголовки, секции типа TODO убрать — они уже сепарированы в action-items). + + - **domain:** `mcp__projects-meta__knowledge_ingest` с параметрами: + - `project: ` + - `path: concepts/.md` (внутри target wiki) + - `content: <тело буфера с frontmatter>` + + Если `knowledge_ingest` падает → abort до tasks_create и до `git mv`. Сообщить пользователю. + +6. **Создание тасок:** для каждого action-item: + - `mcp__projects-meta__tasks_create` с `project: ` (для domain) или с `project: ` (для room-meta это может быть `meeting-room` или конкретный проект упомянутый в action-item — спросить пользователя если неоднозначно). + - Title — первая строка action-item; description — остальное. + - Если N-я таска упала — продолжить остальные, в конце сообщить какие созданы / какие нет. +7. **Архивация:** + + ```bash + git mv .brainstorm/.md .archive/-.md + ``` + + **Только** если шаги 5 и 6 прошли (или прошли с допустимым partial — пользователь подтвердил). Иначе — оставить буфер на месте, чтобы можно было ретраиить. + +8. **Лог:** дописать в `.wiki/log.md`: + + ``` + promoted [created N tasks in ] + ``` + +9. **Финальный отчёт пользователю:** + - Куда промочено (полный путь). + - Какие таски созданы (id, title, проект). + - Куда уехал исходник. + +## Failure modes + +- `.brainstorm/.md` отсутствует → abort. +- `mcp__projects-meta` недоступен → abort до записей. +- Целевой проект (для domain) не найден в `meta_status` → abort. +- `knowledge_ingest` упал → abort до `tasks_create` и `git mv`. Буфер остаётся. +- `tasks_create` упал на N-й таске → продолжить остальные. Сообщить partial. **Не делать** `git mv` без подтверждения пользователя. + +## Side effects + +- room-meta: создаёт `.wiki/concepts/.md`. +- domain: создаёт запись в target wiki через MCP. +- Создаёт N тасок в target `.tasks/` через MCP. +- Перемещает `.brainstorm/.md` → `.archive/-.md`. +- Аппендит строку в `.wiki/log.md`. + +## What NOT to do + +- Не писать доменное содержимое в локальный `.wiki/concepts/` (правило #1 из root `CLAUDE.md`). +- Не создавать локальный `.tasks/` (правило #3). +- Не делать `git mv` буфера до успеха ingest+tasks. +- Не удалять буфер вместо `git mv` — теряется история.