Boss-zone sections moved to .workshop/.wiki/concepts/workshop-architecture.md (commit aa263fd in workshop repo). Full original spec preserved in git history prior to this commit. Also: log.md entries for the split event and this rewrite. Untracked: .brainstorm/, .wiki/raw/naming/ — these are originals still here, removal scheduled for step 13 (final split-done commit).
11 KiB
date, source, status, type, amended
| date | source | status | type | amended |
|---|---|---|---|---|
| 2026-05-05 | .brainstorm/meeting-room-redesign.md | promoted | room-meta | 2026-05-08 (split-rewrite — runtime only, boss-зона выделена в .workshop/.wiki/concepts/workshop-architecture.md) |
Meeting-Room Architecture — promoted spec (runtime-only post-split)
Промочено 2026-05-05 из
.brainstorm/meeting-room-redesign.md. Spec, который комната провалидировала на самой себе: первый прогон скилаmeeting-room-promote-brainstormсделан над этим файлом. Implementation plan архивирован отдельно —.archive/2026-05-05-meeting-room-redesign-plan.md.2026-05-08 split-rewrite: комната разделена на multi-agent runtime (
.meeting-room/, эта зона) и single-agent boss-zone (.workshop/). Из текущего документа удалены boss-секции (.brainstorm/,.archive/,promote-brainstorm-скил, single-agent CSO в lifecycle, room-meta concepts) — они переехали в.workshop/.wiki/concepts/workshop-architecture.md. Полная исходная версия доступна в git-истории (см. commit перед 2026-05-08). Мотивация и протокол split'а:.workshop/.wiki/concepts/meeting-room-split.md(после step #12 миграции).
1. Контекст
.meeting-room/ — multi-agent runtime для срежиссированных круглых столов: тематических совещаний с ролями (analyst, skeptic, idea_generator, moderator …), сценарием и транскриптом. Не код-проект.
Зона выделена под темы, которые выигрывают от многопозиционного спора (architect vs implementer vs PM, или иные оппозиции). Single-agent + user брэйнсторм без режиссуры — другой режим, живёт в .workshop/. Дистилляция транскрипт → концепт — отдельный явный handoff в .workshop/.
2. Принятые решения
| # | Развилка | Решение |
|---|---|---|
| 1 | Wiki/Tasks семантика | локальный .wiki/ есть (room-meta), локальный .tasks/ нет (запрещён §3 в CLAUDE.md) |
| 2 | Folder-миграция | Karpathy-канон: всё «сырое» в .wiki/raw/, скилы — в ~/projects/claude-skills/ |
| 3 | Skills v1 | meeting-room-start-meeting, meeting-room-register-persona (boss-скил workshop-promote-brainstorm выделен в workshop-зону) |
| 4 | Persona sync | писать в entities/persons/ имеет право только register-persona; config/config.yaml — SoT |
| 5 | Project-discipline | master-only ✅, push-by-permission ✅, semver — N/A, локальные tasks — N/A (запрет §3) |
3. Целевая структура
.meeting-room/
├── CLAUDE.md корневой контракт зоны
├── README.md
│
├── scenarios/<topic>.md runtime: frontmatter сценариев multi-agent
├── config/config.yaml runtime: реестр persona (SoT)
│
└── .wiki/ Karpathy-canonical, room-meta only
├── CLAUDE.md wiki-схема
├── index.md
├── overview.md
├── log.md append-only хроника
├── raw/
│ ├── README.md
│ └── transcripts/<date>-<topic>.md immutable: транскрипты совещаний
├── entities/
│ ├── persons/<role-id>.md карточки персон (генерируются)
│ └── projects/<proj>.md pointer-карточки целевых проектов
└── concepts/<topic>.md room-meta: методология, ретро runtime'а
Boss-артефакты (.brainstorm/, .archive/, дистилляция, методология одиночного мышления) — в .workshop/, не здесь.
4. Lifecycle (runtime-only)
PRE-MEETING
user clip → .meeting-room/.wiki/raw/research/<date>-<topic>.md
(если research-материал, релевантный совещанию)
user writes → scenarios/<topic>.md (frontmatter: name, participants, problem, max_rounds)
MEETING
meeting-room- → создаёт .wiki/raw/transcripts/<date>-<topic>.md (skeleton)
start-meeting логирует в .wiki/log.md
multi-agent run → дописывает транскрипт в .wiki/raw/transcripts/<date>-<topic>.md
POST-MEETING (handoff в .workshop/)
user явно: «дистиллируй транскрипт <topic>»
→ boss создаёт .workshop/.brainstorm/<topic>-distill.md
→ workshop-promote-brainstorm дальше
Без автоматического hop'а в workshop. Транскрипт остаётся как primary артефакт runtime'а; распаковка в концепт — явный шаг человека.
5. Skills v1
Скилы живут в ~/projects/claude-skills/skills/, не локально. Триггер-фразы — в SKILL.md frontmatter.
5.1 meeting-room-start-meeting
Триггеры: «запусти совещание <topic>», «start meeting <scenario>», «новое совещание <topic>».
Аргумент: путь scenarios/<topic>.md или topic-name.
Шаги:
- Прочитать
scenarios/<topic>.md, распарсить YAML frontmatter. - Валидация:
name,problemнепустые; всеparticipants— роли вconfig/config.yaml;max_roundsцелое (если есть). <date> = YYYY-MM-DD.- Создать
.wiki/raw/transcripts/<date>-<topic>.md(frontmatter:date,scenario,participants,problem). - Дописать в
.wiki/log.md:<date> started <topic> ({participants}). - Вернуть пользователю созданный путь и подсказку, как запустить multi-agent runner.
Failure modes:
- Frontmatter невалидный → перечислить ошибки, ничего не создавать.
.wiki/raw/transcripts/<date>-<topic>.mdуже есть → спросить: продолжить (append-skip) или прервать.
5.2 meeting-room-register-persona
Триггеры: «добавь персону», «новый агент в комнату», «register persona <role>».
Интерактивный сбор полей:
role-id(snake_case, уникальный)name,model,provider,temperature,tools,system_prompt
Шаги:
- Прочитать
config/config.yaml. Еслиroles.<role-id>существует — спросить: overwrite, abort, новый id. - Обновить
config.yaml, сохраняя YAML-форматирование (round-trip парсер — иначе комментарии и порядок ключей побьются). - Сгенерировать
.wiki/entities/persons/<role-id>.mdс frontmatter (role-id,model,provider,source: config/config.yaml) и body: summary поведения, цитатаsystem_prompt, ссылка наconfig.yaml. - Дописать в
.wiki/log.md:<date> registered persona <role-id>.
Sync-правило: все автоматические записи в entities/persons/ идут только через этот скил. Ручные правки разрешены только в config.yaml; для пере-генерации карточки — снова register-persona <role>.
6. Корневой CLAUDE.md
Полный текст — см. .meeting-room/CLAUDE.md. Outline:
- Идентичность: «multi-agent runtime для круглых столов, не код-проект».
- Семантика артефактов (таблица).
- Жёсткие правила: доменное содержимое — в global wiki через
projects-meta, локальный.wiki/concepts/— только room-meta, локальный.tasks/запрещён,entities/persons/пишет толькоregister-persona, domain-промоушен с импл-тасками авто-создаёт review-чекпоинт (но сам промоушен теперь — workshop'а, не отсюда). - Триггеры скилов v1 (только
start-meeting,register-persona). - Override
project-discipline. - Persona registry: SoT —
config/config.yaml.
7. .wiki/CLAUDE.md (схема)
Karpathy-канон + meeting-room-специфика:
entities/persons/<role-id>.md— frontmatter обязателен (role-id,model,provider,source); body — summary и цитата system_prompt.entities/projects/<proj>.md— pointer-карточка к проекту (минимум: путь, краткая роль в контексте комнаты, ссылки на встречи).concepts/<topic>.md— room-meta runtime'а (методология совещаний, ретро). Frontmatter:date,source,status,type: room-meta.raw/research/<date>-<topic>.md— внешний clipping, frontmatter:date,source(URL),topic.raw/transcripts/<date>-<topic>.md— транскрипт встречи, frontmatter:date,scenario,participants,problem.log.md— append-only,<date> <event-type> <topic> [details].
8. Handoff с .workshop/
См. .workshop/.wiki/concepts/workshop-architecture.md §8. Кратко: транскрипт в .meeting-room/.wiki/raw/transcripts/ → boss создаёт дистилляционный буфер в .workshop/.brainstorm/<topic>-distill.md → workshop-promote-brainstorm → нужный target. Никакой автоматизации, явный шаг человека.
9. Открытые вопросы (не блокируют реализацию)
- Что писать в
entities/projects/<proj>.md— формат карточки утрясём после первой реальной встречи (сейчас нет данных). - Регистрация
.meeting-roomвmcp__projects-meta— после split'а возможно понадобится для cross-project aggregation сценариев. Open вопрос из split-плана.