Дата: 2026-01-18
Цель: Понять ЧТО можем управлять через документы, ЧТО нет
┌─────────────────────────────────────────────────────────────────┐
│ ПРИОРИТЕТ 1: System Prompt (встроенный в CLI) │
│ Источник: /usr/lib/node_modules/@anthropic-ai/claude-code/cli.js│
│ Изменить: ❌ НЕЛЬЗЯ (минифицирован) │
│ "You are Claude Code, Anthropic's official CLI for Claude." │
└─────────────────────────────────────────────────────────────────┘
↓ может быть дополнен
┌─────────────────────────────────────────────────────────────────┐
│ ПРИОРИТЕТ 2: --append-system-prompt (флаг командной строки) │
│ Источник: claude --append-system-prompt "текст" │
│ Изменить: ✅ МОЖНО через wrapper-скрипт │
│ Проблема: ⚠️ ТЕРЯЕТСЯ после context compaction │
└─────────────────────────────────────────────────────────────────┘
↓ определяет поведение
┌─────────────────────────────────────────────────────────────────┐
│ ПРИОРИТЕТ 3: Output Styles │
│ Источник: .claude/output-styles/*.md │
│ Изменить: ✅ МОЖНО │
│ Сохраняется: ✅ ДА (после compaction) │
│ Возможности: Поведение, формат ответов, Stop Rules │
└─────────────────────────────────────────────────────────────────┘
↓ читается как контекст
┌─────────────────────────────────────────────────────────────────┐
│ ПРИОРИТЕТ 4: CLAUDE.md (контекст) │
│ Источник: $WORKSPACE/CLAUDE.md │
│ Изменить: ✅ МОЖНО │
│ Сохраняется: ⚠️ ДА, но низкий приоритет vs system prompt │
│ Возможности: Протокол, правила, триггеры, индекс │
└─────────────────────────────────────────────────────────────────┘
↓ дополнительный контекст
┌─────────────────────────────────────────────────────────────────┐
│ ПРИОРИТЕТ 5: История разговора │
│ Сохраняется: ⚠️ Частично (после compaction — summary) │
└─────────────────────────────────────────────────────────────────┘
Что можно:
- ✅ Поведение (когда спрашивать подтверждения, когда нет)
- ✅ Формат ответов (заголовки, структура)
- ✅ Stop Rules (что НИКОГДА не делать)
- ✅ Алгоритмы работы (шаг за шагом)
- ✅ Примеры диалогов
Что НЕЛЬЗЯ:
- ❌ Добавить новые инструменты (только CLI может)
- ❌ Изменить базовый system prompt
- ❌ Логика определения типа работы (только через триггеры в имени файла)
Файлы:
.claude/output-styles/
├── Default.md ← Research mode (L0, без подтверждений)
├── Coder.md ← Code mode (план → всё сразу)
├── Architect.md ← Methodology mode (варианты + L1)
└── SafeDialog.md ← Ops mode (L1-L4 протокол)
Пример что работает:
---
name: Coder
---
# Coder Mode
## Behavior
### Planning phase
1. Show full plan
2. Wait for confirmation
### Implementation phase
3. Execute ALL items WITHOUT stopping
Что можно:
- ✅ Протокол диалога (L0-L4 уровни)
- ✅ Индекс триггеров (при слове X → читай файл Y)
- ✅ Правила работы (Stop Rules, Security)
- ✅ Делегирование моделям
- ✅ Примеры и шаблоны
- ✅ Ссылки на стандарты
Что НЕЛЬЗЯ:
- ❌ Переопределить базовый system prompt
- ❌ Гарантировать что Claude ВСЕГДА прочитает (зависит от контекста)
- ❌ Добавить логику которая требует изменения кода CLI
Пример что работает:
## ИНДЕКС ТРИГГЕРОВ
| Триггер | Что делать |
|---------|------------|
| `pirotehnika` | Читай projects/org/pirotehnika/CLAUDE.md |
| `scheduler` | Читай system/scheduler/CLAUDE.md |
Что можно:
- ✅ Модель по умолчанию
- ✅ Output Style по умолчанию (но лучше не задавать глобально)
- ✅ Другие настройки CLI
Что НЕЛЬЗЯ:
- ❌ Изменить поведение инструментов
- ❌ Добавить свои инструменты
Файл: .claude/settings.local.json
Что можно:
- ✅ Дополнить system prompt ЛЮБЫМ текстом
- ✅ Переопределить правила (приоритет выше чем CLAUDE.md)
Проблема:
- ❌ ТЕРЯЕТСЯ после context compaction
- ❌ Нужно добавлять КАЖДЫЙ РАЗ при запуске
Решение:
Wrapper-скрипт который всегда добавляет нужный текст:
#!/bin/bash
# start.sh
CUSTOM_PROMPT="
OVERRIDE: AI works 10x faster than humans.
OVERRIDE: Always provide time estimates in minutes.
"
claude --append-system-prompt "$CUSTOM_PROMPT" "$@"
Что можно добавить через --append-system-prompt:
- ✅ Переопределение правил базового system prompt
- ✅ Формула времени (AI × 10)
- ✅ Любые дополнительные инструкции
Что хотим:
- ❌ Полностью заменить "You are Claude Code..."
- ❌ Изменить логику определения типа работы
- ❌ Добавить свои инструменты (кроме MCP)
Где находится:
- Встроен в /usr/lib/node_modules/@anthropic-ai/claude-code/cli.js (минифицирован)
Как изменить:
- ВАРИАНТ 1: Не менять (смириться)
- ВАРИАНТ 2: Proxy (перехватывать и модифицировать запросы)
- ВАРИАНТ 3: Свое приложение (fork или с нуля)
Встроенные инструменты:
- Bash, Read, Write, Edit, Glob, Grep
- TodoWrite, AskUserQuestion, EnterPlanMode, ExitPlanMode
- WebSearch, WebFetch, NotebookEdit
- Task (для запуска агентов)
- Skill (для запуска skills)
Что хотим:
- ❌ Добавить свои инструменты (например, DatabaseQuery, SendTelegram)
Как добавить:
- ✅ Через MCP (Model Context Protocol) — официальный способ
- ⚠️ Через Skill (но это обёртка над существующими tools)
- ❌ Напрямую в CLI (требует изменения кода)
| Что управляем | Output Styles | CLAUDE.md | --append-system-prompt | settings.json | Требует CLI |
|---|---|---|---|---|---|
| Поведение (когда спрашивать) | ✅ Да | ⚠️ Да (низкий приоритет) | ✅ Да (теряется) | ❌ Нет | — |
| Формат ответов | ✅ Да | ⚠️ Да | ✅ Да (теряется) | ❌ Нет | — |
| Stop Rules | ✅ Да | ✅ Да | ✅ Да (теряется) | ❌ Нет | — |
| Протокол L0-L4 | ⚠️ Частично | ✅ Да | ✅ Да (теряется) | ❌ Нет | — |
| Индекс триггеров | ❌ Нет | ✅ Да | ⚠️ Да | ❌ Нет | — |
| Делегирование моделям | ⚠️ Да (в описании) | ✅ Да | ✅ Да (теряется) | ❌ Нет | — |
| Переопределение system prompt | ❌ Нет | ❌ Нет | ✅ Да (теряется) | ❌ Нет | — |
| Формула времени (AI×10) | ⚠️ Частично | ⚠️ Да (низкий приоритет) | ✅ Да (теряется) | ❌ Нет | — |
| Логика определения режима | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет | ✅ Да |
| Свои инструменты | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет | ✅ MCP/CLI |
| Модель по умолчанию | ❌ Нет | ❌ Нет | ❌ Нет | ✅ Да | — |
$WORKSPACE/
│
├── CLAUDE.md ← Главный протокол
│ • L0-L4 протокол ✅
│ • Индекс триггеров ✅
│ • Stop Rules ✅
│ • Делегирование ✅
│ • Автоопределение типа работы ✅
│
├── .claude/output-styles/
│ ├── Default.md ← Research (L0) ✅
│ ├── Coder.md ← Code (план→всё) ✅
│ ├── Architect.md ← Methodology ✅
│ └── SafeDialog.md ← Ops (L1-L4) ✅
│
└── architect/
├── reference/
│ └── CLAUDE_CODE_SYSTEM_PROMPT.md ← Справка (для понимания) ✅
│
├── standards/
│ ├── TIME_ESTIMATION_AI.md ← Формула AI×10 ⚠️
│ ├── SECURITY_CREDENTIALS.md ← Security rules ✅
│ ├── MODEL_DELEGATION.md ← Делегирование ✅
│ └── processes/
│ └── RESOURCE_CHECK.md ← Проверка ресурсов ✅
│
└── analysis/2026-01-17-roles-optimization/
├── OPTIMAL_ARCHITECTURE.md ← Решение ✅
├── IMPLEMENTATION_COMPLETE.md ← Отчёт ✅
└── L0_PROTOCOL_FIX.md ← Отчёт ✅
1. TIME_ESTIMATION_AI.md
- Местоположение: architect/standards/TIME_ESTIMATION_AI.md
- Проблема: Переопределяет базовый system prompt ("Never give time estimates")
- Не работает через: CLAUDE.md (низкий приоритет)
- Не работает через: Output Styles (нет переопределения)
- Решение: --append-system-prompt (но теряется)
2. Автоопределение типа работы
- Местоположение: CLAUDE.md (таблица триггеров)
- Проблема: Claude не всегда правильно определяет тип
- Решение: Нужна более явная логика (требует proxy/CLI)
"Сменить алгоритм работы с проектами"
- Сейчас: Триггер "pirotehnika" → читает CLAUDE.md проекта
- Хотим: Автоматическое определение проекта по директории?
- Возможно через: CLAUDE.md + Output Styles ✅
"По-другому определять режимы работы"
- Сейчас: Триггеры в запросе → Output Style
- Хотим: Другая логика?
- Возможно через: CLAUDE.md (частично) ⚠️
- Требует: Proxy для полного контроля ❌
"Использовать возможности Claude Code CLI но со своими настройками"
- Сейчас: Output Styles + CLAUDE.md
- Хотим: Больше контроля
- Возможно через: Wrapper + --append-system-prompt ✅
Для ваших задач:
Используем только документы:
start — добавляет --append-system-promptПокрывает: 80% ваших требований
Создать start.sh:
- Загружает кастомные переопределения из файла
- Запускает claude --append-system-prompt "..."
- Проблема: теряется после compaction
Покрывает: 90% требований (кроме compaction)
Если Фаза 1-2 не достаточно:
- Полный контроль над system prompt
- Своя логика определения режимов
- Не теряется после compaction
Следующий шаг: Создать план перестройки (что делаем в каждой фазе)?