03 / 06 · Продвинутый

📐 Большая проектная документация

Система документов среднего-крупного проекта, которую CC читает как источник правды — от PRD до examples/. Не бюрократия ради галочки, а контекст-система: агент знает о проекте ровно то, что ему явно показали, и ни байтом больше.

🧠 Ключевая мысль

У человека-разработчика есть память о прошлых решениях, ощущение архитектуры проекта, интуиция «так тут не принято». У агента этого нет — на старте каждой сессии он видит только то, что загружено в контекст: файлы, на которые сослались, документы, которые прочитал. Большая проектная документация — это не описание проекта «для истории», а рабочий контекст-слой: PRD объясняет зачем, spec фиксирует что, PLAN — в каком порядке, ADR — почему так, а не иначе, examples/ — как именно писать код здесь. Возьмём сквозной пример: CRM под ключ — REST API, БД, фронт. Без карты документов агент на третьей неделе разработки не будет знать, почему авторизацию сделали через отдельный сервис, а не встроили в основной бэкенд — и с шансами предложит «улучшение», разрушающее это решение.

Группа «Проектирование»

Эта страница — хаб группы. Дальше три страницы с конкретными методиками:

⚠️
Частая ошибка: сваливать всё в один гигантский файл ТЗ на тысячи строк «чтобы агент знал всё сразу». Результат обратный ожидаемому: контекстное окно раздувается нерелевантным на 90% текстом (context bloat), агент теряет приоритеты между «сделать сейчас» и «сделать когда-нибудь», а важные инварианты тонут среди второстепенных деталей. Документация должна быть разбита так, чтобы агент грузил только то, что нужно для текущей задачи — остальное подтягивалось по ссылке.

Карта документов проекта

Полный набор для среднего-крупного проекта. Не всё нужно с первого дня — см. чек-лист ниже по размеру проекта.

Документ Назначение Кто пишет Когда обновляется
PRD (Product Requirements Doc) Зачем продукт нужен и для кого — бизнес-контекст, пользовательские сценарии, метрики успеха Человек (продакт/тимлид), Claude помогает структурировать Редко — при смене бизнес-целей или объёма продукта
spec.md Что именно строим технически — функциональные требования, инварианты, границы системы, что не входит в объём Человек + Claude в диалоге (brainstorming/spec-режим) При изменении требований к фиче или модулю
prompt_plan.md / PLAN.md Порядок работы — фазы, зависимости между шагами, что делать в каждой сессии Claude по итогам spec, человек утверждает После каждой завершённой фазы; при пересмотре порядка
ADR (Architecture Decision Record) Архитектурные решения и обоснование — почему выбрали именно так, какие альтернативы отклонили Человек (архитектор/тимлид), по одному ADR на решение При каждом неочевидном архитектурном выборе, задним числом не переписывается
examples/ Эталонные паттерны кода — как здесь принято писать контроллер, тест, компонент; сильнее любого текстового описания стиля Человек курирует, добавляет лучшие реализации по факту Когда появляется новый паттерн, который стоит закрепить как образец
glossary Термины домена — что в этом проекте значит «заказ», «сессия», «активный клиент», чтобы не было двух трактовок Человек, по мере появления неоднозначных терминов При введении нового термина или конфликте трактовок в коде

Как агент читает документацию

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

📥 Upfront — грузится сразу
  • CLAUDE.md в корне проекта — читается автоматически при старте сессии
  • Директивы @import внутри CLAUDE.md — подтягивают glossary, дев-стандарты, критичные инварианты
  • Только компактное, часто нужное: конвенции, команды, запреты — не вся документация целиком
📎 On-demand — по ссылке под задачу
  • spec.md конкретного модуля — читается, когда задача касается именно этого модуля
  • ADR — открывается, когда агент упирается в архитектурное решение и нужно понять «почему так»
  • examples/ — конкретный файл-образец, релевантный текущему паттерну (не вся папка целиком)

Порядок чтения обычно такой: CLAUDE.md → PLAN.md (текущая фаза) → spec.md релевантного модуля → примеры из examples/ → при необходимости конкретный ADR. Такой порядок экономит контекстный бюджет: агент не тратит окно на PRD и glossary целиком, если задача — точечный багфикс в уже понятном модуле.

💡
Бюджет контекста: относись к контекстному окну как к ограниченному ресурсу, а не бездонной яме. Даже при окне в 1M токенов у топовых моделей Claude 5 заливать туда всю документацию «на всякий случай» — плохая идея: релевантные фрагменты теряются среди балласта, и агент хуже приоритизирует. Явные ссылки и точечная загрузка by design работают лучше, чем один файл, в который слито всё.

Минимальный набор доков под размер проекта

Полная карта документов из шести штук — это для крупного проекта. Не переусложняй маленький.

Размер проекта Минимальный набор Когда расширять
Маленький (скрипт, лендинг, MVP на выходные) CLAUDE.md + план в голове разработчика (можно не записывать) Если проект пережил первую неделю и обрастает фичами — переходи к среднему набору
Средний (рабочее приложение, команда 1-3 человека) CLAUDE.md + spec.md + PLAN.md Появляются неочевидные архитектурные развилки → добавляй ADR по одному под каждое решение
Крупный (CRM/платформа, несколько модулей, команда) Полная карта: PRD + spec + PLAN + ADR + examples/ + glossary Уже максимум — дальше делить документацию по модулям, не по типам
🧭 Консенсус практиков

🧭 Консенсус практиков: спецификация и план — ДО кода, а не как документация постфактум. Harper Reed формализовал цепочку spec → plan → todo как основной рабочий цикл с агентом. Cole Medin добавляет к этому INITIAL.md и examples/ — паттерн PRP (Product Requirement Prompt), где примеры кода важнее описаний. Mitchell Hashimoto настаивает на scaffolding-документации как способе задать границы работы агента заранее, а не разгребать после. Hrishi Olickel — сторонник ADR как обязательной практики: без записанного «почему» агент рано или поздно «улучшит» архитектуру обратно в то, от чего вы уже отказались. Сводка по всем подходам — на странице шпаргалки.

Лайфхаки

💡
Лайфхак: обновляй документацию в том же PR/коммите, что и код. Документ, который правится отдельно «когда-нибудь потом», расходится с реальностью за одну-две недели — и агент начинает работать по неактуальной карте.
💡
Лайфхак: пиши ADR именно тогда, когда решение неочевидно — не для рутинных выборов. Записанное «почему мы сделали так» останавливает агента от повторного «улучшения» архитектуры на решение, от которого вы уже сознательно отказались.
💡
Лайфхак: examples/ сильнее текстовых описаний стиля. AI знает только то, что вы ему показали — один эталонный файл с правильным паттерном контроллера убеждает надёжнее, чем абзац инструкций «пиши контроллеры вот так».
💡
Лайфхак: заведи glossary домена, если в проекте есть термины с неочевидной трактовкой («заказ», «активный клиент», «сессия»). Это убирает целый класс галлюцинаций — агент не изобретает своё значение термина, а сверяется с зафиксированным.
💡
Лайфхак: держи статус выполнения в отдельном todo.md, а не в голове или в чате. При обрыве сессии — по сбою, лимиту или просто закрытому терминалу — агент открывает todo.md и продолжает с места остановки, а не переспрашивает контекст заново.

Смежные страницы