⚙️ IndyDevDan
Тактический подход к агентному кодингу: три фундаментальных кита качества, правильный порядок работы с задачами и прагматичный взгляд на выбор модели. Конкретные паттерны для ежедневной работы с CC.
"Три кита: Context + Prompt + Model. Провалился один — провалится всё." Недостаточно иметь хороший промпт или правильную модель — все три элемента должны быть сильными одновременно. Слабое звено определяет качество результата, а не самое сильное.
IndyDevDan строит свою методологию вокруг трёх равнозначных элементов. Ошибка большинства разработчиков — концентрация на одном (обычно промпте) при игнорировании остальных.
Сильный context: @UserService.php @examples/
Сильный: "добавь JWT middleware для API роутов с 401 при истекшем токене"
Sonnet для кода
Opus для архитектуры
Практический тест: если получаете плохой результат — диагностируйте какой из трёх китов слаб:
- Claude нарушает конвенции проекта → слабый Context (нет примеров)
- Claude делает что-то похожее, но не то → слабый Prompt (недостаточно конкретно)
- Claude не справляется с задачей → неправильная Model (нужна мощнее)
IndyDevDan называет CLAUDE.md не просто инструкциями, а "конституцией проекта". Этот файл — единственный источник истины для генерации кода. Всё остальное вторично.
Три ключевых правила для "конституции":
- Конкретность важнее полноты. "Используй readonly классы в сервисах" лучше чем три абзаца про архитектуру
- Обновляй после каждой ошибки Claude. Если Claude нарушил правило — добавь явный запрет в CLAUDE.md
- Явные "нельзя" эффективнее "можно". "Нет прямых запросов к БД в контроллерах" работает лучше чем "используй репозитории"
## Архитектурные законы (не нарушать)
1. Controller — только HTTP: принять запрос, вернуть ответ
- Нет бизнес-логики в Controller
- Нет прямых Eloquent запросов в Controller
- Все операции через соответствующий Service
2. Service — только бизнес-логика:
- Все классы readonly
- DI через конструктор
- Нет HTTP знания в Service
3. Тесты — обязательно:
- Feature тест для каждого endpoint
- Unit тест для сложной бизнес-логики
- Pest, не PHPUnit
## После изменений — всегда запускать:
./vendor/bin/pint && php artisan test
IndyDevDan использует встроенную систему задач CC (Task tool) для управления сложными многошаговыми задачами. Ключевое правило: никогда "сделай всё сразу".
Правильная decomposition задач:
Правила системы задач:
- Явные зависимости: задача B не начинается до завершения A
- Атомарный коммит после каждой задачи: всегда зелёное состояние в git
- Верификация перед переходом: тесты зелёные, lint чистый
- Откат по одной задаче: если B сломана, откатываем только B, не всё
Центральный тезис IndyDevDan, который противоречит интуиции многих разработчиков:
Практические следствия этого принципа:
Перед задачей — добавь контекст явно:
// Неправильно — рассчитывать что Claude "знает" проект:
"Добавь функцию экспорта в UserController"
// Правильно — дать Claude весь нужный контекст:
@app/Http/Controllers/UserController.php
@app/Services/UserService.php
@examples/controller.example.php
Добавь метод exportCsv(): возвращает CSV всех активных пользователей.
Использует UserService->getActive(), стриминговый ответ для больших наборов.
Перед новой задачей — удали нерелевантный контекст:
// После завершения работы над AuthController:
/clear ← очистить весь контекст
// Или очистить историю но сохранить CLAUDE.md:
/reset
// Тогда добавить только контекст для новой задачи:
@app/Http/Controllers/PaymentController.php
Почему это важно: накопленный нерелевантный контекст не просто не помогает — он активно мешает. Claude начинает строить связи между несвязанными частями кода, что приводит к неожиданным решениям.
Используй @файл для явного добавления контекста перед задачей. Используй /clear между несвязанными задачами. Не позволяй контексту накапливаться неконтролируемо — это снижает качество результатов.
Третий кит — правильный выбор модели — напрямую влияет на стоимость и скорость разработки. IndyDevDan лечит "ошибку оракула": использование самой мощной модели для всех задач.
| Модель | Задачи | Примеры | Скорость/Цена |
|---|---|---|---|
| Haiku | Механические задачи: форматирование, переименование, шаблонный код | Добавить docblocks, переименовать переменные, создать CRUD по схеме | Быстро / Дёшево |
| Sonnet | Обычная разработка: новые фичи, рефакторинг, тесты, дебаггинг | Реализовать SubscriptionService, написать Feature тесты, исправить баг | Средне / Средне |
| Opus | Архитектурные решения: дизайн системы, сложные trade-offs, ревью | Как структурировать модуль оплат, review архитектуры, критический рефакторинг | Медленно / Дорого |
Признаки неправильного выбора модели:
- Haiku для сложной логики → галлюцинации, неправильные архитектурные решения
- Opus для форматирования → трата денег в 10× без улучшения результата
- Sonnet для архитектурного ревью большого проекта → недостаточная глубина анализа
Экономический аргумент: Если 80% ваших задач — обычная разработка на Sonnet, а 15% — механические задачи которые мог бы делать Haiku, вы переплачиваете. Знать когда переключиться = реальная экономия.
# Указать модель при запуске:
claude --model claude-haiku-4-5 "добавь docblocks к этим функциям"
claude --model claude-sonnet-5 "реализуй SubscriptionService"
claude --model claude-opus-4-8 "review архитектуры модуля платежей"
# Или сменить в середине сессии через /model:
/model claude-haiku-4-5
Диагностическая матрица: где слабое звено?
Используй эту таблицу когда получаешь плохой результат:
| Симптом | Слабый кит | Решение |
|---|---|---|
| Нарушает стиль кода проекта | Context | Добавить @examples/ в промпт |
| Делает похожее, но не то | Prompt | Уточнить конкретные требования |
| Не справляется со сложностью | Model | Перейти на более мощную модель |
| "Забывает" правила из CLAUDE.md | Context | Обновить CLAUDE.md с явным запретом |
| Слишком медленно/дорого | Model | Использовать Haiku для этой задачи |
Источник
Методология Tactical Agentic Coding описана на сайте agenticengineer.com/tactical-agentic-coding. IndyDevDan специализируется на практических паттернах агентного кодинга для реальных проектов — без теоретических конструкций, только то что проверено в production. Сайт регулярно обновляется с новыми тактиками по мере развития CC.