Add skill: meeting-room-start-meeting

Validates scenarios/<topic>.md frontmatter against config.yaml roles, creates
skeleton transcript and working buffer, appends to log. Runner invocation is
out of scope (skill prepares artifacts only).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-05 14:34:53 +03:00
parent f10a341afa
commit 8059faf5a8

View File

@@ -0,0 +1,85 @@
---
name: meeting-room-start-meeting
description: Use when user says "запусти совещание <topic>", "start meeting <scenario>", "новое совещание <topic>", or wants to begin a multi-agent meeting from a scenarios/<topic>.md file in .meeting-room. Validates scenario frontmatter, creates skeleton transcript at .wiki/raw/transcripts/<date>-<topic>.md, opens working buffer at .brainstorm/<topic>.md, logs to .wiki/log.md.
---
# meeting-room-start-meeting
Запускает совещание из `scenarios/<topic>.md`: валидирует frontmatter, создаёт skeleton-транскрипт в `.wiki/raw/transcripts/`, заводит рабочий буфер в `.brainstorm/`, логирует в `.wiki/log.md`.
## When to use
- Пользователь говорит «запусти совещание <topic>», «start meeting <scenario>», «новое совещание <topic>».
- Пользователь указал scenario-файл и хочет подготовить артефакты под него.
## Inputs
- Путь `scenarios/<topic>.md` или просто `<topic>` (тогда искать `scenarios/<topic>.md`).
## Steps
1. **Прочитать `scenarios/<topic>.md`.** Распарсить YAML frontmatter.
2. **Валидация:**
- `name`, `problem` непустые;
- `participants` — список, все элементы существуют как ключи `roles.*` в `config/config.yaml`;
- `max_rounds` — целое (если присутствует).
- При ошибке — перечислить, не создавать ничего.
3. **Сегодняшняя дата**`<date> = YYYY-MM-DD` (UTC локального компа).
4. **Создать `.wiki/raw/transcripts/<date>-<topic>.md`** (skeleton):
```markdown
---
date: <date>
scenario: scenarios/<topic>.md
participants: [<participant1>, <participant2>, ...]
problem: |
<первая строка problem из scenario>
---
# <name> — transcript <date>
<!-- runner будет дописывать сюда. Append-only после первой записи. -->
```
5. **Создать `.brainstorm/<topic>.md`** (если ещё нет):
```markdown
# <name> — working buffer
- **Scenario:** [scenarios/<topic>.md](../scenarios/<topic>.md)
- **Transcript:** [.wiki/raw/transcripts/<date>-<topic>.md](../.wiki/raw/transcripts/<date>-<topic>.md)
- **Started:** <date>
## Заметки
<!-- здесь черновик. Промочится скилом meeting-room-promote-brainstorm. -->
```
Если файл уже существует — спросить: **append-skip**, **overwrite**, **abort**.
6. **Дописать в `.wiki/log.md`:**
```
<date> started <topic> ([<participants comma-sep>])
```
7. **Вернуть пользователю:** созданные пути и подсказку — как запустить runner (на сегодня запуск runner'а вне scope, скил готовит только артефакты).
## Failure modes
- `scenarios/<topic>.md` отсутствует → abort.
- Frontmatter невалидный → перечислить ошибки, ничего не создавать.
- Participant отсутствует в `config/config.yaml#roles` → abort с указанием отсутствующих ролей.
- `.brainstorm/<topic>.md` уже есть и пользователь выбрал abort → exit без записи в `raw/transcripts/`.
## Side effects
- Создаёт `.wiki/raw/transcripts/<date>-<topic>.md`.
- Создаёт `.brainstorm/<topic>.md` (или модифицирует с разрешения).
- Аппендит строку в `.wiki/log.md`.
## What NOT to do
- Не запускать runner — это вне scope скила.
- Не редактировать `scenarios/<topic>.md`.
- Не пытаться угадать `participants` если их нет в `config.yaml`.