
Совет — зная это, вы уже можете командовать
Самая большая проблема при поручении модификации кода агенту — 20 функций в одном файле. Нужна одна — открылся файл, и 19 ненужных загружены. Это снижает производительность агента на 30-85%.
Решение — три фразы. Поддерживаются Go, TypeScript, Python.
Агенту: “Найди самый длинный файл и разбей по функциям. Имя файла = имя функции. Все существующие тесты должны проходить.”
Агенту: “Запусти filefunc validate и доведи нарушения до 0. Все существующие тесты должны проходить.”
Агенту: “Повторяй tsma next, добавляя тесты ко всем функциям. При непокрытых ветвях — тесты и для них. До All functions complete.”
Не нужно читать код. Инструменты судят, агент исполняет. Вы только принимаете решения.
Почему нужно командовать именно так
Код для людей ≠ Код для агентов
SWE (инженер) прокручивает файл и интуитивно чувствует “это не трогать”. Агент — нет. Он загружает весь файл целиком. 2000 строк — все обрабатываются. Исследования подтверждают: ненужная информация снижает производительность ИИ на 30-85%.
filefunc — один файл, одна концепция
Принцип: один файл = одна концепция. Имя файла = имя концепции.
Без filefunc: read utils.go → 20 функций, 19 ненужных. Загрязнение контекста. С filefunc: read check_one_file_one_func.go → 1 функция. Именно то, что нужно.
Проверено на фреймворке Hono (23k+ звёзд): 186 файлов → 626 файлов. 4 419 тестов — ни один не сломался. Чистый структурный рефакторинг.
tsma — линия обороны легаси-кода
Легаси-код без тестов. Рефакторить боязно — непонятно, что сломается. 60-80% IT-бюджетов Fortune 500 заморожены в этом тупике.
tsma решает: tsma next → агент пишет тест → обратная связь с номерами строк непокрытых ветвей → агент покрывает → PASS → следующая функция. Агенты умирают — прогресс в session.json сохраняется.
4 условия Agent Operable Codebase
| Условие | Инструмент | Эффект |
|---|---|---|
| 1 файл = 1 концепция | filefunc | Блокировка загрязнения контекста |
| Тесты для всех функций | tsma | Обнаружение регрессии после изменений |
| Символьные ссылки | operationId (yongol) | Отслеживание между слоями |
| Удаление неявной связанности | whyso coupling | Обнаружение скрытых зависимостей |
Послание урока 8: Не делайте поезд быстрее — кладите рельсы.
Связанные статьи
Полный курс Reins Engineering
| Урок | Название |
|---|---|
| Урок 1 | Как командовать ИИ |
| Урок 2 | Как не доверять ИИ |
| Урок 3 | Нерушимое приложение |
| Урок 4 | Решения — за пределы кода |
| Урок 5 | ИИ на поводьях |
| Урок 6 | Прошёл — зафиксировал |
| Урок 7 | Как обратить лесть |
| Урок 8 | Фабрика агентов |
| Урок 9 | Автоматизация за пределами кода |
| Урок 10 | Закон данных |
Источники
- Stanford, “Lost in the Middle” (2024) — при скрытии релевантной информации в середине контекста: -30%+
- Amazon, “Context Length Alone Hurts LLM Performance” (2025) — даже пустые токены: -13,9-85%
- Теорема Бёма-Якопини (1966) — любая программа = комбинация последовательности, ветвления, цикла
- Hono: 186 → 626 файлов, 4 419 тестов без поломок
- tsma: 527 функций, PASS 246, DONE 281, TODO 0