diff --git a/CLAUDE.md b/CLAUDE.md index 87e5d45..7579ac2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,38 +1,40 @@ # .meeting-room — workspace contract -`.meeting-room/` — brainstorm-зона для кросс-проектных совещаний. **Не код-проект.** +`.meeting-room/` — multi-agent runtime для кросс-проектных круглых столов: тематических совещаний с ролями, сценарием, транскриптом. **Не код-проект.** + +Single-agent брэйнсторм + дистилляция — это `.workshop/` (отдельная зона после split'а 2026-05-08, см. `.wiki/concepts/meeting-room-architecture.md` §1, и `.workshop/.wiki/concepts/meeting-room-split.md` после промоушена). ## Семантика артефактов | Папка | Что | |---|---| -| `scenarios/` | runtime: сценарии запуска multi-agent совещания (frontmatter: `name`, `participants`, `problem`, `max_rounds`) | +| `scenarios/.md` | runtime: сценарии запуска multi-agent совещания (frontmatter: `name`, `participants`, `problem`, `max_rounds`) | | `config/config.yaml` | runtime: реестр persona (single source of truth) | -| `.brainstorm/.md` | рабочий буфер до промоушена | -| `.archive/-.md` | post-promotion: исходник из `.brainstorm/` | -| `.wiki/raw/research/` | immutable: внешние clippings (бывший `source/`) | -| `.wiki/raw/transcripts/` | immutable: транскрипты совещаний (бывший `sessions/`) | +| `.wiki/raw/research/` | immutable: внешние clippings, релевантные совещанию | +| `.wiki/raw/transcripts/` | immutable: транскрипты прошедших совещаний | | `.wiki/entities/persons/` | карточки persona, генерируются из `config.yaml` | -| `.wiki/concepts/` | room-meta: методология, ретро, паттерны | +| `.wiki/entities/projects/` | pointer-карточки целевых проектов | +| `.wiki/concepts/` | room-meta: методология совещаний, ретро runtime'а | -**Перед предложением tooling/архитектуры — прочитать `.wiki/raw/research/` для текущего топика.** Это закрепляет урок из `feedback_read_source_transcripts.md` (память). +**Перед предложением tooling/архитектуры — прочитать `.wiki/raw/research/` для текущего топика** (если research-материалы для совещания загружены). ## Жёсткие правила -1. **Доменное содержимое никогда не оседает в локальном `.wiki/`** — всегда в глобал через `mcp__projects-meta__knowledge_ingest` в `~/projects//.wiki/`. -2. **Локальный `.wiki/concepts/` — только room-meta** (про саму комнату). -3. **Локальные `.tasks/` не создавать** — экшены идут в `.tasks/` целевого проекта через `mcp__projects-meta__tasks_create`. -4. **`entities/persons/` пишет только скил `meeting-room-register-persona`.** SoT — `config/config.yaml`. -5. **Domain-промоушен с импл-тасками автоматически создаёт review-чекпоинт.** Скил `meeting-room-promote-brainstorm` после успешного `tasks_create` импл-тасок дополнительно создаёт зонтичную `-review` (status=blocked, blocker=impl-slugs) в том же target-проекте. Reviewer — следующая сессия в target, **не имплементер** (борьба с «я только что это написал»-bias). Агент в `.meeting-room` сам код-ревью **не делает** — только генерирует review-таску при промоушене. +1. **Доменное содержимое никогда не оседает в локальном `.wiki/`** — всегда в global через `mcp__projects-meta__knowledge_ingest` в `~/projects//.wiki/`. Промоушен делается **из `.workshop/`** на основании дистилляционного буфера (см. handoff ниже). +2. **Локальный `.wiki/concepts/` — только room-meta** (про runtime: methodology совещаний, ретро, паттерны фасилитации). +3. **Локальные `.tasks/` не создавать** — workshop-meta таски (миграции, апгрейды скилов) живут в `.workshop/.tasks/`. Если runtime'у понадобятся свои таски — открыть отдельным решением. +4. **`entities/persons/` пишет только скил `meeting-room-register-persona`.** SoT — `config/config.yaml`. Ручные правки только в `config.yaml`; регенерация карточки — снова `register-persona`. +5. **Boss-режим (single-agent + user) сюда не приезжает.** Если возник полу-структурированный диалог требующий running-record `.brainstorm/.md` — переехать в `.workshop/`. Workshop делает дистилляцию транскриптов отсюда — пользовательским явным запросом, не автоматически. ## Триггеры скилов v1 | Скил | Триггер-фразы | |---|---| -| `meeting-room-promote-brainstorm` | «промоутни брейнсторм», «finalize ``», «выкати в вики», «promote ``» | | `meeting-room-start-meeting` | «запусти совещание ``», «start meeting ``», «новое совещание ``» | | `meeting-room-register-persona` | «добавь персону», «новый агент в комнату», «register persona ``» | +Скил `workshop-promote-brainstorm` — в зоне `.workshop/`, не здесь. Дистилляция transcripts → концепт делается там. + ## Override `project-discipline` В этой комнате применяются: @@ -42,14 +44,31 @@ **Не применяются:** -- ❌ semver-bump — нет versioned-артефактов (`SKILL.md` без version в frontmatter, нет `package.json`/`pyproject.toml`) -- ❌ локальный `.tasks/` — запрещён правилом §3 выше +- ❌ semver-bump — нет versioned-артефактов (`SKILL.md` скилов живут в `~/projects/claude-skills/`, у них свой semver) +- ❌ локальный `.tasks/` — запрещён правилом §3 + +## Handoff с `.workshop/` + +``` +.meeting-room/.wiki/raw/transcripts/-.md ← runtime артефакт + │ + │ user явно: «дистиллируй транскрипт » + ▼ +.workshop/.brainstorm/-distill.md + │ + │ workshop-promote-brainstorm + ▼ + target (workshop-meta / domain via projects-meta / skill) +``` + +Никакого автоматического hop'а. Multi-agent runtime производит сырьё (транскрипт), workshop производит дистилляты. Два разных режима, не смешиваются. ## Persona registry -SoT — `config/config.yaml`. Карточки `.wiki/entities/persons/.md` — производные. Ручные правки разрешены **только** в `config.yaml`. Регенерация карточки — снова `meeting-room-register-persona `. +SoT — `config/config.yaml`. Карточки `.wiki/entities/persons/.md` — производные. ## Pointers - Schema локальной вики: `.wiki/CLAUDE.md` -- Архитектура комнаты: `.wiki/concepts/meeting-room-architecture.md` +- Архитектура runtime'а: `.wiki/concepts/meeting-room-architecture.md` +- Архитектура boss-зоны: `.workshop/.wiki/concepts/workshop-architecture.md`