Crossweft — «швы» между компонентами, которые не ломаются молча
Саммари
Разработчица полиглот-продукта (C++, Go, TypeScript, Python) потратила на подписки AI-агентов больше $9 000 — порядка миллиарда токенов — и всё равно не могла свести концы безопасности между компонентами. Причина оказалась не в моделях, а в «швах»: точках, где разные компоненты должны совпадать по договорённости, которую не проверяет ни компилятор, ни тесты. Инструмент Crossweft заставляет каждую межкомпонентную связь объявлять, как её проверять, и вешает на агентов хуки, не дающие закончить работу с расхождением. Это редкий материал с полным техническим разбором, цифрами и открытым инструментом (Apache-2.0, MCP-сервер, плагин для Claude Code и Codex).
Из этого следует, что определение «Готово» у агента — узкое свойство harness, а не модели: любая проверка, которая смотрит только на одну сторону договорённости, для агента не существует. Для Revit-инструментов это прямой рецепт: «готово» должно включать детерминированную проверку всех сторон контракта.
На практике стоимость внедрения растёт немонотонно: автор честно пишет, что на маленьком проекте выгода невелика, окупается там, где языков и процессов много. Значит, первым кандидатом для такого «сторожа» является не одностраничное приложение, а связка Revit-плагин ↔ внешний сервис ↔ скрипты сборки.
Важный нюанс: карта без регулярной проверки устаревает за неделю — первый замер дал 96 проблем, из которых 94 оказались устаревшей картой, а не багами кода. Любая документированная архитектура, которую не перепроверяет автоматика, превращается в дезинформацию для агента.
Ограничение подхода: регулярки вместо разбора кода дают ложные падения на переформатировании и теоретически могут пропустить реальное расхождение при слишком широком шаблоне; честность способа согласования (shared-code или duplicated?) проверяет только человек.