Files
discussions/.claude/skills/meeting-room-register-persona/SKILL.md
vitya f10a341afa Add skill: meeting-room-register-persona
Registers a persona in config/config.yaml (SoT) and generates the
.wiki/entities/persons/<role-id>.md card. Round-trip YAML edit, append-only
log. Only writer of entities/persons/.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 14:34:28 +03:00

4.0 KiB
Raw Blame History

name, description
name description
meeting-room-register-persona Use when user says "добавь персону", "новый агент в комнату", "register persona <role>", 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/<role-id>.md. Only this skill writes to entities/persons/.

meeting-room-register-persona

Регистрирует новую persona-роль в meeting-room: пишет в config/config.yaml (рантайм SoT) и генерирует карточку в .wiki/entities/persons/<role-id>.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 число 01.5 0.5
tools строка-категория discussion / web / none
system_prompt многострочный текст

Если данные уже есть в config.yaml (регенерация карточки) — не спрашивать, читать оттуда.

Steps

  1. Прочитать config/config.yaml. Если roles.<role-id> уже существует:

    • Если поля совпадают со словами пользователя — это регенерация, идти к шагу 4.
    • Иначе спросить: overwrite / abort / новый id.
  2. Записать в config.yaml под ключом roles.<role-id> со всеми полями.

    • Использовать YAML-парсер с round-trip (ruamel.yaml для Python, или ручной insert по структуре). Не перезаписывать файл yaml.dump-ом без round-trip — порвёт комментарии и порядок ключей.
  3. Сгенерировать .wiki/entities/persons/<role-id>.md:

    ---
    role-id: <role-id>
    model: <model>
    provider: <provider>
    source: config/config.yaml
    ---
    
    # <name>
    
    **Model:** <model> (<provider>), temperature <temperature>
    **Tools:** <tools>
    
    ## System prompt
    
    <первые 500 символов system_prompt>...
    
    ## Source of truth
    
    Полное определение — в `config/config.yaml#roles.<role-id>`. Эта карточка генерируется скилом `meeting-room-register-persona`; не редактировать вручную.
    
  4. Дописать в .wiki/log.md:

    <YYYY-MM-DD> registered <role-id>
    
  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/<role-id>.md.
  • Аппендит строку в .wiki/log.md.

What NOT to do

  • Не пиши в entities/persons/ ничего, кроме как через эту последовательность.
  • Не редактируй config.yaml без round-trip парсера.
  • Не удаляй существующие роли без явной команды пользователя.