Дата: 2026-01-17
Цель: Понять что есть, что применяется, выработать политику
Файл: .claude/output-styles/SafeDialog.md
Статус: ✅ Активен (в settings.local.json)
Содержит:
- L1-L4 протокол подтверждений
- Алгоритм работы (6 шагов)
- Варианты решений (формат 1, 2, 3, 4)
- Формат подтверждений
- Git операции детально
- Опасные термины (проект/база/ключ)
Приоритет: System prompt level (ВЫСОКИЙ)
Compaction: ✅ Переживает
Файл: $WORKSPACE/CLAUDE.md
Содержит 3 роли:
YYYY-MM-DD | HH:MM | Model | ● Оператор | {что делаем}YYYY-MM-DD | HH:MM | Model | ◆ Проектор | {подрежим} | {что делаем}YYYY-MM-DD | HH:MM | Model | ▲ Архитектор | {подрежим} | {что делаем}Файл: CLAUDE.md (строки 133-556)
Статус: "Применяется для ВСЕХ режимов"
Содержит:
- L1-L4 уровни операций
- Делегирование моделям (Opus/Sonnet/Haiku)
- Правило времени (AI × 10 быстрее)
- STOP RULES (credentials, rm -rf, DROP, деньги)
- Опасные термины
- 6 шагов диалога (Понимание → Задача → Подтверждение → Выполнение → Проверка → Отчёт)
Файл: $WORKSPACE/start.sh
1) exec claude "режим оператор" # Оператор
2) exec claude "режим проектор" # Проектор
3) exec claude "режим архитектор" # Архитектор
4-8) exec claude "проектор работаем с..." # Проектор + проект
9) exec claude "архитектор работаем с..." # Архитектор + платформа
Проблема: НЕТ --append-system-prompt или других способов активации дополнительных правил.
Задачи:
- Настроить nginx → L3 (сервер)
- Создать БД → L3 (сервер)
- Проверить статус → L0 (просмотр)
- Запустить сервис → L3 (сервер)
Операции: Инфраструктурные команды, настройки, быстрые проверки
L1-L4 НУЖЕН? ✅ ДА!
- L3 операции (nginx, systemd, docker) — опасные
- L4 редко, но возможны (DROP TABLE, rm -rf /var)
КОД? ❌ Почти нет
- Изредка скрипты мониторинга
- Но это L2 (редко)
Задачи:
- Добавить фичу → КОД (L2)
- Исправить баг → КОД (L2)
- Создать компонент → КОД (L2)
- Настроить БД для проекта → НЕ КОД (L3)
Операции:
- Исследование: Поиск, анализ (НЕ КОД)
- Планирование: Обсуждение (НЕ КОД)
- Реализация: Написание кода (КОД!)
L1-L4 НУЖЕН? ⚠️ ЧАСТИЧНО
- L2 (код) — нужен, но НЕ ДОЛЖЕН МЕШАТЬ!
- При кодинге показывать план, но НЕ спрашивать на каждую функцию
- L3/L4 — редко (deploy, миграции БД)
ПРОБЛЕМА: L1-L4 протокол МЕШАЕТ кодингу:
- При написании 10 функций → 10 подтверждений ❌
- При рефакторинге → подтверждение на каждый файл ❌
РЕШЕНИЕ: Разграничить ПЛАНИРОВАНИЕ и РЕАЛИЗАЦИЮ:
- Планирование: Показать план → подтверждение → дальше без остановок
- Реализация: Работать без остановок до конца
Задачи:
- Создать стандарт → L1 (документ)
- Обсудить подход → L0 (обсуждение)
- Зафиксировать решение → L1 (документ)
Операции:
- Анализ
- Обсуждение
- Документирование
L1-L4 НУЖЕН? ⚠️ ЧАСТИЧНО
- L1 (документы) — нужен, но упрощённый
- L0 (обсуждение) — НЕ нужен
КОД? ❌ Почти нет
- "Без кода до согласования" (CLAUDE.md:631)
Проблема:
- settings.local.json → outputStyle: "SafeDialog"
- Это для ВСЕХ сессий (Оператор, Проектор, Архитектор)
- При кодинге (Проектор Реализация) — SafeDialog МЕШАЕТ
Пример:
Проектор: Реализация → создаю 5 компонентов
Claude (SafeDialog):
Создам компонент Header.tsx
1 - да
0 - нет
[пользователь: 1]
Создам компонент Footer.tsx
1 - да
0 - нет
[пользователь: 1]
...x5 раз ❌
Сейчас:
- Проектор имеет 3 подрежима (Исследование/Планирование/Реализация)
- Но L1-L4 протокол применяется ко ВСЕМ одинаково
Нужно:
- Планирование: L1-L4 активен (показывать план, ждать подтверждения)
- Реализация: L1-L4 отключён (работать без остановок)
Сейчас:
- Роли определены в CLAUDE.md (context level)
- SafeDialog активен глобально (system prompt level)
- Переключение ролей НЕ меняет SafeDialog
Нужно:
- Оператор → SafeDialog (L3 много)
- Проектор Планирование → SafeDialog
- Проектор Реализация → БЕЗ SafeDialog
- Архитектор → SafeDialog упрощённый (только L1)
| Роль | Подрежим | Тип работы | L1-L4 | Почему |
|---|---|---|---|---|
| Оператор | — | Инфра | ✅ Полный | Много L3, риск downtime |
| Проектор | Исследование | Поиск, анализ | ❌ Нет | Только чтение |
| Проектор | Планирование | Обсуждение плана | ✅ L2 план | Согласование ПЕРЕД кодом |
| Проектор | Реализация | Написание кода | ❌ Нет | Уже согласовали, пишем |
| Архитектор | Исследование | Анализ | ❌ Нет | Только чтение |
| Архитектор | Обсуждение | Выбор подхода | ⚠️ Варианты | Показать 2-4 варианта |
| Архитектор | Документация | Создание .md | ✅ L1 короткий | Изменение документов |
Задача: Создать 5 React компонентов для проекта
С SafeDialog (СЕЙЧАС):
1. План: создам Header, Footer, Sidebar, Content, Layout
→ Подтверждение: да
2. Header.tsx → подтверждение
3. Footer.tsx → подтверждение
4. Sidebar.tsx → подтверждение
5. ...
❌ 5 остановок! Медленно, раздражает.
Без SafeDialog (НУЖНО):
1. План: создам Header, Footer, Sidebar, Content, Layout
Структура: [показать]
Зависимости: [показать]
→ Подтверждение: да
2. [Создаёт все 5 компонентов БЕЗ остановок]
3. ВЫПОЛНЕНО: 5 компонентов созданы
Тесты: npm test ✅
Build: npm run build ✅
✅ 1 подтверждение в начале, потом работа без остановок
Output Style: SafeDialog (ПОЛНЫЙ L1-L4)
Почему:
- Много L3 операций (nginx, systemd, docker)
- Риск downtime
- Нужны подтверждения
Исключения: Нет
Output Style: Зависит от подрежима
| Подрежим | Style | L1-L4 | Обоснование |
|---|---|---|---|
| Исследование | Default | ❌ Нет | Только чтение, анализ |
| Планирование | SafeDialog | ✅ План | Согласовать ПЕРЕД кодом |
| Реализация | Coder | ❌ Нет | Уже согласовали, не мешать |
Как переключать:
# При входе в Планирование
/output-style SafeDialog
# При входе в Реализацию (после согласования плана)
/output-style Coder
# При входе в Исследование
/output-style Default
Output Style: ArchitectDialog (упрощённый L1-L4)
| Подрежим | Style | L1-L4 | Обоснование |
|---|---|---|---|
| Исследование | Default | ❌ Нет | Только чтение, анализ |
| Обсуждение | ArchitectDialog | ⚠️ Варианты | Показать 2-4 варианта, ждать выбор |
| Документация | ArchitectDialog | ✅ L1 | Короткое подтверждение для .md |
ArchitectDialog отличия от SafeDialog:
- Только L1 (документы)
- НЕТ L2 (код не пишем)
- НЕТ L3/L4 (не работаем с инфрой)
- Фокус на варианты решений (2-4 варианта)
Файлы:
- .claude/output-styles/Operator.md → SafeDialog (полный L1-L4)
- .claude/output-styles/Coder.md → БЕЗ подтверждений (для кодинга)
- .claude/output-styles/Architect.md → L1 + варианты (для документов)
Добавить правило переключения:
## ПЕРЕКЛЮЧЕНИЕ OUTPUT STYLE ПО РОЛИ
**ОБЯЗАТЕЛЬНОЕ ПРАВИЛО:** При переключении роли/подрежима → менять Output Style
| Роль | Подрежим | Команда |
|------|----------|---------|
| Оператор | — | `/output-style Operator` |
| Проектор | Исследование | `/output-style Default` |
| Проектор | Планирование | `/output-style Operator` (L2 план) |
| Проектор | Реализация | `/output-style Coder` (БЕЗ подтверждений) |
| Архитектор | Исследование | `/output-style Default` |
| Архитектор | Обсуждение | `/output-style Architect` (варианты) |
| Архитектор | Документация | `/output-style Architect` (L1) |
**Как переключать:**
1. Пользователь: "режим проектор планирование"
2. Claude: `/output-style Operator` → активирует L1-L4
3. Согласование плана
4. Пользователь: "делаем" или "реализация"
5. Claude: `/output-style Coder` → отключает подтверждения
6. Кодинг без остановок
При старте через меню:
# Оператор
exec claude --append-system-prompt "Activate /output-style Operator immediately" "режим оператор"
# Проектор
exec claude --append-system-prompt "Ask for submode (Исследование/Планирование/Реализация) and set appropriate output-style" "режим проектор"
# Архитектор
exec claude --append-system-prompt "Ask for submode and set /output-style Architect or Default" "режим архитектор"
Или оставить как есть — пусть Claude сам спрашивает подрежим и переключает стиль.
Плюсы:
- Минимальные изменения
- Работает внутри сессии
- Гибкость (можно менять стиль вручную)
Минусы:
- Claude должен сам переключать (может забыть)
--append-system-promptПлюсы:
- Гарантированная активация при старте
- CLAUDE.md + system prompt = двойная защита
Минусы:
- Сложнее
- Нужно менять start.sh
/output-style YПлюсы:
- Полная автоматизация
Минусы:
- Skills context level (может не сработать)
- Сложно
Сделать:
1. ✅ Создать 3 Output Styles (Operator, Coder, Architect)
2. ✅ Обновить CLAUDE.md с чёткими правилами переключения
3. ⚠️ НЕ менять start.sh (пока)
4. ⚠️ Протестировать в работе
5. ⚠️ Если Claude забывает → добавить в start.sh --append-system-prompt
Принцип:
- Оператор: ВСЕГДА SafeDialog (инфра опасна)
- Проектор Планирование: SafeDialog (согласование плана)
- Проектор Реализация: БЕЗ подтверждений (не мешать кодингу)
- Архитектор: Упрощённый (только L1 + варианты)
Делаем Вариант А?