Узнайте, как DevTime сканирует репозиторий и отказывается врать: пример с заглушкой вебхука Stripe в Cal.com. Запустите сканер на своём проекте.
Представьте: вы ищете в чужом репозитории обработчик вебхуков Stripe, находите файл stripe/webhook.ts — и думаете, что всё ясно. Но что, если этот файл — заглушка? DevTime — это CLI-инструмент, который сканирует код локально и оценивает уверенность в каждой концепции. Он не использует облако, телеметрию или ИИ. В этой статье мы разберём, как DevTime обнаружил заглушку вебхуков в Cal.com и почему отказ от лжи — это фича.
Cal.com — популярное open-source решение для планирования встреч. Большой TypeScript-монолит с Next.js, NestJS и Stripe. Я запустил DevTime на свежем клоне репозитория:
pipx install devtime-ei
git clone --depth 1 https://github.com/calcom/cal.com
cd cal.com
dtc init
dtc scanРезультат за 4.2 секунды:
Scan complete. Scanned 5736 files, 24516 signals, 3 concepts in 4.2s.Сканер обнаружил три концепции:
Аутентификация подтверждена реальными маршрутами. А вот вебхуки — с низкой уверенностью. Как так? Cal.com — это SaaS со Stripe. Там точно есть вебхуки для биллинга. Я решил проверить вручную.
DevTime сообщил:
- Possible Billing Webhooks signals detected. Billing Webhooks behavior
is not established from current evidence.
confidence: 0.45
Uncertainty:
- Only dependency or manifest evidence was found for Billing Webhooks;
presence is not confirmed behavior.Я нашёл файл apps/web/pages/api/stripe/webhook.ts. Выглядит как настоящий обработчик. Но вот его содержимое:
export default function handler(_req: NextApiRequest, res: NextApiResponse) {
res.status(404).json({ message: "Billing webhooks are not available in community edition" });
}Это заглушка. В community-версии Cal.com вебхуки биллинга не работают — они есть только в enterprise. DevTime не нашёл поведенческих доказательств, потому что их не существует. Отказ был верным решением.
Любой разработчик, grep-нувший репозиторий, сказал бы: «Вот обработчик». Любой ИИ-агент, читающий пути файлов, принял бы это за факт. DevTime промолчал — и оказался прав.
Я обещал найти промахи, и они есть.
Cal.com имеет полноценную систему задач: пакет Tasker с внутренним и Redis-бэкендом, процессор задач и cron-маршруты. Это реальное поведение очередей и воркеров. DevTime показал только низкую уверенность на основе зависимостей и тестов. Защита от ложных срабатываний (подавление сигналов от календарных чисток) сработала как гиперкоррекция.
В репозитории есть настоящие админские интерфейсы: API-маршруты и настройки. DevTime ничего не обнаружил. Оба промаха станут регрессионными тестами, чтобы такое молчание не повторилось.
Забавная деталь: два старых теста в наборе были созданы из-за ложных срабатываний на Cal.com — подписки на календари ошибочно принимались за биллинг. Тогда мы исправили излишнюю уверенность. Сегодня Cal.com показал обратную крайность — излишнюю осторожность.
Во время сканирования DevTime сам вывел предупреждение:
Framework coverage warning: NestJS controller parsing is not supported in V0;
backend route coverage may be incomplete.API v2 Cal.com использует NestJS. Инструмент сам сообщил о своей слепой зоне до того, как я её нашёл.
Каждый современный инструмент оптимизирован под уверенность: саммаризаторы, автокомплиты, агенты — уверенность продаётся. Но заглушка вебхука в Cal.com — идеальный пример того, где уверенные инструменты ошибаются. История «этот репозиторий обрабатывает вебхуки Stripe» правдоподобна, подтверждена именами файлов — и ложна. Если бы ИИ-агент поверил, он мог бы модифицировать платёжную логику, которой нет в этой редакции.
Правило, к которому я возвращаюсь: никаких утверждений без доказательств. Слабые доказательства порождают неуверенность, а не уверенность. Неуверенность — это не сбой инструмента. Неуверенность — это работа инструмента.
Попробуйте DevTime на своём репозитории прямо сейчас:
pipx install devtime-ei
cd your-repo
dtc init
dtc scan
dtc conceptsЕсть также read-only MCP-сервер (dtc mcp start), чтобы кодинг-агенты могли запрашивать те же доказательства вместо догадок.
Если DevTime ошибётся на вашем коде — это не проблема, а вклад. Неверные результаты становятся тестами, а тесты — это то, как инструмент заслуживает доверие.
Хочешь закрепить знания на практике?
Решай задачи на Algolit — интерактивная платформа для обучения
Начать бесплатно →