--- name: meeting-room-register-persona description: Use when user says "добавь персону", "новый агент в комнату", "register persona ", or wants to register a new persona for multi-agent meetings in .meeting-room. Updates config/config.yaml (single source of truth) AND generates .wiki/entities/persons/.md. Only this skill writes to entities/persons/. --- # meeting-room-register-persona Регистрирует новую persona-роль в meeting-room: пишет в `config/config.yaml` (рантайм SoT) и генерирует карточку в `.wiki/entities/persons/.md`. ## When to use - Пользователь говорит «добавь персону», «новый агент в комнату», «register persona ». - Пользователь вручную поправил `config/config.yaml` и хочет регенерировать карточку — тоже сюда. ## Inputs (collect interactively) | Поле | Тип | Пример | |---|---|---| | `role-id` | snake_case, уникален в `config.yaml#roles` | `analyst` | | `name` | display name | `Analyst` | | `model` | строка | `glm-5.1` | | `provider` | ключ из `config.yaml#providers` | `ollama_cloud` | | `temperature` | число 0–1.5 | `0.5` | | `tools` | строка-категория | `discussion` / `web` / `none` | | `system_prompt` | многострочный текст | … | Если данные уже есть в `config.yaml` (регенерация карточки) — не спрашивать, читать оттуда. ## Steps 1. **Прочитать `config/config.yaml`.** Если `roles.` уже существует: - Если поля совпадают со словами пользователя — это регенерация, идти к шагу 4. - Иначе спросить: **overwrite** / **abort** / **новый id**. 2. **Записать в `config.yaml`** под ключом `roles.` со всеми полями. - Использовать YAML-парсер с round-trip (`ruamel.yaml` для Python, или ручной insert по структуре). **Не** перезаписывать файл `yaml.dump`-ом без round-trip — порвёт комментарии и порядок ключей. 3. **Сгенерировать `.wiki/entities/persons/.md`:** ```markdown --- role-id: model: provider: source: config/config.yaml --- # **Model:** (), temperature **Tools:** ## System prompt <первые 500 символов system_prompt>... ## Source of truth Полное определение — в `config/config.yaml#roles.`. Эта карточка генерируется скилом `meeting-room-register-persona`; не редактировать вручную. ``` 4. **Дописать в `.wiki/log.md`:** ``` registered ``` 5. **Сообщить пользователю** созданные/обновлённые пути. ## Failure modes - `config/config.yaml` отсутствует или невалидный YAML → abort, перечислить ошибки парсинга. - Конфликт `role-id` без выбора пользователя → abort. - Запись в `config.yaml` упала → abort до записи карточки (single-direction failure). ## Side effects - Изменяет `config/config.yaml`. - Создаёт/обновляет `.wiki/entities/persons/.md`. - Аппендит строку в `.wiki/log.md`. ## What NOT to do - Не пиши в `entities/persons/` ничего, кроме как через эту последовательность. - Не редактируй `config.yaml` без round-trip парсера. - Не удаляй существующие роли без явной команды пользователя.