🏗 Mitchell Hashimoto
Создатель Vagrant и Terraform. Дисциплинированный подход: человек исследует архитектуру, Claude реализует.
🏗 Контекст: создатель инфраструктурных инструментов
Mitchell Hashimoto создал Vagrant, Terraform, Packer, Vault и другие инструменты которые используют миллионы разработчиков. Его статья «Non-trivial Vibing» — честный взгляд на то как человек с глубоким техническим опытом адаптировал свой процесс работы под CC.
Главный тезис Mitchell: CC — отличный исполнитель, но плохой архитектор. Не потому что модель слабая — а потому что она не несёт ответственности за архитектурные решения, которые придётся поддерживать годами.
🔍 Практика 1: Сначала человек, потом агент
Mitchell тратит от 30 до 60 минут на ручное изучение кода, документации и зависимостей перед тем как передать задачу Claude. Это не потеря времени — это инвестиция которая резко снижает количество итераций исправлений.
Почему? Claude не понимает почему система устроена именно так. Он видит код — но не видит историю решений, компромиссы, ограничения которые привели к текущей архитектуре. Человек, прочитавший код вдумчиво, даёт контекст который иначе не передать.
Конкретно что делает Mitchell: читает связанные файлы, ищет похожие паттерны в кодовой базе, проверяет тесты чтобы понять ожидаемое поведение, изучает git blame для контекста изменений.
💬 Практика 2: «Consult the Oracle» — план перед кодом
После ручного research Mitchell начинает интерактивный диалог с Claude о подходе — до того как просить написать код. Он задаёт вопросы, Claude предлагает архитектуру, Mitchell валидирует, задаёт уточняющие вопросы.
Этот диалог — «Consult the Oracle» — помогает выявить слепые пятна: вещи которые Claude заметил в коде но Mitchell пропустил, и наоборот. Только после того как оба «согласны» на подход — начинается реализация.
Ключевое: Mitchell не принимает первое предложение Claude. Он задаёт вопрос «а почему именно так, а не иначе?» и требует обоснования.
🪓 Практика 3: Vertical Slices — по одному полному слою
Mitchell работает вертикальными срезами (vertical slices): каждая единица работы — одна полная фича от UI до базы данных, включая интеграционный тест. Не «сначала все модели, потом все контроллеры, потом все вью».
Преимущества vertical slices при работе с Claude: на каждом шаге есть working software. Если что-то пошло не так — ошибка локализована в этом срезе. Нет большого merge конфликта в конце когда все горизонтальные слои встречаются.
Каждый vertical slice — отдельный git branch, отдельная Claude-сессия, отдельный PR для review.
Шаг 2: все модели
Шаг 3: все сервисы
Шаг 4: все контроллеры
Шаг 5: все вью
Интеграция только в конце → большие конфликты, сложная отладка
миграция + модель + сервис + контроллер + тест
Slice 2: полная фича «вход»
Slice 3: полная фича «подписка»
Working software после каждого slice → легкий review и отладка
🧱 Практика 4: Scaffolding — skeleton-файлы с TODO
Mitchell создаёт файлы с правильными сигнатурами, типами и TODO-комментариями — и отдаёт их Claude для заполнения реализацией. Это гарантирует что архитектурные решения (какие методы, какие типы параметров, какие зависимости) остаются за человеком.
Claude отлично заполняет реализацию когда структура определена. Он плохо определяет структуру самостоятельно — склонен к over-engineering или наоборот к недостаточной абстракции без понимания контекста проекта.
👀 Практика 5: Manual review перед любым шипом
Mitchell категоричен: он прочитал каждую строку кода которую зашипил, независимо от того написан ли он Claude или другим человеком. Это не недоверие к Claude — это профессиональная ответственность за код который ты выпускаешь.
Практически: diff-view в IDE (или git diff) — обязательный шаг перед каждым PR. Mitchell ищет не только баги, но и несоответствие намерению, скрытые предположения, места которые будет сложно поддерживать.
Особое внимание: security-чувствительный код (auth, платежи, данные пользователей) требует особо тщательного review даже если Claude написал «очевидно правильный» код.
// TODO, а инварианты — что метод должен гарантировать, какие исключения бросать, какие side effects недопустимы. CC читает эти комментарии как спецификацию и пишет код который соответствует им, а не «разумным предположениям». Это пересекается с философией Thorsten Ball об описании ограничений вместо реализации.
🔑 Ключевой вывод
Система Mitchell Hashimoto строится на чётком разделении труда. Человек: исследует архитектуру, принимает структурные решения, создаёт scaffolding, делает review. Claude: заполняет реализацию, пишет тесты, делает рутинную работу быстрее. Это не «vibe coding» — это дисциплинированное партнёрство где каждый делает то в чём силён.
📋 Детальный пример диалога планирования
Вот как выглядит реальный диалог фазы «Consult the Oracle» у Mitchell. Он ведёт его письменно чтобы иметь запись решений:
🔍 Checklist перед отдачей задачи Claude
Mitchell использует внутренний checklist перед тем как начать работу с Claude над любой нетривиальной задачей: