От идеи до продакшена

Учебный маршрут: строим MVP с AI-агентами.

Модуль 4

Рабочее место: агент, проект, структура

Готовим workspace первого проекта: папку, docs, контекст и инструкцию агенту до кода.

К практике
1Разбор ситуации
Ситуация

Не писать код в пустом чате

После модуля 3 Борис выбрал маленький MVP JobTrack.

Не весь сервис для поиска работы. Не личный CRM, календарь, автозаполнение откликов и умный анализ резюме.

Первый проект проще: ввести вакансию, видеть статус, не потерять следующий шаг.

И вот тут хочется сразу открыть агента и написать: сделай мне JobTrack.

Но старт плохой.

Нельзя сразу писать код в пустом чате. Агент не знает, что Борис уже выкинул автозаполнение, что анализ резюме он проверил и отказался, почему MVP — именно ввод вакансии и статус.

В пустом чате он начнёт угадывать: продукт, стек, интерфейс, где у задачи край. И угадает мимо)

Короче, Борису нужно не заклинание для агента, а рабочее место.

Рабочее место — это папка проекта, документы с контекстом, структура, инструкция агенту. Минимальный набор фактов, без которого код будет случайным.

Скучный шаг. Но важный.

Сначала — место, где записано, что уже решено и что отрезано. Потом код.

2Принцип
Теория

Проект как рабочее место агента

Один чат этот проект не вывезет. Модель ты будешь менять — сегодня Codex, завтра Claude Code, Cursor, Gemini — а решения должны жить не в чате, а в файлах, которые откроет любой инструмент.

Но сначала проверь, что есть что складывать. К четвёртому модулю на руках должны быть результаты модулей 1–3: гипотеза, факты discovery, ограничения, выбранный MVP и следующая маленькая задача. Часть всё ещё только в переписке — считай, её нет. Закрывай сейчас.

Если весь контекст живёт внутри одного продукта, ты от него зависишь. Потерял доступ, сменил тариф, инструмент поменял поведение — и проект поехал следом.

Так работать нельзя. Модель — это сменный инструмент, а проект становится самостоятельным только тогда, когда решения лежат в папке проекта и модель просто к ним подключается.

Если непонятно, где физически работать с ИИ до создания папки проекта, открой дополнительный материал Где работать с ИИ-агентом.

До этого модули 1–3 можно проходить в обычном чате и держать результаты как черновики. Но с модуля 4 источник правды переезжает в файлы.

Зачем workspace до кода

Код без контекста получается случайным. Агент видит только текущий запрос и файлы рядом. Пусто в файлах — он тянет общие шаблоны: регистрация, дашборд, сложные статусы, красивая архитектура и ещё десяток вещей, которые первый MVP вообще не проверяет.

Что даёт workspace до кода:

Решения лежат рядом с будущим кодом. Почему JobTrack начинается с ручного ввода вакансий, почему импорт с HH не входит в первый MVP, какой сценарий главный — всё это в docs/, а не в памяти чата.

Проект переезжает между инструментами без пересказа с нуля: контекст в docs/discovery.md и инструкции агенту открываются хоть в Codex, хоть в Claude Code.

Границы держатся. Агент видит: всё приложение сразу строить нельзя, цель MVP менять без явного решения тоже нельзя.

Проверка. Документы и код в одной папке — сразу видно, что изменилось, почему и не уехал ли агент в сторону.

И задел под Git. В следующем модуле он придёт; сейчас глубоко копать не надо, но файлы, которые потом не стыдно закоммитить, готовим уже здесь.

Почему контекст должен жить в файлах

Чат для решений не годится: длинный, хрупкий, проверить в нём ничего нельзя. Я сам так попадал — в одном чате решил не делать авторизацию, через день в новом чате агент снова её предлагает. Потому что нигде не записано, а телепатии у него нет)

Файл перечитывается: агент получает конкретный источник — docs/discovery.md, а не пересказ пользователя на 20 строк. Правишь его точечно — изменилась гипотеза, меняешь один раздел, а не надеешься, что новая версия победила старую где-то в истории переписки.

Главное — файл открывается в другом инструменте. Проект больше не привязан к Codex, Claude или Cursor. И его видно на просвет: агент предлагает поменять ограничение или добавить функцию — ты видишь, что именно он тронул.

На JobTrack это видно сразу: если в docs/discovery.md написано, что первый MVP проверяет только ручное ведение откликов, у агента нет повода уходить в парсинг вакансий, интеграции и личный кабинет.

Что такое AGENTS.md

AGENTS.md — инструкция агенту по этому проекту. Здесь ты пишешь, как работать именно с JobTrack: какие документы читать, что нельзя расширять, когда спрашивать, как проверять результат.

У разных инструментов файл называется по-разному. Codex читает AGENTS.md, Claude Code чаще берёт CLAUDE.md, Gemini — GEMINI.md. Cursor вместо файла работает через rules и проектные настройки, часть инструментов держит свои форматы.

Имя своё у каждого, а смысл один: инструкция лежит рядом с проектом, а не в голове и не в переписке.

Вопрос: почему шаблоны AGENTS.md в курсе на английском и можно ли по-русски?

Ответ: можно, агент по-русски тоже поймёт. Но технические инструкции агенту обычно пишут по-английски — так короче, меньше разночтений, и по моему опыту модели надёжнее работают с англоязычными инструкциями.

Правило курса: технические файлы-инструкции (AGENTS.md, CLAUDE.md) держи на английском, а промпты в чате пиши на том языке, на котором тебе удобнее думать. Агент отвечает на языке запроса.

Здесь мы про проектные инструкции. Глобальные настройки агентов разобраны в дополнительном материале первого модуля.

Не смешивай уровни: глобально — твой общий стиль работы, в проекте — специфика JobTrack. Всё в одном чате — и правила живут, пока открыт чат. Вынес в файлы — остаются и после.

Что входит в workspace проекта

Полноценный репозиторий со стеком, тестами и деплоем сейчас не нужен. Нужен минимум:

— отдельная папка проекта, например jobtrack; — папка docs для продуктового контекста; — docs/discovery.md с решениями из модулей 1–3; — проектная инструкция агенту: AGENTS.md, CLAUDE.md или файл, который понимает выбранный инструмент; — стартовый prompt, с которого агент начнёт проверять понимание контекста.

На этом этапе не создавай src/, app/, components/, конфиги фреймворка и прочий кодовый каркас.

Результат модуля 4 — рабочее место с контекстом, а не заготовка приложения. Папка для кода появится позже, когда выберешь стек и согласуешь первую кодовую задачу.

docs/design.md тоже позже. Сейчас у тебя есть docs/discovery.md; дизайн-док начнётся после брейншторма, выбора стека и уточнения сценариев.

Минимальная структура папки проекта

Минимальная структура выглядит так:

jobtrack/
  AGENTS.md
  docs/
    discovery.md

Позже, после выбора стека и проектирования, она вырастет:

jobtrack/
  AGENTS.md
  docs/
    discovery.md
    design.md
  src/
  README.md

Не плоди пустое на будущее. Нужны только те файлы, которые помогают агенту не потерять контекст.

Что положить в docs/discovery.md

docs/discovery.md — главный документ на старте. В нём — что мы уже поняли о продукте и какой MVP строим первым.

Минимальная структура:

# JobTrack discovery

## Гипотеза
<кому помогаем, с какой болью, каким первым решением>

## Пользователь
<сегмент и контекст>

## Боль
<одно конкретное предложение>

## Факты и цитаты
<что узнали в discovery>

## Текущие альтернативы
<Google Sheets, Notion, Trello, статусы job-сайтов, Telegram, другие ручные способы>

## Ограничения
<юридические, платформенные, технические, ресурсные>

## MVP первого проекта
<что входит в первую версию>

## Основной сценарий
<как пользователь проходит главный путь руками>

## Самый рискованный результат
<без чего MVP не имеет смысла>

## Не сейчас
<бантики и функции, которые сознательно отложены>

## Следующая маленькая задача
<задача, которую можно безопасно отдать агенту позже>

Пустой раздел Не сейчас агент читает как разрешение делать всё. Нет ограничений — предложит собирать данные способом, который ты уже отмёл. А без основного сценария начнёт проектировать вокруг второстепенных экранов.

Как написать проектный AGENTS.md

Проектный AGENTS.md — не пересказ глобальных настроек. Он отвечает только за JobTrack.

Минимальный вариант:

# JobTrack agent instructions

## Context

- Before any work, read docs/discovery.md.
- If a task contradicts docs/discovery.md, stop and ask.
- Do not expand the MVP without an explicit user decision.

## Workflow

- Start with a short plan.
- Work in small steps.
- After changes, explain what changed and how to check it.
- Do not start coding until the task and acceptance criteria are clear.

## Product boundary

- First MVP: manual vacancy list with status and next action.
- Not now: imports from job sites, auth, calendar, analytics, AI recommendations.

Этого достаточно. Сложные правила — позже, вместе со стеком, тестами, командами запуска и Git.

Как попросить ИИ собрать workspace

Терминал сейчас не обязателен — попроси агента прямо в интерфейсе инструмента собрать структуру проекта. Промпт примерно такой:

Помоги подготовить workspace проекта JobTrack до кода.

Контекст из модулей 1-3:
- пользователь: активный соискатель, который откликается в несколько компаний;
- боль: вакансии, статусы и следующие шаги теряются в заметках и чатах;
- MVP первого проекта: ручной список вакансий со статусом и следующим действием;
- не сейчас: импорт с job-сайтов, авторизация, календарь, аналитика, AI-рекомендации.

Собери структуру:
- папка проекта jobtrack;
- docs/discovery.md;
- AGENTS.md с проектными правилами.

Не пиши код.
Не выбирай стек.
Не создавай src, app, components и конфиги фреймворка.
Верни сначала план файлов и содержимое черновиков.

Пример хорошего ответа:

Структура:

jobtrack/
  AGENTS.md
  docs/
    discovery.md

docs/discovery.md:
- Гипотеза: JobTrack помогает активному соискателю вести вакансии вручную...
- MVP первого проекта: добавить вакансию, выбрать статус, записать следующий шаг...
- Не сейчас: импорт, авторизация, календарь, рекомендации...

AGENTS.md:
- Перед работой читать docs/discovery.md.
- Не расширять MVP без подтверждения.
- Не писать код до согласованной задачи.

Хороший он не потому, что длинный. Он не лезет в код и не выбирает стек на пустом месте — отдаёт ровно файлы workspace.

Частые ошибки

Хранить решения только в чате. Правда живёт в файлах проекта, не в переписке.

Привязывать проект к одному продукту. Весь контекст внутри Codex, Claude или Cursor — и проект жив ровно до тех пор, пока у тебя есть доступ.

Проектная инструкция забита общими правилами. В AGENTS.md JobTrack нужна специфика JobTrack, а не пересказ всех твоих правил работы с ИИ.

Смешивать проект и заметки. Черновики, статьи, скриншоты вперемешку с workspace — агент прочитает этот мусор как контекст.

Не фиксировать ограничения. Не написал, что импорт вакансий не входит в первый MVP — агент будет предлагать его снова и снова. Ограничения, которого нет в файле, для агента не существует.

И самое частое — начать с кода. Результат этапа — workspace. Если в конце модуля у тебя готовый интерфейс, значит подготовку ты перескочил и усложнил себе следующий шаг.

Короче: сначала папка, документы и границы. Код потом.

Дополнительный материал

Для ознакомления перед практикой

Короткие разборы, которые помогают пройти упражнение без лишнего контекста в основном тексте.

3Практика
Практика

Создать workspace проекта

В этой практике ты готовишь рабочее место для первого MVP JobTrack. Код пока не пишем. Результат модуля — папка проекта с контекстом, который агент сможет читать и не гадать, что вообще происходит.

SPP preflight

SPP уже должен быть установлен после модуля 1. Не начинай с создания файлов вслепую. Сначала попроси агента выбрать workflow:

Используй /spp.

Мы на модуле 4. В модулях 1-3 появились гипотеза, discovery, ограничения и границы MVP.

Нужно подготовить workspace проекта:
- перенести контекст в файлы;
- создать docs/discovery.md и проектную инструкцию агенту;
- проверить структуру без правок;
- не создавать код приложения, src/app/components, базу данных и scaffold.

Шаг 1. Создай папку первого проекта

Теперь создай отдельную папку проекта. Это можно сделать через Finder, VS Code, Cursor, Codex, Claude Code или любой другой интерфейс. Терминал не обязателен.

Назови папку jobtrack или именем своего проекта. Внутри создай папку docs.

Минимальная структура после шага:

jobtrack/
  docs/

Главное — не работай на рабочем столе, в загрузках или в общей папке с заметками. У проекта должна быть одна понятная папка, иначе агент начнёт читать соседний мусор и делать вид, что так и задумано.

Шаг 2. Перенеси учебный черновик модулей 1–3

Создай docs/discovery.md и перенеси туда учебный черновик из модулей 1–3: гипотезу, discovery, ограничения и границы MVP.

Шаблон:

# JobTrack discovery

## Гипотеза
JobTrack помогает активному соискателю не терять вакансии, статусы и следующие шаги.

## Пользователь
Активный IT-соискатель в России, который откликается на 10+ вакансий в неделю и получает вакансии из job-сайтов, Telegram и личных сообщений.

## Боль
Вакансии, статусы и следующие шаги расползаются по заметкам, чатам и вкладкам.

## Факты и цитаты
- <факт или цитата из discovery>
- <факт или цитата из discovery>

## Текущие альтернативы
- Google Sheets;
- Notion-шаблоны;
- Trello-доски;
- статусы внутри job-сайтов;
- заметки и сохранённые сообщения в Telegram.

## Ограничения
- Не используем импорт с job-сайтов в первом MVP.
- Не строим интеграции до выбора стека.
- Сначала проверяем ручной сценарий.

## MVP первого проекта
Ручной список вакансий: название, компания, ссылка, источник, статус, следующий шаг и заметка.

## Основной сценарий
Пользователь добавляет вакансию, выбирает статус, записывает следующий шаг и позже возвращается к списку.

## Самый рискованный результат
Пользователь быстро понимает, что делать дальше по каждой вакансии.

## Не сейчас
- импорт с HH и других сайтов;
- авторизация;
- календарь;
- AI-рекомендации;
- аналитика;
- мобильное приложение.

## Следующая маленькая задача
Спроектировать самый простой сценарий добавления вакансии и изменения статуса.

Если у тебя свой проект, замени JobTrack на свои решения. Не выдумывай факты, которых не было в модулях 1–3. Лучше честно оставить строку <нужно уточнить>, чем положить в документ красивую фантазию. Она потом сломает спецификацию.

Шаг 3. Создай проектную инструкцию агенту

Создай AGENTS.md. Если твой инструмент использует другое имя файла, например CLAUDE.md, создай его, но смысл оставь тем же.

Шаблон:

# JobTrack agent instructions

## Context

- Before any work, read docs/discovery.md.
- If a task contradicts docs/discovery.md, stop and ask.
- Do not expand the MVP without an explicit user decision.

## Workflow

- Start with a short plan.
- Work in small steps.
- After changes, explain what changed and how to check it.
- Do not start coding until the task and acceptance criteria are clear.

## Product boundary

- First MVP: manual vacancy list with status and next action.
- Not now: imports from job sites, auth, calendar, analytics, AI recommendations.

Инструкция должна быть короткой. Глобальные правила уже отвечают за общий стиль работы. Проектный файл отвечает только за JobTrack: контекст, workflow и границы продукта.

Шаг 4. Проверь структуру проекта через prompt

Открой агента в папке jobtrack — шаг зависит от инструмента:

  • Дорожка A (Codex App): в Codex App выбери папку jobtrack как рабочую папку или проект, чтобы агент видел её файлы.
  • Дорожка B (Claude Code): перейди в папку jobtrack в терминале и запусти Claude Code оттуда.

Дай агенту стартовый prompt:

Прочитай docs/discovery.md и AGENTS.md.

Ничего не редактируй.

Верни:
1. как ты понял MVP JobTrack;
2. какой основной сценарий мы проверяем;
3. какие ограничения нельзя нарушать;
4. каких данных не хватает перед проектированием;
5. какую одну маленькую задачу логично сделать следующей.

Хороший ответ агента должен пересказать твой MVP, а не предложить сразу стек и код. Если агент начинает писать приложение, останови его и уточни: сейчас только чтение контекста и проверка понимания.

Структура считается зафиксированной, когда в папке реально есть AGENTS.md и docs/discovery.md, а стартовый prompt попросил агента проверить эти файлы без правок.

Не создавай src/, app/, components/, базу данных, конфиги фреймворка и другой кодовый каркас. Если в конце модуля появился код приложения, ты перепрыгнул через проектирование.