Markdown предлагают хранить в /src как код, а не документацию
Carson Gross, профессор Университета штата Монтана, который параллельно с преподаванием занимается ИИ-консалтингом, опубликовал эссе с тезисом: в компаниях, которые делают ставку на агентный кодинг (когда код по промптам разработчика пишет ИИ-агент), Markdown-файлы перестают быть вспомогательной документацией и фактически становятся исходным кодом системы.
Его аргумент устроен так. При агентном кодинге разработчик формулирует задачу серией промптов, агент генерирует код, и именно этот код остаётся единственным «источником истины» по фиче, потому что сами промпты нигде не сохраняются. Этим агентный процесс отличается от классического компилятора: компиляторные конвейеры сохраняют исходный код, из которого получена низкоуровневая машинная инструкция, а ИИ-конвейеры обычно теряют исходные промпты сразу после того, как код сгенерирован.
Гросс ссылается на более раннее эссе Хартли Броди «Markdown is the new source code» («Markdown, это новый исходный код»): по словам Броди, логика приложения всё больше определяется и редактируется именно в Markdown, а код, который выдаёт агент, превращается в низкоуровневую деталь реализации.
Предложение самого Гросса: завести в проекте отдельную директорию /src/md, рядом с исходным кодом, а не в вики или таск-трекере, и переносить туда архитектурные и низкоуровневые решения по устройству данных. Именно из этих файлов, по его мысли, должны выводиться код и тесты, а не создаваться заново из очередной сессии промптов. Черновая структура, которую он предлагает как отправную точку: /src/md/README.md, точка входа для агентов и людей, TODO.md, список открытых задач модуля, OVERVIEW.md, технический обзор, а также опциональные поддиректории features/, data/, api/ и infrastructure/ под описания функциональности, моделей данных, API и инфраструктуры соответственно.
Гросс называет главным преимуществом такого подхода локальность: логика «почему сделано именно так» лежит рядом с кодом, а не разбросана по вики, Notion, Confluence или Jira, и агентам не нужно искать контекст где-то ещё. При этом он подчёркивает: сам /src/md должен писаться и курироваться в основном людьми, а не агентами, это ограничение, а не побочный эффект предложения.
Отдельно он разбирает соотношение с тестами. Тесты, по его схеме, остаются в /test и выводятся уже из Markdown-спецификации, но не заменяют её: в тестах, пишет он, много формальностей, из-за которых не видно, что именно проверяется, они рассчитаны на более низкий уровень детализации, чем нужен большинству людей для понимания системы, а более высокоуровневые объяснения вроде диаграмм Mermaid в тестовый код просто не помещаются.
Гросс прямо называет предложенную структуру /src/md самой слабой частью своего эссе: он сам не использовал её сколько-нибудь широко и подаёт текст как приглашение к обсуждению, а не как готовый, проверенный на практике стандарт.
Ключевые факты
- Carson Gross (профессор Университета штата Монтана, параллельно ИИ-консультант) утверждает: там, где код пишут ИИ-агенты, Markdown перестаёт быть документацией и становится исходным кодом
- Предлагает завести директорию /src/md рядом с кодом: архитектурные и низкоуровневые решения хранятся там, код и тесты выводятся из них, а не создаются заново из очередных промптов
- Черновая структура: README.md как точка входа для агентов, TODO.md, OVERVIEW.md плюс опциональные features/, data/, api/, infrastructure/
- Тесты остаются в отдельной папке /test и выводятся из Markdown, но не заменяют его, в них много формальностей, а диаграммы вроде Mermaid туда не помещаются
- Сам /src/md, по мысли Гросса, должны писать и курировать в основном люди, а не агенты; саму структуру он называет самой слабой, непроверенной частью эссе
Почему это важно
При агентном кодинге разработчик обычно видит промпт и результат, сгенерированный код, а сама постановка задачи нигде не фиксируется и теряется вместе с сессией чата. Гросс формулирует это как смену статуса Markdown: из вспомогательной документации, живущей в вики или тикетах, он превращается в источник истины, из которого выводится код, то есть в исходный код в собственном смысле слова, который нужно хранить рядом с проектом, а не рядом с обсуждением задачи.
Кому это важно
Тем, кто уже сегодня строит рабочий процесс вокруг агентного кодинга, разработчикам, техлидам и командам, где ИИ-агент пишет заметную долю кода по промптам. Эссе адресовано именно практике организации репозитория и рабочего процесса, а не выбору конкретного инструмента или модели.
Как это применить
Завести директорию /src/md рядом с исходным кодом модуля и переносить туда архитектурные, а не только высокоуровневые проектные, решения: README.md как точку входа для агентов, TODO.md с открытыми задачами модуля, OVERVIEW.md с техническим обзором, и по необходимости, features/, data/, api/, infrastructure/ под описания функциональности, моделей данных, API и инфраструктуры. Дальше код и тесты выводятся из этих файлов, а не генерируются заново из очередной сессии промптов; изменения, которые вносятся напрямую в сгенерированный код, при необходимости переносятся обратно в Markdown.
Можно ли доверять
Это личное мнение практикующего ИИ-консультанта, основанное на его собственном опыте работы с клиентами, а не результат исследования или опрос индустрии: в тексте нет ни названных компаний или проектов, подтверждающих тренд, ни инструментов и фреймворков, которые уже реализуют такую структуру. Сам автор прямо называет предложенную структуру /src/md самой слабой и наименее опробованной частью эссе.
Риски и подводные камни
Конвенция ещё не проверена на практике даже самим автором. Ключевой риск, рассинхронизация: если разработчики правят сгенерированный код напрямую, а изменения не переносят обратно в Markdown, /src/md быстро устаревает и перестаёт быть источником истины. Дисциплина «агенты не пишут в /src/md», это ограничение, которое нужно поддерживать вручную, и сам Гросс не даёт готового ответа, как удерживать эти Markdown-файлы «чистыми, хорошо факторизованными и на правильном уровне абстракции» по мере роста проекта.
«Такое ощущение, что логика приложения всё больше определяется и редактируется в Markdown, а код, который генерирует агент, становится своего рода низкоуровневой деталью реализации.»
— Хартли Броди, эссе «Markdown is the new source code», процитировано Carson Gross