architect/arh/analysis/2026-01-17-roles-optimization/INSTRUCTION_EVOLUTION_ANALYSIS.md

Анализ эволюции инструкций Claude

Дата: 2026-01-12
Статус: Проблема с persistence → нужно вернуться к промпт-файлу


ИСТОРИЯ ЭВОЛЮЦИИ

Этап 1: CLAUDE.md (основа)

Файл: $WORKSPACE/CLAUDE.md
Размер: 1113 строк
Статус: Активен, стабилен

Содержит:
- Три режима работы (Оператор/Проектор/Архитектор)
- Индекс триггеров
- Протокол диалога L1-L4
- Делегирование моделям
- Правило времени (AI работает в 10× быстрее)
- STOP rules
- Опасные термины
- Примеры промптов для делегирования
- Проверка ресурсов
- Экосистема и структура

Проблема:
- CLAUDE.md читается как контекст, НЕ как system prompt
- Имеет низкий приоритет
- Теряется при compaction → переписывается в summary


Этап 2: test-prompt.md (эксперимент)

Файл: system/monitor/dialog-testing/test-prompt.md
Размер: 199 строк
Статус: Тестовый, экспериментальный
Использование: claude --append-system-prompt-file test-prompt.md

Содержит:
- 2-стадийный протокол (ПОНИМАНИЕ → РЕШЕНИЕ)
- Вероятностные оценки (XX% уверенности)
- Формат вывода с метриками
- Пороги stage1_min / stage2_min (60%)
- Команды управления (порог1, порог2, пороги)
- Логирование в log.yaml для статистики

Цель: Собрать 50-100 диалогов для калибровки порогов

Проблема:
- ❌ --append-system-prompt теряется после compaction
- Эксперимент не завершён (нет собранной статистики)
- Слишком verbose для постоянного использования


Этап 3: SafeDialog.md (output style)

Файл: .claude/output-styles/SafeDialog.md
Размер: 366 строк
Статус: Создан, НЕ закоммичен в git
Использование: settings.local.json → "outputStyle": "SafeDialog"

Содержит:
- Упрощённый протокол L1-L4 (из CLAUDE.md)
- Алгоритм работы (6 шагов)
- STOP rules (security, красные флаги, ошибки)
- Опасные термины
- Делегирование моделям
- Примеры операций L1/L3/L4
- Форматирование и стиль
- Git операции

Цель: Попытка сделать persistence через output style

Проблема:
- ❌ Output style теряется после compaction (та же проблема!)
- Флаг keep-coding-instructions: true не помогает
- Output style НЕ сохраняется в метаданных сессии


СРАВНЕНИЕ ВЕРСИЙ

Аспект CLAUDE.md test-prompt.md SafeDialog.md
Размер 1113 строк 199 строк 366 строк
Загрузка Авто (claudeMd) Флаг --append settings.json
Persistence ❌ Summary ❌ Теряется ❌ Теряется
Приоритет Низкий (контекст) Высокий (system) Высокий (system)
Протокол L1-L4 варианты 2-стадия вероятности L1-L4 упрощённый
Метрики ❌ Нет ✅ Вероятности ❌ Нет
STOP rules ✅ Да ⚠️ Частично ✅ Да
Опасные термины ✅ Да ✅ Да ✅ Да
Делегирование ✅ Да ❌ Нет ✅ Да
Примеры ✅ Да ❌ Нет ✅ Да
Режимы работы ✅ 3 режима ❌ Нет ✅ 3 режима

ЧТО БЫЛО ПОТЕРЯНО

При миграции CLAUDE.md → test-prompt.md

Потеряно:
- ❌ Три режима работы (Оператор/Проектор/Архитектор)
- ❌ Индекс триггеров (бэкап, монитор, scheduler...)
- ❌ Делегирование моделям (Haiku/Sonnet/Opus)
- ❌ Примеры промптов
- ❌ Проверка ресурсов
- ❌ Экосистема и структура

Добавлено:
- ✅ 2-стадийный протокол с метриками
- ✅ Вероятностные оценки
- ✅ Логирование для статистики
- ✅ Команды управления порогами

При миграции test-prompt.md → SafeDialog.md

Потеряно:
- ❌ 2-стадийный протокол
- ❌ Вероятностные оценки (XX%)
- ❌ Логирование в log.yaml
- ❌ Команды управления порогами
- ❌ Цель тестирования (калибровка)

Добавлено:
- ✅ Вернули 3 режима работы
- ✅ Вернули делегирование
- ✅ Вернули примеры
- ✅ Добавили git операции


ТЕКУЩАЯ СИТУАЦИЯ

Проблема

Ни один метод НЕ переживает compaction:
- CLAUDE.md → теряется в summary
- --append-system-prompt → флаг не сохраняется
- outputStyle → не применяется после compaction

Симптомы

В текущей сессии:
- ❌ SafeDialog НЕ активен
- ❌ Протокол L1-L4 НЕ применяется
- ❌ Я отвечаю без подтверждений
- ❌ Не показываю варианты решения

Тест: "настрой nginx"
- Должен → показать варианты, запросить подтверждение
- Фактически → просто отвечаю


РЕШЕНИЕ: ВОЗВРАТ К ПРОМПТ-ФАЙЛУ

Почему промпт-файл лучше?

Преимущества:
1. ✅ Высокий приоритет (system prompt level)
2. ✅ Можно использовать с --append-system-prompt
3. ✅ Версионируется в git
4. ✅ Легко редактировать и тестировать
5. ✅ Работает ДО compaction (минимум)

Недостатки:
1. ❌ Всё равно теряется после compaction (проблема Claude Code)
2. ❌ Нужно запускать с флагом: claude --append-system-prompt-file

Что делать дальше

Шаг 1: Создать единый промпт-файл .claude/system-prompt.md

Объединить:
- CLAUDE.md → основу (режимы, триггеры, делегирование)
- SafeDialog.md → протокол L1-L4 (упрощённый, без verbose)
- test-prompt.md → НЕ включать (тестовый)

Размер: ~400-500 строк (баланс полноты и читаемости)

Шаг 2: Обновить start.sh для автоматического использования

# В start.sh
claude --append-system-prompt-file \
  $WORKSPACE/.claude/system-prompt.md

Шаг 3: Документировать workaround для compaction

В KNOWN_ISSUES.md:
- После compaction → restart сессии с флагом
- Или: используй RESTORE_PROTOCOL_PROMPT.txt

Шаг 4: Продолжить давление на Claude Code


СТРУКТУРА ФАЙЛОВ (ИТОГОВАЯ)

.claude/
├── system-prompt.md            ОСНОВНОЙ (для --append-system-prompt)
                               Включает: режимы, L1-L4, STOP rules,
                               делегирование, термины

├── output-styles/
   ├── SafeDialog.md           BACKUP (не работает из-за compaction)
   └── TestMarker.md           ДЛЯ ТЕСТОВ (маркер проверки)

├── RESTORE_PROTOCOL_PROMPT.txt  WORKAROUND (восстановление после потери)
├── KNOWN_ISSUES.md             ДОКУМЕНТАЦИЯ ПРОБЛЕМЫ
├── FEATURE_REQUEST_*.md        ISSUE ДЛЯ GITHUB
└── PERSISTENCE_TEST_PLAN.md    ПЛАН ТЕСТИРОВАНИЯ

system/monitor/dialog-testing/
└── test-prompt.md              ЭКСПЕРИМЕНТ (2-стадии, НЕ для прода)

CLAUDE.md                       БАЗА ЗНАНИЙ (читается как контекст)

РЕКОМЕНДАЦИИ

Немедленно (сейчас)

  1. Создать .claude/system-prompt.md:
    - Объединить CLAUDE.md + SafeDialog.md
    - Убрать дублирование
    - Оставить только критичное (~400 строк)

  2. Обновить start.sh:
    - Добавить флаг --append-system-prompt-file
    - Для всех режимов (Оператор/Проектор/Архитектор)

  3. Протестировать:
    - Запустить новую сессию
    - Проверить маркер: "marker check"
    - Тест L3: "настрой nginx"

Краткосрочно (до исправления Claude Code)

  1. Restart каждые 30-60 минут (до compaction)
  2. Использовать RESTORE_PROTOCOL_PROMPT.txt при потере
  3. Следить за GitHub issue

Долгосрочно (после исправления)

  1. Если добавят persistence:
    - Вернуться к output style (чище)
    - Или: использовать новое поле в settings.json

  2. Если НЕ исправят:
    - Жить с workaround
    - Или: форкнуть Claude Code и пропатчить


СЛЕДУЮЩИЙ ШАГ

Создать .claude/system-prompt.md — объединённый промпт-файл.

Содержание:

# Claude Code System Prompt

Ты интерактивный CLI инструмент — Claude Code.

## РЕЖИМЫ РАБОТЫ

● Оператор — инфра, сервер, БД
◆ Проектор — проекты, фичи
▲ Архитектор — методология, стандарты

## ПРОТОКОЛ ДИАЛОГА L1-L4

[упрощённая версия из SafeDialog.md]

## STOP RULES

[критичные правила безопасности]

## ОПАСНЫЕ ТЕРМИНЫ

[список омонимов требующих уточнения]

## ДЕЛЕГИРОВАНИЕ МОДЕЛЯМ

[когда использовать Haiku/Sonnet/Opus]

## ПРИМЕРЫ

[3-5 ключевых примеров]

Размер: 400-500 строк
Формат: Сжатый, императивный, без повторений


Статус: Готов к созданию system-prompt.md
Оценка: 30 минут на создание + тестирование