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:
85
.claude/skills/meeting-room-start-meeting/SKILL.md
Normal file
85
.claude/skills/meeting-room-start-meeting/SKILL.md
Normal 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`.
|
||||
Reference in New Issue
Block a user