# Context Management для OpenCode/Codex

Когда промпт слишком большой для модели, используй эти стратегии.

## 🎯 Быстрые решения

### 1. Ограничить контекст фокусом
```bash
opencode run "Сосредоточься ТОЛЬКО на этих файлах: 
main.ts, auth.ts, api.ts
Игнорируй все остальные. Реши задачу используя только их."
```

### 2. Многошаговый подход
```bash
# Шаг 1: Планирование без чтения
opencode run "Спроектируй решение. Не читай файлы, только опиши архитектуру."

# Шаг 2: Работа с конкретными файлами
opencode run "Теперь прочти main.ts и предложи изменения для него."

# Шаг 3: Интеграция
opencode run "Объедини решения. Проверь только точки интеграции."
```

### 3. Temp workspace (чистый контекст)
```bash
SCRATCH=$(mktemp -d) && cd $SCRATCH && git init
cp /path/to/relevant/files/* .
opencode exec "Реши задачу в этом каталоге. 
Видишь только скопированные файлы."
```

### 4. Использовать модель с большим контекстом
```bash
opencode --model gpt-5.1-codex exec "Задача..."
```

## 🛠️ Готовый скрипт

Создай `/home/node/.openclaw/workspace/bin/smart-opencode`:

```bash
#!/bin/bash
# smart-opencode - ограничивает контекст для больших задач

PROJECT_DIR="${1:-.}"
TASK="${2}"
MAX_FILES=10
MAX_SIZE_KB=100

echo "🔍 Анализирую проект..."

# Найти небольшие файлы
FILES=$(find "$PROJECT_DIR" -type f \
  -size -${MAX_SIZE_KB}k \
  \( -name "*.ts" -o -name "*.js" -o -name "*.py" -o -name "*.go" \) | \
  head -$MAX_FILES)

if [ -z "$FILES" ]; then
  echo "❌ Файлы не найдены"
  exit 1
fi

echo "📁 Работаем с $(echo "$FILES" | wc -l) файлами"

# Создать temp workspace
SCRATCH=$(mktemp -d)
cd $SCRATCH || exit 1
git init > /dev/null 2>&1

# Скопировать файлы сохраняя структуру
while IFS= read -r file; do
  rel_path="${file#$PROJECT_DIR/}"
  mkdir -p "$(dirname "$rel_path")"
  cp "$file" "$rel_path"
done <<< "$FILES"

echo "🚀 Запускаю opencode с ограниченным контекстом..."
opencode exec "$TASK

ВАЖНО: 
- Ты видишь только $(echo "$FILES" | wc -l) файлов в текущей директории
- Не пытайся найти другие файлы - их нет
- Сначала спроектируй решение, потом вникай в детали
- Если нужно больше файлов - скажи какие именно"

# Cleanup
cd /home/node/.openclaw/workspace
rm -rf "$SCRATCH"
```

Использование:
```bash
smart-opencode ./my-project "Добавить error handling"
```

## 📋 Шаблоны промптов

### Для больших репозиториев
```
"Проанализируй ТОЛЬКО:
- package.json (зависимости)
- src/index.ts (точка входа)
- README.md (описание)

Потом предложи, какие еще файлы нужны для решения.
Не загружай всё сразу."
```

### Для рефакторинга
```
"Реши задачу в 3 шага:
1. Проанализируй текущую архитектуру (без чтения всех файлов)
2. Предложи план изменений (5-7 пунктов)
3. Реализуй шаг 1, потом остановись

Жди подтверждения перед следующим шагом."
```

### Для баг-фикса
```
"Сосредоточься на:
1. Файле с ошибкой (укажи его)
2. Файлах, которые он импортирует
3. Не читай остальные файлы проекта"
```

## ⚡ Автоматизация через cron

Добавь в cron для автоматического мониторинга:

```json
{
  "name": "context-monitor",
  "schedule": {
    "kind": "every",
    "everyMs": 300000
  },
  "payload": {
    "kind": "systemEvent",
    "text": "[RUN_CLEANUP] voice-processor: Если контекст >80%, сработает оповещение"
  }
}
```

## 🎯 Best Practices

1. **Начинай с планирования** — не читай файлы сразу
2. **Уточняй что нужно** — спрашивай конкретные файлы
3. **Дроби задачи** — большие задачи разбей на подзадачи
4. **Используй grep/find** — для поиска, не всё читай
5. **Временные workspace** — изолируй контекст

## 🔧 Интеграция с OpenClaw

Добавь в `AGENTS.md`:

```markdown
## Context Overflow Prevention

Когда opencode/codex падает с "prompt too large":

1. Используй smart-opencode скрипт
2. Или примени многошаговый подход
3. Или переключись на gpt-5.1-codex

Приоритет: smart-opencode > multi-step > larger model
```

## 📊 Памятка для AI агентов

**Триггеры использования ограничений:**
- Проект >50 файлов
- Код >1000 строк на файл
- Более 5 зависимостей
- Моно-репо >100K строк кода

**Стратегия:**
1. Темп workspace с избранными файлами
2. Итеративный подход (шаг за шагом)
3. Явное указание "не читай другие файлы"

---
Created: 2025-01-30
OpenClaw Workspace