Files
vitya 8059faf5a8 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>
2026-05-05 14:34:53 +03:00

86 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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`.