| name | decision-framework |
| description | Быстрый фреймворк для принятия решений. Выбор инструмента, подхода, стратегии за <5 секунд. Минимизация analysis paralysis. |
| tags | ["decisions","speed","tool-selection","efficiency"] |
Decision Framework
Активировать когда: нужно выбрать между несколькими подходами/инструментами, и выбор неочевиден.
Цель: Принять решение за <5 секунд. Если дольше — первый разумный вариант без рефлексии.
Primary Decision Tree (выбор инструмента)
Что нужно сделать?
│
├─ Ответить на вопрос / дать информацию?
│ ├─ Факт из памяти → ответь сразу
│ ├─ Факт из прошлой сессии → session_search
│ ├─ Факт из внешнего мира → delegate_task(web) [web_search tool не всегда доступен]
│ └─ Сложный ресёрч → delegate_task(web) + сам проверь конкретные цифры из ответа subagent-а
│
├─ Изменить файл?
│ ├─ Одно изменение → patch
│ ├─ Полная перезапись → write_file
│ ├─ Много мелких изменений → execute_code (с patch в цикле)
│ └─ Много файлов → delegate_task
│
├─ Выполнить команду?
│ ├─ Быстрая (ls, pwd, git status) → terminal
│ ├─ Средняя (build, install, test) → terminal(timeout=120)
│ └─ Долгая / фоновая → terminal(background=true, notify_on_complete=true)
│
├─ Создать новое?
│ ├─ Файл → write_file
│ ├─ Проект → delegate_task
│ └─ Папку со структурой → terminal(mkdir -p) + write_file
│
├─ Дебажить?
│ ├─ Простая ошибка → error-recovery
│ ├─ Сложная (стектрейс, неочевидно) → systematic-debugging
│ └─ Subagent ошибка → error-recovery (проверь сам!)
│
└─ Не уверен?
└─ clarify (спроси пользователя, предложи 2-3 варианта)
Secondary Decision Tree (выбор модели исполнения)
Сколько шагов?
│
├─ 1 шаг → прямой tool call
├─ 2-5 шагов, независимые → execute_code (группировка)
├─ 2-5 шагов, с зависимостями → последовательные tool calls
├─ 5+ шагов, независимые → delegate_task(tasks=[...]) параллельные волны
├─ 5+ шагов, цепочка → последовательно с verify каждого
├─ Долгая / фоновая / даже если ПК уснёт → cronjob
└─ Хочу попробовать идею → spike
Decision Tree для ответов пользователю
Пользователь спросил?
│
├─ Как сделать X? → дай команду/код + 1 предложение контекста
├─ Что такое X? → 2-3 предложения
├─ Почему X не работает? → "вот ошибка → вот причина → вот фикс"
├─ Сравни X и Y? → таблица мысленно, ответ списком ключевых различий
├─ "Сделай X" → сделай, потом отчитайся результатом
├─ "Что ты думаешь о X?" → 2 предложения + аргумент
└─ Молчание (не знаешь) → web_search или session_search
Когда пропустить Decision Tree
Decision tree не нужен когда:
- Пользователь явно сказал что делать → делай
- Задача тривиальная (прочитать файл, написать 1 строку) → просто сделай
- Это продолжение предыдущего разговора → продолжай тем же подходом
- Единственный разумный вариант → не рефлексируй
Anti-Overthinking Rules
- Таймер <5 секунд — если думаешь дольше, выбери первый разумный вариант
- Не ищи идеальный инструмент — ищи работающий
- Первая итерация не должна быть perfect — она должна быть done
- Если не знаешь какой инструмент — terminal. Terminal — универсальная отмычка
- Если terminal сложно — execute_code. Python + hermes_tools покрывает 90% сценариев
- Если execute_code сложно — delegate_task. Изолируй и делегируй
- Если ничего не помогает — clarify. Спроси пользователя