Add skill: meeting-room-promote-brainstorm
Closes the lifecycle loop: routes .brainstorm/<topic>.md to either local .wiki/concepts/ (room-meta) or global wiki via projects-meta (domain), extracts action-items into target project's .tasks, archives buffer. Atomic-ish ordering: ingest -> tasks -> mv. Failure leaves buffer for retry. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
127
.claude/skills/meeting-room-promote-brainstorm/SKILL.md
Normal file
127
.claude/skills/meeting-room-promote-brainstorm/SKILL.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
---
|
||||||
|
name: meeting-room-promote-brainstorm
|
||||||
|
description: Use when user says "промоутни брейнсторм", "finalize <topic>", "выкати в вики", "promote <topic>", or wants to finalize a .brainstorm/<topic>.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/<date>-<topic>.md.
|
||||||
|
---
|
||||||
|
|
||||||
|
# meeting-room-promote-brainstorm
|
||||||
|
|
||||||
|
Финализирует созревший брейнсторм-буфер. По правилу C+ii из spec'а: room-meta → локальный `.wiki/concepts/`, domain → глобал через `projects-meta`; буфер уезжает в `.archive/`.
|
||||||
|
|
||||||
|
## When to use
|
||||||
|
|
||||||
|
- «промоутни брейнсторм», «finalize <topic>», «выкати в вики», «promote <topic>».
|
||||||
|
- Пользователь явно ссылается на `.brainstorm/<topic>.md` как на готовый к промоушену.
|
||||||
|
|
||||||
|
## Inputs
|
||||||
|
|
||||||
|
- Путь `.brainstorm/<topic>.md` или просто `<topic>`.
|
||||||
|
|
||||||
|
## Decision flow
|
||||||
|
|
||||||
|
```
|
||||||
|
.brainstorm/<topic>.md
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
read + summarize (1–2 paragraphs)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
ask: room-meta or domain?
|
||||||
|
│ │
|
||||||
|
│ ▼
|
||||||
|
│ ask: target project (validate ~/projects/<proj>/ 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/<topic>.md .archive/<date>-<topic>.md
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
append to .wiki/log.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
1. **Прочитать `.brainstorm/<topic>.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/<topic>.md` с frontmatter:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
date: <YYYY-MM-DD>
|
||||||
|
source: .brainstorm/<topic>.md
|
||||||
|
status: promoted
|
||||||
|
type: room-meta
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
Тело — содержимое буфера (можно слегка причесать заголовки, секции типа TODO убрать — они уже сепарированы в action-items).
|
||||||
|
|
||||||
|
- **domain:** `mcp__projects-meta__knowledge_ingest` с параметрами:
|
||||||
|
- `project: <target>`
|
||||||
|
- `path: concepts/<topic>.md` (внутри target wiki)
|
||||||
|
- `content: <тело буфера с frontmatter>`
|
||||||
|
|
||||||
|
Если `knowledge_ingest` падает → abort до tasks_create и до `git mv`. Сообщить пользователю.
|
||||||
|
|
||||||
|
6. **Создание тасок:** для каждого action-item:
|
||||||
|
- `mcp__projects-meta__tasks_create` с `project: <target>` (для domain) или с `project: <inferred-from-buffer>` (для room-meta это может быть `meeting-room` или конкретный проект упомянутый в action-item — спросить пользователя если неоднозначно).
|
||||||
|
- Title — первая строка action-item; description — остальное.
|
||||||
|
- Если N-я таска упала — продолжить остальные, в конце сообщить какие созданы / какие нет.
|
||||||
|
7. **Архивация:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git mv .brainstorm/<topic>.md .archive/<YYYY-MM-DD>-<topic>.md
|
||||||
|
```
|
||||||
|
|
||||||
|
**Только** если шаги 5 и 6 прошли (или прошли с допустимым partial — пользователь подтвердил). Иначе — оставить буфер на месте, чтобы можно было ретраиить.
|
||||||
|
|
||||||
|
8. **Лог:** дописать в `.wiki/log.md`:
|
||||||
|
|
||||||
|
```
|
||||||
|
<date> promoted <topic> → <destination> [created N tasks in <proj>]
|
||||||
|
```
|
||||||
|
|
||||||
|
9. **Финальный отчёт пользователю:**
|
||||||
|
- Куда промочено (полный путь).
|
||||||
|
- Какие таски созданы (id, title, проект).
|
||||||
|
- Куда уехал исходник.
|
||||||
|
|
||||||
|
## Failure modes
|
||||||
|
|
||||||
|
- `.brainstorm/<topic>.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/<topic>.md`.
|
||||||
|
- domain: создаёт запись в target wiki через MCP.
|
||||||
|
- Создаёт N тасок в target `.tasks/` через MCP.
|
||||||
|
- Перемещает `.brainstorm/<topic>.md` → `.archive/<date>-<topic>.md`.
|
||||||
|
- Аппендит строку в `.wiki/log.md`.
|
||||||
|
|
||||||
|
## What NOT to do
|
||||||
|
|
||||||
|
- Не писать доменное содержимое в локальный `.wiki/concepts/` (правило #1 из root `CLAUDE.md`).
|
||||||
|
- Не создавать локальный `.tasks/` (правило #3).
|
||||||
|
- Не делать `git mv` буфера до успеха ingest+tasks.
|
||||||
|
- Не удалять буфер вместо `git mv` — теряется история.
|
||||||
Reference in New Issue
Block a user